diff --git a/DEPS b/DEPS index e3562fc..d0ced9f 100644 --- a/DEPS +++ b/DEPS
@@ -206,11 +206,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '7737a5bd251095d4eeedd855c0f13eafacafa7ce', + 'skia_revision': '6f87de7c272d572e6420010bfb704bb2a15e8810', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': 'ea929126115668a68bdaf03be55bae867dc26ac8', + 'v8_revision': '47c8f45b3d543bcc13f3f74d6c335f10908a5947', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -277,7 +277,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': 'f6c1edff2f42bc71e0218f7998b9913d39b9115b', + 'devtools_frontend_revision': '64543505bd673d66218506b3ab955d2438a6fd41', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -329,11 +329,11 @@ # 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': '41c24933da1e6c5ec111f824bfc5977be244d3e4', + 'dawn_revision': '25eeaa3d39afcc82fe9d384949d4e9c99e6e7903', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'quiche_revision': 'd15ae2bf593afd18cdb7aa39067a98d2f6f4f62b', + 'quiche_revision': '89fe24dbb1e2b7e895f3db82d5269aff9186008a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ios_webkit # and whatever else without interference from each other. @@ -892,7 +892,7 @@ # Tools used when building Chrome for Chrome OS. This affects both the Simple # Chrome workflow, as well as the chromeos-chrome ebuild. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '7e3b823b7b183d1da3eb43b4970e6c5240122757', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '15b2c074595f32777acfa4463d9e04c5870f1d18', 'condition': 'checkout_chromeos', }, @@ -1171,7 +1171,7 @@ Var('chromium_git') + '/webm/libwebm.git' + '@' + '51ca718c3adf0ddedacd7df25fe45f67dc5a9ce1', 'src/third_party/libyuv': - Var('chromium_git') + '/libyuv/libyuv.git' + '@' + '6866adbec5af1b3c66d1ace334a43ad61e6bb268', # from r1714 + Var('chromium_git') + '/libyuv/libyuv.git' + '@' + '19d71f6b351fe992ae34b114eebd872c383a6bdb', # from r1714 'src/third_party/lighttpd': { 'url': Var('chromium_git') + '/chromium/deps/lighttpd.git' + '@' + Var('lighttpd_revision'), @@ -1368,7 +1368,7 @@ 'packages': [ { 'package': 'chromium/third_party/r8', - 'version': 'N9LppKV-9lFkp7JQtmcLHhm7xHqFv0SPa6aDPtgNCdwC', + 'version': 'cf9Zl4I4n6RqsJezIQ58bLhhVRdmCJ8Pvaemifu2QIIC', }, ], 'condition': 'checkout_android', @@ -1545,7 +1545,7 @@ 'packages': [ { 'package': 'skia/tools/goldctl/windows-amd64', - 'version': 'SzWAsWkD4L0lMv-gdLIdN18zHBh_mkAxsGDyzRNwwsgC', + 'version': 'aieWIkdGOsgGtm_vv0Dnzqq1OVdoTGYJur8CntVK_UAC', }, ], 'dep_type': 'cipd', @@ -1569,7 +1569,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@011cbddc5cdbb9d85c533b722c6dcc3b9b3efa67', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@06d17a5d6ff293525b641becae29fe7b3815c367', 'condition': 'checkout_src_internal', }, @@ -1577,7 +1577,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/help_app/app', - 'version': '6q3KGc8MY72AQZTiXiZLel40JELyz8SKto30Ralc5fYC', + 'version': 'eO09jUkryhPMkMcGrgpF5XKLX9JWZB6RvOYUgr9sMb8C', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -1588,7 +1588,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'd_W31KKgRgYuvgrFL3we1kiiq2UPrniL8Q6CCbFkclAC', + 'version': 'MHfyzcW1xhCWhSgftO6_x002FdOnWyLr6xw7ohbtv7oC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/WATCHLISTS b/WATCHLISTS index 936d0f8..134a79e9 100644 --- a/WATCHLISTS +++ b/WATCHLISTS
@@ -951,6 +951,9 @@ 'diagnostics_ui': { 'filepath': 'chromeos/components/diagnostics_ui/', }, + 'discardable_memory': { + 'filepath': 'components/discardable_memory/', + }, 'disk_cache': { 'filepath': 'net/disk_cache/|http_cache', }, @@ -1184,6 +1187,11 @@ 'ios_web': { 'filepath': 'ios/web(_view)?/', }, + 'ios_widget_kit': { + 'filepath': 'ios/chrome/common/widget_kit|'\ + 'ios/chrome/browser/widget_kit|'\ + 'ios/chrome/widget_kit_extension', + }, 'isolated_prefetch': { 'filepath': 'chrome/browser/prerender/isolated', }, @@ -2475,6 +2483,7 @@ 'joonbug+diagnostics-watch@chromium.org', 'michaelcheco+diagnostics-watch@google.com', 'zentaro+diagnostics-watch@chromium.org'], + 'discardable_memory': ['thiabaud+watch-discardable-memory@google.com'], 'disk_cache': ['gavinp+disk@chromium.org'], 'dom_storage': ['dmurph+watchingdomstorage@chromium.org'], 'download': ['dtrainor+watch@chromium.org'], @@ -2560,6 +2569,7 @@ 'marq+watch@chromium.org'], 'ios_web': ['ios-reviews+web@chromium.org', 'eugenebut@chromium.org'], + 'ios_widget_kit': ['javierrobles+watch@chromium.org'], 'isolated_prefetch': ['robertogden+watch@chromium.org', 'marcinjb+p4watch@google.com'], 'language': ['language-reviews@chromium.org'],
diff --git a/android_webview/browser/aw_quota_manager_bridge.cc b/android_webview/browser/aw_quota_manager_bridge.cc index 8fbf649..27445677 100644 --- a/android_webview/browser/aw_quota_manager_bridge.cc +++ b/android_webview/browser/aw_quota_manager_bridge.cc
@@ -29,7 +29,6 @@ using base::android::ScopedJavaLocalRef; using content::BrowserThread; using content::StoragePartition; -using storage::QuotaClient; using storage::QuotaManager; namespace android_webview {
diff --git a/apps/ui/views/app_window_frame_view.cc b/apps/ui/views/app_window_frame_view.cc index 43d5e685..1a4ba7e 100644 --- a/apps/ui/views/app_window_frame_view.cc +++ b/apps/ui/views/app_window_frame_view.cc
@@ -64,6 +64,7 @@ close_button->SetImage( views::Button::STATE_PRESSED, rb.GetNativeImageNamed(IDR_APP_WINDOW_CLOSE_P).ToImageSkia()); + close_button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); close_button->SetAccessibleName( l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE)); close_button_ = AddChildView(std::move(close_button)); @@ -80,6 +81,7 @@ maximize_button->SetImage( views::Button::STATE_DISABLED, rb.GetNativeImageNamed(IDR_APP_WINDOW_MAXIMIZE_D).ToImageSkia()); + maximize_button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); maximize_button->SetAccessibleName( l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MAXIMIZE)); maximize_button_ = AddChildView(std::move(maximize_button)); @@ -92,6 +94,7 @@ restore_button->SetImage( views::Button::STATE_PRESSED, rb.GetNativeImageNamed(IDR_APP_WINDOW_RESTORE_P).ToImageSkia()); + restore_button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); restore_button->SetAccessibleName( l10n_util::GetStringUTF16(IDS_APP_ACCNAME_RESTORE)); restore_button_ = AddChildView(std::move(restore_button)); @@ -104,6 +107,7 @@ minimize_button->SetImage( views::Button::STATE_PRESSED, rb.GetNativeImageNamed(IDR_APP_WINDOW_MINIMIZE_P).ToImageSkia()); + minimize_button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); minimize_button->SetAccessibleName( l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MINIMIZE)); minimize_button_ = AddChildView(std::move(minimize_button));
diff --git a/ash/app_list/views/page_switcher.cc b/ash/app_list/views/page_switcher.cc index 67147597..7d5bb8b 100644 --- a/ash/app_list/views/page_switcher.cc +++ b/ash/app_list/views/page_switcher.cc
@@ -52,7 +52,6 @@ public: explicit PageSwitcherButton(bool is_root_app_grid_page_switcher) : is_root_app_grid_page_switcher_(is_root_app_grid_page_switcher) { - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); SetInkDropMode(InkDropMode::ON); views::InstallFixedSizeCircleHighlightPathGenerator(
diff --git a/ash/app_list/views/search_result_base_view.cc b/ash/app_list/views/search_result_base_view.cc index af790ab..3233f93 100644 --- a/ash/app_list/views/search_result_base_view.cc +++ b/ash/app_list/views/search_result_base_view.cc
@@ -13,7 +13,6 @@ namespace ash { SearchResultBaseView::SearchResultBaseView() { - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); SetInstallFocusRingOnFocus(false); }
diff --git a/ash/capture_mode/capture_label_view.cc b/ash/capture_mode/capture_label_view.cc index 2ab2cc38..216d147c 100644 --- a/ash/capture_mode/capture_label_view.cc +++ b/ash/capture_mode/capture_label_view.cc
@@ -161,6 +161,7 @@ color_provider->GetRippleAttributes(background_color); label_button_->SetInkDropVisibleOpacity(ripple_attributes.inkdrop_opacity); label_button_->SetInkDropBaseColor(ripple_attributes.base_color); + label_button_->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); label_ = AddChildView(std::make_unique<views::Label>(base::string16())); label_->SetPaintToLayer();
diff --git a/ash/hud_display/graph_page_view_base.cc b/ash/hud_display/graph_page_view_base.cc index 65a02943..76f008a 100644 --- a/ash/hud_display/graph_page_view_base.cc +++ b/ash/hud_display/graph_page_view_base.cc
@@ -40,7 +40,6 @@ /*radius=*/0)); SetProperty(kHUDClickHandler, HTCLIENT); - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/ash/hud_display/hud_header_view.cc b/ash/hud_display/hud_header_view.cc index 4f12785f..6ce1307 100644 --- a/ash/hud_display/hud_header_view.cc +++ b/ash/hud_display/hud_header_view.cc
@@ -77,7 +77,6 @@ SetBorder(views::CreateEmptyBorder(gfx::Insets(kSettingsIconBorder))); SetProperty(kHUDClickHandler, HTCLIENT); - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/ash/hud_display/tab_strip.cc b/ash/hud_display/tab_strip.cc index 8d5da05..edcbd9b 100644 --- a/ash/hud_display/tab_strip.cc +++ b/ash/hud_display/tab_strip.cc
@@ -79,7 +79,7 @@ HUDTabButton::HUDTabButton(Style style, const DisplayMode display_mode, const base::string16& text) - : views::LabelButton(nullptr, text), + : views::LabelButton(views::Button::PressedCallback(), text), style_(style), display_mode_(display_mode) { SetHorizontalAlignment(gfx::ALIGN_CENTER); @@ -89,7 +89,6 @@ kSettingsIconBorder, kTabOverlayWidth + kTabTitleBorder, kSettingsIconBorder, kTabOverlayWidth + kTabTitleBorder)); - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/ash/login/ui/login_password_view.cc b/ash/login/ui/login_password_view.cc index eefc184..3991669 100644 --- a/ash/login/ui/login_password_view.cc +++ b/ash/login/ui/login_password_view.cc
@@ -252,7 +252,6 @@ public: EasyUnlockIcon(const gfx::Size& size, int corner_radius) : views::Button(PressedCallback()) { - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); SetPreferredSize(size); SetLayoutManager(std::make_unique<views::FillLayout>());
diff --git a/ash/search_box/search_box_constants.h b/ash/search_box/search_box_constants.h index 21576c3..b74fce55 100644 --- a/ash/search_box/search_box_constants.h +++ b/ash/search_box/search_box_constants.h
@@ -38,6 +38,10 @@ // The size of the image button in the search box. constexpr int kSearchBoxButtonSizeDip = 40; +// Color of placeholder text in zero query state. +constexpr SkColor kZeroQuerySearchboxColor = + SkColorSetARGB(0x8A, 0x00, 0x00, 0x00); + } // namespace ash #endif // ASH_SEARCH_BOX_SEARCH_BOX_CONSTANTS_H_
diff --git a/ash/search_box/search_box_view_base.cc b/ash/search_box/search_box_view_base.cc index 837ee039..d3529c6 100644 --- a/ash/search_box/search_box_view_base.cc +++ b/ash/search_box/search_box_view_base.cc
@@ -47,10 +47,6 @@ constexpr SkColor kSearchTextColor = SkColorSetRGB(0x33, 0x33, 0x33); -// Color of placeholder text in zero query state. -constexpr SkColor kZeroQuerySearchboxColor = - SkColorSetARGB(0x8A, 0x00, 0x00, 0x00); - } // namespace // A background that paints a solid white rounded rect with a thin grey
diff --git a/ash/shelf/shelf_button.cc b/ash/shelf/shelf_button.cc index 9976dba..dbdbae6 100644 --- a/ash/shelf/shelf_button.cc +++ b/ash/shelf/shelf_button.cc
@@ -18,7 +18,7 @@ ShelfButton::ShelfButton(Shelf* shelf, ShelfButtonDelegate* shelf_button_delegate) - : Button(nullptr), + : Button(Button::PressedCallback()), shelf_(shelf), shelf_button_delegate_(shelf_button_delegate) { DCHECK(shelf_button_delegate_);
diff --git a/ash/shelf/shelf_button_pressed_metric_tracker_unittest.cc b/ash/shelf/shelf_button_pressed_metric_tracker_unittest.cc index 5747d6f..9f42337 100644 --- a/ash/shelf/shelf_button_pressed_metric_tracker_unittest.cc +++ b/ash/shelf/shelf_button_pressed_metric_tracker_unittest.cc
@@ -30,7 +30,7 @@ DISALLOW_COPY_AND_ASSIGN(DummyButton); }; -DummyButton::DummyButton() : views::Button(nullptr) {} +DummyButton::DummyButton() : views::Button(views::Button::PressedCallback()) {} // A simple light weight test double dummy for a ui::Event. class DummyEvent : public ui::Event {
diff --git a/ash/shelf/window_preview.cc b/ash/shelf/window_preview.cc index 0781214..28fb9fa6 100644 --- a/ash/shelf/window_preview.cc +++ b/ash/shelf/window_preview.cc
@@ -44,6 +44,7 @@ kPreviewContainerBgColor, kPreviewBorderRadius)); title_ = new views::Label(window->GetTitle()); close_button_ = new views::ImageButton(this); + close_button_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); AddChildView(preview_container_view_); AddChildView(preview_view_);
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_de.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_de.xtb index 69baaf6..6f2ec4d 100644 --- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_de.xtb +++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_de.xtb
@@ -186,6 +186,7 @@ <translation id="8234414138295101081">Bildschirm um 90 Grad drehen</translation> <translation id="8241665785394195545">schließende eckige Klammer</translation> <translation id="8264941229485248811">Entwicklertools-Inspector ein- oder ausblenden</translation> +<translation id="8322502972606429618">Die letzten in die Zwischenablage kopierten Elemente anzeigen</translation> <translation id="836869401750819675">Seite "Downloads" öffnen</translation> <translation id="8388247778047144397">Link in einen leeren Bereich auf der Tableiste ziehen</translation> <translation id="8389638407792712197">Neues Fenster öffnen</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_mr.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_mr.xtb index 6794fc3..38b4ba9 100644 --- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_mr.xtb +++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_mr.xtb
@@ -186,6 +186,7 @@ <translation id="8234414138295101081">स्क्रीन ९० अंशात फिरवा</translation> <translation id="8241665785394195545">उजवा कंस</translation> <translation id="8264941229485248811">डेव्हलपर टूल परीक्षक दाखवा किंवा लपवा</translation> +<translation id="8322502972606429618">क्लिपबोर्डवर कॉपी केलेल्या शेवटच्या काही गोष्टी दाखवा</translation> <translation id="836869401750819675">डाउनलोड पेज उघडा</translation> <translation id="8388247778047144397">टॅब स्ट्रिपवरील एका रिक्त भागावर एखादी लिंक ड्रॅग करा</translation> <translation id="8389638407792712197">नवीन विंडो उघडा</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ne.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ne.xtb index 0fbab9f..afc50fa 100644 --- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ne.xtb +++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ne.xtb
@@ -186,6 +186,7 @@ <translation id="8234414138295101081">स्क्रिनलाई ९० डिग्रीमा घुमाउनुहोस्</translation> <translation id="8241665785394195545">दायाँ कोष्ठक</translation> <translation id="8264941229485248811">विकासकर्ताका उपकरणहरूको निरीक्षक देखाउनुहोस् वा लुकाउनुहोस्</translation> +<translation id="8322502972606429618">क्लिपबोर्डमा कपी गरिएका पछिल्ला केही वस्तुहरू देखाइयोस्</translation> <translation id="836869401750819675">डाउनलोड नामक पृष्ठ खोल्नुहोस्</translation> <translation id="8388247778047144397">लिंकलाई ट्याब स्ट्रिपमा रहेको खाली क्षेत्रमा ड्र्याग गर्नुहोस्</translation> <translation id="8389638407792712197">नयाँ विन्डो खोल्नुहोस्</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ur.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ur.xtb index 052b4160..77db188 100644 --- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ur.xtb +++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ur.xtb
@@ -186,6 +186,7 @@ <translation id="8234414138295101081">اسکرین کو 90 ڈگریز تک گھمائیں</translation> <translation id="8241665785394195545">دایاں بریکٹ</translation> <translation id="8264941229485248811">ڈویلپر ٹولز انسپیکٹر دکھائیں یا چھپائیں</translation> +<translation id="8322502972606429618">کلپ بورڈ پر کاپی کردہ آخری کچھ چیزیں دکھائیں</translation> <translation id="836869401750819675">ڈاؤن لوڈز کا صفحہ کھولیں</translation> <translation id="8388247778047144397">لنک کو گھسیٹ کر ٹیب اسٹرپ پر خالی جگہ تک لے جائیں</translation> <translation id="8389638407792712197">نئی ونڈو کھولیں</translation>
diff --git a/ash/shortcut_viewer/views/keyboard_shortcut_view.cc b/ash/shortcut_viewer/views/keyboard_shortcut_view.cc index 7a3920c..c9714c1 100644 --- a/ash/shortcut_viewer/views/keyboard_shortcut_view.cc +++ b/ash/shortcut_viewer/views/keyboard_shortcut_view.cc
@@ -336,7 +336,6 @@ void KeyboardShortcutView::ActiveChanged(ash::SearchBoxViewBase* sender) { const bool is_search_box_active = sender->is_search_box_active(); is_search_box_empty_ = sender->IsSearchBoxTrimmedQueryEmpty(); - sender->ShowBackOrGoogleIcon(is_search_box_active); if (is_search_box_active) { base::RecordAction( base::UserMetricsAction("KeyboardShortcutViewer.Search"));
diff --git a/ash/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc b/ash/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc index c382cc4..6c2b3310b 100644 --- a/ash/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc +++ b/ash/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc
@@ -183,13 +183,14 @@ // Press a key should enter search mode. KeyPress(ui::VKEY_A, /*should_insert=*/true); - EXPECT_TRUE(GetSearchBoxView()->back_button()->GetVisible()); + EXPECT_FALSE(GetSearchBoxView()->back_button()->GetVisible()); + EXPECT_TRUE(GetSearchBoxView()->close_button()->GetVisible()); EXPECT_FALSE(GetSearchBoxView()->search_box()->GetText().empty()); - // Case 2: Exit search mode by clicking |back_button|. The focus should be on + // Case 2: Exit search mode by clicking |close_button|. The focus should be on // search box. GetSearchBoxView()->ButtonPressed( - GetSearchBoxView()->back_button(), + GetSearchBoxView()->close_button(), ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
diff --git a/ash/shortcut_viewer/views/ksv_search_box_view.cc b/ash/shortcut_viewer/views/ksv_search_box_view.cc index 7343f10..cb29946 100644 --- a/ash/shortcut_viewer/views/ksv_search_box_view.cc +++ b/ash/shortcut_viewer/views/ksv_search_box_view.cc
@@ -36,8 +36,7 @@ UpdateBackgroundColor(kDefaultSearchBoxBackgroundColor); search_box()->SetBackgroundColor(SK_ColorTRANSPARENT); search_box()->SetColor(gfx::kGoogleGrey900); - search_box()->set_placeholder_text_color(gfx::kGoogleGrey900); - search_box()->set_placeholder_text_draw_flags(gfx::Canvas::TEXT_ALIGN_CENTER); + SetPlaceholderTextAttributes(); const base::string16 search_box_name( l10n_util::GetStringUTF16(IDS_KSV_SEARCH_BOX_ACCESSIBILITY_NAME)); search_box()->SetPlaceholderText(search_box_name); @@ -139,4 +138,17 @@ back->SetVisible(false); } +void KSVSearchBoxView::OnSearchBoxActiveChanged(bool active) { + // Update to override default placeholder attributes set by base class when + // the search box is no longer active. + SetPlaceholderTextAttributes(); +} + +void KSVSearchBoxView::SetPlaceholderTextAttributes() { + search_box()->set_placeholder_text_color(ash::kZeroQuerySearchboxColor); + search_box()->set_placeholder_text_draw_flags( + base::i18n::IsRTL() ? gfx::Canvas::TEXT_ALIGN_RIGHT + : gfx::Canvas::TEXT_ALIGN_LEFT); +} + } // namespace keyboard_shortcut_viewer
diff --git a/ash/shortcut_viewer/views/ksv_search_box_view.h b/ash/shortcut_viewer/views/ksv_search_box_view.h index e52f930..4fa55b39 100644 --- a/ash/shortcut_viewer/views/ksv_search_box_view.h +++ b/ash/shortcut_viewer/views/ksv_search_box_view.h
@@ -31,12 +31,16 @@ void SetAccessibleValue(const base::string16& value); + // SearchBoxViewBase: + void OnSearchBoxActiveChanged(bool active) override; + private: // SearchBoxViewBase: void UpdateBackgroundColor(SkColor color) override; void UpdateSearchBoxBorder() override; void SetupCloseButton() override; void SetupBackButton() override; + void SetPlaceholderTextAttributes(); // Accessibility data value. Used to pronounce the number of search results. base::string16 accessible_value_;
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb index a532130..4d76054 100644 --- a/ash/strings/ash_strings_af.xtb +++ b/ash/strings/ash_strings_af.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Wys taalinstellings</translation> <translation id="1460620680449458626">Volume is gedemp.</translation> <translation id="1467432559032391204">Links</translation> +<translation id="1475439723810528286">Tik enige plek om volskerm vas te vang</translation> <translation id="1479909375538722835">Swewende toeganklikheidkieslys</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Hierdie eienaarrekening moet die eerste rekening wees waarby in 'n veelvuldige aanmeldsessie aangemeld word.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Nie aan 'n netwerk gekoppel nie</translation> <translation id="2126242104232412123">Nuwe lessenaar</translation> <translation id="2127372758936585790">Laekrag-laaier</translation> +<translation id="2132302418721800944">Neem volskerm op</translation> <translation id="2135456203358955318">Gedokte vergrootglas</translation> <translation id="2144487987174258011">Herbegin om Adobe Flash Player op te dateer</translation> <translation id="2180011262286780504">Jou administrateur het die neem van skermkiekies gedeaktiveer.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Skakel af</translation> <translation id="2878884018241093801">Geen onlangse items nie</translation> <translation id="2903844815300039659">Gekoppel aan <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Skermkiekies</translation> <translation id="2942350706960889382">Gedokte vergrootglas</translation> <translation id="2942516765047364088">Rakposisie</translation> <translation id="2946119680249604491">Voeg verbinding by</translation> @@ -368,6 +371,7 @@ <translation id="4513946894732546136">Terugvoer</translation> <translation id="4527045527269911712">Bluetooth-toestel "<ph name="DEVICE_NAME" />" wil graag toestemming hê om saam te bind.</translation> <translation id="453661520163887813"><ph name="TIME" /> tot vol</translation> +<translation id="4538824937723742295">Neem volskermskermkiekie</translation> <translation id="4544483149666270818">Kies 'n venster om op te neem</translation> <translation id="4560576029703263363">Aan</translation> <translation id="4561267230861221837">3G</translation> @@ -423,12 +427,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> u. <ph name="MINUTES" /> m. <ph name="SECONDS" /> s.</translation> <translation id="4975771730019223894">Programkentekens</translation> <translation id="5030687792513154421">Die tyd is om</translation> +<translation id="5033299697334913360">Klik enige plek om volskerm vas te vang</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> het aan 'n nuwe foon gekoppel</translation> <translation id="5035389544768382859">Bevestig vertoonskermopstelling</translation> <translation id="5083553833479578423">Ontsluit meer Assistent-kenmerke.</translation> <translation id="5136175204352732067">Ander sleutelbord is gekoppel</translation> <translation id="5168181903108465623">Uitsaaitoestelle is beskikbaar</translation> <translation id="5170568018924773124">Wys in vouer</translation> +<translation id="5176318573511391780">Neem gedeeltelike skerm op</translation> <translation id="5207949376430453814">Lig tekskaret uit</translation> <translation id="5208059991603368177">Aan</translation> <translation id="5222676887888702881">Meld af</translation> @@ -489,6 +495,7 @@ <translation id="5837036133683224804">Stop <ph name="ROUTE_TITLE" /> op <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Af</translation> <translation id="5876666360658629066">Voer ouerkode in</translation> +<translation id="5881540930187678962">Stel Foonsentrum later op</translation> <translation id="5895138241574237353">Herbegin</translation> <translation id="589817443623831496">Puntskandering</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, seinsterkte <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Vee alle kennisgewings uit</translation> <translation id="643147933154517414">Als klaar</translation> +<translation id="6431865393913628856">Skermopnemer</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> op <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Verwerp</translation> <translation id="6453179446719226835">Taal is verander</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">OK, het dit</translation> <translation id="7348093485538360975">Opskerm-sleutelbord</translation> <translation id="735745346212279324">VPN ontkoppel</translation> +<translation id="7371404428569700291">Neem venster op</translation> <translation id="7377169924702866686">Hoofletterslot is aan.</translation> <translation id="7378203170292176219">Sleep om 'n area te kies om op te neem</translation> <translation id="7378594059915113390">Media-kontroles</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Wissel kieslysposisie</translation> <translation id="9089416786594320554">Invoermetodes</translation> <translation id="9091626656156419976">Het skerm <ph name="DISPLAY_NAME" /> verwyder</translation> +<translation id="9092749890156285613">Onlangse skermkiekies en aflaaie</translation> <translation id="9151726767154816831">Herbegin en powerwash om te opdateer</translation> <translation id="9166331175924255663">Wissel hoë sigbaarheid van Nabydeling.</translation> <translation id="9168436347345867845">Doen dit later</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index e3cf07ae..d2ec14f 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">የቋንቋ ቅንብሮችን አሳይ</translation> <translation id="1460620680449458626">የድምፅ መጠን ድምፀ ከል ተደርጓል።</translation> <translation id="1467432559032391204">ግራ</translation> +<translation id="1475439723810528286">የሙሉ ማያ ገጽ ምስልን ለማንሳት በማንኛውም ቦታ ላይ መታ ያድርጉ</translation> <translation id="1479909375538722835">የተንሳፋፊ ተደራሽነት ምናሌ</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">ይህ የባለቤት መለያ በበርካታ መለያ በሚገባበት ክፍለ-ጊዜ ውስጥ የመጀመሪያው የገባ መለያ መሆን አለበት።</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">ከአውታረ መረብ ጋር አልተገናኘም</translation> <translation id="2126242104232412123">አዲስ ዴስክ</translation> <translation id="2127372758936585790">አነስተኛ ኃይል ያለው ባትሪ መሙያ</translation> +<translation id="2132302418721800944">ሙሉ ማያ ገጽን ቅረጽ</translation> <translation id="2135456203358955318">የተተከለ ማጉያ</translation> <translation id="2144487987174258011">Adobe Flash Playerን ለማዘመን ዳግም ያስጀምሩ</translation> <translation id="2180011262286780504">የማያ ገጹን ፎቶ የማንሣት ችሎታ በእርስዎ አስተዳዳሪ ተሰናክሏል።</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">ዝጋ</translation> <translation id="2878884018241093801">ምንም የቅርብ ጊዜ ንጥሎች የሉም</translation> <translation id="2903844815300039659">ከ<ph name="NAME" /> ጋር ተገናኝቷል፣ <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">የማያ ገጽ ምስሎች</translation> <translation id="2942350706960889382">የተተከለ ማጉያ</translation> <translation id="2942516765047364088">የመደርደሪያ አቀማመጥ</translation> <translation id="2946119680249604491">ግንኑነት ያክሉ</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">ግብረ መልስ</translation> <translation id="4527045527269911712">የብሉቱዝ መሣሪያ «<ph name="DEVICE_NAME" />» ለመጣመር ፍቃድ ይፈልጋል።</translation> <translation id="453661520163887813"><ph name="TIME" /> ሙሉ እስከሚሆን ድረስ</translation> +<translation id="4538824937723742295">የሙሉ ማያ ገጽ ቅጽበታዊ ገጽ ዕይታን ያንሱ</translation> <translation id="4544483149666270818">ለመቅዳት አንድ መስኮት ይምረጡ</translation> <translation id="4560576029703263363">አብራ</translation> <translation id="4561267230861221837">3ጂ</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> ሰ <ph name="MINUTES" /> ደ <ph name="SECONDS" /> ሴ</translation> <translation id="4975771730019223894">የመተግበሪያ ባጅ አሰጣጥ</translation> <translation id="5030687792513154421">ሰዓት አልቋል</translation> +<translation id="5033299697334913360">ሙሉ ማያ ገጽን ለመቅረጽ በማንኛውም ቦታ ላይ ጠቅ ያድርጉ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ከአዲስ ስልክ ጋር ተገናኝቷል</translation> <translation id="5035389544768382859">የማሳያ ውቅረትን ያረጋግጡ</translation> <translation id="5083553833479578423">ተጨማሪ የረዳት ባህሪያትን ያስከፍቱ።</translation> <translation id="5136175204352732067">የተለየ የቁልፍ ሰሌዳ ተገናኝቷል</translation> <translation id="5168181903108465623">የCast መሣሪያዎች ይገኛሉ</translation> <translation id="5170568018924773124">በአቃፊ አሳይ</translation> +<translation id="5176318573511391780">ከፊል የማያ ገጽን ቅረጽ</translation> <translation id="5207949376430453814">የጽሑፍ ድፋቱን አድምቅ</translation> <translation id="5208059991603368177">አብራ</translation> <translation id="5222676887888702881">ዘግተህ ውጣ</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> ላይ <ph name="ROUTE_TITLE" />ን አስቁም</translation> <translation id="5860033963881614850">አጥፋ</translation> <translation id="5876666360658629066">የወላጅ ኮድ ያስገቡ</translation> +<translation id="5881540930187678962">የስልክ መገናኛን በኋላ ላይ ያቀናብሩ</translation> <translation id="5895138241574237353">እንደገና ጀምር</translation> <translation id="589817443623831496">ነጥብ መቃኘት</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />፣ የሲግናል ጥንካሬ <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">ሁሉንም ማሳወቂያዎች አጽዳ</translation> <translation id="643147933154517414">ሁሉም ተከናውኗል</translation> +<translation id="6431865393913628856">የማያ ገጽ ቀረጻ</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> በ<ph name="RECEIVER_NAME" /> ላይ</translation> <translation id="6452181791372256707">አይቀበሉ</translation> <translation id="6453179446719226835">ቋንቋ ተለውጧል</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">እሺ፣ ገባኝ</translation> <translation id="7348093485538360975">የታይታ የቁልፍ ሰሌዳ</translation> <translation id="735745346212279324">የቪ ፒ ኤን ግንኙነት ተቋርጧል</translation> +<translation id="7371404428569700291">መስኮትን ቅዳ</translation> <translation id="7377169924702866686">Caps Lock በርቷል።</translation> <translation id="7378203170292176219">ለመቅዳት አካባቢ ለመምረጥ ይጎትቱ</translation> <translation id="7378594059915113390">የሚዲያ መቆጣጠሪያዎች</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">የምናሌን ቦታ ቀይር</translation> <translation id="9089416786594320554">የግቤት ስልቶች</translation> <translation id="9091626656156419976">ማሳያ <ph name="DISPLAY_NAME" /> ተወግዷል</translation> +<translation id="9092749890156285613">የቅርብ ጊዜዎቹ የማያ ገጽ ምስሎች እና ውርዶች</translation> <translation id="9151726767154816831">እንደገና ያስጀምሩ እና ለማዘመን powerwash ያድርጉ</translation> <translation id="9166331175924255663">አቅራቢያ አጋራ ከፍተኛ ታይነት ደረጃን ቀያይር</translation> <translation id="9168436347345867845">በኋላ ያድርጉት</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb index 6b659c3..088191a 100644 --- a/ash/strings/ash_strings_as.xtb +++ b/ash/strings/ash_strings_as.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">ভাষাৰ ছেটিংসমূহ দেখুৱাওক</translation> <translation id="1460620680449458626">ভলিউম মিউট কৰা আছে।</translation> <translation id="1467432559032391204">বাওঁফালে</translation> +<translation id="1475439723810528286">পূৰ্ণ স্ক্ৰীন কেপচাৰ কৰিবলৈ যিকোনো ঠাইত টিপক</translation> <translation id="1479909375538722835">সাধ্য সুবিধাৰ উপঙি থকা মেনু</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">গৰাকীৰ এই একাউণ্টটো একাধিকবাৰ ছাইন ইন কৰা কোনো ছেশ্বনত প্ৰথমতে ছাইন ইন কৰা একাউণ্ট হ’ব লাগিব।</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">নেটৱৰ্কৰ সৈতে সংযুক্ত হৈ নাই</translation> <translation id="2126242104232412123">নতুন ডেস্ক</translation> <translation id="2127372758936585790">কম শক্তিৰ চ্চাৰ্জাৰ</translation> +<translation id="2132302418721800944">পূৰ্ণ স্ক্ৰীন ৰেকৰ্ড কৰক</translation> <translation id="2135456203358955318">ড’ক কৰা বিৱৰ্ধক</translation> <translation id="2144487987174258011">Adobe Flash Player আপডে’ট কৰিবলৈ ৰিষ্টাৰ্ট কৰক</translation> <translation id="2180011262286780504">স্ক্ৰীন কেপচাৰ কৰাৰ সুবিধাটো আপোনাৰ প্ৰশাসকে অক্ষম কৰিছে।</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">শ্বাট ডাউন কৰক</translation> <translation id="2878884018241093801">কোনো শেহতীয়া বস্তু নাই</translation> <translation id="2903844815300039659"><ph name="NAME" />ৰ সৈতে সংযোগ কৰা হ’ল, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">স্ক্ৰীন কেপচাৰ</translation> <translation id="2942350706960889382">ড'ক কৰা বিৱৰ্ধক</translation> <translation id="2942516765047364088">শ্বেল্ফৰ স্থান</translation> <translation id="2946119680249604491">সংযোগ যোগ কৰক</translation> @@ -366,6 +369,7 @@ <translation id="4513946894732546136">মতামত</translation> <translation id="4527045527269911712">ব্লুটুথ ডিভাইচ "<ph name="DEVICE_NAME" />"এ যোৰা লাগিবলৈ অনুমতি বিচাৰে।</translation> <translation id="453661520163887813">সম্পূর্ণ হ'বলৈ <ph name="TIME" /> বাকী</translation> +<translation id="4538824937723742295">পূৰ্ণ স্ক্রীনৰ স্ক্ৰীনশ্বট লওক</translation> <translation id="4544483149666270818">ৰেকৰ্ড কৰিবলৈ এখন ৱিণ্ড’ বাছনি কৰক</translation> <translation id="4560576029703263363">অন আছে</translation> <translation id="4561267230861221837">3G</translation> @@ -421,12 +425,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> ঘ <ph name="MINUTES" /> মি <ph name="SECONDS" /> ছে</translation> <translation id="4975771730019223894">এপত বেজ লগোৱা</translation> <translation id="5030687792513154421">সময় সীমা উকলিল</translation> +<translation id="5033299697334913360">পূৰ্ণ স্ক্ৰীন কেপচাৰ কৰিবলৈ যিকোনো ঠাইতে ক্লিক কৰক</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" />ক এটা নতুন ডিভাইচত সংযোগ কৰা হ'ল</translation> <translation id="5035389544768382859">ডিছপ্লে’ৰ কনফিগাৰেশ্বন নিশ্চিত কৰক</translation> <translation id="5083553833479578423">Assistantৰ অন্যান্য সুবিধাসমূহ ব্যৱহাৰ কৰক।</translation> <translation id="5136175204352732067">বিভিন্ন কীব’র্ড সংযোগ কৰা হৈছে</translation> <translation id="5168181903108465623">কাষ্ট কৰিব পৰা ডিভাইচ উপলব্ধ</translation> <translation id="5170568018924773124">ফ’ল্ডাৰত দেখুৱাওক</translation> +<translation id="5176318573511391780">আংশিক স্ক্ৰীন ৰেকৰ্ড কৰক</translation> <translation id="5207949376430453814">পাঠৰ কেৰেট হাইলাইট কৰক</translation> <translation id="5208059991603368177">অন আছে</translation> <translation id="5222676887888702881">ছাইন আউট কৰক</translation> @@ -487,6 +493,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />ত <ph name="ROUTE_TITLE" /> বন্ধ কৰক</translation> <translation id="5860033963881614850">অফ আছে</translation> <translation id="5876666360658629066">অভিভাৱকীয় ক’ডটো দিয়ক</translation> +<translation id="5881540930187678962">ফ’ন হাব পাছত ছেট আপ কৰক</translation> <translation id="5895138241574237353">ৰিষ্টাৰ্ট কৰক</translation> <translation id="589817443623831496">পইণ্ট স্কেনিং</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -541,6 +548,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">সকলো জাননী মচক</translation> <translation id="643147933154517414">সকলো কৰা হৈছে</translation> +<translation id="6431865393913628856">স্ক্ৰীন ৰেকর্ড</translation> <translation id="6445835306623867477"><ph name="RECEIVER_NAME" />ত <ph name="ROUTE_TITLE" /></translation> <translation id="6452181791372256707">প্ৰত্যাখ্যান কৰক</translation> <translation id="6453179446719226835">ভাষা সলনি কৰা হৈছে</translation> @@ -625,6 +633,7 @@ <translation id="7346909386216857016">ঠিক আছে, বুজি পালোঁ</translation> <translation id="7348093485538360975">অন-স্ক্ৰীণ কীব’ৰ্ড</translation> <translation id="735745346212279324">VPNৰ সৈতে সংযোগ বিচ্ছিন্ন কৰা হৈছে</translation> +<translation id="7371404428569700291">ৱিণ্ড’ ৰেকৰ্ড কৰক</translation> <translation id="7377169924702866686">Caps Lock অন আছে।</translation> <translation id="7378203170292176219">ৰেকৰ্ড কৰিবৰ বাবে এটা অংশ বাছনি কৰিবলৈ টানি আনি এৰক</translation> <translation id="7378594059915113390">মিডিয়াৰ নিয়ন্ত্ৰণসমূহ</translation> @@ -811,6 +820,7 @@ <translation id="9084606467167974638">মেনুৰ দিশ ট'গল কৰক</translation> <translation id="9089416786594320554">ইনপুট পদ্ধতি</translation> <translation id="9091626656156419976">ডিছপ্লে' <ph name="DISPLAY_NAME" /> আঁতৰোৱা হ'ল</translation> +<translation id="9092749890156285613">শেহতীয়া স্ক্ৰীন কেপচাৰ আৰু ডাউনল’ড</translation> <translation id="9151726767154816831">আপডে’ট কৰিবলৈ ৰিষ্টাৰ্ট আৰু পাৱাৰৱাশ্ব কৰক</translation> <translation id="9166331175924255663">নিকটৱৰ্তী শ্বেয়াৰৰ উচ্চ দৃশ্যমানতা ট’গল কৰক।</translation> <translation id="9168436347345867845">এইটো পিছত কৰিব</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb index 1ac1e7b..25b9f16 100644 --- a/ash/strings/ash_strings_az.xtb +++ b/ash/strings/ash_strings_az.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Dil ayarlarını göstərin</translation> <translation id="1460620680449458626">Səssizdədir.</translation> <translation id="1467432559032391204">Sol</translation> +<translation id="1475439723810528286">Tam ekranı çəkmək üçün istənilən yerə toxunun</translation> <translation id="1479909375538722835">Üzən əlçatımlılıq menyusu</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Bu sahib hesabı çoxsaylı giriş sessiyasında ilk girilmiş hesab olmalıdır.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Şəbəkəyə qoşulmayıb</translation> <translation id="2126242104232412123">Yeni iş masası</translation> <translation id="2127372758936585790">Gücü az şarjer</translation> +<translation id="2132302418721800944">Tam ekranı çəkin</translation> <translation id="2135456203358955318">Daxili miqyas</translation> <translation id="2144487987174258011">Adobe Flash Player'i güncəlləmək üçün yenidən başladın</translation> <translation id="2180011262286780504">Skrinşot çəkmək bacarığı administrator tərəfindən deaktiv edilib.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Qapadın</translation> <translation id="2878884018241093801">Son elementlər yoxdur</translation> <translation id="2903844815300039659"><ph name="NAME" /> şəbəkəsinə qoşuldunuz, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Ekran çəkilişləri</translation> <translation id="2942350706960889382">Daxili Miqyas</translation> <translation id="2942516765047364088">Bufer mövqeyi</translation> <translation id="2946119680249604491">Bağlantı əlavə edin</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Geri əlaqə</translation> <translation id="4527045527269911712">"<ph name="DEVICE_NAME" />" cihazı cütlənmək üçün icazə istəyir.</translation> <translation id="453661520163887813">dolana qədər <ph name="TIME" /></translation> +<translation id="4538824937723742295">Tam ekranın skrinşotunu çəkin</translation> <translation id="4544483149666270818">Çəkmək üçün pəncərə seçin</translation> <translation id="4560576029703263363">Aktiv</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />s <ph name="MINUTES" />dəq <ph name="SECONDS" />san</translation> <translation id="4975771730019223894">Tətbiq nişanlanması</translation> <translation id="5030687792513154421">Vaxt bitdi</translation> +<translation id="5033299697334913360">Tam ekranı çəkmək üçün istənilən yerə klikləyin</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> yeni telefona qoşuldu</translation> <translation id="5035389544768382859">Displey Konfiqurasiyasını təsdiq edin</translation> <translation id="5083553833479578423">Daha çox Assistent funksiyalarını kiliddən çıxarın.</translation> <translation id="5136175204352732067">Fərqli klaviatura qoşuldu</translation> <translation id="5168181903108465623">Mövcud Cast cihazlar</translation> <translation id="5170568018924773124">Qovluqda göstərin</translation> +<translation id="5176318573511391780">Ekranın bir hissəsini çəkin</translation> <translation id="5207949376430453814">Mətn karetini vurğulayın</translation> <translation id="5208059991603368177">Aktiv</translation> <translation id="5222676887888702881">Hesabdan çıxın</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> pəncərəsində <ph name="ROUTE_TITLE" /> dayandırma düyməsi</translation> <translation id="5860033963881614850">Deaktiv</translation> <translation id="5876666360658629066">Valideyn kodunu daxil edin</translation> +<translation id="5881540930187678962">Telefon Mərkəzini daha sonra ayarlayın</translation> <translation id="5895138241574237353">Yenidən başladın</translation> <translation id="589817443623831496">Nöqtə skanlama</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Siqnal Gücü <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Bütün bildirişləri silin</translation> <translation id="643147933154517414">Tamamlandı</translation> +<translation id="6431865393913628856">Ekran çəkilişi</translation> <translation id="6445835306623867477"><ph name="RECEIVER_NAME" /> pəncərəsində <ph name="ROUTE_TITLE" /></translation> <translation id="6452181791372256707">Rədd edin</translation> <translation id="6453179446719226835">Dil dəyişdirilib</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Ok, anladım</translation> <translation id="7348093485538360975">Ekran klaviaturası</translation> <translation id="735745346212279324">VPN bağlantısı kəsildi</translation> +<translation id="7371404428569700291">Çəkiliş pəncərəsi</translation> <translation id="7377169924702866686">Caps Lock aktivdir.</translation> <translation id="7378203170292176219">Çəkmək üçün sahə seçmək məqsədilə sürüşdürün</translation> <translation id="7378594059915113390">Media Nəzarətləri</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Menyu vəziyyətini dəyişin</translation> <translation id="9089416786594320554">Daxiletmə metodları</translation> <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> silindi</translation> +<translation id="9092749890156285613">Son ekran çəkilişləri və endirmələri</translation> <translation id="9151726767154816831">Güncəlləşdirmək üçün yenidən başladaraq silin</translation> <translation id="9166331175924255663">Yaxınlıqda Paylaşım yüksək görünmə dərəcəsini dəyişdirin.</translation> <translation id="9168436347345867845">Daha sonra edin</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb index c50750ba..5a32496 100644 --- a/ash/strings/ash_strings_be.xtb +++ b/ash/strings/ash_strings_be.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Паказаць моўныя налады</translation> <translation id="1460620680449458626">Гук выключаны.</translation> <translation id="1467432559032391204">Злева</translation> +<translation id="1475439723810528286">Каб зняць увесь экран, націсніце ў любым яго месцы</translation> <translation id="1479909375538722835">Рухомае меню спецыяльных магчымасцей</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">У сеансе з уваходам у некалькі ўліковых запісаў гэты ўліковы запіс уладальніка павінен быць першым.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Няма падключэння да сеткі</translation> <translation id="2126242104232412123">Новы стол</translation> <translation id="2127372758936585790">Зарадная прылада малой магутнасці</translation> +<translation id="2132302418721800944">Запіс усяго экрана</translation> <translation id="2135456203358955318">Прыстыкаваная лупа</translation> <translation id="2144487987174258011">Каб абнавіць Adobe Flash Player, перазапусціце прыладу</translation> <translation id="2180011262286780504">Магчымасць здымкі экрана выключана адміністратарам.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Завяршыць працу</translation> <translation id="2878884018241093801">Няма нядаўніх элементаў</translation> <translation id="2903844815300039659">Падключана да сеткі "<ph name="NAME" />", <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Здымкі экрана</translation> <translation id="2942350706960889382">Прыстыкаваная лупа</translation> <translation id="2942516765047364088">Пазіцыя паліцы</translation> <translation id="2946119680249604491">Дадаць падключэнне</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Водгук</translation> <translation id="4527045527269911712">Прылада Bluetooth "<ph name="DEVICE_NAME" />" запытвае дазвол на спалучэнне.</translation> <translation id="453661520163887813"><ph name="TIME" /> да поўнай зарадкі</translation> +<translation id="4538824937723742295">Зрабіць здымак усяго экрана</translation> <translation id="4544483149666270818">Выберыце акно для запісу</translation> <translation id="4560576029703263363">Уключана</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> гадз <ph name="MINUTES" /> хв <ph name="SECONDS" /> с</translation> <translation id="4975771730019223894">Значкі колькасці апавяшчэнняў у праграмах</translation> <translation id="5030687792513154421">Час выйшаў</translation> +<translation id="5033299697334913360">Каб зняць увесь экран, націсніце ў любым яго месцы</translation> <translation id="5035236842988137213">Прылада <ph name="DEVICE_NAME" /> падключана да новага тэлефона</translation> <translation id="5035389544768382859">Пацвярджэнне канфігурацыі дысплэя</translation> <translation id="5083553833479578423">Адкрыйце больш функцый Памочніка.</translation> <translation id="5136175204352732067">Падключана іншая клавіятура</translation> <translation id="5168181903108465623">Ёсць даступныя прылады для трансляцыі</translation> <translation id="5170568018924773124">Паказаць у папцы</translation> +<translation id="5176318573511391780">Запіс часткі экрана</translation> <translation id="5207949376430453814">Указваць на курсор рэдагавання тэксту</translation> <translation id="5208059991603368177">Уключана</translation> <translation id="5222676887888702881">Выйсці</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Спыніць трансляцыю <ph name="ROUTE_TITLE" /> на <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Выключана</translation> <translation id="5876666360658629066">Увядзіце бацькоўскі код</translation> +<translation id="5881540930187678962">Наладзьце Тэлефонны цэнтр пазней</translation> <translation id="5895138241574237353">Перазапусціць</translation> <translation id="589817443623831496">Кропкавае сканіраванне</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, магутнасць сігналу – <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Выдаліць усе апавяшчэнні</translation> <translation id="643147933154517414">Усё гатова</translation> +<translation id="6431865393913628856">Запіс экрана</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> на <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Адхіліць</translation> <translation id="6453179446719226835">Мова была зменена</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">OK</translation> <translation id="7348093485538360975">Экранная клавіятура</translation> <translation id="735745346212279324">Сетка VPN адключана</translation> +<translation id="7371404428569700291">Запіс акна</translation> <translation id="7377169924702866686">Уключаны Caps Lock.</translation> <translation id="7378203170292176219">Выберыце вобласць запісу з дапамогай перацягвання</translation> <translation id="7378594059915113390">Элементы кіравання мультымедыйным змесцівам</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Змяніць месцазнаходжанне меню</translation> <translation id="9089416786594320554">Метады ўводу</translation> <translation id="9091626656156419976">Дысплэй "<ph name="DISPLAY_NAME" />" выдалены</translation> +<translation id="9092749890156285613">Нядаўнія запісы і здымкі экрана і спампоўкі</translation> <translation id="9151726767154816831">Для абнаўлення выканайце перазапуск і запусціце Powerwash</translation> <translation id="9166331175924255663">Уключыць або выключыць рэжым высокай бачнасці для функцыі "Абагульванне паблізу".</translation> <translation id="9168436347345867845">Пазней</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index 5cc58a707..b36b090d 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Показване на езиковите настройки</translation> <translation id="1460620680449458626">Звукът е спрян.</translation> <translation id="1467432559032391204">Наляво</translation> +<translation id="1475439723810528286">Докоснете произволно място, за да се заснеме целият екран</translation> <translation id="1479909375538722835">Плаващо меню за достъпност</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Този профил на собственик трябва да е първият, в който да се влезе, при сесия с централизиран вход.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Няма връзка с мрежа</translation> <translation id="2126242104232412123">Нов работен кът</translation> <translation id="2127372758936585790">Зарядно устройство с малка мощност</translation> +<translation id="2132302418721800944">Записване на целия екран</translation> <translation id="2135456203358955318">Лупа в прикрепен режим</translation> <translation id="2144487987174258011">Рестартирайте, за да актуализирате Adobe Flash Player</translation> <translation id="2180011262286780504">Възможността за заснемане на екрана е деактивирана от администратора ви.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Изключване</translation> <translation id="2878884018241093801">Няма скорошни елементи</translation> <translation id="2903844815300039659">Установена е връзка с мрежата „<ph name="NAME" />“, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Екранни снимки</translation> <translation id="2942350706960889382">Лупа в прикрепен режим</translation> <translation id="2942516765047364088">Позиция на лавицата</translation> <translation id="2946119680249604491">Добавяне на връзка</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Отзиви</translation> <translation id="4527045527269911712">Устройството с Bluetooth „<ph name="DEVICE_NAME" />“ иска разрешение за сдвояване.</translation> <translation id="453661520163887813"><ph name="TIME" /> до пълно зареждане</translation> +<translation id="4538824937723742295">Правене на екранна снимка на целия екран</translation> <translation id="4544483149666270818">Изберете прозореца, който да бъде записан</translation> <translation id="4560576029703263363">Включено</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> ч, <ph name="MINUTES" /> мин и <ph name="SECONDS" /> сек</translation> <translation id="4975771730019223894">Значки за приложенията</translation> <translation id="5030687792513154421">Времето свърши</translation> +<translation id="5033299697334913360">Кликнете върху произволно място, за да се заснеме целият екран</translation> <translation id="5035236842988137213">Устройството <ph name="DEVICE_NAME" /> е свързано с нов телефон</translation> <translation id="5035389544768382859">Потвърждаване на конфигурацията на дисплея</translation> <translation id="5083553833479578423">Отключете още функции на Асистент.</translation> <translation id="5136175204352732067">Свързана е различна клавиатура</translation> <translation id="5168181903108465623">Налице са устройства Cast</translation> <translation id="5170568018924773124">Показване в папката</translation> +<translation id="5176318573511391780">Записване на част от екрана</translation> <translation id="5207949376430453814">Открояване на точката на вмъкване в текста</translation> <translation id="5208059991603368177">Вкл.</translation> <translation id="5222676887888702881">Изход</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Спиране на предаването на <ph name="ROUTE_TITLE" /> към „<ph name="RECEIVER_NAME" />“</translation> <translation id="5860033963881614850">Изключено</translation> <translation id="5876666360658629066">Въведете код на родител</translation> +<translation id="5881540930187678962">Настройте Phone Hub по-късно</translation> <translation id="5895138241574237353">Рестартиране</translation> <translation id="589817443623831496">Точково сканиране</translation> <translation id="5901316534475909376">Shift + Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, сила на сигнала <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Изчистване на всички известия</translation> <translation id="643147933154517414">Всичко е готово</translation> +<translation id="6431865393913628856">Записване на екрана</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> се предава към „<ph name="RECEIVER_NAME" />“</translation> <translation id="6452181791372256707">Отхвърляне</translation> <translation id="6453179446719226835">Езикът е променен</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Добре, разбрах</translation> <translation id="7348093485538360975">Екранна клавиатура</translation> <translation id="735745346212279324">Връзката с виртуалната частна мрежа (VPN) е прекъсната</translation> +<translation id="7371404428569700291">Прозорец за записване</translation> <translation id="7377169924702866686">„Caps Lock“ е включен.</translation> <translation id="7378203170292176219">С плъзгане изберете областта, която да бъде записана</translation> <translation id="7378594059915113390">Контроли за мултимедия</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Промяна на позицията на менюто</translation> <translation id="9089416786594320554">Метод за въвеждане</translation> <translation id="9091626656156419976">Екранът „<ph name="DISPLAY_NAME" />“ бе премахнат</translation> +<translation id="9092749890156285613">Скорошни екранни снимки и изтегляния</translation> <translation id="9151726767154816831">Рестартирайте и извършете Powerwash, за да актуализирате</translation> <translation id="9166331175924255663">Превключване на увеличената видимост на „Споделяне наблизо“.</translation> <translation id="9168436347345867845">По-късно</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb index 609988a..1a4dae0 100644 --- a/ash/strings/ash_strings_bs.xtb +++ b/ash/strings/ash_strings_bs.xtb
@@ -58,7 +58,7 @@ <translation id="1455242230282523554">Prikaži postavke za jezik</translation> <translation id="1460620680449458626">Zvuk je isključen.</translation> <translation id="1467432559032391204">Lijevo</translation> -<translation id="1475439723810528286">Dodirnite bilo gdje da biste snimili cijeli zaslon</translation> +<translation id="1475439723810528286">Dodirnite bilo gdje da snimite cijeli ekran</translation> <translation id="1479909375538722835">Plutajući meni za pristupačnost</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Ovaj vlasnik računa mora biti prvi prijavljeni račun u sesiji višestruke prijave.</translation> @@ -122,7 +122,7 @@ <translation id="209965399369889474">Niste povezani na mrežu</translation> <translation id="2126242104232412123">Novi sto</translation> <translation id="2127372758936585790">Punjač niskog napona</translation> -<translation id="2132302418721800944">Snimanje cijelog zaslona</translation> +<translation id="2132302418721800944">Snimanje cijelog ekrana</translation> <translation id="2135456203358955318">Priključeno povećalo</translation> <translation id="2144487987174258011">Ponovno pokrenite da ažurirate Adobe Flash plejer.</translation> <translation id="2180011262286780504">Mogućnost snimanja ekrana je onemogućio administrator.</translation> @@ -194,7 +194,7 @@ <translation id="2872961005593481000">Isključi</translation> <translation id="2878884018241093801">Nema nedavnih stavki</translation> <translation id="2903844815300039659">Povezani ste na mrežu <ph name="NAME" />, <ph name="STRENGTH" /></translation> -<translation id="2914580577416829331">Snimke zaslona</translation> +<translation id="2914580577416829331">Snimci ekrana</translation> <translation id="2942350706960889382">Povećalo je uključeno</translation> <translation id="2942516765047364088">Položaj police</translation> <translation id="2946119680249604491">Dodaj vezu</translation> @@ -370,7 +370,7 @@ <translation id="4513946894732546136">Povratne informacije</translation> <translation id="4527045527269911712">Bluetooth uređaj "<ph name="DEVICE_NAME" />" traži odobrenje za uparivanje.</translation> <translation id="453661520163887813">Do potpune napunjenosti je preostalo <ph name="TIME" /></translation> -<translation id="4538824937723742295">Snimite cijeli zaslon</translation> +<translation id="4538824937723742295">Snimanje cijelog ekrana</translation> <translation id="4544483149666270818">Odaberite prozor za snimanje</translation> <translation id="4560576029703263363">Uključeno</translation> <translation id="4561267230861221837">3G</translation> @@ -426,14 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Označavanje aplikacija</translation> <translation id="5030687792513154421">Vrijeme je isteklo</translation> -<translation id="5033299697334913360">Kliknite bilo gdje da biste snimili cijeli zaslon</translation> +<translation id="5033299697334913360">Kliknite na bilo šta da snimite cijeli ekran</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> je povezan na novi telefon</translation> <translation id="5035389544768382859">Potvrdite konfiguraciju ekrana</translation> <translation id="5083553833479578423">Otključajte više funkcija Asistenta.</translation> <translation id="5136175204352732067">Povezana je drugačija tastatura</translation> <translation id="5168181903108465623">Dostupni su "cast" uređaji</translation> <translation id="5170568018924773124">Pokaži u mapi</translation> -<translation id="5176318573511391780">Snimanje dijela zaslona</translation> +<translation id="5176318573511391780">Snimanje dijela ekrana</translation> <translation id="5207949376430453814">Istakni kursor u tekstu</translation> <translation id="5208059991603368177">Uključeno</translation> <translation id="5222676887888702881">Odjava</translation> @@ -494,7 +494,7 @@ <translation id="5837036133683224804">Zaustavi <ph name="ROUTE_TITLE" /> na primaocu <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Isklj.</translation> <translation id="5876666360658629066">Unesite kôd za roditelja</translation> -<translation id="5881540930187678962">Kasnije postavite Phone hub</translation> +<translation id="5881540930187678962">Kasnije postavite Phone Hub</translation> <translation id="5895138241574237353">Ponovo pokreni</translation> <translation id="589817443623831496">Skeniranje po tačkama</translation> <translation id="5901316534475909376">Shift + Esc</translation> @@ -549,7 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Obrišite sva obavještenja</translation> <translation id="643147933154517414">Završeno</translation> -<translation id="6431865393913628856">Snimanje zaslona</translation> +<translation id="6431865393913628856">Snimanje ekrana</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> – <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Odbij</translation> <translation id="6453179446719226835">Promijenjen je jezik</translation> @@ -635,7 +635,7 @@ <translation id="7346909386216857016">Uredu, razumijem</translation> <translation id="7348093485538360975">Tastatura na ekranu</translation> <translation id="735745346212279324">VPN veza je prekinuta</translation> -<translation id="7371404428569700291">Snimanje prozora</translation> +<translation id="7371404428569700291">Snimite prozor</translation> <translation id="7377169924702866686">Uključena su velika slova.</translation> <translation id="7378203170292176219">Prevucite da odaberete oblast za snimanje</translation> <translation id="7378594059915113390">Upravljanje medijima</translation> @@ -824,7 +824,7 @@ <translation id="9084606467167974638">Promijenite položaj menija</translation> <translation id="9089416786594320554">Načini unosa</translation> <translation id="9091626656156419976">Uklonjen je ekran <ph name="DISPLAY_NAME" /></translation> -<translation id="9092749890156285613">Nedavne snimke zaslona i preuzimanja</translation> +<translation id="9092749890156285613">Nedavni snimci ekrana i preuzimanja</translation> <translation id="9151726767154816831">Ponovo pokrenite i izvršite powerwash da ažurirate</translation> <translation id="9166331175924255663">Uključite/isključite povećanu vidljivost Dijeljenja u blizini.</translation> <translation id="9168436347345867845">Uradit ću to kasnije</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 6d55d0ff..4e45082 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Mostra la configuració d'idioma</translation> <translation id="1460620680449458626">El volum està silenciat.</translation> <translation id="1467432559032391204">Esquerra</translation> +<translation id="1475439723810528286">Toca qualsevol lloc per capturar la pantalla completa</translation> <translation id="1479909375538722835">Menú flotant d'accessibilitat</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Aquest compte de propietari ha de ser el primer compte amb la sessió iniciada en un inici de sessió múltiple.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">No hi ha connexió a la xarxa</translation> <translation id="2126242104232412123">Escriptori nou</translation> <translation id="2127372758936585790">Carregador de baix consum</translation> +<translation id="2132302418721800944">Grava la pantalla completa</translation> <translation id="2135456203358955318">Lupa acoblada</translation> <translation id="2144487987174258011">Reinicia per actualitzar Adobe Flash Player</translation> <translation id="2180011262286780504">L'administrador ha desactivat la possibilitat de fer captures de pantalla.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Apaga</translation> <translation id="2878884018241093801">No hi ha cap element recent</translation> <translation id="2903844815300039659">Estàs connectat a <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Captures de pantalla</translation> <translation id="2942350706960889382">Lupa acoblada</translation> <translation id="2942516765047364088">Posició del prestatge</translation> <translation id="2946119680249604491">Afegeix una connexió</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Comentaris</translation> <translation id="4527045527269911712">El dispositiu Bluetooth "<ph name="DEVICE_NAME" />" sol·licita permís per emparellar-se.</translation> <translation id="453661520163887813"><ph name="TIME" /> per completar la càrrega</translation> +<translation id="4538824937723742295">Fes una captura de pantalla completa</translation> <translation id="4544483149666270818">Selecciona la finestra que vols gravar</translation> <translation id="4560576029703263363">Activat</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Cercles a les aplicacions</translation> <translation id="5030687792513154421">S'ha acabat el temps</translation> +<translation id="5033299697334913360">Fes clic en qualsevol lloc per capturar la pantalla completa</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> s'ha connectat a un altre telèfon</translation> <translation id="5035389544768382859">Confirma la configuració de la pantalla</translation> <translation id="5083553833479578423">Desbloqueja més funcions de l'Assistent.</translation> <translation id="5136175204352732067">S'ha connectat un altre teclat</translation> <translation id="5168181903108465623">Dispositius d'emissió disponibles</translation> <translation id="5170568018924773124">Mostra a la carpeta</translation> +<translation id="5176318573511391780">Grava una part de la pantalla</translation> <translation id="5207949376430453814">Ressalta la marca d'inserció de text</translation> <translation id="5208059991603368177">Activat</translation> <translation id="5222676887888702881">Tanca la sessió</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Atura <ph name="ROUTE_TITLE" /> a <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Desactivat</translation> <translation id="5876666360658629066">Introdueix el codi parental</translation> +<translation id="5881540930187678962">Configura El meu telèfon més tard</translation> <translation id="5895138241574237353">Reinicia</translation> <translation id="589817443623831496">Cerca per punt</translation> <translation id="5901316534475909376">Maj + Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, <ph name="SIGNAL_STRENGTH" /> d'intensitat del senyal</translation> <translation id="642644398083277086">Esborra totes les notificacions</translation> <translation id="643147933154517414">Fet</translation> +<translation id="6431865393913628856">Gravació de pantalla</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> a <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Rebutja</translation> <translation id="6453179446719226835">S'ha canviat l'idioma</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">D'acord</translation> <translation id="7348093485538360975">Teclat en pantalla</translation> <translation id="735745346212279324">VPN desconnectada</translation> +<translation id="7371404428569700291">Grava la finestra</translation> <translation id="7377169924702866686">Bloq Maj està activat.</translation> <translation id="7378203170292176219">Arrossega per seleccionar l'àrea que vols gravar</translation> <translation id="7378594059915113390">Controls multimèdia</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Commuta la posició del menú</translation> <translation id="9089416786594320554">Mètodes d'entrada</translation> <translation id="9091626656156419976">S'ha suprimit la pantalla <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Baixades i captures de pantalla recents</translation> <translation id="9151726767154816831">Reinicieu i feu un Powerwash per actualitzar.</translation> <translation id="9166331175924255663">Commuta la visibilitat alta de Compartició Nearby.</translation> <translation id="9168436347345867845">Fes-ho més tard</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index 048b3c79..f42bfb7a 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Zobrazit jazykové nastavení</translation> <translation id="1460620680449458626">Zvuk je vypnutý.</translation> <translation id="1467432559032391204">Doleva</translation> +<translation id="1475439723810528286">Klepnutím kamkoliv pořídíte snímek celé obrazovky</translation> <translation id="1479909375538722835">Plovoucí nabídka usnadnění přístupu</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Účet tohoto vlastníka musí být v relaci multiprofilu přihlášen jako první.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Nejste připojeni k síti</translation> <translation id="2126242104232412123">Nová plocha</translation> <translation id="2127372758936585790">Nabíječka má příliš nízký výkon</translation> +<translation id="2132302418721800944">Zaznamenat celou obrazovku</translation> <translation id="2135456203358955318">Zabudovaná lupa</translation> <translation id="2144487987174258011">Aktualizace přehrávače Adobe Flash Player vyžaduje restart</translation> <translation id="2180011262286780504">Možnost pořizovat snímky obrazovky zakázal váš administrátor.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Vypnout</translation> <translation id="2878884018241093801">Žádné nedávné položky</translation> <translation id="2903844815300039659">Jste připojeni k síti <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Snímky obrazovky</translation> <translation id="2942350706960889382">Zabudovaná lupa</translation> <translation id="2942516765047364088">Pozice poličky</translation> <translation id="2946119680249604491">Přidat připojení</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Zpětná vazba</translation> <translation id="4527045527269911712">Zařízení Bluetooth „<ph name="DEVICE_NAME" />“ žádá o povolení ke spárování.</translation> <translation id="453661520163887813"><ph name="TIME" /> do úplného nabití</translation> +<translation id="4538824937723742295">Pořídit snímek celé obrazovky</translation> <translation id="4544483149666270818">Vyberte okno, které chcete zaznamenat</translation> <translation id="4560576029703263363">Zapnuto</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Označování aplikací odznakem</translation> <translation id="5030687792513154421">Čas vypršel</translation> +<translation id="5033299697334913360">Snímek celé obrazovky pořídíte klepnutím kamkoliv</translation> <translation id="5035236842988137213">Zařízení <ph name="DEVICE_NAME" /> je připojeno k novému telefonu</translation> <translation id="5035389544768382859">Potvrzení konfigurace monitoru</translation> <translation id="5083553833479578423">Odemkněte další funkce Asistenta.</translation> <translation id="5136175204352732067">Je připojena jiná klávesnice</translation> <translation id="5168181903108465623">Dostupná zařízení pro streamování obsahu</translation> <translation id="5170568018924773124">Zobrazit ve složce</translation> +<translation id="5176318573511391780">Zaznamenat část obrazovky</translation> <translation id="5207949376430453814">Zvýraznit textový kurzor</translation> <translation id="5208059991603368177">Zap</translation> <translation id="5222676887888702881">Odhlásit se</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Zastavit <ph name="ROUTE_TITLE" /> na přijímači <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Vypnuto</translation> <translation id="5876666360658629066">Zadejte rodičovský kód</translation> +<translation id="5881540930187678962">Nastavte Telefonní centrum později</translation> <translation id="5895138241574237353">Restartovat</translation> <translation id="589817443623831496">Zaměření místa</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, síla signálu: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Vymazat všechna oznámení</translation> <translation id="643147933154517414">Vše je hotovo</translation> +<translation id="6431865393913628856">Záznam obrazovky</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> na přijímači <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Odmítnout</translation> <translation id="6453179446719226835">Jazyk se změnil</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Dobře, rozumím</translation> <translation id="7348093485538360975">Softwarová klávesnice</translation> <translation id="735745346212279324">Síť VPN je odpojena</translation> +<translation id="7371404428569700291">Zaznamenat okno</translation> <translation id="7377169924702866686">Caps Lock je zapnutý.</translation> <translation id="7378203170292176219">Přetažením vyberte oblast, kterou chcete zaznamenat</translation> <translation id="7378594059915113390">Ovládání médií</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Přepnout pozici nabídky</translation> <translation id="9089416786594320554">Metody zadávání</translation> <translation id="9091626656156419976">Obrazovka <ph name="DISPLAY_NAME" /> byla odebrána</translation> +<translation id="9092749890156285613">Nedávné záznamy a snímky obrazovky</translation> <translation id="9151726767154816831">Chcete-li zařízení aktualizovat, restartujte je a resetujte pomocí funkce Powerwash</translation> <translation id="9166331175924255663">Přepnout vysokou viditelnost pro sdílení nablízko.</translation> <translation id="9168436347345867845">Později</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index 01db217fa..4f091623 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Εμφάνιση ρυθμίσεων γλώσσας</translation> <translation id="1460620680449458626">Η ένταση ήχου είναι σε σίγαση.</translation> <translation id="1467432559032391204">Αριστερά</translation> +<translation id="1475439723810528286">Πατήστε σε οποιοδήποτε σημείο για εγγραφή ολόκληρης της οθόνης.</translation> <translation id="1479909375538722835">Κινούμενο μενού προσβασιμότητας</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Αυτός ο λογαριασμός κατόχου θα πρέπει να είναι ο πρώτος συνδεδεμένος λογαριασμός σε μια περίοδο σύνδεσης πολλαπλών συνδέσεων.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Δεν υπάρχει σύνδεση στο δίκτυο</translation> <translation id="2126242104232412123">Νέο γραφείο</translation> <translation id="2127372758936585790">Χαμηλή ισχύς φορτιστή</translation> +<translation id="2132302418721800944">Εγγραφή ολόκληρης της οθόνης</translation> <translation id="2135456203358955318">Μεγεθυντικός φακός σε παράθυρο</translation> <translation id="2144487987174258011">Κάντε επανεκκίνηση για να ενημερώσετε το Adobe Flash Player</translation> <translation id="2180011262286780504">Η δυνατότητα καταγραφής οθόνης απενεργοποιήθηκε από τον διαχειριστή σας.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Τερματισμός λειτουργίας</translation> <translation id="2878884018241093801">Δεν υπάρχουν πρόσφατα στοιχεία</translation> <translation id="2903844815300039659">Συνδέθηκε στο δίκτυο <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Εγγραφές οθόνης</translation> <translation id="2942350706960889382">Μεγεθυντικός φακός σε παράθυρο</translation> <translation id="2942516765047364088">Θέση ραφιού</translation> <translation id="2946119680249604491">Προσθήκη σύνδεσης</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Σχόλια</translation> <translation id="4527045527269911712">Η συσκευή Bluetooth "<ph name="DEVICE_NAME" />" ζητά δικαιώματα σύζευξης.</translation> <translation id="453661520163887813"><ph name="TIME" /> για να ολοκληρωθεί η φόρτιση</translation> +<translation id="4538824937723742295">Λήψη στιγμιότυπου ολόκληρης της οθόνης</translation> <translation id="4544483149666270818">Επιλέξτε ένα παράθυρο για εγγραφή</translation> <translation id="4560576029703263363">Ενεργό</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />ώ. <ph name="MINUTES" />λ. <ph name="SECONDS" />δ.</translation> <translation id="4975771730019223894">Προσθήκη σήματος σε εφαρμογές</translation> <translation id="5030687792513154421">Τέλος χρόνου</translation> +<translation id="5033299697334913360">Κάντε κλικ σε οποιοδήποτε σημείο για εγγραφή ολόκληρης της οθόνης.</translation> <translation id="5035236842988137213">Η συσκευή <ph name="DEVICE_NAME" /> συνδέθηκε σε ένα νέο τηλέφωνο</translation> <translation id="5035389544768382859">Επιβεβαίωση διαμόρφωσης οθόνης</translation> <translation id="5083553833479578423">Ξεκλειδώστε περισσότερες λειτουργίες του Βοηθού.</translation> <translation id="5136175204352732067">Συνδέθηκε διαφορετικό πληκτρολόγιο</translation> <translation id="5168181903108465623">Διαθέσιμες συσκευές μετάδοσης</translation> <translation id="5170568018924773124">Εμφάνιση στο φάκελο</translation> +<translation id="5176318573511391780">Εγγραφή μέρους της οθόνης</translation> <translation id="5207949376430453814">Επισήμανση δρομέα κειμένου</translation> <translation id="5208059991603368177">Ενεργό</translation> <translation id="5222676887888702881">Έξοδος</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Διακοπή <ph name="ROUTE_TITLE" /> σε <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Απενεργοποιημένη</translation> <translation id="5876666360658629066">Εισαγάγετε κωδικό γονέα</translation> +<translation id="5881540930187678962">Ρυθμίστε το Phone Hub αργότερα</translation> <translation id="5895138241574237353">Επανεκκίνηση</translation> <translation id="589817443623831496">Σάρωση σημείων</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Ισχύς σήματος <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Διαγραφή όλων των ειδοποιήσεων</translation> <translation id="643147933154517414">Όλα έτοιμα</translation> +<translation id="6431865393913628856">Εγγραφή οθόνης</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> σε <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Απόρριψη</translation> <translation id="6453179446719226835">Η γλώσσα άλλαξε</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">OK, το κατάλαβα</translation> <translation id="7348093485538360975">Πληκτρολόγιο οθόνης</translation> <translation id="735745346212279324">Το VPN αποσυνδέθηκε</translation> +<translation id="7371404428569700291">Εγγραφή παραθύρου</translation> <translation id="7377169924702866686">Το Caps Lock είναι ενεργοποιημένο.</translation> <translation id="7378203170292176219">Σύρετε, για να επιλέξετε μια περιοχή για εγγραφή</translation> <translation id="7378594059915113390">Στοιχεία ελέγχου μέσων</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Εναλλαγή θέσης μενού</translation> <translation id="9089416786594320554">Μέθοδοι εισαγωγής</translation> <translation id="9091626656156419976">Κατάργηση οθόνης <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Πρόσφατες εγγραφές οθόνης και λήψεις</translation> <translation id="9151726767154816831">Για να ολοκληρωθεί η ενημέρωση, πρέπει να γίνει επανεκκίνηση και powerwash</translation> <translation id="9166331175924255663">Εναλλαγή υψηλής ορατότητας της λειτουργίας Κοινοποίηση κοντά.</translation> <translation id="9168436347345867845">Αργότερα</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index 95cbb8e3..45ffe18 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Mostrar la configuración de idioma</translation> <translation id="1460620680449458626">El volumen está silenciado.</translation> <translation id="1467432559032391204">Izquierda</translation> +<translation id="1475439723810528286">Presiona en cualquier parte para capturar la pantalla completa</translation> <translation id="1479909375538722835">Menú de accesibilidad flotante</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">El propietario de esta cuenta requiere que sea la primera a la que se acceda al crear una sesión de acceso múltiple.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Sin conexión a la red</translation> <translation id="2126242104232412123">Nuevo escritorio</translation> <translation id="2127372758936585790">Carga lenta</translation> +<translation id="2132302418721800944">Grabar pantalla completa</translation> <translation id="2135456203358955318">Lupa con vista acoplada</translation> <translation id="2144487987174258011">Reinicia para actualizar Adobe Flash Player</translation> <translation id="2180011262286780504">El administrador inhabilitó el modo de captura de pantalla.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Apagar</translation> <translation id="2878884018241093801">No hay elementos recientes</translation> <translation id="2903844815300039659">Conectado a <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Capturas de pantalla</translation> <translation id="2942350706960889382">Lupa con vista acoplada</translation> <translation id="2942516765047364088">Posición de la biblioteca</translation> <translation id="2946119680249604491">Agregar conexión</translation> @@ -368,6 +371,7 @@ <translation id="4513946894732546136">Comentario</translation> <translation id="4527045527269911712">El dispositivo Bluetooth "<ph name="DEVICE_NAME" />" solicita permiso para sincronizarse.</translation> <translation id="453661520163887813"><ph name="TIME" /> para completar carga</translation> +<translation id="4538824937723742295">Realizar una captura de pantalla completa</translation> <translation id="4544483149666270818">Selecciona una ventana que quieras grabar</translation> <translation id="4560576029703263363">Sí</translation> <translation id="4561267230861221837">3G</translation> @@ -423,12 +427,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Insignias de apps</translation> <translation id="5030687792513154421">Se acabó el tiempo</translation> +<translation id="5033299697334913360">Haz clic en cualquier parte para capturar la pantalla completa</translation> <translation id="5035236842988137213">Se conectó el dispositivo <ph name="DEVICE_NAME" /> a un teléfono nuevo</translation> <translation id="5035389544768382859">Confirma la configuración de la pantalla</translation> <translation id="5083553833479578423">Desbloquea más funciones del Asistente.</translation> <translation id="5136175204352732067">Se conectó otro teclado</translation> <translation id="5168181903108465623">Dispositivos de transmisión disponibles</translation> <translation id="5170568018924773124">Mostrar en carpeta</translation> +<translation id="5176318573511391780">Grabar parte de la pantalla</translation> <translation id="5207949376430453814">Destacar el símbolo de intercalación de texto</translation> <translation id="5208059991603368177">Sí</translation> <translation id="5222676887888702881">Salir</translation> @@ -489,6 +495,7 @@ <translation id="5837036133683224804">Detener <ph name="ROUTE_TITLE" /> en <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Desactivado</translation> <translation id="5876666360658629066">Ingresa el código parental</translation> +<translation id="5881540930187678962">Configura Phone Hub más tarde</translation> <translation id="5895138241574237353">Reiniciar</translation> <translation id="589817443623831496">Búsqueda puntual</translation> <translation id="5901316534475909376">Mayúscula + Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Borra todas las notificaciones</translation> <translation id="643147933154517414">Todo listo</translation> +<translation id="6431865393913628856">Grabación de pantalla</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> en <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Rechazar</translation> <translation id="6453179446719226835">Se cambió el idioma</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">Entendido</translation> <translation id="7348093485538360975">Teclado en pantalla</translation> <translation id="735745346212279324">VPN desconectada</translation> +<translation id="7371404428569700291">Grabar ventana</translation> <translation id="7377169924702866686">Bloq Mayús está activado.</translation> <translation id="7378203170292176219">Arrastra para seleccionar un área que quieras grabar</translation> <translation id="7378594059915113390">Controles de contenido multimedia</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Cambiar la posición del menú</translation> <translation id="9089416786594320554">Métodos de entrada</translation> <translation id="9091626656156419976">Se quitó la pantalla <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Descargas y capturas de pantallas recientes</translation> <translation id="9151726767154816831">Reiniciar y aplicar Powerwash para actualizar</translation> <translation id="9166331175924255663">Activar o desactivar la alta visibilidad para Compartir con Nearby</translation> <translation id="9168436347345867845">Hacerlo más tarde</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index 50902c7..35fb6fa4 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Mostrar los ajustes de idioma</translation> <translation id="1460620680449458626">El volumen está silenciado.</translation> <translation id="1467432559032391204">Izquierda</translation> +<translation id="1475439723810528286">Toca cualquier parte de la pantalla para hacer una captura de la pantalla completa</translation> <translation id="1479909375538722835">Menú de accesibilidad flotante</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">La cuenta de este propietario debe ser la primera cuenta que ha iniciado sesión en un inicio de sesión múltiple.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Sin conexión a la red</translation> <translation id="2126242104232412123">Nuevo escritorio</translation> <translation id="2127372758936585790">Carga lenta</translation> +<translation id="2132302418721800944">Grabar pantalla completa</translation> <translation id="2135456203358955318">Lupa fijada</translation> <translation id="2144487987174258011">Reinicia para actualizar Adobe Flash Player</translation> <translation id="2180011262286780504">El administrador ha inhabilitado la función de captura de pantalla.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Apagar</translation> <translation id="2878884018241093801">No hay nada reciente</translation> <translation id="2903844815300039659">Conectado a <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Capturas de pantalla</translation> <translation id="2942350706960889382">Lupa fijada</translation> <translation id="2942516765047364088">Posición de la estantería</translation> <translation id="2946119680249604491">Añadir conexión</translation> @@ -368,6 +371,7 @@ <translation id="4513946894732546136">Comentarios</translation> <translation id="4527045527269911712">El dispositivo Bluetooth "<ph name="DEVICE_NAME" />" solicita permiso para vincularse.</translation> <translation id="453661520163887813"><ph name="TIME" /> para completar la carga</translation> +<translation id="4538824937723742295">Hacer captura de la pantalla completa</translation> <translation id="4544483149666270818">Selecciona una ventana para grabar</translation> <translation id="4560576029703263363">Activado</translation> <translation id="4561267230861221837">3G</translation> @@ -423,12 +427,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Insignias de aplicaciones</translation> <translation id="5030687792513154421">Se ha agotado el tiempo</translation> +<translation id="5033299697334913360">Haz clic en cualquier parte de la pantalla para hacer una captura de la pantalla completa</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> está conectado a un nuevo teléfono</translation> <translation id="5035389544768382859">Confirma la configuración de la pantalla</translation> <translation id="5083553833479578423">Descubre más funciones del Asistente.</translation> <translation id="5136175204352732067">Se ha conectado otro teclado</translation> <translation id="5168181903108465623">Dispositivos de transmisión disponibles</translation> <translation id="5170568018924773124">Mostrar en carpeta</translation> +<translation id="5176318573511391780">Grabar una parte de la pantalla</translation> <translation id="5207949376430453814">Resaltar el símbolo de intercalación del texto</translation> <translation id="5208059991603368177">Sí</translation> <translation id="5222676887888702881">Cerrar sesión</translation> @@ -489,6 +495,7 @@ <translation id="5837036133683224804">Parar <ph name="ROUTE_TITLE" /> en <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Desactivado</translation> <translation id="5876666360658629066">Introduce el código parental</translation> +<translation id="5881540930187678962">Configurar Mi teléfono más tarde</translation> <translation id="5895138241574237353">Reiniciar</translation> <translation id="589817443623831496">Búsqueda por punto</translation> <translation id="5901316534475909376">Mayús+Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Borrar todas las notificaciones</translation> <translation id="643147933154517414">Listo</translation> +<translation id="6431865393913628856">Grabación de pantalla</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> en <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Rechazar</translation> <translation id="6453179446719226835">Se ha cambiado el idioma</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">Entendido</translation> <translation id="7348093485538360975">Teclado en pantalla</translation> <translation id="735745346212279324">VPN desconectada</translation> +<translation id="7371404428569700291">Grabar pantalla</translation> <translation id="7377169924702866686">El bloqueo de mayúsculas está activado.</translation> <translation id="7378203170292176219">Arrastra para seleccionar un área de grabación</translation> <translation id="7378594059915113390">Controles multimedia</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Alternar la posición del menú</translation> <translation id="9089416786594320554">Métodos de entrada</translation> <translation id="9091626656156419976">Se ha quitado la pantalla <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Capturas de pantalla y descargas recientes</translation> <translation id="9151726767154816831">Reinicia y aplica la función Powerwash para actualizar el sistema</translation> <translation id="9166331175924255663">Activa o desactiva la alta visibilidad de Compartir con Nearby.</translation> <translation id="9168436347345867845">En otro momento</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index 683d90d..d148fa9 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">نمایش تنظیمات زبان</translation> <translation id="1460620680449458626">دکمه میزان صدا صامت است.</translation> <translation id="1467432559032391204">چپ</translation> +<translation id="1475439723810528286">برای گرفتن عکس از تمام صفحه، روی هر جایی که میخواهید ضربه بزنید</translation> <translation id="1479909375538722835">منوی دسترسپذیری شناور</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">این حساب مالک باید اولین حسابی باشد که در یک جلسه ورود به سیستم چندگانه به سیستم وارد میشود.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">به شبکه متصل نیست</translation> <translation id="2126242104232412123">فضای کار جدید</translation> <translation id="2127372758936585790">شارژر برق ضعیف</translation> +<translation id="2132302418721800944">ضبط تمام صفحه</translation> <translation id="2135456203358955318">ذرهبین متصل</translation> <translation id="2144487987174258011">برای بهروزرسانی Adobe Flash Player، راهاندازی مجدد کنید</translation> <translation id="2180011262286780504">سرپرست امکان ضبط صفحهنمایش را غیرفعال کرده است.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">خاموش کردن</translation> <translation id="2878884018241093801">بدون موارد اخیر</translation> <translation id="2903844815300039659">متصل به <ph name="NAME" /> با <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">نماگرفتها</translation> <translation id="2942350706960889382">ذرهبین متصل</translation> <translation id="2942516765047364088">موقعیت قفسه</translation> <translation id="2946119680249604491">افزودن اتصال</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">بازخورد</translation> <translation id="4527045527269911712">دستگاه بلوتوث «<ph name="DEVICE_NAME" />» برای مرتبطسازی به مجوز نیاز دارد.</translation> <translation id="453661520163887813"><ph name="TIME" /> مانده تا کامل شود</translation> +<translation id="4538824937723742295">گرفتن نماگرفت تمامصفحه</translation> <translation id="4544483149666270818">پنجرهای را برای ضبط انتخاب کنید</translation> <translation id="4560576029703263363">روشن</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> س <ph name="MINUTES" /> د <ph name="SECONDS" /> ث</translation> <translation id="4975771730019223894">نشانگذاری برنامه</translation> <translation id="5030687792513154421">وقت تمام شد</translation> +<translation id="5033299697334913360">برای گرفتن عکس از کل صفحه، روی هرجایی که میخواهید کلیک کنید</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> به تلفن جدیدی متصل است</translation> <translation id="5035389544768382859">تأیید پیکربندی نمایشگر</translation> <translation id="5083553833479578423">باز کردن قفل ویژگیهای بیشتری از «دستیار».</translation> <translation id="5136175204352732067">صفحهکلید دیگری متصل شد</translation> <translation id="5168181903108465623">دستگاههای فرستادن موجود هستند</translation> <translation id="5170568018924773124">نمایش در پوشه</translation> +<translation id="5176318573511391780">ضبط کردن بخشی از صفحهنمایش</translation> <translation id="5207949376430453814">برجسته کردن هشتک نوشتار</translation> <translation id="5208059991603368177">روشن</translation> <translation id="5222676887888702881">خروج از سیستم</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">توقف <ph name="ROUTE_TITLE" /> به <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">خاموش</translation> <translation id="5876666360658629066">کد ولی را وارد کنید</translation> +<translation id="5881540930187678962">راهاندازی «مرکز کنترل تلفن» در زمانی دیگر</translation> <translation id="5895138241574237353">راهاندازی مجدد</translation> <translation id="589817443623831496">اسکن نقطهای</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />، قدرت سیگنال <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">پاک کردن همه اعلانها</translation> <translation id="643147933154517414">کاملاً انجام شد</translation> +<translation id="6431865393913628856">ضبط کردن صفحهنمایش</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> به <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">عدم پذیرش</translation> <translation id="6453179446719226835">زبان تغییر کرد</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">بله متوجه شدم.</translation> <translation id="7348093485538360975">صفحهکلید مجازی</translation> <translation id="735745346212279324">VPN قطع است</translation> +<translation id="7371404428569700291">پنجره ضبط</translation> <translation id="7377169924702866686">Caps Lock روشن است.</translation> <translation id="7378203170292176219">برای انتخاب ناحیه ضبط، بکشید</translation> <translation id="7378594059915113390">کنترلهای رسانه</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">جابهجایی موقعیت منو</translation> <translation id="9089416786594320554">روشهای ورودی</translation> <translation id="9091626656156419976">نمایشگر <ph name="DISPLAY_NAME" /> برداشته شد</translation> +<translation id="9092749890156285613">آخرین نماگرفتها و بارگیریها</translation> <translation id="9151726767154816831">راهاندازی مجدد و Powerwash برای بهروزرسانی</translation> <translation id="9166331175924255663">روشن/خاموش کردن «همرسانی با اطراف» با میزان بالای نمایان بودن.</translation> <translation id="9168436347345867845">بعداً انجام شود</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index ff133bc..2e1f907 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Näytä kieliasetukset</translation> <translation id="1460620680449458626">Äänet on mykistetty.</translation> <translation id="1467432559032391204">Vasemmalla</translation> +<translation id="1475439723810528286">Ota kuvakaappaus koko ruudusta koskettamalla minne tahansa</translation> <translation id="1479909375538722835">Kelluva esteettömyysvalikko</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Tämän omistajatilin täytyy olla ensimmäinen sisään kirjautuva tili useiden tilien istunnossa.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Ei verkkoyhteyttä</translation> <translation id="2126242104232412123">Uusi työpöytä</translation> <translation id="2127372758936585790">Pienitehoinen laturi</translation> +<translation id="2132302418721800944">Tallenna koko näyttö</translation> <translation id="2135456203358955318">Kiinnitetty suurennus</translation> <translation id="2144487987174258011">Päivitä Adobe Flash Player käynnistämällä uudelleen.</translation> <translation id="2180011262286780504">Järjestelmänvalvoja on estänyt kuvakaappausten ottamisen.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Sammuta</translation> <translation id="2878884018241093801">Ei viimeaikaisia kohteita</translation> <translation id="2903844815300039659">Yhdistetty: <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Kuvakaappaukset</translation> <translation id="2942350706960889382">Kiinnitetty suurennus</translation> <translation id="2942516765047364088">Hyllyn sijainti</translation> <translation id="2946119680249604491">Lisää yhteys</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Palaute</translation> <translation id="4527045527269911712">Bluetooth-laite <ph name="DEVICE_NAME" /> pyytää lupaa laiteparin muodostamiseen.</translation> <translation id="453661520163887813"><ph name="TIME" /> täyteen lataukseen</translation> +<translation id="4538824937723742295">Ota kuvakaappaus koko näytöstä</translation> <translation id="4544483149666270818">Valitse ikkuna tallennusta varten</translation> <translation id="4560576029703263363">Päällä</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> t <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Sovellusten merkitseminen</translation> <translation id="5030687792513154421">Aika on lopussa</translation> +<translation id="5033299697334913360">Ota koko ruudun kuvakaappaus klikkaamalla minne tahansa</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> yhdistetty uuteen puhelimeen</translation> <translation id="5035389544768382859">Vahvista näytön määritykset</translation> <translation id="5083553833479578423">Käytä lisää Assistantin ominaisuuksia.</translation> <translation id="5136175204352732067">Eri näppäimistö kytketty</translation> <translation id="5168181903108465623">Cast-laitteita käytettävissä</translation> <translation id="5170568018924773124">Näytä kansiossa</translation> +<translation id="5176318573511391780">Tallenna osittainen näyttö</translation> <translation id="5207949376430453814">Korosta tekstikursori</translation> <translation id="5208059991603368177">Päällä</translation> <translation id="5222676887888702881">Kirjaudu ulos</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Lopeta <ph name="ROUTE_TITLE" /> – <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Pois päältä</translation> <translation id="5876666360658629066">Lisää vanhemman koodi</translation> +<translation id="5881540930187678962">Ota puhelinhubi käyttöön myöhemmin</translation> <translation id="5895138241574237353">Käynnistä uudelleen</translation> <translation id="589817443623831496">Pisteskannaus</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -544,6 +551,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, signaalin vahvuus <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Tyhjennä kaikki ilmoitukset</translation> <translation id="643147933154517414">Valmis</translation> +<translation id="6431865393913628856">Näytön tallennus</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> – <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Hylkää</translation> <translation id="6453179446719226835">Kieli muutettu</translation> @@ -629,6 +637,7 @@ <translation id="7346909386216857016">Selvä</translation> <translation id="7348093485538360975">Näyttönäppäimistö</translation> <translation id="735745346212279324">VPN-yhteys katkaistu</translation> +<translation id="7371404428569700291">Tallenna ikkuna</translation> <translation id="7377169924702866686">Caps Lock on päällä.</translation> <translation id="7378203170292176219">Valitse tallennettava alue vetämällä</translation> <translation id="7378594059915113390">Mediaohjaimet</translation> @@ -817,6 +826,7 @@ <translation id="9084606467167974638">Vaihda valikon paikkaa</translation> <translation id="9089416786594320554">Syöttötavat</translation> <translation id="9091626656156419976">Näyttö <ph name="DISPLAY_NAME" /> poistettu</translation> +<translation id="9092749890156285613">Viimeaikaiset kuvakaappaukset ja lataukset</translation> <translation id="9151726767154816831">Käynnistä laite uudelleen ja suorita powerwash asentaaksesi päivitykset</translation> <translation id="9166331175924255663">Laita lähijakamisen näkyvyys päälle/pois.</translation> <translation id="9168436347345867845">Myöhemmin</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb index ef79aaa..442faa7 100644 --- a/ash/strings/ash_strings_fr-CA.xtb +++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Afficher les paramètres de langue</translation> <translation id="1460620680449458626">Le volume est désactivé.</translation> <translation id="1467432559032391204">À gauche</translation> +<translation id="1475439723810528286">Touchez n'importe où pour capturer la totalité de l'écran</translation> <translation id="1479909375538722835">Menu d'accessibilité flottant</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Ce compte de propriétaire doit être le premier compte à être connecté lors de sessions de connexion multicompte.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Aucune connexion réseau</translation> <translation id="2126242104232412123">Nouveau bureau</translation> <translation id="2127372758936585790">Chargeur de faible puissance</translation> +<translation id="2132302418721800944">Enregistrer tout l'écran</translation> <translation id="2135456203358955318">Loupe en mode ancré</translation> <translation id="2144487987174258011">Redémarrer pour mettre à jour Adobe Flash Player</translation> <translation id="2180011262286780504">La fonctionnalité de capture d'écran a été désactivée par votre administrateur.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Arrêter</translation> <translation id="2878884018241093801">Aucun élément récent</translation> <translation id="2903844815300039659">Connecté à <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Captures d'écran</translation> <translation id="2942350706960889382">Loupe en mode ancré</translation> <translation id="2942516765047364088">Position de l'étagère</translation> <translation id="2946119680249604491">Ajouter une connexion</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Commentaires</translation> <translation id="4527045527269911712">L'appareil Bluetooth « <ph name="DEVICE_NAME" /> » demande l'autorisation de s'associer.</translation> <translation id="453661520163887813"><ph name="TIME" /> avant la recharge complète</translation> +<translation id="4538824937723742295">Prendre une capture de l'écran au complet</translation> <translation id="4544483149666270818">Sélectionnez une fenêtre à enregistrer</translation> <translation id="4560576029703263363">Activé</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Badges d'applications</translation> <translation id="5030687792513154421">Le temps est écoulé</translation> +<translation id="5033299697334913360">Cliquez n'importe où pour capturer la totalité de l'écran</translation> <translation id="5035236842988137213">L'appareil <ph name="DEVICE_NAME" /> est connecté à un nouveau téléphone</translation> <translation id="5035389544768382859">Confirmer la configuration de l'écran</translation> <translation id="5083553833479578423">Déverrouillez davantage de fonctionnalités de l'Assistant Google.</translation> <translation id="5136175204352732067">Autre clavier branché</translation> <translation id="5168181903108465623">Appareils de diffusion disponibles</translation> <translation id="5170568018924773124">Afficher dans le dossier</translation> +<translation id="5176318573511391780">Enregistrer une partie de l'écran</translation> <translation id="5207949376430453814">Mettre le point d'insertion de texte en surbrillance</translation> <translation id="5208059991603368177">Activé</translation> <translation id="5222676887888702881">Déconnexion</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Arrêter <ph name="ROUTE_TITLE" /> sur <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Désactivé</translation> <translation id="5876666360658629066">Entrez le code d'accès parental</translation> +<translation id="5881540930187678962">Configurer Phone Hub plus tard</translation> <translation id="5895138241574237353">Redémarrer</translation> <translation id="589817443623831496">Numérisation de points</translation> <translation id="5901316534475909376">Maj+Échap</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, force du signal : <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Effacer toutes les notifications</translation> <translation id="643147933154517414">Tout est terminé</translation> +<translation id="6431865393913628856">Enregistrement d'écran</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> sur <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Refuser</translation> <translation id="6453179446719226835">La langue a été modifiée</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">OK, j'ai compris</translation> <translation id="7348093485538360975">Clavier à l'écran</translation> <translation id="735745346212279324">RPV déconnecté</translation> +<translation id="7371404428569700291">Enregistrer la fenêtre</translation> <translation id="7377169924702866686">La touche de verrouillage des majuscules est activée.</translation> <translation id="7378203170292176219">Faites glisser le curseur pour sélectionner une région à enregistrer</translation> <translation id="7378594059915113390">Commandes multimédias</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Basculer la position du menu</translation> <translation id="9089416786594320554">Méthodes d'entrée</translation> <translation id="9091626656156419976">Affichage <ph name="DISPLAY_NAME" /> supprimé</translation> +<translation id="9092749890156285613">Captures d'écran et téléchargements récents</translation> <translation id="9151726767154816831">Redémarrer et utiliser PowerWash afin de mettre à jour</translation> <translation id="9166331175924255663">Basculer la haute visibilité du partage à proximité.</translation> <translation id="9168436347345867845">Plus tard</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb index 7730ce2..c803384b 100644 --- a/ash/strings/ash_strings_gl.xtb +++ b/ash/strings/ash_strings_gl.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Mostrar a configuración do idioma</translation> <translation id="1460620680449458626">O volume está silenciado.</translation> <translation id="1467432559032391204">Esquerda</translation> +<translation id="1475439723810528286">Toca calquera parte para facer unha captura a pantalla completa</translation> <translation id="1479909375538722835">Menú flotante de accesibilidade</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Esta conta de propietario debe ser a primeira en que se inicie sesión cando se realice un inicio de sesión múltiple.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Non hai conexión á rede</translation> <translation id="2126242104232412123">Novo escritorio</translation> <translation id="2127372758936585790">Cargador de baixa potencia</translation> +<translation id="2132302418721800944">Gravar pantalla completa</translation> <translation id="2135456203358955318">Lupa ancorada</translation> <translation id="2144487987174258011">Reinicia para actualizar Adobe Flash Player</translation> <translation id="2180011262286780504">O teu administrador desactivou a función de facer capturas de pantalla.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Pechar</translation> <translation id="2878884018241093801">Non hai elementos recentes</translation> <translation id="2903844815300039659">Conexión establecida con <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Capturas de pantalla</translation> <translation id="2942350706960889382">Lupa ancorada</translation> <translation id="2942516765047364088">Posición do estante</translation> <translation id="2946119680249604491">Engadir conexión</translation> @@ -368,6 +371,7 @@ <translation id="4513946894732546136">Dános a túa opinión</translation> <translation id="4527045527269911712">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" quere obter permiso para sincronizarse.</translation> <translation id="453661520163887813"><ph name="TIME" /> para completar a carga</translation> +<translation id="4538824937723742295">Facer unha captura de pantalla completa</translation> <translation id="4544483149666270818">Selecciona a ventá que queiras gravar</translation> <translation id="4560576029703263363">Activado</translation> <translation id="4561267230861221837">3G</translation> @@ -423,12 +427,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Indicadores de notificacións</translation> <translation id="5030687792513154421">Rematou o tempo</translation> +<translation id="5033299697334913360">Fai clic en calquera parte para facer unha captura a pantalla completa</translation> <translation id="5035236842988137213">O <ph name="DEVICE_NAME" /> está conectado a un novo teléfono</translation> <translation id="5035389544768382859">Confirmar a configuración da pantalla</translation> <translation id="5083553833479578423">Desbloquea máis funcións do Asistente.</translation> <translation id="5136175204352732067">Conectouse un teclado diferente</translation> <translation id="5168181903108465623">Dispositivos de emisión dispoñibles</translation> <translation id="5170568018924773124">Mostrar no cartafol</translation> +<translation id="5176318573511391780">Gravar pantalla parcial</translation> <translation id="5207949376430453814">Destacar o cursor de texto</translation> <translation id="5208059991603368177">Activado</translation> <translation id="5222676887888702881">Pechar sesión</translation> @@ -489,6 +495,7 @@ <translation id="5837036133683224804">Deter <ph name="ROUTE_TITLE" /> no receptor <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Non</translation> <translation id="5876666360658629066">Escribe o código parental</translation> +<translation id="5881540930187678962">Configurar O meu teléfono máis tarde</translation> <translation id="5895138241574237353">Reiniciar</translation> <translation id="589817443623831496">Escaneo de puntos</translation> <translation id="5901316534475909376">Maiúsculas+Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, intensidade do sinal do <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Eliminar todas as notificacións</translation> <translation id="643147933154517414">Listo</translation> +<translation id="6431865393913628856">Gravación da pantalla</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> no receptor <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Rexeitar</translation> <translation id="6453179446719226835">Cambiouse o idioma</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">Entendido</translation> <translation id="7348093485538360975">Teclado en pantalla</translation> <translation id="735745346212279324">VPN desconectada</translation> +<translation id="7371404428569700291">Ventá de gravación</translation> <translation id="7377169924702866686">O bloqueo de maiúsculas está activado.</translation> <translation id="7378203170292176219">Arrastra para seleccionar a zona que queiras gravar</translation> <translation id="7378594059915113390">Controis de contido multimedia</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Alternar a posición do menú</translation> <translation id="9089416786594320554">Métodos de entrada</translation> <translation id="9091626656156419976">Quitouse a pantalla <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Capturas de pantalla e descargas recentes</translation> <translation id="9151726767154816831">Reinicia e fai un powerwash para actualizar</translation> <translation id="9166331175924255663">Activar ou desactivar a alta visibilidade da función Compartir por Nearby.</translation> <translation id="9168436347345867845">Configurar máis tarde</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index bbce3b41..4e74c2d 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">भाषा सेटिंग दिखाएं</translation> <translation id="1460620680449458626">आवाज़ को म्यूट किया गया है.</translation> <translation id="1467432559032391204">बाएं</translation> +<translation id="1475439723810528286">फ़ुल स्क्रीन को कैप्चर करने के लिए कहीं भी टैप करें</translation> <translation id="1479909375538722835">फ़्लोट करने वाले सुलभता मेन्यू</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">किसी एक से ज़्यादा साइन-इन वाले सत्र में इस मालिक खाते को पहला साइन-इन खाता होना चाहिए.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">नेटवर्क से जुड़ा हुआ नहीं है</translation> <translation id="2126242104232412123">नया डेस्क</translation> <translation id="2127372758936585790">कम-शक्ति वाला चार्जर</translation> +<translation id="2132302418721800944">फ़ुल स्क्रीन रिकॉर्ड करें</translation> <translation id="2135456203358955318">सामग्री को बड़ा दिखाने की डॉक की गई सुविधा</translation> <translation id="2144487987174258011">Adobe Flash Player को अपडेट करने के लिए रीस्टार्ट करें</translation> <translation id="2180011262286780504">आपके एडमिन ने स्क्रीन कैप्चर करने की सुविधा बंद कर दी है.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">शट डाउन करें</translation> <translation id="2878884018241093801">हाल का कोई आइटम नहीं</translation> <translation id="2903844815300039659"><ph name="NAME" /> से जुड़ गया है, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">स्क्रीन कैप्चर</translation> <translation id="2942350706960889382">सामग्री को बड़ा दिखाने की डॉक की गई सुविधा</translation> <translation id="2942516765047364088">अलमारी की स्थिति</translation> <translation id="2946119680249604491">कनेक्शन जोड़ें</translation> @@ -368,6 +371,7 @@ <translation id="4513946894732546136">सुझाव</translation> <translation id="4527045527269911712">ब्लूटूथ डिवाइस "<ph name="DEVICE_NAME" />" युग्मित करने की अनुमति चाहता है.</translation> <translation id="453661520163887813">पूरी तरह चार्ज होने में <ph name="TIME" /></translation> +<translation id="4538824937723742295">फ़ुल स्क्रीन का स्क्रीनशॉट लें</translation> <translation id="4544483149666270818">रिकॉर्ड करने के लिए विंडो चुनें</translation> <translation id="4560576029703263363">चालू है</translation> <translation id="4561267230861221837">3G</translation> @@ -423,12 +427,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />घं॰ <ph name="MINUTES" />मि॰ <ph name="SECONDS" />से॰</translation> <translation id="4975771730019223894">ऐप बैजिंग</translation> <translation id="5030687792513154421">समय पूरा हो गया</translation> +<translation id="5033299697334913360">फ़ुल स्क्रीन कैप्चर करने के लिए कहीं पर भी क्लिक करें</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> एक नए फ़ोन से कनेक्ट हो गया है</translation> <translation id="5035389544768382859">डिसप्ले के कॉन्फ़िगरेशन की पुष्टि करें</translation> <translation id="5083553833479578423">Assistant की और भी सुविधाओं के बारे में जानें.</translation> <translation id="5136175204352732067">अलग कीबोर्ड कनेक्ट किया गया</translation> <translation id="5168181903108465623">कास्ट डिवाइस उपलब्ध हैं</translation> <translation id="5170568018924773124">फ़ोल्डर में दिखाएं</translation> +<translation id="5176318573511391780">स्क्रीन के कुछ हिस्से को रिकॉर्ड करें</translation> <translation id="5207949376430453814">लेख कैरेट हाइलाइट करें</translation> <translation id="5208059991603368177">चालू करें</translation> <translation id="5222676887888702881">साइन आउट करें</translation> @@ -489,6 +495,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> पर <ph name="ROUTE_TITLE" /> बंद करें</translation> <translation id="5860033963881614850">बंद</translation> <translation id="5876666360658629066">अभिभावक वाला कोड डालें</translation> +<translation id="5881540930187678962">'फ़ोन हब' को बाद में सेट अप करें</translation> <translation id="5895138241574237353">फिर से प्रारंभ करें</translation> <translation id="589817443623831496">पॉइंट स्कैनिंग</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, सिग्नल की क्षमता <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">सभी सूचनाएं हटाएं</translation> <translation id="643147933154517414">सभी पूरे हो गए</translation> +<translation id="6431865393913628856">स्क्रीन रिकॉर्डर</translation> <translation id="6445835306623867477"><ph name="RECEIVER_NAME" /> पर <ph name="ROUTE_TITLE" /></translation> <translation id="6452181791372256707">अस्वीकार करें</translation> <translation id="6453179446719226835">भाषा बदल दी गई है</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">ठीक है, समझ लिया</translation> <translation id="7348093485538360975">ऑन-स्क्रीन कीबोर्ड</translation> <translation id="735745346212279324">VPN डिसकनेक्ट है</translation> +<translation id="7371404428569700291">चुनी गई विंडो के लिए वीडियो रिकॉर्ड करें</translation> <translation id="7377169924702866686">Caps Lock चालू है.</translation> <translation id="7378203170292176219">रिकॉर्ड की जाने वाली जगह चुनने के लिए खींचें</translation> <translation id="7378594059915113390">मीडिया नियंत्रण</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">टॉगल मेन्यू की जगह</translation> <translation id="9089416786594320554">इनपुट के तरीके</translation> <translation id="9091626656156419976">डिसप्ले <ph name="DISPLAY_NAME" /> हटा दिया गया</translation> +<translation id="9092749890156285613">हाल ही के स्क्रीन कैप्चर और डाउनलोड की गई फ़ाइलें</translation> <translation id="9151726767154816831">अपडेट करने के लिए रीस्टार्ट और पावरवॉश करें</translation> <translation id="9166331175924255663">आस-पास शेयर करने की सुविधा को ज़्यादा लोगों को दिखाने वाला मोड टॉगल करें.</translation> <translation id="9168436347345867845">बाद में करें</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb index 4e98bf0..3dac088 100644 --- a/ash/strings/ash_strings_hu.xtb +++ b/ash/strings/ash_strings_hu.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Nyelvi beállítások megjelenítése</translation> <translation id="1460620680449458626">Hang némítva.</translation> <translation id="1467432559032391204">Balra</translation> +<translation id="1475439723810528286">Koppintson bárhova a teljes képernyő rögzítéséhez</translation> <translation id="1479909375538722835">Kisegítő lehetőségek lebegő menüje</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Ennek a tulajdonosi fióknak kell lennie az első bejelentkezett fióknak a többfiókos bejelentkezés munkamenete során.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Nincs hálózati kapcsolat</translation> <translation id="2126242104232412123">Új asztal</translation> <translation id="2127372758936585790">Kis teljesítményű töltő</translation> +<translation id="2132302418721800944">Teljes képernyő rögzítése</translation> <translation id="2135456203358955318">Dokkolt nagyító</translation> <translation id="2144487987174258011">Az Adobe Flash Player frissítéséhez újraindítás szükséges</translation> <translation id="2180011262286780504">A képernyőfelvétel funkció le lett tiltva a rendszergazda által.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Leállítás</translation> <translation id="2878884018241093801">Nincsenek mostanában használt elemek</translation> <translation id="2903844815300039659">Csatlakozva <ph name="NAME" /> hálózathoz, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Képernyőfelvételek</translation> <translation id="2942350706960889382">Dokkolt nagyító</translation> <translation id="2942516765047364088">Polc pozíciója</translation> <translation id="2946119680249604491">Kapcsolat hozzáadása</translation> @@ -368,6 +371,7 @@ <translation id="4513946894732546136">Visszajelzés</translation> <translation id="4527045527269911712">A(z) „<ph name="DEVICE_NAME" />” Bluetooth-eszköz engedélyt kér a párosításra.</translation> <translation id="453661520163887813"><ph name="TIME" /> a teljes feltöltésig</translation> +<translation id="4538824937723742295">Teljes képernyős képernyőkép készítése</translation> <translation id="4544483149666270818">Jelölje ki a felvenni kívánt ablakot</translation> <translation id="4560576029703263363">Be</translation> <translation id="4561267230861221837">3G</translation> @@ -423,12 +427,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> ó <ph name="MINUTES" /> p <ph name="SECONDS" /> mp</translation> <translation id="4975771730019223894">Alkalmazásjelvények</translation> <translation id="5030687792513154421">Lejárt az idő</translation> +<translation id="5033299697334913360">Kattintson bárhová a teljes képernyő rögzítéséhez</translation> <translation id="5035236842988137213">A(z) <ph name="DEVICE_NAME" /> új telefonhoz csatlakozott</translation> <translation id="5035389544768382859">Képernyő-beállítás megerősítése</translation> <translation id="5083553833479578423">Hozzáférés a Segéd további funkcióihoz</translation> <translation id="5136175204352732067">Új billentyűzet lett csatlakoztatva</translation> <translation id="5168181903108465623">Cast-eszközök állnak rendelkezésre</translation> <translation id="5170568018924773124">Megjelenítés mappában</translation> +<translation id="5176318573511391780">Részleges képernyő rögzítése</translation> <translation id="5207949376430453814">Szövegbeszúrási pont kiemelése</translation> <translation id="5208059991603368177">Be</translation> <translation id="5222676887888702881">Kijelentkezés</translation> @@ -489,6 +495,7 @@ <translation id="5837036133683224804">A(z) <ph name="ROUTE_TITLE" /> leállítása itt: <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Kikapcsolva</translation> <translation id="5876666360658629066">Adja meg a szülői kódot</translation> +<translation id="5881540930187678962">A Telefonközpont későbbi beállítása</translation> <translation id="5895138241574237353">Újraindítás</translation> <translation id="589817443623831496">Pontkeresés</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, jelerősség: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Az összes értesítés törlése</translation> <translation id="643147933154517414">Elkészült</translation> +<translation id="6431865393913628856">Képernyőrögzítés</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> itt: <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Elutasítás</translation> <translation id="6453179446719226835">A nyelv módosult</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">Rendben, értem</translation> <translation id="7348093485538360975">Képernyő-billentyűzet</translation> <translation id="735745346212279324">A VPN nincs csatlakoztatva</translation> +<translation id="7371404428569700291">Felvétel készítése az ablakról</translation> <translation id="7377169924702866686">A Caps Lock be van kapcsolva.</translation> <translation id="7378203170292176219">Húzással jelöljön ki egy területet a videó készítéséhez</translation> <translation id="7378594059915113390">Médiatartalmak vezérlői</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Menü helyzetének módosítása</translation> <translation id="9089416786594320554">Beviteli módszerek</translation> <translation id="9091626656156419976">A(z) <ph name="DISPLAY_NAME" /> kijelző eltávolítva</translation> +<translation id="9092749890156285613">Legutóbbi képernyőfelvételek és letöltések</translation> <translation id="9151726767154816831">Indítsa újra, és végezze el a Powerwash folyamatot a frissítéshez</translation> <translation id="9166331175924255663">A Közeli megosztás funkció nagyfokú láthatóságának be- vagy kikapcsolása.</translation> <translation id="9168436347345867845">Később</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index 247af47e..b1b143d 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Tampilkan setelan bahasa</translation> <translation id="1460620680449458626">Volume dibisukan.</translation> <translation id="1467432559032391204">Kiri</translation> +<translation id="1475439723810528286">Ketuk di mana saja untuk menangkap gambar dalam layar penuh</translation> <translation id="1479909375538722835">Menu aksesibilitas mengambang</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Akun pemilik ini harus akun yang masuk pertama dalam sesi fitur masuk banyak akun.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Tidak terhubung ke jaringan</translation> <translation id="2126242104232412123">Desktop baru</translation> <translation id="2127372758936585790">Pengisi daya rendah</translation> +<translation id="2132302418721800944">Rekam dalam layar penuh</translation> <translation id="2135456203358955318">Kaca pembesar tersemat</translation> <translation id="2144487987174258011">Nyalakan ulang untuk mengupdate Adobe Flash Player</translation> <translation id="2180011262286780504">Kemampuan untuk mengambil screenshot telah dinonaktifkan oleh administrator Anda.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Matikan</translation> <translation id="2878884018241093801">Tidak ada item baru-baru ini</translation> <translation id="2903844815300039659">Terhubung ke <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Screenshot</translation> <translation id="2942350706960889382">Kaca Pembesar Tersemat</translation> <translation id="2942516765047364088">Posisi rak</translation> <translation id="2946119680249604491">Tambahkan koneksi</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Masukan</translation> <translation id="4527045527269911712">Perangkat Bluetooth "<ph name="DEVICE_NAME" />" meminta izin untuk bersanding.</translation> <translation id="453661520163887813"><ph name="TIME" /> sampai penuh</translation> +<translation id="4538824937723742295">Ambil screenshot dalam layar penuh</translation> <translation id="4544483149666270818">Pilih jendela yang akan direkam</translation> <translation id="4560576029703263363">Aktif</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />j <ph name="MINUTES" />m <ph name="SECONDS" />d</translation> <translation id="4975771730019223894">Tampilkan badge aplikasi</translation> <translation id="5030687792513154421">Waktu habis</translation> +<translation id="5033299697334913360">Klik di mana saja untuk menangkap gambar dalam layar penuh</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> terhubung ke ponsel baru</translation> <translation id="5035389544768382859">Konfirmasi Konfigurasi Layar</translation> <translation id="5083553833479578423">Dapatkan lebih banyak fitur Asisten.</translation> <translation id="5136175204352732067">Keyboard yang berbeda terhubung</translation> <translation id="5168181903108465623">Perangkat transmisi tersedia</translation> <translation id="5170568018924773124">Tampilkan dalam folder</translation> +<translation id="5176318573511391780">Rekam sebagian layar</translation> <translation id="5207949376430453814">Sorot tempat penyisipan teks</translation> <translation id="5208059991603368177">Aktif</translation> <translation id="5222676887888702881">Logout</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Hentikan <ph name="ROUTE_TITLE" /> di <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Nonaktif</translation> <translation id="5876666360658629066">Masukkan kode orang tua</translation> +<translation id="5881540930187678962">Siapkan Phone Hub nanti</translation> <translation id="5895138241574237353">Mulai Ulang</translation> <translation id="589817443623831496">Pemindaian titik</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Kekuatan Sinyal <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Hapus semua notifikasi</translation> <translation id="643147933154517414">Selesai</translation> +<translation id="6431865393913628856">Perekaman layar</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> di <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Tolak</translation> <translation id="6453179446719226835">Bahasa telah diubah</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Oke, mengerti</translation> <translation id="7348093485538360975">Keyboard di layar</translation> <translation id="735745346212279324">VPN terputus</translation> +<translation id="7371404428569700291">Rekam jendela</translation> <translation id="7377169924702866686">Caps Lock aktif.</translation> <translation id="7378203170292176219">Tarik untuk memilih area yang akan direkam</translation> <translation id="7378594059915113390">Kontrol Media</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Beralih posisi menu</translation> <translation id="9089416786594320554">Metode masukan</translation> <translation id="9091626656156419976">Tampilan <ph name="DISPLAY_NAME" /> dihapus</translation> +<translation id="9092749890156285613">Tangkapan layar dan download terbaru</translation> <translation id="9151726767154816831">Mulai ulang dan powerwash untuk memperbarui</translation> <translation id="9166331175924255663">Tombol visibilitas tinggi Berbagi Langsung.</translation> <translation id="9168436347345867845">Nanti saja</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb index aa3ecec..81925d9 100644 --- a/ash/strings/ash_strings_is.xtb +++ b/ash/strings/ash_strings_is.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Sýna tungumálastillingar</translation> <translation id="1460620680449458626">Slökkt er á hljóði.</translation> <translation id="1467432559032391204">Rangsælis</translation> +<translation id="1475439723810528286">Ýttu hvar sem er til að mynda allan skjáinn</translation> <translation id="1479909375538722835">Fljótandi aðgengisvalmynd</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Þessi eigandareikningur verður að vera fyrsti innskráði reikningurinn í lotu fyrir margar innskráningar.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Engin nettenging</translation> <translation id="2126242104232412123">Nýtt svæði</translation> <translation id="2127372758936585790">Afllítið hleðslutæki</translation> +<translation id="2132302418721800944">Taka upp á öllum skjánum</translation> <translation id="2135456203358955318">Stækkunargler í föstum glugga</translation> <translation id="2144487987174258011">Endurræstu til að uppfæra Adobe Flash Player</translation> <translation id="2180011262286780504">Kerfisstjóri hefur lokað á skjámyndatöku.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Slökkva</translation> <translation id="2878884018241093801">Engin nýleg atriði</translation> <translation id="2903844815300039659">Tengt við <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Skjámyndatökur</translation> <translation id="2942350706960889382">Stækkunargler í föstum glugga</translation> <translation id="2942516765047364088">Hillustaðsetning</translation> <translation id="2946119680249604491">Bæta tengingu við</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Ábendingar</translation> <translation id="4527045527269911712">Bluetooth-tækið „<ph name="DEVICE_NAME" />“ vill fá heimild til að parast.</translation> <translation id="453661520163887813"><ph name="TIME" /> fram að fullri hleðslu</translation> +<translation id="4538824937723742295">Taka skjámynd af öllum skjánum</translation> <translation id="4544483149666270818">Veldu glugga til að taka upp</translation> <translation id="4560576029703263363">Kveikt</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> k., <ph name="MINUTES" /> m. og <ph name="SECONDS" /> s.</translation> <translation id="4975771730019223894">Merking forrita</translation> <translation id="5030687792513154421">Nú er tíminn á þrotum</translation> +<translation id="5033299697334913360">Smelltu hvar sem er til að mynda allan skjáinn</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> tengdist nýjum síma</translation> <translation id="5035389544768382859">Staðfesta skjástillingu</translation> <translation id="5083553833479578423">Opnaðu fyrir fleiri eiginleika hjálparans.</translation> <translation id="5136175204352732067">Annað lyklaborð tengt</translation> <translation id="5168181903108465623">Útsendingartæki í boði</translation> <translation id="5170568018924773124">Sýna í möppu</translation> +<translation id="5176318573511391780">Upptaka á hluta skjás</translation> <translation id="5207949376430453814">Auðkenna textainnskotsmerki</translation> <translation id="5208059991603368177">Kveikt</translation> <translation id="5222676887888702881">Skrá út</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Stöðva <ph name="ROUTE_TITLE" /> í <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Slökkt</translation> <translation id="5876666360658629066">Sláðu inn kóða foreldris</translation> +<translation id="5881540930187678962">Setja Símstöð upp seinna</translation> <translation id="5895138241574237353">Endurræsa</translation> <translation id="589817443623831496">Punktaskönnun</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, sendistyrkur <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Hreinsa allar tilkynningar</translation> <translation id="643147933154517414">Allt búið</translation> +<translation id="6431865393913628856">Skjáupptaka</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> í <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Hafna</translation> <translation id="6453179446719226835">Tungumálinu hefur verið breytt</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Ég skil</translation> <translation id="7348093485538360975">Skjályklaborð</translation> <translation id="735745346212279324">VPN ótengt</translation> +<translation id="7371404428569700291">Upptökugluggi</translation> <translation id="7377169924702866686">Kveikt er á hástafalás.</translation> <translation id="7378203170292176219">Dragðu til að velja svæðið sem á að taka upp</translation> <translation id="7378594059915113390">Spilunarstýringar</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Víxla staðsetningu valmyndar</translation> <translation id="9089416786594320554">Innsláttaraðferðir</translation> <translation id="9091626656156419976">Skjárinn <ph name="DISPLAY_NAME" /> var fjarlægður</translation> +<translation id="9092749890156285613">Nýlegar skjámyndatökur og niðurhöl</translation> <translation id="9151726767154816831">Endurræstu og djúphreinsaðu tækið til að uppfæra</translation> <translation id="9166331175924255663">Veldu/afveldu mikinn sýnileika nærdeilingar.</translation> <translation id="9168436347345867845">Gera þetta seinna</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb index 30ba050..bbc0c55 100644 --- a/ash/strings/ash_strings_ka.xtb +++ b/ash/strings/ash_strings_ka.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">ენის პარამეტრების ჩვენება</translation> <translation id="1460620680449458626">ხმა დადუმებულია.</translation> <translation id="1467432559032391204">მარცხენა</translation> +<translation id="1475439723810528286">სრული ეკრანის აღსაბეჭდად შეეხეთ ნებისმიერ ადგილს</translation> <translation id="1479909375538722835">მარტივი წვდომის მოლივლივე მენიუ</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">მფლობელის ეს ანგარიში გახდეს პირველი შესული ანგარიში მრავალპროფილიან სესიაში.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">ქსელთან კავშირი არ არის</translation> <translation id="2126242104232412123">ახალი სამუშაო მაგიდა</translation> <translation id="2127372758936585790">დამტენის დაბალი მუხტი</translation> +<translation id="2132302418721800944">ეკრანის სრულად ჩაწერა</translation> <translation id="2135456203358955318">ჩამაგრებული ლუპა</translation> <translation id="2144487987174258011">გადატვირთეთ Adobe Flash Player-ის განახლებისთვის</translation> <translation id="2180011262286780504">ეკრანის აღბეჭდვის შესაძლებლობა გათიშულია თქვენი ადმინისტრატორის მიერ.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">გამორთვა</translation> <translation id="2878884018241093801">ბოლოდროინდელი ერთეულები არ არის</translation> <translation id="2903844815300039659">დაკავშირებულია <ph name="NAME" />-თან, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">ეკრანის აღბეჭდვები</translation> <translation id="2942350706960889382">ჩამაგრებული ლუპა</translation> <translation id="2942516765047364088">თაროს პოზიცია</translation> <translation id="2946119680249604491">კავშირის დამატება</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">უკუკავშირი</translation> <translation id="4527045527269911712">Bluetooth მოწყობილობა „<ph name="DEVICE_NAME" />“ მოითხოვს დაწყვილების ნებართვას.</translation> <translation id="453661520163887813">სრულ დატენვამდე დარჩენილია <ph name="TIME" /></translation> +<translation id="4538824937723742295">ეკრანის სრულად აღბეჭდვა</translation> <translation id="4544483149666270818">აირჩიეთ ჩასაწერი ფანჯარა</translation> <translation id="4560576029703263363">ჩართვა</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> სთ, <ph name="MINUTES" /> წთ, <ph name="SECONDS" /> წმ</translation> <translation id="4975771730019223894">აპებზე ბეჯების მიმაგრება</translation> <translation id="5030687792513154421">დრო ამოიწურა</translation> +<translation id="5033299697334913360">სრული ეკრანის აღსაბეჭდად დააწკაპუნეთ ნებისმიერ ადგილზე</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> დაკავშირებულია ახალ ტელეფონთან</translation> <translation id="5035389544768382859">დაადასტურეთ ეკრანის კონფიგურაცია</translation> <translation id="5083553833479578423">განბლოკეთ ასისტენტის დამატებითი ფუნქციები.</translation> <translation id="5136175204352732067">დაკავშირებულია განსხვავებული კლავიატურა</translation> <translation id="5168181903108465623">ხელმისაწვდომია გადაცემის მოწყობილობები</translation> <translation id="5170568018924773124">საქაღალდეში ჩვენება</translation> +<translation id="5176318573511391780">ეკრანის ნაწილის ჩაწერა</translation> <translation id="5207949376430453814">ტექსტის კურსორის გამოყოფა</translation> <translation id="5208059991603368177">ჩართვა</translation> <translation id="5222676887888702881">გამოსვლა</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="ROUTE_TITLE" />-ის შეწყვეტა „<ph name="RECEIVER_NAME" />“-ში</translation> <translation id="5860033963881614850">გამორთვა</translation> <translation id="5876666360658629066">შეიყვანეთ მშობლის კოდი</translation> +<translation id="5881540930187678962">ტელეფონის ცენტრის მოგვიანების დაყენება</translation> <translation id="5895138241574237353">გადატვირთვა</translation> <translation id="589817443623831496">წერტილის სკანირება</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">ყველა შეტყობინების გასუფთავება</translation> <translation id="643147933154517414">ყველაფერი მზად არის</translation> +<translation id="6431865393913628856">ეკრანის ჩანაწერი</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> „<ph name="RECEIVER_NAME" />“-ში</translation> <translation id="6452181791372256707">უარყოფა</translation> <translation id="6453179446719226835">ენა შეიცვალა</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">კარგი, გასაგებია</translation> <translation id="7348093485538360975">ეკრანული კლავიატურა</translation> <translation id="735745346212279324">VPN გამორთულია</translation> +<translation id="7371404428569700291">ფანჯრის ჩაწერა</translation> <translation id="7377169924702866686">Caps Lock ჩართულია.</translation> <translation id="7378203170292176219">ჩავლებით გადაიტანეთ, ჩასაწერი არე რომ აირჩიოთ</translation> <translation id="7378594059915113390">მედიის მართვის საშუალებები</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">მენიუს პოზიციის გადართვა</translation> <translation id="9089416786594320554">შეყვანის მეთოდები</translation> <translation id="9091626656156419976">ეკრანი <ph name="DISPLAY_NAME" /> ამოიშალა</translation> +<translation id="9092749890156285613">ეკრანის ბოლოდროინდელი აღბეჭდვები და ჩამოტვირთვები</translation> <translation id="9151726767154816831">გადატვირთეთ და გაასუფთავეთ მოწყობილობა განახლების დასაყენებლად</translation> <translation id="9166331175924255663">მახლობლად გაზიარების მაღალი ხილვადობის გადართვა.</translation> <translation id="9168436347345867845">მოგვიანებით გაკეთება</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb index 24d8807..2d1d65d 100644 --- a/ash/strings/ash_strings_km.xtb +++ b/ash/strings/ash_strings_km.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">បង្ហាញការកំណត់ភាសា</translation> <translation id="1460620680449458626">កម្រិតសំឡេងត្រូវបានបិទ។</translation> <translation id="1467432559032391204">ឆ្វេង</translation> +<translation id="1475439723810528286">ចុចកន្លែងណាមួយ ដើម្បីថតពេញអេក្រង់</translation> <translation id="1479909375538722835">ម៉ឺនុយភាពងាយស្រួលអណ្ដែត</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">ម្ចាស់គណនីត្រូវចូលគណនីជាមុនសិននៅក្នុងវេនចូលច្រើន.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">មិនបានភ្ជាប់ទៅបណ្ដាញទេ</translation> <translation id="2126242104232412123">តុធ្វើការថ្មី</translation> <translation id="2127372758936585790">ឆ្នាំងសាកផ្តល់ថាមពលទាប</translation> +<translation id="2132302418721800944">ថតវីដេអូពេញអេក្រង់</translation> <translation id="2135456203358955318">កែវពង្រីកដាក់ខាងលើបំផុត</translation> <translation id="2144487987174258011">ចាប់ផ្តើមឡើងវិញដើម្បីដំឡើងជំនាន់ Adobe Flash Player</translation> <translation id="2180011262286780504">សមត្ថភាពថតអេក្រង់ត្រូវបានបិទដោយអ្នកគ្រប់គ្រងរបស់អ្នក។</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">បិទ</translation> <translation id="2878884018241093801">មិនមានធាតុថ្មីៗទេ</translation> <translation id="2903844815300039659">បានភ្ជាប់ទៅ <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">រូបថតអេក្រង់</translation> <translation id="2942350706960889382">កែវពង្រីកដាក់ខាងលើបំផុត</translation> <translation id="2942516765047364088">ទីតាំងធ្នើ</translation> <translation id="2946119680249604491">បន្ថែមការភ្ជាប់</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">មតិ</translation> <translation id="4527045527269911712">ឧបករណ៍ប៊្លូធូស "<ph name="DEVICE_NAME" />" ចង់សុំការអនុញ្ញាតដើម្បីភ្ជាប់។</translation> <translation id="453661520163887813"><ph name="TIME" /> ទៀតទើបពេញ</translation> +<translation id="4538824937723742295">ថតរូបអេក្រង់ពេញអេក្រង់</translation> <translation id="4544483149666270818">ជ្រើសរើសវិនដូណាមួយ ដើម្បីថតវីដេអូ</translation> <translation id="4560576029703263363">បើក</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />ម៉ <ph name="MINUTES" />ន <ph name="SECONDS" />វិ</translation> <translation id="4975771730019223894">ការដាក់គ្រឿងសម្គាល់កម្មវិធី</translation> <translation id="5030687792513154421">ដល់ពេលហើយ</translation> +<translation id="5033299697334913360">ចុចកន្លែងណាមួយ ដើម្បីថតពេញអេក្រង់</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> បានភ្ជាប់ទៅទូរសព្ទថ្មី</translation> <translation id="5035389544768382859">បញ្ជាក់កំណត់រចនាសម្ព័ន្ធផ្ទាំងអេក្រង់</translation> <translation id="5083553833479578423">ដោះសោមុខងារជំនួយការជាច្រើនទៀត។</translation> <translation id="5136175204352732067">បានភ្ជាប់ក្ដារចុចផ្សេង</translation> <translation id="5168181903108465623">មានឧបករណ៍ខាស</translation> <translation id="5170568018924773124">បង្ហាញនៅក្នុងថតឯកសារ</translation> +<translation id="5176318573511391780">ថតវីដេអូអេក្រង់ដោយផ្នែក</translation> <translation id="5207949376430453814">រំលេចសញ្ញាអត្ថបទ</translation> <translation id="5208059991603368177">បើក</translation> <translation id="5222676887888702881">ចាកចេញ</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">បញ្ឈប់ <ph name="ROUTE_TITLE" /> នៅលើ <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">បិទ</translation> <translation id="5876666360658629066">បញ្ចូលលេខកូដរបស់មាតាបិតា</translation> +<translation id="5881540930187678962">រៀបចំមណ្ឌលទូរសព្ទនៅពេលក្រោយ</translation> <translation id="5895138241574237353">ចាប់ផ្តើមឡើងវិញ</translation> <translation id="589817443623831496">ការស្កេនលក្ខណៈចំណុច</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, កម្លាំងរលកសញ្ញា <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">សម្អាតការជូនដំណឹងទាំងអស់</translation> <translation id="643147933154517414">រួចរាល់ទាំងអស់</translation> +<translation id="6431865393913628856">ការថតវីដេអូអេក្រង់</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> នៅលើ <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">បដិសេធ</translation> <translation id="6453179446719226835">ភាសាត្រូវបានផ្លាស់ប្តូរ</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">យល់ព្រម ខ្ញុំយល់ហើយ</translation> <translation id="7348093485538360975">ក្តារចុចលើអេក្រង់</translation> <translation id="735745346212279324">VPN ត្រូវបានផ្តាច់</translation> +<translation id="7371404428569700291">ថតវីដេអូវិនដូ</translation> <translation id="7377169924702866686">Caps Lock ត្រូវបានបើក។</translation> <translation id="7378203170292176219">អូសដើម្បីជ្រើសរើសផ្នែកណាមួយ ដើម្បីថតវីដេអូ</translation> <translation id="7378594059915113390">ការគ្រប់គ្រងមេឌៀ</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">បិទ/បើកទីតាំងម៉ឺនុយ</translation> <translation id="9089416786594320554">វិធីសាស្ត្របញ្ចូល</translation> <translation id="9091626656156419976">បានលុបអេក្រង់ <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">វីដេអូ/រូបថតអេក្រង់ និងការទាញយកថ្មីៗ</translation> <translation id="9151726767154816831">ចាប់ផ្តើមឡើងវិញ ហើយ powerwash ដើម្បីធ្វើបច្ចុប្បន្នភាព</translation> <translation id="9166331175924255663">បិទ/បើកលទ្ធភាពមើលឃើញខ្ពស់របស់ការចែករំលែកនៅជិត។</translation> <translation id="9168436347345867845">ធ្វើនៅពេលក្រោយ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb index f465e5df..b0ddf65 100644 --- a/ash/strings/ash_strings_ko.xtb +++ b/ash/strings/ash_strings_ko.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">언어 설정 표시</translation> <translation id="1460620680449458626">음소거되어 있습니다.</translation> <translation id="1467432559032391204">왼쪽</translation> +<translation id="1475439723810528286">전체 화면을 캡처하려면 아무 곳이나 탭하세요</translation> <translation id="1479909375538722835">플로팅 접근성 메뉴</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" />(HDMI/DP)</translation> <translation id="1503394326855300303">이 소유자 계정이 멀티 로그인 세션에서 처음으로 로그인하는 계정이 되어야 합니다.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">네트워크에 연결되어 있지 않음</translation> <translation id="2126242104232412123">새 데스크</translation> <translation id="2127372758936585790">저출력 충전기</translation> +<translation id="2132302418721800944">화면 전체 녹화</translation> <translation id="2135456203358955318">고정 돋보기</translation> <translation id="2144487987174258011">Adobe Flash Player를 업데이트하려면 다시 시작하세요.</translation> <translation id="2180011262286780504">관리자가 화면 캡처 기능을 사용 중지했습니다.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">종료</translation> <translation id="2878884018241093801">최근 항목이 없습니다.</translation> <translation id="2903844815300039659"><ph name="NAME" />에 연결됨, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">화면 캡처</translation> <translation id="2942350706960889382">고정 돋보기</translation> <translation id="2942516765047364088">실행기 위치</translation> <translation id="2946119680249604491">연결 추가</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">문제 신고</translation> <translation id="4527045527269911712">블루투스 기기 '<ph name="DEVICE_NAME" />'에서 페어링 허가를 요청합니다.</translation> <translation id="453661520163887813"><ph name="TIME" /> 후 충전 완료</translation> +<translation id="4538824937723742295">화면 전체 스크린샷 촬영</translation> <translation id="4544483149666270818">녹화할 창을 선택하세요.</translation> <translation id="4560576029703263363">사용</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />시간 <ph name="MINUTES" />분 <ph name="SECONDS" />초</translation> <translation id="4975771730019223894">앱 배지 설정</translation> <translation id="5030687792513154421">시간이 다 됨</translation> +<translation id="5033299697334913360">전체 화면을 캡처하려면 아무 곳이나 클릭하세요</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" />이(가) 새 휴대전화에 연결되었습니다.</translation> <translation id="5035389544768382859">화면 구성 확인</translation> <translation id="5083553833479578423">더 많은 어시스턴트 기능을 사용해 보세요.</translation> <translation id="5136175204352732067">다른 키보드 연결됨</translation> <translation id="5168181903108465623">전송 기기를 사용할 수 있음</translation> <translation id="5170568018924773124">폴더 열기</translation> +<translation id="5176318573511391780">화면 일부 녹화</translation> <translation id="5207949376430453814">텍스트 캐럿 강조표시</translation> <translation id="5208059991603368177">켜짐</translation> <translation id="5222676887888702881">로그아웃</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />에서 <ph name="ROUTE_TITLE" /> 중지</translation> <translation id="5860033963881614850">사용 안함</translation> <translation id="5876666360658629066">부모 코드 입력</translation> +<translation id="5881540930187678962">휴대전화 허브 나중에 설정하기</translation> <translation id="5895138241574237353">다시 시작</translation> <translation id="589817443623831496">지점 스캔</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, 신호 강도 <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">알림 모두 지우기</translation> <translation id="643147933154517414">완료</translation> +<translation id="6431865393913628856">화면 녹화</translation> <translation id="6445835306623867477"><ph name="RECEIVER_NAME" />에 <ph name="ROUTE_TITLE" /> 전송 중</translation> <translation id="6452181791372256707">거부</translation> <translation id="6453179446719226835">언어가 변경됨</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">확인</translation> <translation id="7348093485538360975">터치 키보드</translation> <translation id="735745346212279324">VPN 연결 끊김</translation> +<translation id="7371404428569700291">창 녹화</translation> <translation id="7377169924702866686">Caps Lock이 켜져 있습니다.</translation> <translation id="7378203170292176219">드래그하여 녹화할 영역을 선택하세요.</translation> <translation id="7378594059915113390">미디어 컨트롤</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">메뉴 위치 전환</translation> <translation id="9089416786594320554">입력 방법</translation> <translation id="9091626656156419976">디스플레이 <ph name="DISPLAY_NAME" /> 제거됨</translation> +<translation id="9092749890156285613">최근 화면 캡처 및 다운로드</translation> <translation id="9151726767154816831">업데이트하려면 다시 시작하고 Powerwash하세요.</translation> <translation id="9166331175924255663">Nearby Share 모든 기기에 공개 설정 전환</translation> <translation id="9168436347345867845">나중에</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb index f0a0ca5d..2fd229e 100644 --- a/ash/strings/ash_strings_ky.xtb +++ b/ash/strings/ash_strings_ky.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Тил жөндөөлөрүн көрсөтүү</translation> <translation id="1460620680449458626">Үнү өчүрүлгөн.</translation> <translation id="1467432559032391204">Сол</translation> +<translation id="1475439723810528286">Толук экранды cүрөткө тартуу үчүн каалаган жерин басыңыз</translation> <translation id="1479909375538722835">Калкыма атайын мүмкүнчүлүктөр менюсу</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Бир нече профилге кирүү сеансында ушул негизги каттоо эсеби биринчи кириши керек.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Тармакка туташпай турат</translation> <translation id="2126242104232412123">Жаңы иш такта</translation> <translation id="2127372758936585790">Кубаты төмөн кубаттагыч</translation> +<translation id="2132302418721800944">Толук экран режиминде жаздыруу</translation> <translation id="2135456203358955318">Жалгаштырылган лупа</translation> <translation id="2144487987174258011">Adobe Flash Player'ди жаңыртуу үчүн түзмөктү өчүрүп күйгүзүңүз</translation> <translation id="2180011262286780504">Экранды сүрөткө тартып алуу функциясын администраторуңуз өчүрүп койгон.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Жабуу</translation> <translation id="2878884018241093801">Акыркы терезелер жок</translation> <translation id="2903844815300039659"><ph name="NAME" /> тармагына туташып турат, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Экрандан тартылып алынгандар</translation> <translation id="2942350706960889382">Жалгаштырылган лупа</translation> <translation id="2942516765047364088">Текченин жайгашуусу</translation> <translation id="2946119680249604491">Туташуу кошуу</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Пикир билдирүү</translation> <translation id="4527045527269911712">Bluetooth түзмөгү "<ph name="DEVICE_NAME" />" жупташууга уруксат сурайт.</translation> <translation id="453661520163887813">Толгончо <ph name="TIME" /> бар</translation> +<translation id="4538824937723742295">Толук экрандын скриншотун тартып алуу</translation> <translation id="4544483149666270818">Жаздыруу үчүн терезе тандаңыз</translation> <translation id="4560576029703263363">Күйүк</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> с. <ph name="MINUTES" /> мүн. <ph name="SECONDS" /> сек.</translation> <translation id="4975771730019223894">Колдонмолорго бейжик тагуу</translation> <translation id="5030687792513154421">Убакыт бүттү</translation> +<translation id="5033299697334913360">Толук экранды сүрөткө тартуу үчүн каалаган жерин басыңыз</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> жаңы телефонго туташты</translation> <translation id="5035389544768382859">Дисплейдин конфигурациясын ырастоо</translation> <translation id="5083553833479578423">Жардамчынын башка функцияларын иштетиңиз.</translation> <translation id="5136175204352732067">Башка баскычтоп туташтырылды</translation> <translation id="5168181903108465623">Тышкы экранга чыгаруу түзмөктөрү жеткиликтүү</translation> <translation id="5170568018924773124">Куржунда көрсөтүү</translation> +<translation id="5176318573511391780">Экрандын жарымын видеого жаздырып алуу</translation> <translation id="5207949376430453814">Текст киргизүү учурунда курсор баса белгиленсин</translation> <translation id="5208059991603368177">Күйүк</translation> <translation id="5222676887888702881">Чыгуу</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> бөлмөсүндөгү <ph name="ROUTE_TITLE" /> токтотулсун</translation> <translation id="5860033963881614850">Өчүк</translation> <translation id="5876666360658629066">Ата-энелик кодду киргизүү</translation> +<translation id="5881540930187678962">Phone Hub'ды кийинчерээк жөндөө</translation> <translation id="5895138241574237353">Өчүрүп күйгүзүү</translation> <translation id="589817443623831496">Чекиттик скандоо</translation> <translation id="5901316534475909376">Shift + Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Сигналдын күчү <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Бардык билдирмелерди өчүрүү</translation> <translation id="643147933154517414">Баары даяр</translation> +<translation id="6431865393913628856">Экрандан видео жаздырып алуу</translation> <translation id="6445835306623867477"><ph name="RECEIVER_NAME" /> бөлмөсүндөгү <ph name="ROUTE_TITLE" /></translation> <translation id="6452181791372256707">Четке кагуу</translation> <translation id="6453179446719226835">Тил өзгөртүлдү</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Жарайт, түшүндүм</translation> <translation id="7348093485538360975">Экрандагы баскычтоп</translation> <translation id="735745346212279324">VPN ажыратылды</translation> +<translation id="7371404428569700291">Терезеден видео жаздырып алуу</translation> <translation id="7377169924702866686">Caps Lock күйүп турат.</translation> <translation id="7378203170292176219">Жаздыргыңыз келген аймакты тандоо үчүн сүйрөңүз</translation> <translation id="7378594059915113390">Медианы башкаруу элементтери</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Менюнун абалын өчүрүү/күйгүзүү</translation> <translation id="9089416786594320554">Киргизүү ыкмалары</translation> <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> дисплейи өчүрүлдү</translation> +<translation id="9092749890156285613">Акыркы экрандан тартылгандар жана жүктөлүп алынгандар</translation> <translation id="9151726767154816831">Жаңыртуу үчүн өчүрүп күйгүзүп, "жууп салыңыз".</translation> <translation id="9166331175924255663">Жакын жердеги түзмөктөргө так көрүнүү үчүн Nearby Share режимин өчүрүп күйгүзүңүз.</translation> <translation id="9168436347345867845">Азыр эмес</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb index 003d6da..d5ab331 100644 --- a/ash/strings/ash_strings_lv.xtb +++ b/ash/strings/ash_strings_lv.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Rādīt valodas iestatījumus</translation> <translation id="1460620680449458626">Skaņa ir izslēgta.</translation> <translation id="1467432559032391204">Pa kreisi</translation> +<translation id="1475439723810528286">Pieskarieties jebkurā vietā, lai tvertu visu ekrānu.</translation> <translation id="1479909375538722835">Peldoša pieejamības izvēlne</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Vairākkārtējas pierakstīšanās sesijā šim īpašnieka kontam ir jābūt pirmajam kontam, kurā jāpierakstās.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Nav savienojuma ar tīklu</translation> <translation id="2126242104232412123">Jauna darbvieta</translation> <translation id="2127372758936585790">Lādētājs ar mazu strāvas padevi</translation> +<translation id="2132302418721800944">Ierakstīt visu ekrānu</translation> <translation id="2135456203358955318">Dokota lupa</translation> <translation id="2144487987174258011">Restartējiet, lai atjauninātu Adobe Flash Player</translation> <translation id="2180011262286780504">Jūsu administrators ir atspējojis iespēju izveidot ekrānuzņēmumus.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Beidzēt</translation> <translation id="2878884018241093801">Nav nesenu vienumu</translation> <translation id="2903844815300039659">Izveidots savienojums ar <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Ekrānuzņēmumi</translation> <translation id="2942350706960889382">Dokota lupa</translation> <translation id="2942516765047364088">Plaukta pozīcija</translation> <translation id="2946119680249604491">Pievienot savienojumu</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Atsauksmes</translation> <translation id="4527045527269911712">Bluetooth ierīce “<ph name="DEVICE_NAME" />” vēlas saņemt atļauju, lai izveidotu savienojumu pārī.</translation> <translation id="453661520163887813">Līdz pilnai uzlādei: <ph name="TIME" /></translation> +<translation id="4538824937723742295">Izveidot visa ekrāna uzņēmumu</translation> <translation id="4544483149666270818">Atlasiet logu, kura saturs jāieraksta</translation> <translation id="4560576029703263363">Ieslēgts</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Lietotnes paziņojumu emblēma</translation> <translation id="5030687792513154421">Izmantošanas laiks beidzies</translation> +<translation id="5033299697334913360">Noklikšķiniet jebkurā vietā, lai tvertu visu ekrānu.</translation> <translation id="5035236842988137213">Ierīce <ph name="DEVICE_NAME" /> ir savienota ar jaunu tālruni</translation> <translation id="5035389544768382859">Displeja konfigurācijas apstiprināšana</translation> <translation id="5083553833479578423">Piekļūstiet citām Asistenta funkcijām</translation> <translation id="5136175204352732067">Ir pievienota cita tastatūra</translation> <translation id="5168181903108465623">Pieejamas apraides ierīces</translation> <translation id="5170568018924773124">Rādīt mapē</translation> +<translation id="5176318573511391780">Ierakstīt daļu ekrāna</translation> <translation id="5207949376430453814">Izcelt teksta ievietošanas punktu</translation> <translation id="5208059991603368177">Ieslēgts</translation> <translation id="5222676887888702881">Izrakstīties</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Pārtraukt “<ph name="ROUTE_TITLE" />” apraidi ierīcē “<ph name="RECEIVER_NAME" />”</translation> <translation id="5860033963881614850">Izsl.</translation> <translation id="5876666360658629066">Ievadiet vecāku kodu</translation> +<translation id="5881540930187678962">Tālruņa centrmezgla iestatīšana vēlāk</translation> <translation id="5895138241574237353">Restartēt</translation> <translation id="589817443623831496">Punktu pārlūkošana</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, signāla stiprums: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Visu paziņojumu notīrīšana</translation> <translation id="643147933154517414">Viss gatavs</translation> +<translation id="6431865393913628856">Ierakstīt ekrānu</translation> <translation id="6445835306623867477">“<ph name="ROUTE_TITLE" />” apraide ierīcē “<ph name="RECEIVER_NAME" />”</translation> <translation id="6452181791372256707">Noraidīt</translation> <translation id="6453179446719226835">Valodas maiņa</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Labi, sapratu</translation> <translation id="7348093485538360975">Ekrāntastatūra</translation> <translation id="735745346212279324">VPN ir atvienots</translation> +<translation id="7371404428569700291">Ierakstīt logu</translation> <translation id="7377169924702866686">Funkcija Caps Lock ir ieslēgta.</translation> <translation id="7378203170292176219">Velciet, lai atlasītu apgabalu, kura saturs jāieraksta</translation> <translation id="7378594059915113390">Multivides vadīklas</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Pārslēgt izvēlnes pozīciju</translation> <translation id="9089416786594320554">Ievades metodes</translation> <translation id="9091626656156419976">Displejs <ph name="DISPLAY_NAME" /> tika noņemts.</translation> +<translation id="9092749890156285613">Nesenie ekrānuzņēmumi un lejupielādes</translation> <translation id="9151726767154816831">Lai atjauninātu, restartējiet ierīci un izmantojiet funkciju Powerwash.</translation> <translation id="9166331175924255663">Ieslēgt/izslēgt augstas redzamības režīmu kopīgošanai tuvumā.</translation> <translation id="9168436347345867845">Vēlāk</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb index a3b34eb..abcbce9d 100644 --- a/ash/strings/ash_strings_mk.xtb +++ b/ash/strings/ash_strings_mk.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Прикажи ги поставките за јазикот</translation> <translation id="1460620680449458626">Звукот е исклучен.</translation> <translation id="1467432559032391204">Лево</translation> +<translation id="1475439723810528286">Допрете каде било за да го сликате целиот екран</translation> <translation id="1479909375538722835">Лебдечко мени за пристапност</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Оваа сметка на сопственик треба да биде првата пријавена сметка во сесија со повеќекратно пријавување.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Не е поврзан на мрежа</translation> <translation id="2126242104232412123">Нов работен простор</translation> <translation id="2127372758936585790">Полнач со ниско напојување</translation> +<translation id="2132302418721800944">Снимање цел екран</translation> <translation id="2135456203358955318">Закотвена лупа</translation> <translation id="2144487987174258011">Рестартирајте за да се ажурира Adobe Flash Player</translation> <translation id="2180011262286780504">Администраторот ја оневозможил можноста за снимање на екранот.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Исклучи</translation> <translation id="2878884018241093801">Нема неодамнешни ставки</translation> <translation id="2903844815300039659">Поврзано со <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Слики од екранот</translation> <translation id="2942350706960889382">Закотвена лупа</translation> <translation id="2942516765047364088">Позиција на полица</translation> <translation id="2946119680249604491">Додај врска</translation> @@ -368,6 +371,7 @@ <translation id="4513946894732546136">Повратни информации</translation> <translation id="4527045527269911712">Уредот Bluetooth „<ph name="DEVICE_NAME" />“ бара дозвола за спарување.</translation> <translation id="453661520163887813"><ph name="TIME" /> додека да се наполни</translation> +<translation id="4538824937723742295">Слика од целиот екран</translation> <translation id="4544483149666270818">Изберете прозорец за снимање</translation> <translation id="4560576029703263363">Вклучено</translation> <translation id="4561267230861221837">3G</translation> @@ -423,12 +427,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> ч. <ph name="MINUTES" /> м. <ph name="SECONDS" /> с.</translation> <translation id="4975771730019223894">Значки за апликации</translation> <translation id="5030687792513154421">Времето истече</translation> +<translation id="5033299697334913360">Кликнете каде било за да го сликате целиот екран</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> е поврзан со нов телефон</translation> <translation id="5035389544768382859">Потврдете ја конфигурацијата на екранот</translation> <translation id="5083553833479578423">Отклучете повеќе функции на „Помошникот“.</translation> <translation id="5136175204352732067">Поврзана е друга тастатура</translation> <translation id="5168181903108465623">Достапни се уреди за емитување</translation> <translation id="5170568018924773124">Прикажи во папка</translation> +<translation id="5176318573511391780">Делумно снимање екран</translation> <translation id="5207949376430453814">Нагласи го каретот за текст</translation> <translation id="5208059991603368177">Вклучено</translation> <translation id="5222676887888702881">Одјави се</translation> @@ -489,6 +495,7 @@ <translation id="5837036133683224804">Престани со емитување на <ph name="ROUTE_TITLE" /> на <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Исклучено</translation> <translation id="5876666360658629066">Внесете го кодот на родител</translation> +<translation id="5881540930187678962">Поставете ја Phone Hub подоцна</translation> <translation id="5895138241574237353">Рестартирај</translation> <translation id="589817443623831496">Скенирање по точки</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, јачина на сигналот: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Избриши ги сите известувања</translation> <translation id="643147933154517414">Готово</translation> +<translation id="6431865393913628856">Снимање екран</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> се емитува на <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Отфрли</translation> <translation id="6453179446719226835">Јазикот е променет</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">Добро, сфатив</translation> <translation id="7348093485538360975">Тастатура на екран</translation> <translation id="735745346212279324">VPN е исклучен</translation> +<translation id="7371404428569700291">Снимање прозорец</translation> <translation id="7377169924702866686">Вклучено е Caps Lock.</translation> <translation id="7378203170292176219">Повлечете за да изберете област за снимање</translation> <translation id="7378594059915113390">Контроли за аудиовизуелни медиуми</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Промени ја позицијата на менито</translation> <translation id="9089416786594320554">Влезни методи</translation> <translation id="9091626656156419976">Отстранет екран <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Неодамнешни слики од екранот и преземања</translation> <translation id="9151726767154816831">Престартувајте и фабрички ресетирајте за ажурирање</translation> <translation id="9166331175924255663">Вклучете/исклучете голема видливост за „Споделување во близина“.</translation> <translation id="9168436347345867845">Остави за подоцна</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index 022ebdf..b90949c1 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">ഭാഷാ ക്രമീകരണം കാണിക്കുക</translation> <translation id="1460620680449458626">വോളിയം മ്യൂട്ട് ചെയ്തിരിക്കുന്നു.</translation> <translation id="1467432559032391204">ഇടത്</translation> +<translation id="1475439723810528286">പൂർണ്ണ സ്ക്രീൻ ക്യാപ്ചർ ചെയ്യാൻ എവിടെയെങ്കിലും ടാപ്പ് ചെയ്യുക</translation> <translation id="1479909375538722835">ഫ്ലോട്ടിംഗ് ഉപയോഗസഹായി മെനു</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">ഒന്നിലധികം സൈൻ ഇൻ സെഷനിൽ സൈൻ ഇൻ ചെയ്തിരിക്കുന്ന ആദ്യ അക്കൗണ്ട്, ഈ ഉടമ അക്കൗണ്ടായിരിക്കണം.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">നെറ്റ്വർക്കിൽ കണക്റ്റ് ചെയ്തിട്ടില്ല</translation> <translation id="2126242104232412123">പുതിയ ഡെസ്ക്</translation> <translation id="2127372758936585790">കുറഞ്ഞ തോതിൽ വൈദ്യുതി പ്രവഹിക്കുന്ന ചാർജർ</translation> +<translation id="2132302418721800944">പൂർണ്ണ സ്ക്രീൻ റെക്കോർഡ് ചെയ്യുക</translation> <translation id="2135456203358955318">ഡോക്ക് ചെയ്ത മാഗ്നിഫയർ</translation> <translation id="2144487987174258011">Adobe Flash Player അപ്ഡേറ്റ് ചെയ്യാൻ റീസ്റ്റാർട്ട് ചെയ്യുക</translation> <translation id="2180011262286780504">സ്ക്രീൻ ചിത്രമെടുക്കാനുള്ള ശേഷി നിങ്ങളുടെ അഡ്മിൻ പ്രവർത്തനരഹിതമാക്കി.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">അടയ്ക്കുക</translation> <translation id="2878884018241093801">സമീപകാല ഇനങ്ങൾ ഒന്നുമില്ല</translation> <translation id="2903844815300039659"><ph name="NAME" />-ലേക്ക് കണക്റ്റ് ചെയ്തു, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">സ്ക്രീൻ ക്യാപ്ചറുകൾ</translation> <translation id="2942350706960889382">ഡോക്ക് ചെയ്ത മാഗ്നിഫയർ</translation> <translation id="2942516765047364088">ഷെൽഫ് സ്ഥാനം</translation> <translation id="2946119680249604491">കണക്ഷൻ ചേർക്കുക</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">ഫീഡ്ബാക്ക്</translation> <translation id="4527045527269911712">"<ph name="DEVICE_NAME" />" എന്ന Bluetooth ഉപകരണം ജോടിയാക്കുന്നതിനുള്ള അനുമതി ആവശ്യപ്പെടുന്നു.</translation> <translation id="453661520163887813">പൂർത്തിയാകാൻ ശേഷിക്കുന്ന സമയം <ph name="TIME" /></translation> +<translation id="4538824937723742295">പൂർണ്ണ സ്ക്രീൻ സ്ക്രീൻഷോട്ട് എടുക്കുക</translation> <translation id="4544483149666270818">റെക്കോർഡ് ചെയ്യാൻ വിൻഡോ തിരഞ്ഞെടുക്കുക</translation> <translation id="4560576029703263363">ഓണാണ്</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />മണിക്കൂർ <ph name="MINUTES" />മിനിറ്റ് <ph name="SECONDS" />സെക്കൻഡ്</translation> <translation id="4975771730019223894">ആപ്പ് ബാഡ്ജ് ചെയ്യൽ</translation> <translation id="5030687792513154421">സമയം കഴിഞ്ഞു</translation> +<translation id="5033299697334913360">പൂർണ്ണ സ്ക്രീൻ ക്യാപ്ചർ ചെയ്യാൻ എവിടെയെങ്കിലും ക്ലിക്ക് ചെയ്യുക</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> പുതിയ ഫോണിലേക്ക് കണക്റ്റ് ചെയ്തു</translation> <translation id="5035389544768382859">ഡിസ്പ്ലേ കോൺഫിഗറേഷൻ സ്ഥിരീകരിക്കുക</translation> <translation id="5083553833479578423">കൂടുതൽ അസിസ്റ്റന്റ് ഫീച്ചറുകൾ അൺലോക്ക് ചെയ്യുക.</translation> <translation id="5136175204352732067">വ്യത്യസ്ത കീബോർഡ് കണക്റ്റ് ചെയ്തു</translation> <translation id="5168181903108465623">Cast ഉപകരണങ്ങൾ ലഭ്യമാണ്.</translation> <translation id="5170568018924773124">ഫോള്ഡറില് കാണിക്കുക</translation> +<translation id="5176318573511391780">ഭാഗിക സ്ക്രീൻ റെക്കോർഡ് ചെയ്യുക</translation> <translation id="5207949376430453814">ടെക്സ്റ്റ് കാരറ്റ് ഹൈലൈറ്റ് ചെയ്യുക</translation> <translation id="5208059991603368177">ഓണാണ്</translation> <translation id="5222676887888702881">സൈൻ ഔട്ട് ചെയ്യുക</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />-ൽ <ph name="ROUTE_TITLE" /> നിർത്തുക</translation> <translation id="5860033963881614850">ഓഫാക്കുക</translation> <translation id="5876666360658629066">രക്ഷാകർതൃ കോഡ് നൽകുക</translation> +<translation id="5881540930187678962">ഫോൺ ഹബ് പിന്നീട് സജ്ജീകരിക്കുക</translation> <translation id="5895138241574237353">പുനരാരംഭിക്കുക</translation> <translation id="589817443623831496">പോയിന്റ് സ്കാൻ ചെയ്യൽ</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, സിഗ്നൽ ശക്തി <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">എല്ലാ അറിയിപ്പുകളും മായ്ക്കുക</translation> <translation id="643147933154517414">എല്ലാം ചെയ്തു</translation> +<translation id="6431865393913628856">സ്ക്രീൻ റെക്കോർഡ്</translation> <translation id="6445835306623867477"><ph name="RECEIVER_NAME" />-ൽ <ph name="ROUTE_TITLE" /></translation> <translation id="6452181791372256707">നിരസിക്കുക</translation> <translation id="6453179446719226835">ഭാഷ മാറ്റിയിരിക്കുന്നു</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">മനസ്സിലായി</translation> <translation id="7348093485538360975">ഓൺ-സ്ക്രീൻ കീബോർഡ്</translation> <translation id="735745346212279324">VPN വിച്ഛേദിച്ചു</translation> +<translation id="7371404428569700291">വിൻഡോ റെക്കോർഡ് ചെയ്യുക</translation> <translation id="7377169924702866686">Caps Lock ഓൺ ആണ്.</translation> <translation id="7378203170292176219">റെക്കോർഡ് ചെയ്യുന്നതിന് ഒരു ഏരിയ തിരഞ്ഞെടുക്കാൻ വലിച്ചിടുക</translation> <translation id="7378594059915113390">മീഡിയ നിയന്ത്രണങ്ങൾ</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">മെനുവിൻ്റെ സ്ഥാനം മാറ്റുക</translation> <translation id="9089416786594320554">ഇൻപുട്ട് രീതികൾ</translation> <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> ഡിസ്പ്ലേ നീക്കംചെയ്തു</translation> +<translation id="9092749890156285613">അടുത്തിടെയുള്ള സ്ക്രീൻ ക്യാപ്ചറുകളും ഡൗൺലോഡുകളും</translation> <translation id="9151726767154816831">അപ്ഡേറ്റ് ചെയ്യാൻ, റീസ്റ്റാർട്ട് ചെയ്ത് powerwash ചെയ്യുക</translation> <translation id="9166331175924255663">സമീപമുള്ള പങ്കിടലിന്റെ ഉയർന്ന ദൃശ്യപരത മാറ്റുക.</translation> <translation id="9168436347345867845">ഇത് പിന്നീട് ചെയ്യുക</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index 510403e..759a14b 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Tunjukkan tetapan bahasa</translation> <translation id="1460620680449458626">Kelantangan diredamkan.</translation> <translation id="1467432559032391204">Kiri</translation> +<translation id="1475439723810528286">Ketik mana-mana bahagian untuk menangkap skrin penuh</translation> <translation id="1479909375538722835">Menu kebolehaksesan terapung</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Akaun pemilik ini perlu menjadi akaun dilog masuk yang pertama dalam sesi berbilang log masuk.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Tidak bersambung ke rangkaian</translation> <translation id="2126242104232412123">Meja baharu</translation> <translation id="2127372758936585790">Pengecas berkuasa rendah</translation> +<translation id="2132302418721800944">Rakam skrin penuh</translation> <translation id="2135456203358955318">Penggadang didok</translation> <translation id="2144487987174258011">Mulakan semula untuk mengemas kini Pemain Adobe Flash</translation> <translation id="2180011262286780504">Keupayaan untuk menangkap skrin telah dilumpuhkan oleh pentadbir anda.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Mematikan</translation> <translation id="2878884018241093801">Tiada item terbaharu</translation> <translation id="2903844815300039659">Disambungkan ke <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Tangkapan skrin</translation> <translation id="2942350706960889382">Penggadang Didok</translation> <translation id="2942516765047364088">Kedudukan rak</translation> <translation id="2946119680249604491">Tambah sambungan</translation> @@ -368,6 +371,7 @@ <translation id="4513946894732546136">Maklum balas</translation> <translation id="4527045527269911712">Peranti Bluetooth "<ph name="DEVICE_NAME" />" ingin kebenaran untuk berpasangan.</translation> <translation id="453661520163887813"><ph name="TIME" /> sehingga penuh</translation> +<translation id="4538824937723742295">Ambil tangkapan skrin bagi skrin penuh</translation> <translation id="4544483149666270818">Pilih tetingkap untuk dirakam</translation> <translation id="4560576029703263363">Dihidupkan</translation> <translation id="4561267230861221837">3G</translation> @@ -423,12 +427,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />j <ph name="MINUTES" />m <ph name="SECONDS" />s</translation> <translation id="4975771730019223894">Pelencanaan apl</translation> <translation id="5030687792513154421">Masa sudah tamat</translation> +<translation id="5033299697334913360">Klik mana-mana bahagian untuk menangkap skrin penuh</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> disambungkan ke telefon baharu</translation> <translation id="5035389544768382859">Sahkan Konfigurasi Paparan</translation> <translation id="5083553833479578423">Buka kunci pelbagai lagi ciri Assistant.</translation> <translation id="5136175204352732067">Papan kekunci lain disambungkan</translation> <translation id="5168181903108465623">Peranti Cast tersedia</translation> <translation id="5170568018924773124">Paparkan dalam folder</translation> +<translation id="5176318573511391780">Rakam skrin separa</translation> <translation id="5207949376430453814">Serlahkan karet teks</translation> <translation id="5208059991603368177">Hidup</translation> <translation id="5222676887888702881">Log keluar</translation> @@ -489,6 +495,7 @@ <translation id="5837036133683224804">Hentikan <ph name="ROUTE_TITLE" /> pada <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Dimatikan</translation> <translation id="5876666360658629066">Masukkan kod ibu bapa</translation> +<translation id="5881540930187678962">Sediakan Hab Telefon kemudian</translation> <translation id="5895138241574237353">Mulakan Semula</translation> <translation id="589817443623831496">Pengimbasan titik</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Kosongkan semua pemberitahuan</translation> <translation id="643147933154517414">Selesai</translation> +<translation id="6431865393913628856">Rakaman skrin</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> pada <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Tolak</translation> <translation id="6453179446719226835">Bahasa telah ditukar</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">Ok, faham</translation> <translation id="7348093485538360975">Papan kekunci pada skrin</translation> <translation id="735745346212279324">VPN diputuskan sambungan</translation> +<translation id="7371404428569700291">Rakam tetingkap</translation> <translation id="7377169924702866686">Caps Lock dihidupkan.</translation> <translation id="7378203170292176219">Seret untuk memilih kawasan yang hendak dirakam</translation> <translation id="7378594059915113390">Kawalan Media</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Togol kedudukan menu</translation> <translation id="9089416786594320554">Kaedah input</translation> <translation id="9091626656156419976">Paparan <ph name="DISPLAY_NAME" /> dialih keluar</translation> +<translation id="9092749890156285613">Tangkapan skrin dan muat turun baru-baru ini</translation> <translation id="9151726767154816831">Mulakan semula dan powerwash untuk mengemas kini</translation> <translation id="9166331175924255663">Togol keterlihatan tinggi Kongsi Berdekatan.</translation> <translation id="9168436347345867845">Lakukan kemudian</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb index 27dc098..7056ac3 100644 --- a/ash/strings/ash_strings_my.xtb +++ b/ash/strings/ash_strings_my.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">ဘာသာစကားဆက်တင်များကို ပြရန်</translation> <translation id="1460620680449458626">အသံ တိတ်ထားသည်။</translation> <translation id="1467432559032391204">ဘယ်</translation> +<translation id="1475439723810528286">ဖန်သားပြင်အပြည့် ရိုက်ယူရန် မည်သည့်နေရာကိုမဆို တို့ပါ</translation> <translation id="1479909375538722835">မျောနေသော အများသုံးစွဲနိုင်မှု မီနူး</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">ဒီပိုင်ရှင် အကောင့်မှာ အကြိမ်ကြိမ် လက်မှတ်ထိုးရမည့် အစီအစဉ် ထဲက ပထမဦးဆုံး လက်မှတ်ထိုး ဝင်သည့် အကောင့် ဖြစ်ပါသည်။</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">ကွန်ရက်ချိတ်ဆက်မထားပါ</translation> <translation id="2126242104232412123">မျက်နှာပြင်နေရာ အသစ်</translation> <translation id="2127372758936585790">ပါဝါနိမ့် အားသွင်းစက်</translation> +<translation id="2132302418721800944">ဖန်သားပြင်အပြည့် ရိုက်ကူးရန်</translation> <translation id="2135456203358955318">နေရာချထားသည့် မှန်ဘီလူး</translation> <translation id="2144487987174258011">Adobe Flash Player ကို အပ်ဒိတ်လုပ်ရန် ပြန်စပါ</translation> <translation id="2180011262286780504">သင်၏စီမံခန့်ခွဲသူက ဖန်သားပြင်ရိုက်ယူနိုင်မှုကို ပိတ်လိုက်သည်။</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">ပိတ်ရန်</translation> <translation id="2878884018241093801">မကြာမီကဖွင့်ထားသည်များ မရှိပါ</translation> <translation id="2903844815300039659"><ph name="NAME" /> သို့ ချိတ်ဆက်ထားသည်၊ <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">ဖန်သားပြင် ရိုက်ယူမှုများ</translation> <translation id="2942350706960889382">နေရာချထားသည့် မှန်ဘီလူး</translation> <translation id="2942516765047364088">စင်၏ အနေအထား</translation> <translation id="2946119680249604491">ချိတ်ဆက်မှုကို ထည့်ရန်</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">အကြံပြုချက်</translation> <translation id="4527045527269911712">ဘလူးတုသ် ကိရိယာ "<ph name="DEVICE_NAME" />" က ချိတ်တွဲရန် ခွင့်ပြုချက် ရယူလိုသည်။</translation> <translation id="453661520163887813">ပြည့်သည်အထိ <ph name="TIME" /></translation> +<translation id="4538824937723742295">ဖန်သားပြင်အပြည့် ဓာတ်ပုံရိုက်ရန်</translation> <translation id="4544483149666270818">ရိုက်ကူးရန် ဝင်းဒိုးတစ်ခု ရွေးပါ</translation> <translation id="4560576029703263363">ဖွင့်ရန်</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />h <ph name="MINUTES" />m <ph name="SECONDS" />s</translation> <translation id="4975771730019223894">အက်ပ်သင်္ကေတ</translation> <translation id="5030687792513154421">အချိန်စေ့ပါပြီ</translation> +<translation id="5033299697334913360">ဖန်သားပြင်အပြည့် ရိုက်ယူရန် မည်သည့်နေရာကိုမဆို နှိပ်ပါ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> က ဖုန်းအသစ်သို့ ချိတ်ဆက်ထားသည်</translation> <translation id="5035389544768382859">ဖန်သားပြင် စီစဉ်သတ်မှတ်မှု အတည်ပြုခြင်း</translation> <translation id="5083553833479578423">နောက်ထပ် Assistant ဝန်ဆောင်မှုများကို ဖွင့်ပါ</translation> <translation id="5136175204352732067">မတူညီသည့် ကီးဘုတ်ကို ချိတ်ဆက်ထားသည်</translation> <translation id="5168181903108465623">Cast စက်ကိရိယာများ ရနိုင်၏</translation> <translation id="5170568018924773124">ဖိုလ်ဒါ ထဲမှာ ပြရန်</translation> +<translation id="5176318573511391780">ဖန်သားပြင်တစ်စိတ်တစ်ပိုင်းကို ရိုက်ကူးရန်</translation> <translation id="5207949376430453814">စာရိုက်ထည့်ရန်အကွက်ကို မြင်သာထင်သာဖြစ်အောင်ပြုလုပ်ရန်</translation> <translation id="5208059991603368177">ဖွင့်ထားသည်</translation> <translation id="5222676887888702881">ထွက်ခွာရန်</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> တွင် <ph name="ROUTE_TITLE" /> ကို ရပ်ရန်</translation> <translation id="5860033963881614850">ပိတ်ထား</translation> <translation id="5876666360658629066">မိဘကုဒ်ကို ထည့်ပါ</translation> +<translation id="5881540930187678962">'ဖုန်းစင်တာ' ကို နောင်တွင် စနစ်ထည့်သွင်းမည်</translation> <translation id="5895138241574237353">ပြန်စတင်မည</translation> <translation id="589817443623831496">အတိအကျ ရှာဖွေခြင်း</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />၊ လိုင်းဆွဲအား <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">သတိပေးချက်အားလုံးကို ဖယ်ရှားပါ</translation> <translation id="643147933154517414">အားလုံးပြီးပါပြီ</translation> +<translation id="6431865393913628856">ဖန်သားပြင် ရိုက်ကူးရန်</translation> <translation id="6445835306623867477"><ph name="RECEIVER_NAME" /> တွင် <ph name="ROUTE_TITLE" /></translation> <translation id="6452181791372256707">ပယ်ချရန်</translation> <translation id="6453179446719226835">ဘာသာစကား ပြောင်းထားပါသည်</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">OK</translation> <translation id="7348093485538360975">မျက်နှာပြင်ပေါ်ရှိ လက်ကွက်</translation> <translation id="735745346212279324">VPN ချိတ်ဆက်မှု ဖြတ်ခဲ့</translation> +<translation id="7371404428569700291">ဝင်းဒိုးကို ရိုက်ကူးရန်</translation> <translation id="7377169924702866686">စာလုံးကြီး ဖိနှိပ်ထား။</translation> <translation id="7378203170292176219">ရိုက်ကူးမည့်နေရာ ရွေးရန် ဖိဆွဲပါ</translation> <translation id="7378594059915113390">မီဒီယာ ထိန်းချုပ်မှုများ</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">မီနူးအနေအထား ပိတ်ဖွင့်လုပ်ရန်</translation> <translation id="9089416786594320554">ထည့်သွင်းနည်းများ</translation> <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> မျက်နှာပြင်ပြသမှုကို ဖယ်ရှားလိုက်ပါပြီ</translation> +<translation id="9092749890156285613">လတ်တလော ဖန်သားပြင်ရိုက်ယူမှုနှင့် ဒေါင်းလုဒ်များ</translation> <translation id="9151726767154816831">အဆင့်မြှင့်ရန် အစမှပြန်စပြီးနောက် powerwash ပြုလုပ်ပါ</translation> <translation id="9166331175924255663">'အနီးတစ်ဝိုက် မျှဝေခြင်း' အထူးမြင်နိုင်မှုကို ပြောင်းပေးသည်။</translation> <translation id="9168436347345867845">နောက်မှလုပ်ရန်</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb index bdc8e779..f231c62 100644 --- a/ash/strings/ash_strings_or.xtb +++ b/ash/strings/ash_strings_or.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">ଭାଷାର ସେଟିଂସ୍ ଦେଖାନ୍ତୁ</translation> <translation id="1460620680449458626">ଭଲ୍ୟୁମ୍ ମ୍ୟୁଟ୍ କରାଯାଇଛି।</translation> <translation id="1467432559032391204">ବାମ</translation> +<translation id="1475439723810528286">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍ କ୍ୟାପଚର୍ କରିବାକୁ ସ୍କ୍ରିନର ଯେ କୌଣସି ସ୍ଥାନରେ ଟାପ୍ କରନ୍ତୁ</translation> <translation id="1479909375538722835">ଫ୍ଲୋଟିଂ ଆକ୍ସେସିବିଲିଟୀ ମେନୁ</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">ଏହି ମାଲିକଙ୍କ ଆକାଉଣ୍ଟଟିକୁ ସର୍ବପ୍ରଥମେ ସାଇନ୍ ଇନ୍ କରିଥିବା ଆକାଉଣ୍ଟ ଭାବରେ ରଖିବା ଆବଶ୍ୟକ ଅଟେ৷</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">ନେଟ୍ୱାର୍କ ସହିତ ସଂଯୁକ୍ତ ହୋଇ ନାହିଁ</translation> <translation id="2126242104232412123">ନୂଆ ଡେସ୍କ</translation> <translation id="2127372758936585790">କମ୍-ଶକ୍ତି ବିଶିଷ୍ଟ ଚାର୍ଜର୍</translation> +<translation id="2132302418721800944">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍ ରେକର୍ଡ କରନ୍ତୁ</translation> <translation id="2135456203358955318">ଡକ୍ଡ ମ୍ୟାଗ୍ନିଫାୟର୍</translation> <translation id="2144487987174258011">Adobe ଫ୍ଲାସ୍ ପ୍ଲେୟାର୍କୁ ଅପ୍ଡେଟ୍ କରିବା ପାଇଁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ</translation> <translation id="2180011262286780504">ସ୍କ୍ରିନ୍ କ୍ୟାପଚର୍ କରିବାର କ୍ଷମତା ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ଦ୍ୱାରା ଅକ୍ଷମ କରାଯାଇଛି।</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">ବନ୍ଦ କରନ୍ତୁ</translation> <translation id="2878884018241093801">କୌଣସି ସାମ୍ପ୍ରତିକ ଆଇଟମ୍ ନାହିଁ</translation> <translation id="2903844815300039659"><ph name="NAME" />, <ph name="STRENGTH" /> ସହିତ ସଂଯୁକ୍ତ ଅଛି</translation> +<translation id="2914580577416829331">ସ୍କ୍ରିନ୍ କ୍ୟାପଚରଗୁଡ଼ିକ</translation> <translation id="2942350706960889382">ଡକ୍ଡ ମ୍ୟାଗ୍ନିଫାୟର୍</translation> <translation id="2942516765047364088">ସେଲ୍ଫ ସ୍ଥିତି</translation> <translation id="2946119680249604491">ସଂଯୋଗ ଯୋଗ କରନ୍ତୁ</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">ମତାମତ</translation> <translation id="4527045527269911712">"<ph name="DEVICE_NAME" />" ବ୍ଲୁଟୁଥ୍ ଡିଭାଇସ୍ ପେୟାର୍ କରିବାକୁ ଅନୁମତି ଚାହୁଁଛି।</translation> <translation id="453661520163887813">ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବାକୁ ଆଉ <ph name="TIME" /> ଅଛି</translation> +<translation id="4538824937723742295">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନର ସ୍କ୍ରିନସଟ୍ ନିଅନ୍ତୁ</translation> <translation id="4544483149666270818">ରେକର୍ଡ କରିବାକୁ ଏକ ୱିଣ୍ଡୋ ଚୟନ କରନ୍ତୁ</translation> <translation id="4560576029703263363">ଚାଲୁ</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />ଘ <ph name="MINUTES" />ମି <ph name="SECONDS" />ସେ</translation> <translation id="4975771730019223894">ଆପ୍ ବ୍ୟାଜିଂ</translation> <translation id="5030687792513154421">ସମୟ ଶେଷ ହୋଇଛି</translation> +<translation id="5033299697334913360">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍ କ୍ୟାପଚର୍ କରିବାକୁ ସ୍କ୍ରିନର ଯେ କୌଣସି ସ୍ଥାନରେ କ୍ଲିକ୍ କରନ୍ତୁ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ଏକ ନୂଆ ଫୋନ୍ ସହ ସଂଯୁକ୍ତ ହୋଇଛି</translation> <translation id="5035389544768382859">ଡିସପ୍ଲେ କନଫିଗରେସନ୍ ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation> <translation id="5083553833479578423">ଆହୁରି ଆସିଷ୍ଟାଣ୍ଟ ବୈଶିଷ୍ଟ୍ୟଗୁଡ଼ିକ ଅନ୍ଲକ୍ କରନ୍ତୁ</translation> <translation id="5136175204352732067">ଅଲଗା କୀବୋର୍ଡ ସଂଯୁକ୍ତ ହୋଇଛି</translation> <translation id="5168181903108465623">କାଷ୍ଟ ଡିଭାଇସ୍ ଉପଲବ୍ଧ</translation> <translation id="5170568018924773124">ଫୋଲ୍ଡରରେ ଦେଖାନ୍ତୁ</translation> +<translation id="5176318573511391780">ଆଂଶିକ ସ୍କ୍ରିନ୍ ରେକର୍ଡ କରନ୍ତୁ</translation> <translation id="5207949376430453814">ଟେକ୍ସଟ୍ କ୍ୟାରେଟ୍ ହାଇଲାଇଟ୍ କରନ୍ତୁ</translation> <translation id="5208059991603368177">ଚାଲୁ ଅଛି</translation> <translation id="5222676887888702881">ସାଇନ୍ ଆଉଟ୍ କରନ୍ତୁ</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />ରେ <ph name="ROUTE_TITLE" /> ବନ୍ଦ କରନ୍ତୁ</translation> <translation id="5860033963881614850">ବନ୍ଦ ଅଛି</translation> <translation id="5876666360658629066">ବାପାମା କୋଡ୍ ଲେଖନ୍ତୁ</translation> +<translation id="5881540930187678962">ଫୋନ୍ ହବ୍ ପରେ ସେଟ୍ ଅପ୍ କରନ୍ତୁ</translation> <translation id="5895138241574237353">ପୁନଃଆରମ୍ଭ</translation> <translation id="589817443623831496">ପଏଣ୍ଟ ସ୍କାନ୍ କରାଯାଉଛି</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, ସିଗ୍ନାଲ୍ର କ୍ଷମତା <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">ସମସ୍ତ ବିଜ୍ଞପ୍ତି ଖାଲି କରନ୍ତୁ।</translation> <translation id="643147933154517414">ସମସ୍ତ କାମ ହୋଇଗଲା!</translation> +<translation id="6431865393913628856">ସ୍କ୍ରିନ୍ ରେକର୍ଡ</translation> <translation id="6445835306623867477"><ph name="RECEIVER_NAME" />ରେ<ph name="ROUTE_TITLE" /></translation> <translation id="6452181791372256707">ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ</translation> <translation id="6453179446719226835">ଭାଷା ପରିବର୍ତ୍ତନ କରାଯାଇଛି</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">ଠିକ ଅଛି, ଏହା ବୁଝିଗଲି</translation> <translation id="7348093485538360975">ଅନ୍-ସ୍କ୍ରିନ୍ କୀ'ବୋର୍ଡ</translation> <translation id="735745346212279324">VPN ବିଚ୍ଛିନ୍ନ ହୋଇଛି</translation> +<translation id="7371404428569700291">ୱିଣ୍ଡୋ ରେକର୍ଡ କରନ୍ତୁ</translation> <translation id="7377169924702866686">କ୍ୟାପ୍ସ ଲକ୍ ଅନ୍ ଅଛି।</translation> <translation id="7378203170292176219">ରେକର୍ଡ କରିବାର କ୍ଷେତ୍ରକୁ ଚୟନ କରିବାକୁ ଡ୍ରାଗ୍ କରନ୍ତୁ</translation> <translation id="7378594059915113390">ମିଡିଆକୁ ନିୟନ୍ତ୍ରଣ କରୁଛି</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">ଟୋଗଲ୍ ମେନୁ ଅବସ୍ଥିତି</translation> <translation id="9089416786594320554">ଇନ୍ପୁଟ୍ ପଦ୍ଧତି</translation> <translation id="9091626656156419976"><ph name="DISPLAY_NAME" />ରୁ ଡିସ୍ପ୍ଲେ କାଢ଼ି ଦିଅନ୍ତୁ</translation> +<translation id="9092749890156285613">ବର୍ତ୍ତମାନର ସ୍କ୍ରିନ୍ କ୍ୟାପଚର୍ ଏବଂ ଡାଉନଲୋଡଗୁଡ଼ିକ</translation> <translation id="9151726767154816831">ଅପ୍ଡେଟ୍ କରିବା ପାଇଁ ରିଷ୍ଟାର୍ଟ ଓ ପାୱର୍ୱାସ୍ କରନ୍ତୁ</translation> <translation id="9166331175924255663">Nearby Shareର ଉଚ୍ଚ ଭିଜିବିଲିଟୀକୁ ଟୋଗଲ୍ କରନ୍ତୁ।</translation> <translation id="9168436347345867845">ଏହାକୁ ପରେ କରନ୍ତୁ</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index d9dec869..f79d0e8 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Mostrar configurações de idioma</translation> <translation id="1460620680449458626">O som está desativado.</translation> <translation id="1467432559032391204">À esquerda</translation> +<translation id="1475439723810528286">Toque em qualquer lugar para capturar a tela cheia</translation> <translation id="1479909375538722835">Menu de acessibilidade flutuante</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Esta conta de proprietário precisa ser a primeira conta a fazer login em uma sessão de login múltiplo.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Sem conexão com a rede</translation> <translation id="2126242104232412123">Novo espaço</translation> <translation id="2127372758936585790">Carregador de baixa potência</translation> +<translation id="2132302418721800944">Gravar tela cheia</translation> <translation id="2135456203358955318">Lupa em área fixa</translation> <translation id="2144487987174258011">Reinicie para atualizar o Adobe Flash Player</translation> <translation id="2180011262286780504">A captura de tela foi desativada pelo administrador.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Desligar</translation> <translation id="2878884018241093801">Nenhum item recente</translation> <translation id="2903844815300039659">Conectado a <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Capturas de tela</translation> <translation id="2942350706960889382">Lupa em área fixa</translation> <translation id="2942516765047364088">Posição da estante</translation> <translation id="2946119680249604491">Adicionar conexão</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Comentários</translation> <translation id="4527045527269911712">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" deseja permissão para realizar o pareamento.</translation> <translation id="453661520163887813"><ph name="TIME" /> até completar</translation> +<translation id="4538824937723742295">Capturar tela cheia</translation> <translation id="4544483149666270818">Selecione uma janela para a gravação</translation> <translation id="4560576029703263363">Ativado</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />h<ph name="MINUTES" />min<ph name="SECONDS" />s</translation> <translation id="4975771730019223894">Notificações de apps</translation> <translation id="5030687792513154421">Tempo esgotado</translation> +<translation id="5033299697334913360">Clique em qualquer lugar para capturar a tela cheia</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> conectado a um novo smartphone</translation> <translation id="5035389544768382859">Confirmar configuração da tela</translation> <translation id="5083553833479578423">Desbloqueie mais recursos do Assistente.</translation> <translation id="5136175204352732067">Teclado diferente conectado</translation> <translation id="5168181903108465623">Dispositivos de transmissão disponíveis</translation> <translation id="5170568018924773124">Mostrar na pasta</translation> +<translation id="5176318573511391780">Gravar tela parcial</translation> <translation id="5207949376430453814">Destacar cursor de texto</translation> <translation id="5208059991603368177">Ativado</translation> <translation id="5222676887888702881">Sair</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Parar <ph name="ROUTE_TITLE" /> para <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Desativado</translation> <translation id="5876666360658629066">Digite o código de pai/mãe</translation> +<translation id="5881540930187678962">Configurar o recurso "Seu smartphone" mais tarde</translation> <translation id="5895138241574237353">Reiniciar</translation> <translation id="589817443623831496">Verificação por ponto</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, intensidade do sinal em <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Limpar todas as notificações</translation> <translation id="643147933154517414">Pronto</translation> +<translation id="6431865393913628856">Gravação de tela</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> para <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Rejeitar</translation> <translation id="6453179446719226835">O idioma foi alterado</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">Ok, entendi.</translation> <translation id="7348093485538360975">Teclado virtual</translation> <translation id="735745346212279324">VPN desconectada</translation> +<translation id="7371404428569700291">Gravar janela</translation> <translation id="7377169924702866686">O Caps Lock está ativado.</translation> <translation id="7378203170292176219">Arraste para selecionar uma área para a gravação</translation> <translation id="7378594059915113390">Controles de mídia</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Alternar posição do menu</translation> <translation id="9089416786594320554">Métodos de entrada</translation> <translation id="9091626656156419976">Tela <ph name="DISPLAY_NAME" /> removida</translation> +<translation id="9092749890156285613">Capturas de tela e downloads recentes</translation> <translation id="9151726767154816831">Reinicie e execute um powerwash para atualizar</translation> <translation id="9166331175924255663">Alternar a alta visibilidade de Compartilhar por proximidade.</translation> <translation id="9168436347345867845">Mais tarde</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index 381d752..7f4d108 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Arată setările pentru limbă</translation> <translation id="1460620680449458626">Sunetul este dezactivat.</translation> <translation id="1467432559032391204">Stânga</translation> +<translation id="1475439723810528286">Atinge oriunde pentru a captura ecranul complet</translation> <translation id="1479909375538722835">Meniul de accesibilitate flotant</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Acest cont de proprietar trebuie să fie primul conectat într-o sesiune de conectare multiplă.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Fără conexiune la rețea</translation> <translation id="2126242104232412123">Desktop nou</translation> <translation id="2127372758936585790">Încărcător de putere joasă</translation> +<translation id="2132302418721800944">Înregistrează ecranul complet</translation> <translation id="2135456203358955318">Lupă andocată</translation> <translation id="2144487987174258011">Repornește ca să actualizezi Adobe Flash Player</translation> <translation id="2180011262286780504">Funcția de realizare a capturilor de ecran a fost dezactivată de administrator.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Închide</translation> <translation id="2878884018241093801">Niciun element recent</translation> <translation id="2903844815300039659">Conectat la <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Capturi de ecran</translation> <translation id="2942350706960889382">Lupă andocată</translation> <translation id="2942516765047364088">Poziție raft</translation> <translation id="2946119680249604491">Adăugați o conexiune</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Feedback</translation> <translation id="4527045527269911712">Dispozitivul Bluetooth „<ph name="DEVICE_NAME" />” solicită permisiunea de a se conecta.</translation> <translation id="453661520163887813"><ph name="TIME" /> până la încărcare completă</translation> +<translation id="4538824937723742295">Capturează ecranul complet</translation> <translation id="4544483149666270818">Selectează o fereastră de înregistrat</translation> <translation id="4560576029703263363">Activat</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min. <ph name="SECONDS" /> sec.</translation> <translation id="4975771730019223894">Marcarea cu insignă a aplicațiilor</translation> <translation id="5030687792513154421">Timpul a expirat</translation> +<translation id="5033299697334913360">Dă clic oriunde pentru a captura ecranul complet</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> conectat la un telefon nou</translation> <translation id="5035389544768382859">Confirmă configurația afișajului</translation> <translation id="5083553833479578423">Deblochează mai multe funcții ale Asistentului.</translation> <translation id="5136175204352732067">Altă tastatură conectată</translation> <translation id="5168181903108465623">Dispozitive de proiecție disponibile</translation> <translation id="5170568018924773124">Afișează în dosar</translation> +<translation id="5176318573511391780">Înregistrează ecranul parțial</translation> <translation id="5207949376430453814">Evidențiază cursorul pentru text</translation> <translation id="5208059991603368177">Activată</translation> <translation id="5222676887888702881">Deconectează-te</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Întrerupe <ph name="ROUTE_TITLE" /> pe <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Dezactivat</translation> <translation id="5876666360658629066">Introdu codul pentru părinte</translation> +<translation id="5881540930187678962">Configurează mai târziu Phone Hub</translation> <translation id="5895138241574237353">Reîncepe</translation> <translation id="589817443623831496">Scanare punctuală</translation> <translation id="5901316534475909376">Shift + Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, puterea semnalului: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Șterge toate notificările</translation> <translation id="643147933154517414">Gata</translation> +<translation id="6431865393913628856">Înregistrarea ecranului</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> pe <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Respingeți</translation> <translation id="6453179446719226835">Limba a fost schimbată</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">OK, am înțeles</translation> <translation id="7348093485538360975">Tastatură pe ecran</translation> <translation id="735745346212279324">Rețea VPN deconectată</translation> +<translation id="7371404428569700291">Înregistrează fereastra</translation> <translation id="7377169924702866686">Tasta Caps Lock este activată.</translation> <translation id="7378203170292176219">Trage pentru a selecta o zonă de înregistrat</translation> <translation id="7378594059915113390">Comenzi media</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Comută poziția meniului</translation> <translation id="9089416786594320554">Introducere</translation> <translation id="9091626656156419976">S-a eliminat afișajul <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Capturi de ecran și descărcări recente</translation> <translation id="9151726767154816831">Pentru a actualiza, repornește și folosește Powerwash</translation> <translation id="9166331175924255663">Activează/dezactivează vizibilitatea crescută pentru Nearby Share.</translation> <translation id="9168436347345867845">Mai târziu</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb index 5c2e11e..32b85268 100644 --- a/ash/strings/ash_strings_ru.xtb +++ b/ash/strings/ash_strings_ru.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Показать языковые настройки</translation> <translation id="1460620680449458626">Сейчас звук выключен.</translation> <translation id="1467432559032391204">Слева</translation> +<translation id="1475439723810528286">Чтобы снять экран полностью, нажмите в любом его месте</translation> <translation id="1479909375538722835">Плавающее меню специальных возможностей</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">При одновременной работе в нескольких аккаунтах необходимо сначала зайти в аккаунт владельца.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Нет подключения к сети</translation> <translation id="2126242104232412123">Добавить рабочий стол</translation> <translation id="2127372758936585790">Маломощное зарядное устройство</translation> +<translation id="2132302418721800944">Запись видео со всего экрана</translation> <translation id="2135456203358955318">Закрепленная лупа</translation> <translation id="2144487987174258011">Перезагрузите, чтобы обновить Adobe Flash Player</translation> <translation id="2180011262286780504">Функция записи экрана отключена администратором.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Завершить работу</translation> <translation id="2878884018241093801">Недавних окон нет.</translation> <translation id="2903844815300039659">Подключено к сети <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Снимки экрана</translation> <translation id="2942350706960889382">Закрепленная лупа</translation> <translation id="2942516765047364088">Положение панели запуска</translation> <translation id="2946119680249604491">Добавить подключение</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Отзыв</translation> <translation id="4527045527269911712">Устройству <ph name="DEVICE_NAME" /> требуется разрешение на подключение через Bluetooth.</translation> <translation id="453661520163887813">До полной зарядки <ph name="TIME" /></translation> +<translation id="4538824937723742295">Сделать снимок всего экрана</translation> <translation id="4544483149666270818">Выберите окно для записи</translation> <translation id="4560576029703263363">Включено</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> ч. <ph name="MINUTES" /> мин. <ph name="SECONDS" /> сек.</translation> <translation id="4975771730019223894">Число уведомлений на значке приложения</translation> <translation id="5030687792513154421">Время вышло</translation> +<translation id="5033299697334913360">Чтобы снять экран полностью, нажмите в любом его месте</translation> <translation id="5035236842988137213">Устройство <ph name="DEVICE_NAME" /> подключено к новому телефону</translation> <translation id="5035389544768382859">Подтвердите конфигурацию экрана</translation> <translation id="5083553833479578423">Получите доступ к другим возможностям Ассистента.</translation> <translation id="5136175204352732067">Подключена другая клавиатура</translation> <translation id="5168181903108465623">Доступны устройства для трансляции</translation> <translation id="5170568018924773124">Показать в папке</translation> +<translation id="5176318573511391780">Запись видео с части экрана</translation> <translation id="5207949376430453814">Выделять курсор при вводе текста</translation> <translation id="5208059991603368177">Включено</translation> <translation id="5222676887888702881">Выйти</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Остановить трансляцию <ph name="ROUTE_TITLE" /> на устройство "<ph name="RECEIVER_NAME" />"</translation> <translation id="5860033963881614850">ВЫКЛ</translation> <translation id="5876666360658629066">Введите родительский код</translation> +<translation id="5881540930187678962">Настройте функцию "Управление телефоном" позже</translation> <translation id="5895138241574237353">Перезапустить</translation> <translation id="589817443623831496">Точечное сканирование</translation> <translation id="5901316534475909376">Shift + Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617">Статус защиты – "<ph name="SECURITY_STATUS" />", уровень сигнала – <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Удалить все уведомления</translation> <translation id="643147933154517414">Уведомлений больше нет</translation> +<translation id="6431865393913628856">Запись видео с экрана</translation> <translation id="6445835306623867477">Трансляция <ph name="ROUTE_TITLE" /> на устройство "<ph name="RECEIVER_NAME" />"</translation> <translation id="6452181791372256707">Отклонить</translation> <translation id="6453179446719226835">Язык изменен</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">ОК</translation> <translation id="7348093485538360975">Экранная клавиатура</translation> <translation id="735745346212279324">VPN-соединение прервано</translation> +<translation id="7371404428569700291">Запись контента в окне</translation> <translation id="7377169924702866686">Включен режим Caps Lock.</translation> <translation id="7378203170292176219">Выделите область для записи с помощью перетаскивания</translation> <translation id="7378594059915113390">Элементы управления медиафайлами</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Переместить меню</translation> <translation id="9089416786594320554">Методы ввода</translation> <translation id="9091626656156419976">Удален экран "<ph name="DISPLAY_NAME" />"</translation> +<translation id="9092749890156285613">Недавние снимки экрана и скачанные файлы</translation> <translation id="9151726767154816831">Чтобы обновить систему, перезапустите ее и выполните Powerwash</translation> <translation id="9166331175924255663">Включить или отключить широкий доступ для Обмена с окружением</translation> <translation id="9168436347345867845">Позже</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index b36137c..4758b6e 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Pokaži jezikovne nastavitve</translation> <translation id="1460620680449458626">Glasnost je utišana.</translation> <translation id="1467432559032391204">V levo</translation> +<translation id="1475439723810528286">Dotaknite se kjer koli za posnetek celotnega zaslona.</translation> <translation id="1479909375538722835">Plavajoč meni s funkcijami za ljudi s posebnimi potrebami</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">V seji prijave z več računi mora biti ta račun lastnika prvi prijavljeni račun.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Ni povezave z omrežjem</translation> <translation id="2126242104232412123">Nova delovna miza</translation> <translation id="2127372758936585790">Nizkoenergijski polnilnik</translation> +<translation id="2132302418721800944">Snemanje celotnega zaslona</translation> <translation id="2135456203358955318">Zasidrana lupa</translation> <translation id="2144487987174258011">Če želite posodobiti Adobe Flash Player, znova zaženite</translation> <translation id="2180011262286780504">Skrbnik je onemogočil zmožnost zajemanja slike zaslona.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Zaustavitev</translation> <translation id="2878884018241093801">Ni nedavnih elementov</translation> <translation id="2903844815300039659">Vzpostavljena povezava z omrežjem <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Posnetki zaslona</translation> <translation id="2942350706960889382">Zasidrana lupa</translation> <translation id="2942516765047364088">Položaj police</translation> <translation id="2946119680249604491">Dodaj povezavo</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Povratne informacije</translation> <translation id="4527045527269911712">Naprava Bluetooth »<ph name="DEVICE_NAME" />« želi dovoljenje za seznanjanje.</translation> <translation id="453661520163887813"><ph name="TIME" /> do napolnjenosti</translation> +<translation id="4538824937723742295">Snemanje celozaslonskega posnetka zaslona</translation> <translation id="4544483149666270818">Izberite okno za snemanje</translation> <translation id="4560576029703263363">Vklopljeno</translation> <translation id="4561267230861221837">UMTS</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> h <ph name="MINUTES" /> min <ph name="SECONDS" /> s</translation> <translation id="4975771730019223894">Označevanje aplikacij z značko</translation> <translation id="5030687792513154421">Dovoljeni čas je potekel</translation> +<translation id="5033299697334913360">Kliknite kjer koli za posnetek celotnega zaslona.</translation> <translation id="5035236842988137213">Naprava <ph name="DEVICE_NAME" /> je povezana z novim telefonom</translation> <translation id="5035389544768382859">Potrditev konfiguracije zaslona</translation> <translation id="5083553833479578423">Odklenite več funkcij Pomočnika.</translation> <translation id="5136175204352732067">Priklopljena je druga tipkovnica</translation> <translation id="5168181903108465623">Naprave za predvajanje so na voljo</translation> <translation id="5170568018924773124">Prikaži v mapi</translation> +<translation id="5176318573511391780">Snemanje delnega zaslona</translation> <translation id="5207949376430453814">Označitev kazalke v besedilu</translation> <translation id="5208059991603368177">Vklopljeno</translation> <translation id="5222676887888702881">Odjava</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Ustavi zavihek <ph name="ROUTE_TITLE" /> v sprejemniku <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Izklopljeno</translation> <translation id="5876666360658629066">Vnos kode starša</translation> +<translation id="5881540930187678962">Nastavitve telefonsko središče pozneje</translation> <translation id="5895138241574237353">Znova zaženi</translation> <translation id="589817443623831496">Točkovno iskanje</translation> <translation id="5901316534475909376">Shift + Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, moč signala je <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Izbris vseh obvestil</translation> <translation id="643147933154517414">Končano</translation> +<translation id="6431865393913628856">Snemanje zaslona</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> na <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Zavrni</translation> <translation id="6453179446719226835">Jezik je spremenjen</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">V redu, razumem</translation> <translation id="7348093485538360975">Zaslonska tipkovnica</translation> <translation id="735745346212279324">Povezava z navideznim zasebnim omrežjem je prekinjena</translation> +<translation id="7371404428569700291">Okno za snemanje</translation> <translation id="7377169924702866686">Tipka Caps Lock je vklopljena.</translation> <translation id="7378203170292176219">Povlecite, če želite izbrati območje za posnetek</translation> <translation id="7378594059915113390">Kontrolniki predstavnosti</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Preklop položaja menija</translation> <translation id="9089416786594320554">Načini vnosa</translation> <translation id="9091626656156419976">Odstranjen zaslon <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Nedavni posnetki zaslona in prenosi</translation> <translation id="9151726767154816831">Če želite posodobiti, znova zaženite in uporabite funkcijo Powerwash</translation> <translation id="9166331175924255663">Preklop visoke vidnosti deljenja v bližini.</translation> <translation id="9168436347345867845">Pozneje</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb index f80e55b8..4a7457b 100644 --- a/ash/strings/ash_strings_sq.xtb +++ b/ash/strings/ash_strings_sq.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Shfaq cilësimet e gjuhës</translation> <translation id="1460620680449458626">Volumi është i çaktivizuar.</translation> <translation id="1467432559032391204">Majtas</translation> +<translation id="1475439723810528286">Trokit diku për të regjistruar ekranin e plotë</translation> <translation id="1479909375538722835">Menyja pluskuese e qasshmërisë</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Kjo llogari zotëruesi duhet të jetë llogaria e parë e identifikimit në një sesion me identifikime të shumëfishta.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Nuk është lidhur në rrjet</translation> <translation id="2126242104232412123">Tavolinë e re</translation> <translation id="2127372758936585790">Ngarkues me fuqi të ulët</translation> +<translation id="2132302418721800944">Regjistro ekranin e plotë</translation> <translation id="2135456203358955318">Zmadhuesi i stacionuar</translation> <translation id="2144487987174258011">Rinise për të përditësuar Adobe Flash Player</translation> <translation id="2180011262286780504">Aftësia për të regjistruar ekranin është çaktivizuar nga administratori yt.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Ndërprit punën</translation> <translation id="2878884018241093801">Nuk ka asnjë artikull të fundit</translation> <translation id="2903844815300039659">Lidhur me <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Regjistrimet e ekranit</translation> <translation id="2942350706960889382">Zmadhuesi i stacionuar</translation> <translation id="2942516765047364088">Pozicioni i raftit</translation> <translation id="2946119680249604491">Shto lidhje</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Komente</translation> <translation id="4527045527269911712">Pajisja me Bluetooth "<ph name="DEVICE_NAME" />" kërkon leje për çiftim.</translation> <translation id="453661520163887813"><ph name="TIME" /> derisa të mbushet</translation> +<translation id="4538824937723742295">Shkrep një pamje ekrani të plotë</translation> <translation id="4544483149666270818">Zgjidh një dritare për të regjistruar</translation> <translation id="4560576029703263363">Aktiv</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> orë e <ph name="MINUTES" /> min. e <ph name="SECONDS" /> sek.</translation> <translation id="4975771730019223894">Distinktivi i aplikacionit</translation> <translation id="5030687792513154421">Koha mbaroi</translation> +<translation id="5033299697334913360">Kliko diku për të regjistruar ekranin e plotë</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> u lidh me një telefon të ri</translation> <translation id="5035389544768382859">Konfirmo konfigurimin e ekranit</translation> <translation id="5083553833479578423">Shkyç më shumë funksione të "Asistentit".</translation> <translation id="5136175204352732067">Është lidhur një tastierë tjetër</translation> <translation id="5168181903108465623">Pajisjet e transmetimit janë të disponueshme</translation> <translation id="5170568018924773124">Shfaq në dosje</translation> +<translation id="5176318573511391780">Regjistro ekranin e pjesshëm</translation> <translation id="5207949376430453814">Thekso kursorin e tekstit</translation> <translation id="5208059991603368177">Aktive</translation> <translation id="5222676887888702881">Dil</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Ndalo <ph name="ROUTE_TITLE" /> në <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Çaktivizuar</translation> <translation id="5876666360658629066">Fut kodin e prindit</translation> +<translation id="5881540930187678962">Konfiguroje Phone Hub më vonë</translation> <translation id="5895138241574237353">Rinis</translation> <translation id="589817443623831496">Skanimi me pika</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, fuqia e sinjalit <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Pastro të gjitha njoftimet</translation> <translation id="643147933154517414">Të gjitha në rregull</translation> +<translation id="6431865393913628856">Regjistrimi i ekranit</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> në <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Refuzo</translation> <translation id="6453179446719226835">Gjuha është ndryshuar</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Në rregull, kuptova</translation> <translation id="7348093485538360975">Tastiera në ekran</translation> <translation id="735745346212279324">Rrjeti VPN u shkëput</translation> +<translation id="7371404428569700291">Regjistro dritaren</translation> <translation id="7377169924702866686">Kyçja e kapitaleve është aktive.</translation> <translation id="7378203170292176219">Zvarrite për të zgjedhur një zonë për të regjistruar</translation> <translation id="7378594059915113390">Kontrollet e klipeve media</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Ndrysho pozicionin e menysë</translation> <translation id="9089416786594320554">Metodat e hyrjes</translation> <translation id="9091626656156419976">Ekrani <ph name="DISPLAY_NAME" /> u hoq</translation> +<translation id="9092749890156285613">Regjistrimet e fundit të ekranit dhe shkarkimet</translation> <translation id="9151726767154816831">Rifillo dhe bëj Powerwash për të përditësuar</translation> <translation id="9166331175924255663">Aktivizo/çaktivizo dukshmërinë e lartë për "Ndarjen në afërsi".</translation> <translation id="9168436347345867845">Bëje më vonë</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index 66f196e..280e286b 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Visa språkinställningar</translation> <translation id="1460620680449458626">Ljudet är av.</translation> <translation id="1467432559032391204">Vänster</translation> +<translation id="1475439723810528286">Tryck var som helst för att ta en bild av hela skärmen</translation> <translation id="1479909375538722835">Flytande tillgänglighetsmeny</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Det här ägarkontot måste vara det första inloggade kontot i en session med flera inloggningar.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Ingen nätverksanslutning</translation> <translation id="2126242104232412123">Ny arbetsyta</translation> <translation id="2127372758936585790">Laddning med låg effekt</translation> +<translation id="2132302418721800944">Spela in hela skärmen</translation> <translation id="2135456203358955318">Dockad skärmförstoring</translation> <translation id="2144487987174258011">Starta om för att uppdatera Adobe Flash Player</translation> <translation id="2180011262286780504">Funktionen för skärmbilder/skärminspelningar har inaktiverats av administratören.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Stäng av</translation> <translation id="2878884018241093801">Listan med de senaste åtgärderna är tom</translation> <translation id="2903844815300039659">Ansluten till <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Skärmbilder/skärminspelningar</translation> <translation id="2942350706960889382">Dockad skärmförstoring</translation> <translation id="2942516765047364088">Hyllposition</translation> <translation id="2946119680249604491">Lägg till anslutning</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Feedback</translation> <translation id="4527045527269911712">Bluetooth-enheten <ph name="DEVICE_NAME" /> har begärt tillstånd för koppling.</translation> <translation id="453661520163887813"><ph name="TIME" /> tills batteriet är fullt</translation> +<translation id="4538824937723742295">Ta en skärmdump av hela skärmen</translation> <translation id="4544483149666270818">Välj ett fönster att spela in</translation> <translation id="4560576029703263363">På</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> tim. <ph name="MINUTES" /> min. <ph name="SECONDS" /> sek.</translation> <translation id="4975771730019223894">Appmärkning</translation> <translation id="5030687792513154421">Tiden är slut</translation> +<translation id="5033299697334913360">Klicka var som helst för att ta en bild av hela skärmen</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> har anslutits till en ny mobil</translation> <translation id="5035389544768382859">Bekräfta skärminställningarna</translation> <translation id="5083553833479578423">Lås upp fler funktioner för Assistent</translation> <translation id="5136175204352732067">Ett annat tangentbord har anslutits</translation> <translation id="5168181903108465623">Överföringsenheter finns tillgängliga</translation> <translation id="5170568018924773124">Visa i mapp</translation> +<translation id="5176318573511391780">Spela in en del av skärmen</translation> <translation id="5207949376430453814">Markera textmarkören</translation> <translation id="5208059991603368177">På</translation> <translation id="5222676887888702881">Logga ut</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Sluta casta <ph name="ROUTE_TITLE" /> till <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Av</translation> <translation id="5876666360658629066">Ange föräldrakod</translation> +<translation id="5881540930187678962">Konfigurera Phone Hub senare</translation> <translation id="5895138241574237353">Starta om</translation> <translation id="589817443623831496">Punktgenomsökning</translation> <translation id="5901316534475909376">Skift+Escape</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, signalstyrka <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Rensa alla aviseringar</translation> <translation id="643147933154517414">Klart</translation> +<translation id="6431865393913628856">Skärminspelning</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> på <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Avvisa</translation> <translation id="6453179446719226835">Språket har ändrats</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Ok, jag förstår</translation> <translation id="7348093485538360975">Skärmtangentbord</translation> <translation id="735745346212279324">VPN frånkopplat</translation> +<translation id="7371404428569700291">Spela in fönster</translation> <translation id="7377169924702866686">Caps Lock är på.</translation> <translation id="7378203170292176219">Välj ett område att spela in genom att dra</translation> <translation id="7378594059915113390">Mediereglage</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Växla menyposition</translation> <translation id="9089416786594320554">Inmatningsmetoder</translation> <translation id="9091626656156419976">Skärmen <ph name="DISPLAY_NAME" /> har tagits bort</translation> +<translation id="9092749890156285613">Nya skärmbilder/skärminspelningar och nedladdningar</translation> <translation id="9151726767154816831">Starta om och utför en Powerwash-återställning för att uppdatera</translation> <translation id="9166331175924255663">Aktivera och inaktivera Närdelning med hög synlighet.</translation> <translation id="9168436347345867845">Gör det senare</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index 2c25909..422a149 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Onyesha mipangilio ya lugha</translation> <translation id="1460620680449458626">Umezima sauti.</translation> <translation id="1467432559032391204">Kushoto</translation> +<translation id="1475439723810528286">Gusa popote ili unase skrini nzima</translation> <translation id="1479909375538722835">Menyu ya ufikivu inayoelea</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Akaunti hii ya mmiliki lazima iwe ya kwanza kuingiwa katika kipindi cha kuingia katika akaunti mara nyingi.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Haijaunganishwa kwenye mtandao</translation> <translation id="2126242104232412123">Sehemu mpya ya kufanyia kazi</translation> <translation id="2127372758936585790">Chaja ya nguvu ya chini</translation> +<translation id="2132302418721800944">Rekodi skrini nzima</translation> <translation id="2135456203358955318">Kikuzaji kilichofungwa</translation> <translation id="2144487987174258011">Zima kisha uwashe ili usasishe Adobe Flash Player</translation> <translation id="2180011262286780504">Uwezo wa kupiga picha ya skrini umezimwa na msimamizi wako.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Zima</translation> <translation id="2878884018241093801">Hakuna vipengee vya hivi karibuni</translation> <translation id="2903844815300039659">Imeunganishwa kwenye <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Picha za skrini</translation> <translation id="2942350706960889382">Kikuzaji Kilichoambatishwa</translation> <translation id="2942516765047364088">Nafasi ya rafu</translation> <translation id="2946119680249604491">Ongeza muunganisho</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Mwitiko</translation> <translation id="4527045527269911712">Kifaa cha Bluetooth cha "<ph name="DEVICE_NAME" />" kinaomba idhini ya kuoanisha.</translation> <translation id="453661520163887813">Zimesalia <ph name="TIME" /> ili ijae</translation> +<translation id="4538824937723742295">Piga picha ya skrini nzima</translation> <translation id="4544483149666270818">Chagua dirisha ili urekodi</translation> <translation id="4560576029703263363">Imewashwa</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113">Saa <ph name="HOURS" /> dak <ph name="MINUTES" /> sek <ph name="SECONDS" /></translation> <translation id="4975771730019223894">Kuweka beji kwenye programu</translation> <translation id="5030687792513154421">Muda wa kutumia kifaa umeisha</translation> +<translation id="5033299697334913360">Bofya popote ili unase skrini nzima</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> imeunganishwa kwenye simu mpya</translation> <translation id="5035389544768382859">Thibitisha Mipangilio ya Skrini</translation> <translation id="5083553833479578423">Fungua vipengele zaidi vya programu yako ya Mratibu.</translation> <translation id="5136175204352732067">Kibodi tofauti imeunganishwa</translation> <translation id="5168181903108465623">Vifaa vinavyorusha maudhui vinapatikana</translation> <translation id="5170568018924773124">Onyesha katika folda</translation> +<translation id="5176318573511391780">Rekodi sehemu ya skrini</translation> <translation id="5207949376430453814">Angazia kareti ya maandishi</translation> <translation id="5208059991603368177">Yamewashwa</translation> <translation id="5222676887888702881">Ondoka</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Komesha <ph name="ROUTE_TITLE" /> kwenye <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Kimezimwa</translation> <translation id="5876666360658629066">Weka msimbo wa mzazi</translation> +<translation id="5881540930187678962">Weka mipangillio ya Kituo cha Kudhibiti Simu baadaye</translation> <translation id="5895138241574237353">Zzima na uwashe</translation> <translation id="589817443623831496">Uchanganuzi wa pointi</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Uthabiti wa Mtandao <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Futa arifa zote</translation> <translation id="643147933154517414">Hakuna arifa</translation> +<translation id="6431865393913628856">Rekodi skrini</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> kwenye <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Kataa</translation> <translation id="6453179446719226835">Lugha imebadilishwa</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Sawa, nimeelewa</translation> <translation id="7348093485538360975">Kibodi ya skrini</translation> <translation id="735745346212279324">VPN imekatwa muunganisho</translation> +<translation id="7371404428569700291">Rekodi dirisha</translation> <translation id="7377169924702866686">Caps Lock imewashwa.</translation> <translation id="7378203170292176219">Buruta ili uchague sehemu ya kurekodi</translation> <translation id="7378594059915113390">Vidhibiti vya Maudhui</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Badilisha nafasi ya menyu</translation> <translation id="9089416786594320554">Mbinu za Kuweka</translation> <translation id="9091626656156419976">Imeondoa onyesho la <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Picha za skrini na vipakuliwa vya hivi majuzi</translation> <translation id="9151726767154816831">Zima na uwashe na utumie powerwash ili kusasisha</translation> <translation id="9166331175924255663">Washa au uzime uonekanaji wa hali ya juu wa kipengele cha Uhamishaji wa Karibu.</translation> <translation id="9168436347345867845">Ufanye baadaye</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb index bb2977b..8529138ef 100644 --- a/ash/strings/ash_strings_th.xtb +++ b/ash/strings/ash_strings_th.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">แสดงการตั้งค่าภาษา</translation> <translation id="1460620680449458626">ระดับเสียงปิดเสียงอยู่</translation> <translation id="1467432559032391204">ซ้าย</translation> +<translation id="1475439723810528286">แตะที่ใดก็ได้เพื่อจับภาพแบบเต็มหน้าจอ</translation> <translation id="1479909375538722835">เมนูการช่วยเหลือพิเศษแบบลอย</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">บัญชีเจ้าของนี้ต้องเป็นบัญชีที่ลงชื่อเข้าใช้บัญชีแรกในเซสชันการลงชื่อเข้าใช้พร้อมกัน</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">ไม่ได้เชื่อมต่อกับเครือข่าย</translation> <translation id="2126242104232412123">โต๊ะทำงานใหม่</translation> <translation id="2127372758936585790">ที่ชาร์จพลังงานต่ำ</translation> +<translation id="2132302418721800944">บันทึกแบบเต็มหน้าจอ</translation> <translation id="2135456203358955318">แว่นขยายหน้าจอบางส่วน</translation> <translation id="2144487987174258011">รีสตาร์ทเพื่ออัปเดต Adobe Flash Player</translation> <translation id="2180011262286780504">ผู้ดูแลระบบปิดใช้การจับภาพหน้าจอ</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">ปิด</translation> <translation id="2878884018241093801">ไม่มีรายการล่าสุด</translation> <translation id="2903844815300039659">เชื่อมต่อกับ <ph name="NAME" /> <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">การจับภาพหน้าจอ</translation> <translation id="2942350706960889382">แว่นขยายหน้าจอบางส่วน</translation> <translation id="2942516765047364088">ตำแหน่งของชั้นวาง</translation> <translation id="2946119680249604491">เพิ่มการเชื่อมต่อ</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">ข้อเสนอแนะ</translation> <translation id="4527045527269911712">อุปกรณ์บลูทูธ "<ph name="DEVICE_NAME" />" ต้องการสิทธิ์ในการจับคู่</translation> <translation id="453661520163887813">อีก <ph name="TIME" /> จะเต็ม</translation> +<translation id="4538824937723742295">จับภาพแบบเต็มหน้าจอ</translation> <translation id="4544483149666270818">เลือกหน้าต่างที่จะบันทึก</translation> <translation id="4560576029703263363">เปิด</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> ชม. <ph name="MINUTES" /> นาที <ph name="SECONDS" /> วินาที</translation> <translation id="4975771730019223894">การติดป้ายแอป</translation> <translation id="5030687792513154421">หมดเวลา</translation> +<translation id="5033299697334913360">คลิกที่ใดก็ได้เพื่อจับภาพแบบเต็มหน้าจอ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> เชื่อมต่อโทรศัพท์เครื่องใหม่แล้ว</translation> <translation id="5035389544768382859">ยืนยันการกำหนดค่าจอแสดงผล</translation> <translation id="5083553833479578423">ใช้ฟีเจอร์จาก Assistant ได้มากขึ้น</translation> <translation id="5136175204352732067">เชื่อมต่อกับแป้นพิมพ์อื่นแล้ว</translation> <translation id="5168181903108465623">เครื่องส่งพร้อมใช้งาน</translation> <translation id="5170568018924773124">แสดงในโฟลเดอร์</translation> +<translation id="5176318573511391780">บันทึกหน้าจอบางส่วน</translation> <translation id="5207949376430453814">ไฮไลต์เครื่องหมาย Caret ของข้อความ</translation> <translation id="5208059991603368177">เปิด</translation> <translation id="5222676887888702881">ออกจากระบบ</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">หยุด <ph name="ROUTE_TITLE" /> ใน<ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">ปิด</translation> <translation id="5876666360658629066">กรอกรหัสผู้ปกครอง</translation> +<translation id="5881540930187678962">ตั้งค่าฮับโทรศัพท์ภายหลัง</translation> <translation id="5895138241574237353">ปิดแล้วเปิดอีกครั้ง</translation> <translation id="589817443623831496">การสแกนจุด</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, ความแรงสัญญาณ <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">ล้างการแจ้งเตือนทั้งหมด</translation> <translation id="643147933154517414">เสร็จเรียบร้อย</translation> +<translation id="6431865393913628856">บันทึกหน้าจอ</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> ใน<ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">ปฏิเสธ</translation> <translation id="6453179446719226835">เปลี่ยนภาษาแล้ว</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">รับทราบ</translation> <translation id="7348093485538360975">แป้นพิมพ์บนหน้าจอ</translation> <translation id="735745346212279324">ยกเลิกการเชื่อมต่อ VPN แล้ว</translation> +<translation id="7371404428569700291">หน้าต่างการบันทึก</translation> <translation id="7377169924702866686">Caps Lock เปิดอยู่</translation> <translation id="7378203170292176219">ลากเพื่อเลือกพื้นที่ที่จะบันทึก</translation> <translation id="7378594059915113390">การควบคุมสื่อ</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">เปลี่ยนตำแหน่งเมนู</translation> <translation id="9089416786594320554">วิธีป้อนข้อมูล</translation> <translation id="9091626656156419976">นำจอแสดงผล <ph name="DISPLAY_NAME" /> ออกแล้ว</translation> +<translation id="9092749890156285613">การจับภาพหน้าจอและการดาวน์โหลดล่าสุด</translation> <translation id="9151726767154816831">รีสตาร์ทและ Powerwash เพื่ออัปเดต</translation> <translation id="9166331175924255663">เปิด/ปิดระดับการเข้าถึงสูงของการแชร์ใกล้เคียง</translation> <translation id="9168436347345867845">ข้ามไปก่อน</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index eeb39599..a515de2 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Dil ayarlarını gösterin</translation> <translation id="1460620680449458626">Ses kapalı.</translation> <translation id="1467432559032391204">Sola</translation> +<translation id="1475439723810528286">Tam ekran görüntüsünü yakalamak için herhangi bir yere dokunun</translation> <translation id="1479909375538722835">Kayan erişilebilirlik menüsü</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Bu sahip hesabının bir çoklu oturumda ilk oturum açan hesap olması gerekir.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Ağa bağlı değilsiniz</translation> <translation id="2126242104232412123">Yeni masa</translation> <translation id="2127372758936585790">Düşük güçlü şarj cihazı</translation> +<translation id="2132302418721800944">Tam ekran kaydet</translation> <translation id="2135456203358955318">Yerleştirilmiş büyüteç</translation> <translation id="2144487987174258011">Adobe Flash Player'ı güncellemek için yeniden başlatın</translation> <translation id="2180011262286780504">Ekran görüntüsü alma özelliği, yöneticiniz tarafından devre dışı bırakıldı.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Kapat</translation> <translation id="2878884018241093801">Yeni öğe yok</translation> <translation id="2903844815300039659"><ph name="NAME" /> ağına bağlı, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Yakalanan ekranlar</translation> <translation id="2942350706960889382">Yerleştirilmiş Büyüteç</translation> <translation id="2942516765047364088">Raf konumu</translation> <translation id="2946119680249604491">Bağlantı ekle</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Geri Bildirim</translation> <translation id="4527045527269911712">"<ph name="DEVICE_NAME" />" adlı Bluetooth cihaz eşleme izni istiyor.</translation> <translation id="453661520163887813">Dolmasına <ph name="TIME" /> var</translation> +<translation id="4538824937723742295">Tam ekran görüntüsü al</translation> <translation id="4544483149666270818">Kaydedilecek pencereyi seçin</translation> <translation id="4560576029703263363">Açık</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> sa. <ph name="MINUTES" /> dk. <ph name="SECONDS" /> sn.</translation> <translation id="4975771730019223894">Uygulama rozeti ekleme</translation> <translation id="5030687792513154421">Süre doldu</translation> +<translation id="5033299697334913360">Tam ekran görüntüsünü yakalamak için herhangi bir yeri tıklayın</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" />, yeni bir telefona bağlandı</translation> <translation id="5035389544768382859">Ekran Yapılandırmasını Onaylayın</translation> <translation id="5083553833479578423">Diğer Asistan özelliklerinin kilidini açın.</translation> <translation id="5136175204352732067">Farklı klavye bağlandı</translation> <translation id="5168181903108465623">Yayın cihazları kullanılabilir</translation> <translation id="5170568018924773124">Klasörde göster</translation> +<translation id="5176318573511391780">Kısmi ekranı kaydet</translation> <translation id="5207949376430453814">Metin imlecini vurgula</translation> <translation id="5208059991603368177">Açık</translation> <translation id="5222676887888702881">Çıkış</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> adlı alıcıya <ph name="ROUTE_TITLE" /> yayınını durdur</translation> <translation id="5860033963881614850">Kapalı</translation> <translation id="5876666360658629066">Ebeveyn kodunu girin</translation> +<translation id="5881540930187678962">Telefon Merkezi'ni sonra kurun</translation> <translation id="5895138241574237353">Yeniden başlat</translation> <translation id="589817443623831496">Nokta taraması</translation> <translation id="5901316534475909376">Üst Karakter+Esc</translation> @@ -543,6 +550,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, <ph name="SIGNAL_STRENGTH" /> Sinyal Gücü</translation> <translation id="642644398083277086">Tüm bildirimleri temizleyin</translation> <translation id="643147933154517414">Tümü bitti</translation> +<translation id="6431865393913628856">Ekran kaydı</translation> <translation id="6445835306623867477"><ph name="RECEIVER_NAME" /> adlı alıcıya <ph name="ROUTE_TITLE" /></translation> <translation id="6452181791372256707">Reddet</translation> <translation id="6453179446719226835">Dil değiştirildi</translation> @@ -628,6 +636,7 @@ <translation id="7346909386216857016">Tamam, anladım</translation> <translation id="7348093485538360975">Ekran klavyesi</translation> <translation id="735745346212279324">VPN bağlantısı kesildi</translation> +<translation id="7371404428569700291">Pencereyi kaydet</translation> <translation id="7377169924702866686">Caps Lock açık.</translation> <translation id="7378203170292176219">Kaydedilecek alanı seçmek için sürükleyin</translation> <translation id="7378594059915113390">Medya Denetimleri</translation> @@ -816,6 +825,7 @@ <translation id="9084606467167974638">Menü konumunu değiştir</translation> <translation id="9089416786594320554">Giriş yöntemleri</translation> <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> adlı ekran kaldırıldı</translation> +<translation id="9092749890156285613">En son ekran görüntüleri ve indirilenler</translation> <translation id="9151726767154816831">Güncellemek için yeniden başlatın ve Powerwash uygulayın</translation> <translation id="9166331175924255663">Yakındakilerle Paylaş özelliğinin yüksek görünürlüğünü açar/kapatır.</translation> <translation id="9168436347345867845">Daha sonra yap</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb index 965dcc4..54b07f9 100644 --- a/ash/strings/ash_strings_uz.xtb +++ b/ash/strings/ash_strings_uz.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Til sozlamalarini ochish</translation> <translation id="1460620680449458626">Ovozsiz</translation> <translation id="1467432559032391204">Chapga</translation> +<translation id="1475439723810528286">Butun ekranni rasmga olish uchun ekranning istalgan joyiga bosing</translation> <translation id="1479909375538722835">Erkin harakatlanuvchi maxsus imkoniyatlar menyusi</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Birdaniga bir nechta hisobdan ishlash vaqtida birinchi o‘rinda hisob egasi kirishi kerak.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Tarmoqqa ulanmagan</translation> <translation id="2126242104232412123">Yangi ish stoli</translation> <translation id="2127372758936585790">Kam quvvatli zaryadlovchi vosita</translation> +<translation id="2132302418721800944">Butun ekranni yozib olish</translation> <translation id="2135456203358955318">Mahkamlangan lupa</translation> <translation id="2144487987174258011">Adobe Flash Player’ni yangilash uchun qayta ishga tushiring</translation> <translation id="2180011262286780504">Ekranni suratga olish funksiyasini administrator faolsizlantirgan.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Ishni tamomlash</translation> <translation id="2878884018241093801">Hozircha hech narsa yo‘q</translation> <translation id="2903844815300039659">Tarmoqqa ulandi: <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Ekran tasvirlari</translation> <translation id="2942350706960889382">Mahkamlangan lupa</translation> <translation id="2942516765047364088">Javon o‘rni</translation> <translation id="2946119680249604491">Ulanish qo‘shish</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Fikr-mulohaza</translation> <translation id="4527045527269911712">“<ph name="DEVICE_NAME" />” qurilmasi Bluetooth orqali bog‘lanishga ruxsat so‘ramoqda.</translation> <translation id="453661520163887813">To‘liq quvvatlanishiga <ph name="TIME" /> qoldi</translation> +<translation id="4538824937723742295">Butun ekranni suratga olish</translation> <translation id="4544483149666270818">Yozib olish uchun oynani tanlang</translation> <translation id="4560576029703263363">Yoniq</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />s <ph name="MINUTES" />d <ph name="SECONDS" />s</translation> <translation id="4975771730019223894">Ilova nishonchasi</translation> <translation id="5030687792513154421">Vaqt tugadi</translation> +<translation id="5033299697334913360">Butun ekranni tasvirga olish uchun istalgan joyga bosing</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> yangi telefonga ulandi</translation> <translation id="5035389544768382859">Displey sozlamalarini tasdiqlash</translation> <translation id="5083553833479578423">Assistentning boshqa imkoniyatlarini oching.</translation> <translation id="5136175204352732067">Boshqa klaviatura ulandi</translation> <translation id="5168181903108465623">Translatsiya qurilmalari mavjud</translation> <translation id="5170568018924773124">&Jildda ko‘rsatish</translation> +<translation id="5176318573511391780">Ekran qismini yozib olish</translation> <translation id="5207949376430453814">Matn kiritish joyi ajratib ko‘rsatilsin</translation> <translation id="5208059991603368177">Yoniq</translation> <translation id="5222676887888702881">Tizimdan chiqish</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804"><ph name="ROUTE_TITLE" /> <ph name="RECEIVER_NAME" /> qurilmasiga translatsiya qilinishi to‘xtatilsin</translation> <translation id="5860033963881614850">O‘chiq</translation> <translation id="5876666360658629066">Ota-ona kodini kiriting</translation> +<translation id="5881540930187678962">Phone Hub funksiyasini keyin sozlash</translation> <translation id="5895138241574237353">Qayta ishga tushirish</translation> <translation id="589817443623831496">Nuqtali skanerlash</translation> <translation id="5901316534475909376">Shift + Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617">Himoya: <ph name="SECURITY_STATUS" />, Signal darajasi: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Barcha eslatmalarni tozalang</translation> <translation id="643147933154517414">Bajarildi</translation> +<translation id="6431865393913628856">Ekranni yozib olish</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> <ph name="RECEIVER_NAME" /> qurilmasiga translatsiya qilinmoqda</translation> <translation id="6452181791372256707">Rad etish</translation> <translation id="6453179446719226835">Til sozlamalari o‘zgardi</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">OK</translation> <translation id="7348093485538360975">Ekran klaviaturasi</translation> <translation id="735745346212279324">VPN aloqasi uzildi</translation> +<translation id="7371404428569700291">Yozib olish oynasi</translation> <translation id="7377169924702866686">Caps Lock yoniq.</translation> <translation id="7378203170292176219">Yozib olinadigan hududni tanlash uchun suring</translation> <translation id="7378594059915113390">Media boshqaruv elementlari</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Menyu holatini almashtirish</translation> <translation id="9089416786594320554">Matn kiritish</translation> <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> ekrani olib tashlandi</translation> +<translation id="9092749890156285613">Oxirgi ekran tasvirlari va yuklanmalar</translation> <translation id="9151726767154816831">Tizimni yangilash uchun uni qaytadan ishga tushirib, Powerwash amalini bajaring</translation> <translation id="9166331175924255663">Yaqin-atrofga yuborish qurilmalariga ruxsatni ochish tugmasi.</translation> <translation id="9168436347345867845">Keyinroq</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index 961db26..e4c1e1ae 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Hiển thị các tùy chọn cài đặt ngôn ngữ</translation> <translation id="1460620680449458626">Đang tắt tiếng.</translation> <translation id="1467432559032391204">Trái</translation> +<translation id="1475439723810528286">Nhấn vào bất cứ đâu để chụp toàn màn hình</translation> <translation id="1479909375538722835">Trình đơn hỗ trợ tiếp cận nổi</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Tài khoản của chủ sở hữu này phải là tài khoản đăng nhập đầu tiên trong phiên đăng nhập nhiều tài khoản.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Chưa kết nối với mạng</translation> <translation id="2126242104232412123">Không gian làm việc mới</translation> <translation id="2127372758936585790">Bộ sạc công suất thấp</translation> +<translation id="2132302418721800944">Ghi toàn màn hình</translation> <translation id="2135456203358955318">Phóng to ở vị trí cố định</translation> <translation id="2144487987174258011">Khởi động lại để cập nhật Adobe Flash Player</translation> <translation id="2180011262286780504">Quản trị viên của bạn đã tắt tính năng chụp ảnh màn hình.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Tắt</translation> <translation id="2878884018241093801">Không có mục nào gần đây</translation> <translation id="2903844815300039659">Đã kết nối tới <ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Ảnh chụp màn hình</translation> <translation id="2942350706960889382">Phóng to ở vị trí cố định</translation> <translation id="2942516765047364088">Vị trí giá</translation> <translation id="2946119680249604491">Thêm kết nối</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Phản hồi</translation> <translation id="4527045527269911712">Thiết bị Bluetooth "<ph name="DEVICE_NAME" />"muốn được phép ghép nối.</translation> <translation id="453661520163887813"><ph name="TIME" /> cho đến khi đầy</translation> +<translation id="4538824937723742295">Chụp ảnh toàn màn hình</translation> <translation id="4544483149666270818">Chọn một cửa sổ để ghi hình</translation> <translation id="4560576029703263363">Đang bật</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" /> giờ <ph name="MINUTES" /> phút <ph name="SECONDS" /> giây</translation> <translation id="4975771730019223894">Huy hiệu ứng dụng</translation> <translation id="5030687792513154421">Đã hết thời gian</translation> +<translation id="5033299697334913360">Nhấp vào bất cứ đâu để chụp toàn màn hình</translation> <translation id="5035236842988137213">Đã kết nối <ph name="DEVICE_NAME" /> với một điện thoại mới</translation> <translation id="5035389544768382859">Xác nhận cấu hình của màn hình</translation> <translation id="5083553833479578423">Mở khóa các tính năng khác của Trợ lý.</translation> <translation id="5136175204352732067">Đã kết nối bàn phím khác</translation> <translation id="5168181903108465623">Có thiết bị truyền</translation> <translation id="5170568018924773124">Hiển thị trong thư mục</translation> +<translation id="5176318573511391780">Ghi một phần màn hình</translation> <translation id="5207949376430453814">Đánh dấu điểm chèn văn bản</translation> <translation id="5208059991603368177">Bật</translation> <translation id="5222676887888702881">Đăng xuất</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Dừng <ph name="ROUTE_TITLE" /> trên <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Tắt</translation> <translation id="5876666360658629066">Nhập mã dành cho cha mẹ</translation> +<translation id="5881540930187678962">Thiết lập Trung tâm điều khiển điện thoại sau</translation> <translation id="5895138241574237353">Khởi động lại</translation> <translation id="589817443623831496">Quét điểm</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Cường độ tín hiệu <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Xóa tất cả thông báo</translation> <translation id="643147933154517414">Đã xong</translation> +<translation id="6431865393913628856">Ghi màn hình</translation> <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> trên <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Từ chối</translation> <translation id="6453179446719226835">Đã thay đổi ngôn ngữ</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Ok</translation> <translation id="7348093485538360975">Bàn phím ảo</translation> <translation id="735745346212279324">Đã ngắt kết nối VPN</translation> +<translation id="7371404428569700291">Ghi hình nội dung của cửa sổ</translation> <translation id="7377169924702866686">Caps Lock đang bật.</translation> <translation id="7378203170292176219">Kéo để chọn một vùng sẽ quay</translation> <translation id="7378594059915113390">Các chức năng điều khiển nội dung đa phương tiện</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Chuyển đổi vị trí menu</translation> <translation id="9089416786594320554">Phương thức nhập</translation> <translation id="9091626656156419976">Đã xóa màn hình <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Ảnh chụp màn hình và tệp đã tải xuống gần đây</translation> <translation id="9151726767154816831">Khởi động lại và powerwash để cập nhật</translation> <translation id="9166331175924255663">Bật/tắt chế độ hiển thị ở mức cao cho tính năng Chia sẻ lân cận.</translation> <translation id="9168436347345867845">Thực hiện sau</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb index 1c05295..950fe835 100644 --- a/ash/strings/ash_strings_zu.xtb +++ b/ash/strings/ash_strings_zu.xtb
@@ -58,6 +58,7 @@ <translation id="1455242230282523554">Bonisa izilungiselelo zolimi</translation> <translation id="1460620680449458626">Ivolumu ithulisiwe.</translation> <translation id="1467432559032391204">Kwesobunxele</translation> +<translation id="1475439723810528286">Thepha nomaphi ukuze uthathe isikrini esigcwele</translation> <translation id="1479909375538722835">Imenyu yokufinyelela entantayo</translation> <translation id="1484102317210609525">I-<ph name="DEVICE_NAME" /> (HDMI/DP)</translation> <translation id="1503394326855300303">Le akhawunti yomnikazi kumele kube i-akhawunti yokuqala yokungena ngemvume kwiseshini yokungena ngemvume okuningi.</translation> @@ -121,6 +122,7 @@ <translation id="209965399369889474">Akuxhumekile kunethiwekhi</translation> <translation id="2126242104232412123">Ideski elisha</translation> <translation id="2127372758936585790">Ishaja yamandla aphansi</translation> +<translation id="2132302418721800944">Rekhoda isikrini esigcwele</translation> <translation id="2135456203358955318">Isikhulisi esidokhiwe</translation> <translation id="2144487987174258011">Qalisa kabusha ukuze ubuyekeze isidlali se-Adobe Flash</translation> <translation id="2180011262286780504">Ikhona lokuthatha isikrini likhutshaziwe ngumlawuli wakho.</translation> @@ -192,6 +194,7 @@ <translation id="2872961005593481000">Cisha</translation> <translation id="2878884018241093801">Azikho izinto zakamuva</translation> <translation id="2903844815300039659">Ixhumeke ku-<ph name="NAME" />, <ph name="STRENGTH" /></translation> +<translation id="2914580577416829331">Ukuthatha isikrini</translation> <translation id="2942350706960889382">Isikhulisi esidokhiwe</translation> <translation id="2942516765047364088">Isimo seshelufu</translation> <translation id="2946119680249604491">Engeza ukuxhumeka</translation> @@ -367,6 +370,7 @@ <translation id="4513946894732546136">Impendulo</translation> <translation id="4527045527269911712">Idivayisi ye-Bluetooth eyi-"<ph name="DEVICE_NAME" />" ingathanda imvume yokubhanqa.</translation> <translation id="453661520163887813"><ph name="TIME" /> ize igcwale</translation> +<translation id="4538824937723742295">Thatha isithombe-skrini sesikrini esigcwele</translation> <translation id="4544483149666270818">Khetha iwindi lokurekhoda</translation> <translation id="4560576029703263363">Vuliwe</translation> <translation id="4561267230861221837">3G</translation> @@ -422,12 +426,14 @@ <translation id="4969092041573468113"><ph name="HOURS" />h <ph name="MINUTES" />m <ph name="SECONDS" />s</translation> <translation id="4975771730019223894">Ibheji yohlelo lokusebenza</translation> <translation id="5030687792513154421">Isikhathi siphelile</translation> +<translation id="5033299697334913360">Chofoza nomaphi ukuze uthathe isikrini esigcwele</translation> <translation id="5035236842988137213">I-<ph name="DEVICE_NAME" /> ixhumeke kufoni entsha</translation> <translation id="5035389544768382859">Qinisekisa Ukulungiselelwa Kwesibonisi</translation> <translation id="5083553833479578423">Vula izici eziningi zomsizi.</translation> <translation id="5136175204352732067">Ikhibhodi ehlukile ixhunyiwe</translation> <translation id="5168181903108465623">Amadivayisi wabalingisi ayatholakala</translation> <translation id="5170568018924773124">Bonisa kufolda</translation> +<translation id="5176318573511391780">Rekhoda ingxenye yesikrini</translation> <translation id="5207949376430453814">Gqamisa ikharethi yombhalo</translation> <translation id="5208059991603368177">Vuliwe</translation> <translation id="5222676887888702881">Phuma ngemvume</translation> @@ -488,6 +494,7 @@ <translation id="5837036133683224804">Misa i-<ph name="ROUTE_TITLE" /> ku-<ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Valiwe</translation> <translation id="5876666360658629066">Faka ikhodi yomzali</translation> +<translation id="5881540930187678962">Setha Ihabhu Lefoni kamuva</translation> <translation id="5895138241574237353">Qalisa kabusha</translation> <translation id="589817443623831496">Iphoyinti lokuskena</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -542,6 +549,7 @@ <translation id="6424520630891723617">I-<ph name="SECURITY_STATUS" />, amandla esignali angu-<ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Susa zonke izaziso</translation> <translation id="643147933154517414">Kwenziwe konke</translation> +<translation id="6431865393913628856">Irekhodi lesikrini</translation> <translation id="6445835306623867477">I-<ph name="ROUTE_TITLE" /> ku-<ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Yenqaba</translation> <translation id="6453179446719226835">Ulimi lushintshiwe</translation> @@ -627,6 +635,7 @@ <translation id="7346909386216857016">Ok, ngiyezwa</translation> <translation id="7348093485538360975">Ikhibhodi kusikrini</translation> <translation id="735745346212279324">I-VPN inqanyuliwe</translation> +<translation id="7371404428569700291">Iwindi lokurekhoda</translation> <translation id="7377169924702866686">I-Caps Lock ivuliwe.</translation> <translation id="7378203170292176219">Hudula ukuze ukhethe indawo yokurekhoda</translation> <translation id="7378594059915113390">Izilawuli zemidiya</translation> @@ -815,6 +824,7 @@ <translation id="9084606467167974638">Guqula isimo semenyu</translation> <translation id="9089416786594320554">Izindlela zokufaka</translation> <translation id="9091626656156419976">Ususe isibonisi <ph name="DISPLAY_NAME" /></translation> +<translation id="9092749890156285613">Ukuthathwa kwesikrini kwakamuva kanye nokulandiwe</translation> <translation id="9151726767154816831">Qalisa kabusha futhi wenze i-powerwash ukuze ubuyekez</translation> <translation id="9166331175924255663">Guqula ukubonakala okuphakeme Kokuthumela Eduze.</translation> <translation id="9168436347345867845">Yenza emuva kwesikhathi</translation>
diff --git a/ash/system/accessibility/switch_access_menu_button.cc b/ash/system/accessibility/switch_access_menu_button.cc index 2008425..d03c9ec 100644 --- a/ash/system/accessibility/switch_access_menu_button.cc +++ b/ash/system/accessibility/switch_access_menu_button.cc
@@ -39,7 +39,6 @@ image_view_(new views::ImageView()), label_(new views::Label(l10n_util::GetStringUTF16(label_text_id), views::style::CONTEXT_BUTTON)) { - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); std::unique_ptr<views::BoxLayout> layout = std::make_unique<views::BoxLayout>( views::BoxLayout::Orientation::kVertical,
diff --git a/ash/system/media/unified_media_controls_view.cc b/ash/system/media/unified_media_controls_view.cc index 543622a..9f1cb033 100644 --- a/ash/system/media/unified_media_controls_view.cc +++ b/ash/system/media/unified_media_controls_view.cc
@@ -147,7 +147,6 @@ UnifiedMediaControlsView::UnifiedMediaControlsView( UnifiedMediaControlsController* controller) : views::Button(this), controller_(controller) { - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); SetBackground(views::CreateRoundedRectBackground(
diff --git a/ash/system/message_center/notification_swipe_control_view.cc b/ash/system/message_center/notification_swipe_control_view.cc index 203ae61..e65eaa0 100644 --- a/ash/system/message_center/notification_swipe_control_view.cc +++ b/ash/system/message_center/notification_swipe_control_view.cc
@@ -136,6 +136,7 @@ IDS_MESSAGE_NOTIFICATION_SETTINGS_BUTTON_ACCESSIBLE_NAME)); settings_button_->SetBackground( views::CreateSolidBackground(SK_ColorTRANSPARENT)); + settings_button_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); AddChildView(settings_button_); Layout(); @@ -168,6 +169,7 @@ IDS_MESSAGE_NOTIFICATION_SETTINGS_BUTTON_ACCESSIBLE_NAME)); snooze_button_->SetBackground( views::CreateSolidBackground(SK_ColorTRANSPARENT)); + snooze_button_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); AddChildViewAt(snooze_button_, 0); Layout();
diff --git a/ash/system/message_center/notifier_settings_view.cc b/ash/system/message_center/notifier_settings_view.cc index 4c7153e..23dfbf2 100644 --- a/ash/system/message_center/notifier_settings_view.cc +++ b/ash/system/message_center/notifier_settings_view.cc
@@ -311,7 +311,6 @@ NotifierSettingsView::NotifierButton::NotifierButton( const NotifierMetadata& notifier) : views::Button(PressedCallback()), notifier_id_(notifier.notifier_id) { - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); auto icon_view = std::make_unique<views::ImageView>();
diff --git a/ash/system/toast/toast_overlay.cc b/ash/system/toast/toast_overlay.cc index 4ec5315..ca5332e13 100644 --- a/ash/system/toast/toast_overlay.cc +++ b/ash/system/toast/toast_overlay.cc
@@ -132,7 +132,6 @@ views::InstallRoundRectHighlightPathGenerator(this, gfx::Insets(), kToastCornerRounding); - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/ash/system/unified/page_indicator_view.cc b/ash/system/unified/page_indicator_view.cc index 6536196..eb91f51 100644 --- a/ash/system/unified/page_indicator_view.cc +++ b/ash/system/unified/page_indicator_view.cc
@@ -48,7 +48,6 @@ public: PageIndicatorButton(UnifiedSystemTrayController* controller, int page) : views::Button(this), controller_(controller), page_number_(page) { - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); SetInkDropMode(InkDropMode::ON); views::InstallFixedSizeCircleHighlightPathGenerator(this, kInkDropRadius);
diff --git a/ash/system/unified/unified_managed_device_view.cc b/ash/system/unified/unified_managed_device_view.cc index 81315c5..ccb68111 100644 --- a/ash/system/unified/unified_managed_device_view.cc +++ b/ash/system/unified/unified_managed_device_view.cc
@@ -32,7 +32,6 @@ icon_(new views::ImageView), label_(new views::Label), controller_(controller) { - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
diff --git a/ash/wm/desks/close_desk_button.cc b/ash/wm/desks/close_desk_button.cc index fe3fe458..6d95c8f3c 100644 --- a/ash/wm/desks/close_desk_button.cc +++ b/ash/wm/desks/close_desk_button.cc
@@ -31,7 +31,6 @@ SetInkDropMode(InkDropMode::ON); SetHasInkDropActionOnClick(true); SetFocusPainter(nullptr); - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); SetEventTargeter(std::make_unique<views::ViewTargeter>(this));
diff --git a/ash/wm/desks/desk_preview_view.cc b/ash/wm/desks/desk_preview_view.cc index a3783eb..7ebb7f0 100644 --- a/ash/wm/desks/desk_preview_view.cc +++ b/ash/wm/desks/desk_preview_view.cc
@@ -218,7 +218,6 @@ SetFocusPainter(nullptr); SetInkDropMode(InkDropMode::OFF); - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); SetPaintToLayer(ui::LAYER_TEXTURED);
diff --git a/ash/wm/desks/new_desk_button.cc b/ash/wm/desks/new_desk_button.cc index c3bcfe99..e2cc356 100644 --- a/ash/wm/desks/new_desk_button.cc +++ b/ash/wm/desks/new_desk_button.cc
@@ -46,7 +46,6 @@ SetInkDropMode(InkDropMode::ON); SetHasInkDropActionOnClick(true); SetFocusPainter(nullptr); - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); auto border = std::make_unique<WmHighlightItemBorder>(kCornerRadius);
diff --git a/ash/wm/overview/overview_item_view.cc b/ash/wm/overview/overview_item_view.cc index b8da9a2f..c360ca22 100644 --- a/ash/wm/overview/overview_item_view.cc +++ b/ash/wm/overview/overview_item_view.cc
@@ -110,7 +110,6 @@ SetMinimumImageSize(gfx::Size(kHeaderHeightDp, kHeaderHeightDp)); SetAccessibleName(l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE)); SetTooltipText(l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE)); - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); views::InstallFixedSizeCircleHighlightPathGenerator(
diff --git a/ash/wm/overview/overview_session.cc b/ash/wm/overview/overview_session.cc index 553ef7c..11006e1 100644 --- a/ash/wm/overview/overview_session.cc +++ b/ash/wm/overview/overview_session.cc
@@ -126,7 +126,7 @@ // role button as the overview focus widget's contents. class OverviewFocusButton : public views::Button { public: - OverviewFocusButton() : views::Button(/*listener=*/nullptr) { + OverviewFocusButton() : views::Button(views::Button::PressedCallback()) { // Make this not focusable to avoid accessibility error since this view has // no accessible name. SetFocusBehavior(FocusBehavior::NEVER);
diff --git a/base/task/sequence_manager/task_queue.cc b/base/task/sequence_manager/task_queue.cc index d3fb368b..c5684af6b 100644 --- a/base/task/sequence_manager/task_queue.cc +++ b/base/task/sequence_manager/task_queue.cc
@@ -349,5 +349,29 @@ return std::move(impl_); } +void TaskQueue::SetOnTaskStartedHandler(OnTaskStartedHandler handler) { + DCHECK_CALLED_ON_VALID_THREAD(associated_thread_->thread_checker); + if (!impl_) + return; + + impl_->SetOnTaskStartedHandler(std::move(handler)); +} + +void TaskQueue::SetOnTaskCompletedHandler(OnTaskCompletedHandler handler) { + DCHECK_CALLED_ON_VALID_THREAD(associated_thread_->thread_checker); + if (!impl_) + return; + + impl_->SetOnTaskCompletedHandler(std::move(handler)); +} + +void TaskQueue::SetOnTaskPostedHandler(OnTaskPostedHandler handler) { + DCHECK_CALLED_ON_VALID_THREAD(associated_thread_->thread_checker); + if (!impl_) + return; + + impl_->SetOnTaskPostedHandler(std::move(handler)); +} + } // namespace sequence_manager } // namespace base
diff --git a/base/task/sequence_manager/task_queue.h b/base/task/sequence_manager/task_queue.h index 78143f4..9c5b725 100644 --- a/base/task/sequence_manager/task_queue.h +++ b/base/task/sequence_manager/task_queue.h
@@ -342,6 +342,35 @@ return default_task_runner_; } + // Checks whether or not this TaskQueue has a TaskQueueImpl. + // TODO(kdillon): Remove this method when TaskQueueImpl inherits from + // TaskQueue and TaskQueue no longer owns an Impl. + bool HasImpl() { return !!impl_; } + + using OnTaskStartedHandler = + RepeatingCallback<void(const Task&, const TaskQueue::TaskTiming&)>; + using OnTaskCompletedHandler = + RepeatingCallback<void(const Task&, TaskQueue::TaskTiming*, LazyNow*)>; + using OnTaskPostedHandler = RepeatingCallback<void(const Task&)>; + + // Sets a handler to subscribe for notifications about started and completed + // tasks. + void SetOnTaskStartedHandler(OnTaskStartedHandler handler); + + // |task_timing| may be passed in Running state and may not have the end time, + // so that the handler can run an additional task that is counted as a part of + // the main task. + // The handler can call TaskTiming::RecordTaskEnd, which is optional, to + // finalize the task, and use the resulting timing. + void SetOnTaskCompletedHandler(OnTaskCompletedHandler handler); + + // Set a callback for adding custom functionality for processing posted task. + // Callback will be dispatched while holding a scheduler lock. As a result, + // callback should not call scheduler APIs directly, as this can lead to + // deadlocks. For example, PostTask should not be called directly and + // ScopedDeferTaskPosting::PostOrDefer should be used instead. + void SetOnTaskPostedHandler(OnTaskPostedHandler handler); + protected: virtual ~TaskQueue();
diff --git a/base/values.h b/base/values.h index 27d24b7..0f3e9b9 100644 --- a/base/values.h +++ b/base/values.h
@@ -80,6 +80,15 @@ // dict.SetKey("mykey", base::Value(foo)); // return dict; // } +// +// The new design tries to avoid losing type information. Thus when migrating +// off deprecated types, existing usages of base::ListValue should be replaced +// by std::vector<base::Value>. +// +// Furthermore, existing usages of base::DictionaryValue should eventually be +// replaced with base::flat_map<std::string, base::Value>. However, this +// requires breaking changing the mapped type of Value::DictStorage first, and +// thus usages of base::DictionaryValue should be kept for the time being. class BASE_EXPORT Value { public: using BlobStorage = std::vector<uint8_t>; @@ -769,6 +778,7 @@ }; // This type of Value represents a list of other Value values. +// DEPRECATED: Use std::vector<base::Value> instead. class BASE_EXPORT ListValue : public Value { public: using const_iterator = ListView::const_iterator;
diff --git a/build/android/pylib/local/device/local_device_test_run.py b/build/android/pylib/local/device/local_device_test_run.py index 2fcb111d..a656f53 100644 --- a/build/android/pylib/local/device/local_device_test_run.py +++ b/build/android/pylib/local/device/local_device_test_run.py
@@ -193,7 +193,7 @@ self._env.IncrementCurrentTry() tests = self._GetTestsToRetry(tests, try_results) - logging.info('FINISHED TRY #%d/%d', tries, self._env.max_tries) + logging.info('FINISHED TRY #%d/%d', tries + 1, self._env.max_tries) if tests: logging.info('%d failed tests remain.', len(tests)) else:
diff --git a/build/config/mac/mac_sdk.gni b/build/config/mac/mac_sdk.gni index eda9dfd..09183cb6 100644 --- a/build/config/mac/mac_sdk.gni +++ b/build/config/mac/mac_sdk.gni
@@ -81,7 +81,7 @@ sdk_info_args += [ "--get_sdk_info", "--create_symlink_at", - rebase_path("$root_build_dir/sdk/xcode_links", "//"), + "sdk/xcode_links", ] } sdk_info_args += [ mac_sdk_name ]
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index 4c2214db..39bcbcf 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -0.20201027.0.1 +0.20201027.1.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index 4c2214db..39bcbcf 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -0.20201027.0.1 +0.20201027.1.1
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index 567462db..584be2cf 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -2139,6 +2139,7 @@ # Deps needed for child processes. "//components/version_info/android:version_constants_java", + "//components/viz/common:common_java", "//components/viz/service:service_java", "//content/public/android:content_java", @@ -3330,7 +3331,6 @@ "java/src/org/chromium/chrome/browser/rlz/RlzPingHandler.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java", - "java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotTask.java", "java/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceFactory.java", "java/src/org/chromium/chrome/browser/sharing/SharingJNIBridge.java", "java/src/org/chromium/chrome/browser/sharing/SharingServiceProxy.java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index e0a449d..c2c8c26 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -1342,8 +1342,6 @@ "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java", "java/src/org/chromium/chrome/browser/safety_check/SafetyCheckUpdatesDelegateImpl.java", - "java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotSource.java", - "java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotTask.java", "java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java", "java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java", "java/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceFactory.java",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/DEPS b/chrome/android/java/src/org/chromium/chrome/browser/DEPS index 8e245d0..7e01aa1 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/DEPS +++ b/chrome/android/java/src/org/chromium/chrome/browser/DEPS
@@ -323,9 +323,6 @@ "SafeBrowsingPasswordReuseDialogBridge\.java": [ "+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java", ], - "EditorScreenshotTask\.java": [ - "+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java", - ], "SendTabToSelfInfoBarController\.java": [ "+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java", ],
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/screenshot/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/screenshot/OWNERS deleted file mode 100644 index b0364bb3..0000000 --- a/chrome/android/java/src/org/chromium/chrome/browser/screenshot/OWNERS +++ /dev/null
@@ -1,4 +0,0 @@ -file://components/send_tab_to_self/OWNERS - -# COMPONENT: UI>Browser>Sharing -# OS: Android
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier.java index e9eda27..2d43345e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier.java
@@ -18,6 +18,7 @@ public class TabModelSelectorProfileSupplier extends ObservableSupplierImpl<Profile> implements TabModelSelectorObserver { private TabModelSelector mSelector; + private boolean mIsTabStateInitialized; public TabModelSelectorProfileSupplier(ObservableSupplier<TabModelSelector> selectorSupplier) { selectorSupplier.addObserver(this::setSelector); @@ -31,21 +32,10 @@ @Override public void onTabModelSelected(TabModel newModel, TabModel oldModel) { Profile newProfile = newModel.getProfile(); - // When switching to an incognito tab model, the corresponding off-the-record profile does - // not necessarily exist yet, but we may be able to force its creation. - if (newProfile == null && newModel.isIncognito()) { - Profile oldProfile = oldModel.getProfile(); - assert oldProfile != null; - // If the previous profile is itself off-the-record, we can't derive an - // off-the-record profile from it. - if (oldProfile.isOffTheRecord()) return; - // Forces creation of a primary off-the-record profile. TODO(pnoland): replace this with - // getIncognitoProfile() once multiple OTR profiles are supported on Android. - newProfile = oldProfile.getOffTheRecordProfile(); - } + assert !mIsTabStateInitialized || newProfile != null; + // Postpone setting the profile until tab state is initialized. if (newProfile == null) return; - set(newProfile); } @@ -57,14 +47,9 @@ @Override public void onTabStateInitialized() { + mIsTabStateInitialized = true; Profile profile = mSelector.getCurrentModel().getProfile(); - if (profile == null) { - // Since only IncognitoTabModelImpl provides null profile, the current model should be - // off-the-record. - assert mSelector.getCurrentModel().isIncognito(); - // TODO(https://crbug.com/1060940): Update to cover all OTR profiles. - profile = Profile.getLastUsedRegularProfile().getPrimaryOTRProfile(); - } + assert profile != null; set(profile); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/GoogleServicesSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/GoogleServicesSettingsTest.java index 912a38a..86670dc 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/GoogleServicesSettingsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/GoogleServicesSettingsTest.java
@@ -20,7 +20,7 @@ import org.junit.runner.RunWith; import org.chromium.base.test.util.CommandLineFlags; -import org.chromium.base.test.util.DisabledTest; +import org.chromium.base.test.util.DisableIf; import org.chromium.chrome.R; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; @@ -100,7 +100,7 @@ @Test @LargeTest @Features.EnableFeatures(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY) - @DisabledTest(message = "https://crbug.com/1142481") + @DisableIf.Build(supported_abis_includes = "x86", message = "https://crbug.com/1142481") public void showSignOutDialogBeforeSigningUserOut() { mAccountManagerTestRule.addTestAccountThenSigninAndEnableSync(); startGoogleServicesSettings();
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplierTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplierTest.java index 7ee09a1b..1a862f4 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplierTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplierTest.java
@@ -89,16 +89,22 @@ } @Test - public void tesIncognitoProfileForceCreated() { - doReturn(null).when(mIncognitoTabModel).getProfile(); - doReturn(mProfile).when(mTabModel).getProfile(); - doReturn(mIncognitoProfile).when(mProfile).getOffTheRecordProfile(); + public void tesOTRProfileReturnsForIncognitoTabModel() { + doReturn(mIncognitoProfile).when(mIncognitoTabModel).getProfile(); mSupplier.onTabModelSelected(mIncognitoTabModel, mTabModel); Assert.assertEquals(mIncognitoProfile, mSupplier.get()); } @Test + public void tesRegularProfileReturnsForRegularTabModel() { + doReturn(mProfile).when(mTabModel).getProfile(); + mSupplier.onTabModelSelected(mTabModel, mIncognitoTabModel); + + Assert.assertEquals(mProfile, mSupplier.get()); + } + + @Test public void testDestroy() { mSupplier.destroy(); // There's nothing to tear down before the tab model selector is initialized.
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb index ed95fe8a..147407d 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Stop</translation> <translation id="1272293450992660632">PIN-waardes stem nie ooreen nie.</translation> <translation id="1272978324304772054">Hierdie gebruikerrekening behoort nie aan die domein waarvoor die toestel ingeskryf is nie. As jy by 'n ander domein wil inskryf, moet jy eers toestelterugstelling ondergaan.</translation> -<translation id="1274977772557788323">Adobe Flash Player-berginginstellings</translation> <translation id="1274997165432133392">Webkoekies en ander werfdata</translation> <translation id="1275718070701477396">Gekies</translation> <translation id="1276994519141842946">Kon nie <ph name="APP_NAME" /> deïnstalleer nie</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Jou boekmerke, geskiedenis en ander instellings sal met jou Google-rekening gesinkroniseer word.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Tuisnetwerk, swerf tans nie</translation> -<translation id="1315056510003830387">Mag nie Flash gebruik nie</translation> <translation id="1316136264406804862">Soek tans …</translation> <translation id="1316495628809031177">Sinkronisering is onderbreek</translation> <translation id="1317637799698924700">Jou dokstasie sal in USB Tipe C- versoenbare modus werk.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC steun nie enkripsiesoort nie</translation> <translation id="1984417487208496350">Geen beskerming nie (nie aanbeveel nie)</translation> <translation id="1987317783729300807">Rekeninge</translation> -<translation id="1988494864246143197">Werwe gebruik gewoonlik Flash om oudio, video of videospeletjies te speel. Flash Player sal ná Desember 2020 nie meer gesteun word nie.</translation> <translation id="1989112275319619282">Blaai deur</translation> <translation id="1990512225220753005">Moenie kortpaaie op hierdie bladsy wys nie</translation> <translation id="1992397118740194946">Nie gestel nie</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Vensterplasing</translation> <translation id="2881076733170862447">Wanneer jy die uitbreiding klik</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> sal binnekort herbegin en terugstel</translation> -<translation id="288387288628762616">Mag Flash gebruik</translation> <translation id="2885378588091291677">Taakbestuurder</translation> <translation id="2885729872133513017">Kon nie bedienerantwoord dekodeer nie.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Jy is aangemeld!</translation> <translation id="3428747202529429621">Hou jou veilig op Chrome en kan gebruik word om jou sekuriteit in ander Google-programme te verbeter wanneer jy aangemeld is</translation> <translation id="3428800329481094896">Gaan haal tans die Linux-houer se ssh-sleutels</translation> +<translation id="3429271624041785769">Webinhoudtale</translation> <translation id="3429275422858276529">Boekmerk hierdie bladsy om dit later maklik te kry</translation> <translation id="3432227430032737297">Verwyder alles wat gewys word</translation> <translation id="3432757130254800023">Stuur oudio en video na skerms in die plaaslike netwerk</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Dit is algemene inligting oor hierdie toestel en hoe dit gebruik word (soos batteryvlak, stelsel- en programaktiwiteit en foute). Die data sal gebruik word om Android beter te maak, en sommige saamgestelde inligting sal ook Google-programme en -vennote, soos Android-ontwikkelaars, help om hul programme en produkte beter te maak.</translation> <translation id="3838085852053358637">Kon nie uitbreiding laai nie</translation> <translation id="3838486795898716504">Meer <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Webkoekies en ander web- en inpropdata</translation> <translation id="383891835335927981">Geen werwe is in- of uitgezoem nie</translation> <translation id="3839509547554145593">Aktiveer muisrolleesversnelling</translation> <translation id="3839516600093027468">Blokkeer <ph name="HOST" /> altyd om die knipbord te sien</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Aflaaibestuurder</translation> <translation id="3881478300875776315">Wys minder reëls</translation> <translation id="3882165008614329320">Bestaande video van kamera of lêer af</translation> +<translation id="3884152383786131369">Webinhoud wat in veelvuldige tale beskikbaar is, sal die eerste gesteunde taal op hierdie lys gebruik. Hierdie voorkeure word met jou blaaierinstellings gesinkroniseer. <ph name="BEGIN_LINK_LEARN_MORE" />Kom meer te wete<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Jou versoek om by hierdie werf in te gaan, is na <ph name="NAME" /> gestuur</translation> <translation id="3888550877729210209">Maak tans notas met <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Skakel Chrome-sinkronisering aan om Wi-fi-sinkronisering te gebruik</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Bepaal tans toestelopstelling.</translation> <translation id="4025039777635956441">Demp geslekteerde werf</translation> <translation id="4027804175521224372">(Jy mis uit – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Jou Flash-instellings sal gehou word totdat jy Chrome toemaak.</translation> <translation id="4028467762035011525">Voeg invoermetodes by</translation> <translation id="4031179711345676612">Mikrofoon word toegelaat</translation> <translation id="4031527940632463547">Sensors is geblokkeer</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Stel Kerberos op</translation> <translation id="4235200303672858594">Hele skerm</translation> <translation id="4235965441080806197">Kanselleer aanmelding</translation> -<translation id="4237773362828263530">Instellings met "*"-wisselkaarte word nie meer gesteun nie. Kontak jou administrateur om <ph name="BEGIN_LINK" />hierdie instellings te verander<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Lees oortjie later}other{Lees oortjies later}}</translation> <translation id="4242145785130247982">Veelvuldige kliëntesertifikate word nie gesteun nie</translation> <translation id="4242533952199664413">Maak instellings oop</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Kon nie sein kry nie</translation> <translation id="4549791035683739768">Geen vingerafdrukke is in jou sekuriteitsleutel geberg nie</translation> <translation id="4551763574344810652">Druk <ph name="MODIFIER_KEY_DESCRIPTION" /> om te ontdoen</translation> -<translation id="4552089082226364758">Flits</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" />-netwerk, seinsterkte <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Jy moet jou Chromebook herbegin om die toesteltaal te verander. <ph name="BEGIN_LINK_LEARN_MORE" />Kom meer te wete<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Eksterne uitbreiding is op dieselfde of 'n laer weergawe vergeleke met die bestaande een.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Gaan uit en sit kinderslot aan</translation> <translation id="4976009197147810135">Verdeel vertikaal</translation> <translation id="4977942889532008999">Bevestig toegang</translation> -<translation id="4978905460870207779">Werwe kan vra om Flash te gebruik</translation> <translation id="4980805016576257426">Hierdie uitbreiding bevat wanware.</translation> <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Meld aan<ph name="END_LINK" /> om jou blaaierdata van al jou gesinkroniseerde toestelle en jou Google-rekening af uit te vee.</translation> <translation id="4982236238228587209">Toestelsagteware</translation> @@ -4182,7 +4175,6 @@ <translation id="5906732635754427568">Data wat met hierdie program geassosieer word, sal van hierdie toestel af verwyder word.</translation> <translation id="5908474332780919512">Begin program wanneer jy aanmeld</translation> <translation id="5908695239556627796">Muis se rolleesspoed</translation> -<translation id="5908769186679515905">Verhinder werwe om Flash te laat loop</translation> <translation id="5910363049092958439">Stoor prent as …</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> is vanlyn</translation> <translation id="5911533659001334206">Kortpadbekyker</translation> @@ -4366,6 +4358,7 @@ <translation id="6112727384379533756">Voeg 'n kaartjie by</translation> <translation id="6112931163620622315">Kyk op jou foon</translation> <translation id="6112952769866305444">Wysig persoon, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Stel jou versteksoekenjin vir Chrome-blaaier en <ph name="DEVICE_TYPE" />-lanseerder</translation> <translation id="6113942107547980621">Skakel na die primêre gebruikerprofiel op jou foon toe oor om Smart Lock te gebruik</translation> <translation id="6116921718742659598">Verander taal- en invoerinstellings</translation> <translation id="6120205520491252677">Speld hierdie bladsy aan beginskerm vas …</translation> @@ -5232,6 +5225,7 @@ <translation id="7140928199327930795">Geen ander beskikbare toestelle nie.</translation> <translation id="7141105143012495934">Kon nie aanmeld nie omdat jou rekeningbesonderhede nie gehaal kon word nie. Kontak jou administrateur of probeer weer.</translation> <translation id="7143207342074048698">Koppel tans</translation> +<translation id="7143358760238281735">Geen programme is beskikbaar nie</translation> <translation id="7144878232160441200">Probeer weer</translation> <translation id="714876143603641390">LAN-konnektiwiteit</translation> <translation id="7149893636342594995">Afgelope 24 uur</translation> @@ -5703,6 +5697,7 @@ <translation id="7707922173985738739">Gebruik mobiele data</translation> <translation id="7709152031285164251">Het misluk – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&amp;Saai uit …</translation> +<translation id="7712739869553853093">Druk voorskoudialoog</translation> <translation id="7712836429117959503">Onbekende uitbreiding met ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Webkoekies van <ph name="DOMAIN" /> af toegelaat.</translation> <translation id="7714464543167945231">Sertifikaat</translation> @@ -5832,7 +5827,6 @@ <translation id="7831491651892296503">Kon nie netwerk opstel nie</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Eindtyd</translation> -<translation id="783214144752121388">Blokkeer werwe om Flash te laat loop (aanbeveel)</translation> <translation id="7833720883933317473">Gestoorde gepasmaakte woorde sal hier verskyn</translation> <translation id="7835178595033117206">Boekmerk is verwyder</translation> <translation id="7836850009646241041">Probeer weer om jou sekuriteitsleutel te raak</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Hierdie lêer is geënkripteer. Vra die eienaar om dit te dekripteer.}other{Sommige van hierdie lêers is geënkripteer. Vra hul eienaar om hulle te dekripteer.}}</translation> <translation id="808894953321890993">Verander wagwoord</translation> <translation id="8090234456044969073">Lees 'n lys van jou mees besoekte webwerwe</translation> -<translation id="8092681102116274204">Instellings met "*"-wisselkaarte word nie meer gesteun nie. Kontak die uitbreidingontwikkelaar of jou administrateur om <ph name="BEGIN_LINK" />hierdie instellings te verander<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> reageer tans nie</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Rugsteun in Google Drive. Stel jou data maklik terug of wissel enige tyd tussen toestelle. Jou rugsteun sluit programdata in.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Jou rugsteune word in Google opgelaai en met jou Google-rekeningwagwoord geënkripteer.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">Kies <ph name="TOPIC_SOURCE" />-albums</translation> <translation id="8202160505685531999">Voer asseblief jou wagwoord weer in om jou <ph name="DEVICE_TYPE" />-profiel op te dateer.</translation> <translation id="8203732864715032075">Stuur vir jou kennisgewings en stel dit as verstek om hierdie rekenaar vir Boodskappe te onthou. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokkeer Flash (aanbeveel)</translation> <translation id="820568752112382238">Mees besoekte werwe</translation> <translation id="8206745257863499010">Blues</translation> <translation id="8206859287963243715">Sellulêr</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 2e5d55a..2819af0 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">አቁም</translation> <translation id="1272293450992660632">ፒን እሴቶች አይዛመዱም።</translation> <translation id="1272978324304772054">ይህ የተጠቃሚ መለያ መሣሪያው የተመዘገበበት ጎራ አካል አይደለም። ወደተለየ ጎራ መመዝገብ ከፈለጉ መጀመሪያ የመሣሪያ ዳግም ማግኛን ማከናወን አለብዎት።</translation> -<translation id="1274977772557788323">የAdobe Flash Player ማከማቻ ቅንብሮች</translation> <translation id="1274997165432133392">ኩኪዎች እና የሌላ ጣቢያ ውሂብ</translation> <translation id="1275718070701477396">ተመርጧል</translation> <translation id="1276994519141842946"><ph name="APP_NAME" />ን ማራገፍ አልተቻለም</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">የእርስዎ እልባቶች፣ ታሪክ እና ሌሎች ቅንብሮች ወደ የእርስዎ Google መለያ እንዲመሳሰሉ ይደረጋሉ።</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">የቤት አውታረ መረብ፣ የሌላን እየተጠቀመ አይደለም</translation> -<translation id="1315056510003830387">ፍላሽ ለመጠቀም አልተፈቀደም</translation> <translation id="1316136264406804862">በመፈለግ ላይ...</translation> <translation id="1316495628809031177">ስምረት ባለበት ቆሟል</translation> <translation id="1317637799698924700">የእርስዎ መትከያ ጣቢያ በ USB Type-C ተኳዃኝ ሁነታ ውስጥ ይሠራል።</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC የምስጠራ ዓይነትን አይደግፍም</translation> <translation id="1984417487208496350">ምንም ጥበቃ የለም (አይመከርም)</translation> <translation id="1987317783729300807">መለያዎች</translation> -<translation id="1988494864246143197">ጣቢያዎች አብዛኛው ጊዜ ኦዲዮን፣ ቪዲዮን ወይም የቪዲዮ ጨዋታዎችን ለማጫወት Flash ይጠቀማሉ። Flash Player ከዲሴምበር 2020 በኋላ አይደገፍም።</translation> <translation id="1989112275319619282">አስስ</translation> <translation id="1990512225220753005">በዚህ ገጽ ላይ አቋራጮችን አታሳይ</translation> <translation id="1992397118740194946">ያልተዘጋጀ</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">የመስኮት ምደባ</translation> <translation id="2881076733170862447">ቅጥያውን ጠቅ ሲያደርጉ</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ዳግም ይጀምርና ለጊዜው ዳግም ይዘጋጃል።</translation> -<translation id="288387288628762616">ፍላሽ ለመጠቀም ተፈቅዷል</translation> <translation id="2885378588091291677">ተግባር መሪ</translation> <translation id="2885729872133513017">የአገልጋይ ምላሽን ምሥጠራ በመፍታት ጊዜ ችግር አጋጥሟል።</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2080,6 +2076,7 @@ <translation id="3428419049384081277">ወደ መለያ ገብተዋል!</translation> <translation id="3428747202529429621">በChrome ላይ ደህንነትዎን ይጠብቃል፣ እና በመለያ በገቡባቸው ሌሎች የGoogle መተግበሪያዎች ላይ ደህንነትዎን ለማሻሻል ስራ ላይ ሊውል ይችላል።</translation> <translation id="3428800329481094896">የLinux መያዣ ssh ቁልፎችን በማምጣት ላይ</translation> +<translation id="3429271624041785769">የድር ይዘት ቋንቋዎች</translation> <translation id="3429275422858276529">ይህን ገጽ በቀላሉ በኋላ እንዲያገኙ ዕልባት ያድርጉት</translation> <translation id="3432227430032737297">ሁሉም የታዩትን አስወግድ</translation> <translation id="3432757130254800023">ኦዲዮ እና ቪዲዮ በአካባቢያዊ አውታረ መረብ ላይ ላሉ ማሳያዎች ላክ</translation> @@ -2464,7 +2461,6 @@ <translation id="383669374481694771">ይህ ስለዚህ መሣሪያ እና እንዴት ጥቅም ኣይ እንደሚውል በተመለከተ ያለ አጠቃላይ መረጃ (እንደ የባትሪ ደረጃ፣ የሥርዓትና የመተግበሪያ እንቅስቃሴ፣ እና ስህተቶች) ነው። ውሂቡ Androidን ለማሻሻል ጥቅም ላይ ይውላል፣ እና አንዳንድ የተዋሃደ መረጃ እንዲሁም የGoogle መተግበሪያዎች እና እንደ የAndroid ገንቢዎች ያሉ አጋሮች የእነሱ መተግበሪያዎች እና ምርቶች የተሻሉ እንዲያደርጉ ያግዛቸዋል።</translation> <translation id="3838085852053358637">ቅጥያን መጫን አልተሳካም</translation> <translation id="3838486795898716504">ተጨማሪ <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">ኩኪዎች እና የሌላ ጣቢያ እና ተሰኪ ውሂብ</translation> <translation id="383891835335927981">ምንም ጣቢያዎች አልጎሉም ወይም አላነሱም</translation> <translation id="3839509547554145593">የመዳፊት ሽብለላ ማፍጠኛን አንቃ</translation> <translation id="3839516600093027468"><ph name="HOST" /> የቅንጥብ ሰሌዳው እንዳይመለከት አግድ</translation> @@ -2506,6 +2502,7 @@ <translation id="3879748587602334249">የማውረድ አቀናባሪ</translation> <translation id="3881478300875776315">ያነሱ መስመሮችን አሳይ</translation> <translation id="3882165008614329320">ከካሜራ ወይም ፋይል ላይ ያለ ቪዲዮ</translation> +<translation id="3884152383786131369">በበርካታ ቋንቋዎች የሚገኝ የድር ይዘት ከዚህ ዝርዝር ላይ የመጀመሪያውን የሚደገፍ ቋንቋ ይጠቀማል። እነዚህ ምርጫዎች ከአሳሽዎ ቅንብሮች ጋር ይሰምራሉ። <ph name="BEGIN_LINK_LEARN_MORE" />የበለጠ ለመረዳት<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">ይህን ጣቢያ የመድረስ ጥያቄዎ ለ<ph name="NAME" /> ተልኳል</translation> <translation id="3888550877729210209">ማስታወሻዎችን በ<ph name="LOCK_SCREEN_APP_NAME" /> በመውሰድ ላይ</translation> <translation id="3890064827463908288">የWi-Fi ስምረትን ለመጠቀም የChrome ስምረትን ያብሩ</translation> @@ -2638,7 +2635,6 @@ <translation id="4023146161712577481">የመሳሪያ መዋቀርን በመወሰን ላይ።</translation> <translation id="4025039777635956441">የተመረጠውን ጣቢያ ድምጸ-ከል አድርግበት</translation> <translation id="4027804175521224372">(እያመለጠዎት ነው—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Chromeን እስከሚዘጉት ድረስ የእርስዎ የFlash ቅንብሮች እንዳሉ ይቆያሉ።</translation> <translation id="4028467762035011525">የግቤት ዘዴዎችን ያክሉ</translation> <translation id="4031179711345676612">ማይክሮፎን ተፈቅዷል</translation> <translation id="4031527940632463547">ዳሳሾች ታግደዋል</translation> @@ -2788,7 +2784,6 @@ <translation id="4232375817808480934">Kerberosን ያዋቅሩ</translation> <translation id="4235200303672858594">መላው የማያ ገጽ</translation> <translation id="4235965441080806197">መግባትን ሰርዝ</translation> -<translation id="4237773362828263530">የ«*» ልቅ ምልክቶች ያላቸው ቅንብሮች ከእንግዲህ አይደገፉም። <ph name="BEGIN_LINK" />እነዚህን ቅንብሮች ለመቀየር<ph name="END_LINK" /> አስተዳዳሪዎን ያነጋግሩ።</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{ትርን በኋላ ላይ ያንብቡ}one{ትርን በኋላ ላይ ያንብቡ}other{ትሮችን በኋላ ላይ ያንብቡ}}</translation> <translation id="4242145785130247982">በርካታ የደንበኛ ምስክርነቶች አይደገፉም</translation> <translation id="4242533952199664413">ቅንብሮችን ክፈት</translation> @@ -3052,7 +3047,6 @@ <translation id="4548483925627140043">ሲግናል አልተገኘም</translation> <translation id="4549791035683739768">የእርስዎ የደህንነት ቁልፍ ምንም የተቀመጡ የጣት አሻራዎች የሉትም</translation> <translation id="4551763574344810652">ለመቀልበስ <ph name="MODIFIER_KEY_DESCRIPTION" />ን ይጫኑ</translation> -<translation id="4552089082226364758">ብልጭታ</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> አውታረ መረብ፣ የሲግናል ጥንካሬ <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">የመሣሪያውን ቋንቋ ለመቀየር የእርስዎን Chromebook እንደገና ማስጀመር ይኖርብዎታል። <ph name="BEGIN_LINK_LEARN_MORE" />የበለጠ ለመረዳት<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">ውጫዊ ቅጥያው ከነባሩ ጋር ተመሳሳይ ወይም ያነሰ ስሪት ነው።</translation> @@ -3407,7 +3401,6 @@ <translation id="4974733135013075877">ውጣ እና ከልጅ ቆልፍ</translation> <translation id="4976009197147810135">ቁልቁል ክፈል</translation> <translation id="4977942889532008999">መዳረሻ ያረጋግጡ</translation> -<translation id="4978905460870207779">ጣቢያዎች Flash ለመጠቀም መጠየቅ ይችላሉ</translation> <translation id="4980805016576257426">ይህ ቅጥያ ተንኮል-አዘል ዌር ይዟል።</translation> <translation id="4981449534399733132">ከሁሉም የእርስዎ የተመሳሰሉ መሣሪያዎች እና የእርስዎ የGoogle መለያ ላይ የአሰሳ ውሂብን ለማጽዳት፣ <ph name="BEGIN_LINK" />በመለያ ይግቡ<ph name="END_LINK" />።</translation> <translation id="4982236238228587209">የመሣሪያ ሶፍትዌር</translation> @@ -4178,7 +4171,6 @@ <translation id="5906732635754427568">ከዚህ መተግበሪያ ጋር የተጎዳኘ ውሂብ ከዚህ መሣሪያ ላይ ይወገዳል።</translation> <translation id="5908474332780919512">ሲገቡ መተግበሪያውን ይጀምሩ</translation> <translation id="5908695239556627796">የመዳፊት ሽብለላ ፍጥነት</translation> -<translation id="5908769186679515905">ጣቢያዎች Flashን እንዳያሄዱ አግድ</translation> <translation id="5910363049092958439">ምስል አስ&ቀምጥ እንደ…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ከመስመር ውጭ ነው</translation> <translation id="5911533659001334206">የአቋራጭ ተመልካች</translation> @@ -4362,6 +4354,7 @@ <translation id="6112727384379533756">ቲኬት ያክሉ</translation> <translation id="6112931163620622315">ስልክዎን ይፈትሹ</translation> <translation id="6112952769866305444">ግለሰብ፣ <ph name="PROFILE_NAME" />፣ <ph name="USERNAME" /> ያርትዑ</translation> +<translation id="6113434369102685411">ለChrome አሳሽ እና ለ<ph name="DEVICE_TYPE" /> አስጀማሪ የእርስዎን ነባሪ የፍለጋ ፕሮግራም ያቀናብሩ</translation> <translation id="6113942107547980621">Smart Lockን ለመጠቀም፣ በእርስው ስልክ ላይ ወደ ተቀዳሚ የተጠቃሚ መገለጫ ይቀይሩ</translation> <translation id="6116921718742659598">የቋንቋ እና ግቤት ቅንብሮችን ይቀይሩ</translation> <translation id="6120205520491252677">ይህን ገጽ የመነሻ ገጹ ላይ ይሰኩት...</translation> @@ -5228,6 +5221,7 @@ <translation id="7140928199327930795">ሌሎች የሚገኙ ምንም መሣሪያዎች የሉም።</translation> <translation id="7141105143012495934">የእርስዎ መለያ ዝርዝሮች ተመልሰው ሊገኙ ሳላልቻሉ መግባት አልተሳካም። እባክዎ የእርስዎን አስተዳዳሪ ያነጋግሩ ወይም እንደገና ይሞክሩ።</translation> <translation id="7143207342074048698">በመያያዝ ላይ</translation> +<translation id="7143358760238281735">ምንም መተግበሪያዎች አይገኙም</translation> <translation id="7144878232160441200">እንደገና ሞክር</translation> <translation id="714876143603641390">የላን ተገናኝነት</translation> <translation id="7149893636342594995">ባለፉት 24 ሰዓቶች</translation> @@ -5699,6 +5693,7 @@ <translation id="7707922173985738739">የተንቀሳቃሽ ስልክ ውሂብ</translation> <translation id="7709152031285164251">አልተሳካም - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Cast...</translation> +<translation id="7712739869553853093">የህትመት ቅድመ-ዕይታ መገናኛ</translation> <translation id="7712836429117959503">መታወቂያ <ph name="EXTENSION_ID" /> ያለው ያልታወቀ ቅጥያ</translation> <translation id="7714307061282548371">ከ<ph name="DOMAIN" /> የመጡ ኩኪዎች ተፈቅደዋል</translation> <translation id="7714464543167945231">ሰርቲፊኬት</translation> @@ -5828,7 +5823,6 @@ <translation id="7831491651892296503">አውታረ መረብን ማዋቀር ላይ ስህተት</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">የሚያበቃበት ጊዜ</translation> -<translation id="783214144752121388">እየሠራ ካለ Flash ጣቢያዎችን አግድ (የሚመከር)</translation> <translation id="7833720883933317473">የተቀመጡ ብጁ ቃላት እዚህ ይታያሉ</translation> <translation id="7835178595033117206">ዕልባት ተወግዷል</translation> <translation id="7836850009646241041">የደህንነት ቁልፍዎን ዳግም ለመንካት ይሞክሩ</translation> @@ -6061,7 +6055,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ይህ ፋይል ተመስጥሯል። ባለቤቱ ምስጠራውን እንዲፈቱት ይጠይቋቸው።}one{አንዳንድ እነዚህ ፋይሎች ተመስጥረዋል። ባለቤታቸው ምስጠራቸውን እንዲፈቱት ይጠይቋቸው።}other{አንዳንድ እነዚህ ፋይሎች ተመስጥረዋል። ባለቤታቸው ምስጠራቸውን እንዲፈቱት ይጠይቋቸው።}}</translation> <translation id="808894953321890993">የይለፍ ቃል ለውጥ</translation> <translation id="8090234456044969073">የእርስዎ በጣም በተደጋጋሚነት የተጎበኙ ድር ጣቢያዎች ዝርዝር ያነብባል</translation> -<translation id="8092681102116274204">የ«*» ልቅ ምልክቶች ያላቸው ቅንብሮች ከእንግዲህ አይደገፉም። <ph name="BEGIN_LINK" />እነዚህን ቅንብሮች ለመቀየር<ph name="END_LINK" /> የቅጥያውን ገንቢ ወይም አስተዳዳሪዎን ያነጋግሩ።</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ምላሽ እየሰጠ አይደለም</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />ምትኬ በGoogle Drive ላይ ያስቀምጡ። በማንኛውም ጊዜ በቀላሉ ውሂብዎን ወደነበረበት ይመልሱ ወይም መሣሪያን ይቀይሩ። ምትኬዎ የመተግበሪያ ውሂብን ያካትታል።<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />የእርስዎ ምትኬዎች ወደ Google ይሰቀሉ እና የእርስዎን የGoogle መለያ ይለፍ ቃል በመጠቀም ይመሣጠራሉ።<ph name="END_PARAGRAPH2" /> @@ -6155,7 +6148,6 @@ <translation id="8201717382574620700">የ<ph name="TOPIC_SOURCE" /> አልበሞችን ይምረጡ</translation> <translation id="8202160505685531999">የእርስዎን የ<ph name="DEVICE_TYPE" /> መገለጫ ለማዘመን እባክዎ የእርስዎን የይለፍ ቃል ዳግም ያስገቡት።</translation> <translation id="8203732864715032075">ማሳወቂያዎችን ለእርስዎ ይልካል እና ይህን ኮምፒውተር ለመልዕክቶች በነባሪነት ያስታውሳል። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flashን አግድ (የሚመከር)</translation> <translation id="820568752112382238">በብዛት የተጎበኙ ጣቢያዎች</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">ሴሉላር</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index b512a319..960490b 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">إيقاف</translation> <translation id="1272293450992660632">لا تتطابق قيم أرقام التعريف الشخصية.</translation> <translation id="1272978324304772054">لا ينتمي حساب المستخدم هذا إلى النطاق المسجَّل به هذا الجهاز. إذا أردت التسجيل بنطاق مختلف، فيلزمك إجراء استرداد الجهاز أولاً.</translation> -<translation id="1274977772557788323">إعدادات مساحة تخزين برنامج Adobe Flash Player</translation> <translation id="1274997165432133392">ملفات تعريف الارتباط وبيانات الموقع الأخرى</translation> <translation id="1275718070701477396">محدد</translation> <translation id="1276994519141842946">تعذّر إلغاء تثبيت <ph name="APP_NAME" />.</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">ستتم مزامنة الإشارات المرجعية والسجل وغير ذلك من الإعدادات مع حسابك على Google.</translation> <translation id="1314565355471455267">الشبكة الظاهرية الخاصة (VPN) في Android</translation> <translation id="131461803491198646">الشبكة الرئيسية، بلا تجوال</translation> -<translation id="1315056510003830387">المواقع الإلكترونية التي لا يُسمح لها باستخدام Flash</translation> <translation id="1316136264406804862">جارِ البحث...</translation> <translation id="1316495628809031177">تم إيقاف المزامنة مؤقتًا</translation> <translation id="1317637799698924700">سيتم تشغيل محطة الإرساء في وضع USB من نوع C المتوافق.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">لا يدعم KDC (مركز توزيع المفاتيح) نوع التشفير</translation> <translation id="1984417487208496350">بلا حماية (غير مُستحسَن)</translation> <translation id="1987317783729300807">حسابات</translation> -<translation id="1988494864246143197">تستخدم المواقع الإلكترونية عادةً Flash لتشغيل الصوت أو الفيديو أو ألعاب الفيديو. لن يتوفَّر برنامج Flash Player بعد كانون الأول (ديسمبر) 2020.</translation> <translation id="1989112275319619282">تصفّح</translation> <translation id="1990512225220753005">عدم إظهار الاختصارات في هذه الصفحة</translation> <translation id="1992397118740194946">لم يتم تعيينه</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">موضِع النافذة</translation> <translation id="2881076733170862447">عند النقر على "الإضافة"</translation> <translation id="2882943222317434580">ستتم إعادة تشغيل <ph name="IDS_SHORT_PRODUCT_NAME" /> وإعادة تعيينه بعد وهلة.</translation> -<translation id="288387288628762616">المواقع الإلكترونية التي يُسمح لها باستخدام Flash</translation> <translation id="2885378588091291677">إدارة المهام</translation> <translation id="2885729872133513017">حدثت مشكلة في فك رمز استجابة الخادم.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2465,7 +2461,6 @@ <translation id="383669374481694771">هذه معلومات عامة حول هذا الجهاز وطريقة استخدامه (مثل مستوى البطارية، ونشاط النظام والتطبيقات، والأخطاء). وسيتم استخدام هذه البيانات في تحسين Android، كما ستساعد بعض المعلومات المجمّعة في تحسين تطبيقات Google والتطبيقات والمنتجات الخاصة بشركائها، مثل مطوّري البرامج المتوافقة مع Android.</translation> <translation id="3838085852053358637">فشل تحميل الإضافة</translation> <translation id="3838486795898716504">مزيد من <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">ملفات تعريف الارتباط وبيانات المواقع والمكونات الإضافية الأخرى</translation> <translation id="383891835335927981">لم يتم تكبير أو تصغير أي مواقع إلكترونية</translation> <translation id="3839509547554145593">تفعيل تسريع تمرير الماوس</translation> <translation id="3839516600093027468">حظر <ph name="HOST" /> دائمًا من الاطلاع على الحافظة</translation> @@ -2636,7 +2631,6 @@ <translation id="4023146161712577481">جارٍ تحديد تكوين الجهاز.</translation> <translation id="4025039777635956441">كتم صوت الموقع الإلكتروني المحدد</translation> <translation id="4027804175521224372">(لقد فاتك—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">سيتم الاحتفاظ بإعدادات Flash حتى خروجك من Chrome.</translation> <translation id="4028467762035011525">إضافة أساليب إدخال</translation> <translation id="4031179711345676612">تم السماح باستخدام الميكروفون</translation> <translation id="4031527940632463547">تم حظر أجهزة الاستشعار</translation> @@ -2788,7 +2782,6 @@ <translation id="4232375817808480934">ضبط Kerberos</translation> <translation id="4235200303672858594">الشاشة بالكامل</translation> <translation id="4235965441080806197">إلغاء تسجيل الدخول</translation> -<translation id="4237773362828263530">لم تعُد الإعدادات التي تحتوي على أحرف البدل "*" متوافقة مع Flash. يمكنك التواصل مع مشرفك <ph name="BEGIN_LINK" />لتغيير هذه الإعدادات<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{إضافة علامة تبويب واحدة إلى قائمة "القراءة لاحقًا"}zero{إضافة علامات تبويب إلى قائمة "القراءة لاحقًا"}two{إضافة علامتَي تبويب إلى قائمة "القراءة لاحقًا"}few{إضافة علامات تبويب إلى قائمة "القراءة لاحقًا"}many{إضافة علامات تبويب إلى قائمة "القراءة لاحقًا"}other{إضافة علامات تبويب إلى قائمة "القراءة لاحقًا"}}</translation> <translation id="4242145785130247982">شهادات العميل المتعددة غير متاحة</translation> <translation id="4242533952199664413">فتح الإعدادات</translation> @@ -3052,7 +3045,6 @@ <translation id="4548483925627140043">لم يتم العثور على إشارة.</translation> <translation id="4549791035683739768">لا يتضمّن مفتاح الأمان بصمات أصابع مخزّنة.</translation> <translation id="4551763574344810652">اضغط على <ph name="MODIFIER_KEY_DESCRIPTION" /> للتراجع</translation> -<translation id="4552089082226364758">الفلاش</translation> <translation id="4552759165874948005">شبكة <ph name="NETWORK_TYPE" />، قوة الإشارة <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">عليك إعادة تشغيل جهاز Chromebook لتغيير لغة الجهاز. <ph name="BEGIN_LINK_LEARN_MORE" />مزيد من المعلومات<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">الإضافة الخارجية في نفس الإصدار أو إصدار أقل مقارنة بالموجودة حاليًا.</translation> @@ -3407,7 +3399,6 @@ <translation id="4974733135013075877">الخروج وتشغيل وضع القفل للأطفال</translation> <translation id="4976009197147810135">تقسيم رأسي</translation> <translation id="4977942889532008999">تأكيد الدخول</translation> -<translation id="4978905460870207779">السماح للمواقع الإلكترونية بطلب استخدام Flash</translation> <translation id="4980805016576257426">تحتوي هذه الإضافة على برامج ضارة.</translation> <translation id="4981449534399733132">لمحو بيانات التصفُّح من جميع أجهزتك التي تمت مزامنتها ومن حسابك على Google، يُرجى <ph name="BEGIN_LINK" />تسجيل الدخول<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">برامج الجهاز</translation> @@ -4179,7 +4170,6 @@ <translation id="5906732635754427568">ستتم إزالة البيانات المقترنة بهذا التطبيق من هذا الجهاز.</translation> <translation id="5908474332780919512">تشغيل التطبيق تلقائيًا عند تسجيل الدخول</translation> <translation id="5908695239556627796">سرعة تمرير الماوس</translation> -<translation id="5908769186679515905">حظر المواقع الإلكترونية من تشغيل Flash</translation> <translation id="5910363049092958439">حفظ ال&صورة باسم...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> غير متصل</translation> <translation id="5911533659001334206">عارض الاختصارات</translation> @@ -5830,7 +5820,6 @@ <translation id="7831491651892296503">حدث خطأ أثناء إعداد الشبكة</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">وقت الانتهاء</translation> -<translation id="783214144752121388">حظر المواقع الإلكترونية من تشغيل Flash (مُستحسَن)</translation> <translation id="7833720883933317473">ستظهر هنا الكلمات المُخصصة المحفوظة</translation> <translation id="7835178595033117206">تمت إزالة إشارة مرجعية</translation> <translation id="7836850009646241041">يُرجى محاولة لمس مفتاح الأمان مرة أخرى.</translation> @@ -6058,7 +6047,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{هذا الملف مشفّر. يُرجى طلب فكّ تشفيره من المالك.}zero{بعض هذه الملفات مشفّرة. يُرجى طلب فكّ تشفيرها من المالك.}two{هذان الملفان مشفّران. يُرجى طلب فكّ تشفيرهما من المالك.}few{بعض هذه الملفات مشفّرة. يُرجى طلب فكّ تشفيرها من المالك.}many{بعض هذه الملفات مشفّرة. يُرجى طلب فكّ تشفيرها من المالك.}other{بعض هذه الملفات مشفّرة. يُرجى طلب فكّ تشفيرها من المالك.}}</translation> <translation id="808894953321890993">تغيير كلمة المرور</translation> <translation id="8090234456044969073">قراءة قائمة بمواقع الويب التي تتردد عليها بكثرة</translation> -<translation id="8092681102116274204">لم تعُد الإعدادات التي تحتوي على أحرف البدل "*" متوافقة مع Flash. يمكنك التواصل مع مطوِّر الإضافة أو مشرفك <ph name="BEGIN_LINK" />لتغيير هذه الإعدادات<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> لا يستجيب.</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />يمكنك الاحتفاظ بنسخة احتياطية في Google Drive. وبإمكانك استعادة بياناتك أو تبديل جهازك بسهولة في أي وقت، علمًا بأن نسختك الاحتياطية تتضمن بيانات التطبيق.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ويتم تحميل النُسخ الاحتياطية إلى Google وتشفيرها باستخدام كلمة مرور حسابك على Google.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6141,6 @@ <translation id="8201717382574620700">اختيار ألبومات <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">يُرجى إعادة إدخال كلمة المرور لتحديث ملف <ph name="DEVICE_TYPE" /> الشخصي.</translation> <translation id="8203732864715032075">تُرسِل إليك الإشعارات وتتذكر جهاز الكمبيوتر هذا لميزة "الرسائل". <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">حظر Flash (مُستحسَن)</translation> <translation id="820568752112382238">المواقع الأكثر زيارة</translation> <translation id="8206745257863499010">موسيقي</translation> <translation id="8206859287963243715">خلوي</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index 91414d8..38a68f3 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">বন্ধ কৰক</translation> <translation id="1272293450992660632">পিনৰ মানসমূহ মিলা নাই।</translation> <translation id="1272978324304772054">যিটো ড’মেইনৰ সৈতে এই ডিভাইচটো পঞ্জীয়ন কৰা আছে ব্যৱহাৰকাৰীৰ একাউণ্টটো সেই ড’মেইনটোৰ নহয়। আপুনি যদি অন্য ড’মেইনৰ সৈতে পঞ্জীয়ন কৰিব বিচাৰে তেন্তে আপুনি প্ৰথমে ডিভাইচ পুনৰুদ্ধাৰৰ প্ৰক্ৰিয়া সম্পূৰ্ণ কৰিব লাগিব।</translation> -<translation id="1274977772557788323">Adobe Flash Playerৰ সঞ্চয়াগাৰৰ ছেটিংসমূহ</translation> <translation id="1274997165432133392">কুকি আৰু অন্য ছাইট ডেটা</translation> <translation id="1275718070701477396">বাছনি কৰা আছে</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> ইনষ্টল কৰিব পৰা নগ’ল</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">আপোনাৰ বুকমাৰ্ক, ব্ৰাউজিঙৰ ইতিহাস, পাছৱর্ড আৰু অন্য ছেটিংসমূহ আপোনাৰ Google একাউণ্টত ছিংক কৰা হ’ব।</translation> <translation id="1314565355471455267">Android ভিপিএন</translation> <translation id="131461803491198646">গৃহ নেটৱৰ্ক, ৰ’মিং নহয়</translation> -<translation id="1315056510003830387">Flash ব্যৱহাৰ কৰাৰ অনুমতি নাই</translation> <translation id="1316136264406804862">সন্ধান কৰি থকা হৈছে…</translation> <translation id="1316495628809031177">ছিংক পজ কৰা আছে</translation> <translation id="1317637799698924700">আপোনাৰ ড’কিং ষ্টেচনটো ইউএছবি টাইপ-চি-ৰ সৈতে খাপ খোৱা ম’ডত চলিব।</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC এ এনক্ৰিপশ্বনৰ প্ৰকাৰসমূহ সমৰ্থন নকৰে</translation> <translation id="1984417487208496350">কোনো সুৰক্ষা নাই (চুপাৰিছ কৰা নহয়)</translation> <translation id="1987317783729300807">একাউণ্টসমূহ</translation> -<translation id="1988494864246143197">ছাইটসমূহে সচৰাচৰ অডিঅ', ভিডিঅ' অথবা ভিডিঅ' গে'মসমূহ প্লে' কৰিবলৈ Flash ব্যৱহাৰ কৰে। ডিচেম্বৰ, ২০২০ৰ পাছত Flash Player আৰু সমৰ্থিত নহ’ব।</translation> <translation id="1989112275319619282">ব্ৰাউজ কৰক</translation> <translation id="1990512225220753005">এই পৃষ্ঠাটোত শ্বৰ্টকাটসমূহ নেদেখুৱাব</translation> <translation id="1992397118740194946">ছেট কৰা হোৱা নাই</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">ৱিণ্ড’ক নিৰ্দিষ্ট ঠাইত ৰখা</translation> <translation id="2881076733170862447">আপুনি এক্সটেনশ্বনত ক্লিক কৰিলে</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> অলপ পিছতে ৰিষ্টাৰ্ট আৰু ৰিছেট হ’ব</translation> -<translation id="288387288628762616">Flash ব্যৱহাৰ কৰাৰ অনুমতি আছে</translation> <translation id="2885378588091291677">কাৰ্য পৰিচালক</translation> <translation id="2885729872133513017">ছার্ভাৰৰ সঁহাৰি ডিক'ড কৰোঁতে সমস্যাৰ সৃষ্টি হৈছিল।</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2078,6 +2074,7 @@ <translation id="3428419049384081277">আপুনি ছাইন ইন কৰিলে!</translation> <translation id="3428747202529429621">আপোনাক Chromeত সুৰক্ষিত কৰি ৰাখে আৰু আপুনি ছাইন ইন হৈ থকা সময়ত অন্য Google এপ্সমূহত আপোনাৰ সুৰক্ষা উন্নত কৰিবলৈ ব্যৱহাৰ কৰিব পাৰে</translation> <translation id="3428800329481094896">Linux কণ্টেইনাৰ ssh কীসমূহ আহৰণ কৰি থকা হৈছে</translation> +<translation id="3429271624041785769">ৱেবৰ সমলৰ ভাষা</translation> <translation id="3429275422858276529">পৰৱর্তী সময়ত এই পৃষ্ঠাটো সহজে বিচাৰি পাবলৈ ইয়াক বুকমার্ক কৰক</translation> <translation id="3432227430032737297">দেখুওৱা সকলো আঁতৰাওক</translation> <translation id="3432757130254800023">স্থানীয় নেটৱর্কৰ ডিছপ্লে’লৈ অডিঅ’ আৰু ভিডিঅ’ পঠিয়াওক</translation> @@ -2462,7 +2459,6 @@ <translation id="383669374481694771">এইখিনি হৈছে এই ডিভাইচটোৰ আৰু সেইটোৰ ব্যৱহাৰৰ বিষয়ে (সাধাৰণ তথ্য যেনে- বেটাৰীৰ স্তৰ, ছিষ্টেম আৰু এপৰ কাৰ্যকলাপ আৰু তাত হোৱা আসোঁৱাহৰ)। এই ডেটাখিনি Androidক উন্নত কৰিবলৈ ব্যৱহাৰ কৰা হ’ব আৰু কিছুমান একত্ৰিত তথ্যই Google এপ্ আৰু Android বিকাশকৰ্তাৰ দৰে অংশীদাৰকো তেওঁলোকৰ এপ্ আৰু প্ৰ’ডাক্টক অধিক উন্নত কৰাত সহায় কৰিব।</translation> <translation id="3838085852053358637">এক্সটেনশ্বনটো ল’ড কৰিব পৰা নগ’ল</translation> <translation id="3838486795898716504">অধিক <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">কুকী, অইন ছাইট আৰু প্লাগইন ডেটা</translation> <translation id="383891835335927981">কোনো ছাইট জুম ইন বা আউট কৰা হোৱা নাই</translation> <translation id="3839509547554145593">মাউছ স্ক্ৰ’লৰ এক্সিলাৰেশ্বন সক্ষম কৰক</translation> <translation id="3839516600093027468"><ph name="HOST" />এ ক্লিপব’ৰ্ড চোৱাটো সদায় অৱৰোধ কৰক</translation> @@ -2504,6 +2500,7 @@ <translation id="3879748587602334249">ডাউনল’ড মেনেজাৰ</translation> <translation id="3881478300875776315">শাৰী কমকৈ দেখুৱাওক</translation> <translation id="3882165008614329320">কেমেৰা অথবা ফাইলৰ পৰা ইতিমধ্যে থকা ভিডিঅ’</translation> +<translation id="3884152383786131369">একাধিক ভাষাত উপলব্ধ ৱেবৰ সমলে এই সূচীখনৰ পৰা সমৰ্থিত প্ৰথম ভাষাটো ব্যৱহাৰ কৰিব। এই অগ্ৰাধিকাৰসমূহ আপোনাৰ ব্ৰাউজাৰৰ ছেটিঙৰ সৈতে ছিংক কৰা আছে। <ph name="BEGIN_LINK_LEARN_MORE" />অধিক জানক<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">এই ছাইটটো এক্সেছ কৰিবলৈ আপুনি কৰা অনুৰোধ <ph name="NAME" />লৈ পঠিওৱা হৈছে</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" />ৰ জৰিয়তে টোকা লৈ থকা হৈছে</translation> <translation id="3890064827463908288">ৱাই-ফাই ছিংক ব্যৱহাৰ কৰিবলৈ Chrome ছিংক অন কৰক</translation> @@ -2634,7 +2631,6 @@ <translation id="4023146161712577481">ডিভাইচৰ কনফিগাৰেশ্বন নির্ধাৰণ কৰি থকা হৈছে।</translation> <translation id="4025039777635956441">বাছনি কৰা ছাইটটো মিউট কৰক</translation> <translation id="4027804175521224372">(আপুনি বহুতো সুবিধাৰ পৰা বঞ্চিৎ হৈ আছে—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">আপুনি Chrome বন্ধ নকৰা পর্যন্ত আপোনাৰ ফ্লেশ্ব ছেটিং ৰখা হ'ব।</translation> <translation id="4028467762035011525">ইনপুট পদ্ধতি যোগ দিয়ক</translation> <translation id="4031179711345676612">মাইক্ৰ’ফ’নৰ অনুমতি আছে</translation> <translation id="4031527940632463547">ছেন্সৰ অৱৰোধ কৰা হৈছে</translation> @@ -2785,7 +2781,6 @@ <translation id="4232375817808480934">Kerberos কনফিগাৰ কৰক</translation> <translation id="4235200303672858594">সম্পূৰ্ণ স্ক্ৰীণ</translation> <translation id="4235965441080806197">ছাইন ইন বাতিল কৰক</translation> -<translation id="4237773362828263530">"*" ৱাইল্ডকাৰ্ড থকা ছেটিংসমূহ আৰু সমৰ্থিত নহয়। <ph name="BEGIN_LINK" /> এই ছেটিংসমূহ সলনি কৰিবলৈ<ph name="END_LINK" /> আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{টেবটো পাছত পঢ়ক}one{টেবসমূহ পাছত পঢ়ক}other{টেবসমূহ পাছত পঢ়ক}}</translation> <translation id="4242145785130247982">একাধিক ক্লায়েণ্টৰ প্ৰমাণপত্ৰ সমৰ্থিত নহয়</translation> <translation id="4242533952199664413">ছেটিংসমূহ খোলক</translation> @@ -3048,7 +3043,6 @@ <translation id="4548483925627140043">ছিগনেল পোৱা নগ’ল</translation> <translation id="4549791035683739768">আপোনাৰ সুৰক্ষা চাবিটোত কোনো ফিংগাৰপ্ৰিণ্ট ষ্ট’ৰ হৈ নাই</translation> <translation id="4551763574344810652">আনডু কৰিবলৈ <ph name="MODIFIER_KEY_DESCRIPTION" /> টিপক</translation> -<translation id="4552089082226364758">ফ্লাশ্ব</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> নেটৱৰ্ক, ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">আপুনি ডিভাইচটোৰ ভাষা সলনি কৰিবলৈ আপোনাৰ Chromebook ৰিষ্টাৰ্ট কৰিব লাগিব। <ph name="BEGIN_LINK_LEARN_MORE" />অধিক জানক<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">বাহ্যিক এক্সটেনশ্বনটো ইতিমধ্যে থকা এক্সটেনশ্বনৰ সৈতে একেই বা তাতকৈ তলৰ সংস্কৰণ।</translation> @@ -3403,7 +3397,6 @@ <translation id="4974733135013075877">বন্ধ কৰক আৰু শিশুৱে ব্যৱহাৰ কৰিব নোৱাৰাকৈ লক কৰক</translation> <translation id="4976009197147810135">উলম্বভাৱে বিভাজন কৰক</translation> <translation id="4977942889532008999">এক্সেছ নিশ্চিত কৰক</translation> -<translation id="4978905460870207779">ছাইটসমূহে Flash ব্যৱহাৰ কৰিবলৈ বিচাৰিব পাৰে</translation> <translation id="4980805016576257426">এই এক্সটেনশ্বনটোত মালৱেৰ আছে</translation> <translation id="4981449534399733132">আপোনাৰ ছিংক হৈ থকা সকলো ডিভাইচ আৰু নিজৰ Google একাউণ্টৰ পৰা ব্ৰাউজিঙৰ ডেটা মচিবলৈ <ph name="BEGIN_LINK" />ছাইন ইন কৰক<ph name="END_LINK" />।</translation> <translation id="4982236238228587209">ডিভাইচৰ ছফ্টৱেৰ</translation> @@ -4173,7 +4166,6 @@ <translation id="5906732635754427568">এই এপ্টোৰ সৈতে জড়িত ডেটা এই ডিভাইচটোৰ পৰা আঁতৰোৱা হ’ব।</translation> <translation id="5908474332780919512">আপুনি ছাইন ইন কৰিলে এপ্টো আৰম্ভ কৰক</translation> <translation id="5908695239556627796">মাউছ স্ক্ৰ’লৰ গতিবেগ</translation> -<translation id="5908769186679515905">ছাইটসমূহে Flash চলোৱা কার্য অৱৰোধ কৰক</translation> <translation id="5910363049092958439">এইবুলি প্ৰতিচ্ছবি ছে&ভ কৰক...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> অফলাইন হৈ আছে</translation> <translation id="5911533659001334206">শ্বৰ্টকাটৰ ভিউৱাৰ</translation> @@ -4356,6 +4348,7 @@ <translation id="6112727384379533756">এটা টিকেট যোগ কৰক</translation> <translation id="6112931163620622315">আপোনাৰ ফ’নটো চাওক</translation> <translation id="6112952769866305444">প্ৰ'ফাইল সম্পাদনা কৰক, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Chrome ব্ৰাউজাৰ আৰু <ph name="DEVICE_TYPE" /> লঞ্চাৰৰ বাবে আপোনাৰ ডিফ’ল্ট সন্ধান ইঞ্জিন ছেট কৰক</translation> <translation id="6113942107547980621">স্মার্ট লক ব্যৱহাৰ কৰিবলৈ, আপোনাৰ ফ'নত প্ৰাথমিক ব্যৱহাৰকাৰীৰ প্ৰ'ফাইল ব্যৱহাৰ কৰক</translation> <translation id="6116921718742659598">ভাষা আৰু ইনপুট ছেটিংসমূহ সলনি কৰক</translation> <translation id="6120205520491252677">আৰম্ভণিতে দেখা পোৱা স্ক্ৰীণত এই পৃষ্ঠাটো পিন কৰক...</translation> @@ -5218,6 +5211,7 @@ <translation id="7140928199327930795">উপলব্ধ অন্য ডিভাইচ নহয়।</translation> <translation id="7141105143012495934">আপোনাৰ একাউণ্টৰ সবিশেষ পুনৰুদ্ধাৰ কৰিব নোৱাৰাৰ বাবে ছাইন ইন কৰিব পৰা নগ’ল। অনুগ্ৰহ কৰি আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক বা আকৌ চেষ্টা কৰক।</translation> <translation id="7143207342074048698">সংযোগ হৈছে</translation> +<translation id="7143358760238281735">কোনো এপ্ উপলব্ধ নহয়</translation> <translation id="7144878232160441200">পুনৰ চেষ্টা কৰক</translation> <translation id="714876143603641390">LAN সংযোগ</translation> <translation id="7149893636342594995">যোৱা ২৪ ঘণ্টাত</translation> @@ -5687,6 +5681,7 @@ <translation id="7707922173985738739">ম’বাইল ডেটা ব্যৱহাৰ কৰক</translation> <translation id="7709152031285164251">বিফল হ’ল - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&কাষ্ট কৰক...</translation> +<translation id="7712739869553853093">প্ৰিণ্টৰ পূৰ্বদৰ্শনৰ ডায়লগ</translation> <translation id="7712836429117959503"><ph name="EXTENSION_ID" /> আইডি থকা এক্সটেনশ্বনটো অজ্ঞাত</translation> <translation id="7714307061282548371"><ph name="DOMAIN" />ৰ কুকীৰ অনুমতি দিয়া হৈছে</translation> <translation id="7714464543167945231">প্ৰমাণপত্ৰ</translation> @@ -5816,7 +5811,6 @@ <translation id="7831491651892296503">নেটৱৰ্ক কনফিগাৰ কৰাত আসোঁৱাহ</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">সমাপ্ত হোৱাৰ সময়</translation> -<translation id="783214144752121388">ছাইটসমূহে Flash চলোৱা কার্য অৱৰোধ কৰক(চুপাৰিছ কৰা)</translation> <translation id="7833720883933317473">ছেভ কৰি থোৱা কাষ্টম শব্দ ইয়াত ওলাব</translation> <translation id="7835178595033117206">বুকমাৰ্ক আঁতৰোৱা হ’ল</translation> <translation id="7836850009646241041">সুৰক্ষা চাবিটো পুনৰ স্পৰ্শ কৰি চাওক</translation> @@ -6043,7 +6037,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{এই ফাইলটো এনক্ৰিপ্ট কৰা আছে। এইটোৰ গৰাকীক ডিক্ৰিপ্ট কৰিবলৈ কওক।}one{এই ফাইলসমূহৰ কিছুসংখ্যক এনক্ৰিপ্ট কৰা আছে। সেইকেইটাৰ গৰাকীক ডিক্ৰিপ্ট কৰিবলৈ কওক।}other{এই ফাইলসমূহৰ কিছুসংখ্যক এনক্ৰিপ্ট কৰা আছে। সেইকেইটাৰ গৰাকীক ডিক্ৰিপ্ট কৰিবলৈ কওক।}}</translation> <translation id="808894953321890993">পাছৱৰ্ড সলনি কৰক</translation> <translation id="8090234456044969073">আপুনি সঘনে চোৱা ৱেবছাইটৰ এখন সূচী পঢ়ক</translation> -<translation id="8092681102116274204">"*" ৱাইল্ডকাৰ্ড থকা ছেটিংসমূহ আৰু সমৰ্থিত নহয়। <ph name="BEGIN_LINK" />এই ছেটিংসমূহ সলনি কৰিবলৈ<ph name="END_LINK" /> এক্সটেনশ্বনৰ বিকাশকৰ্তা অথবা আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" />য়ে সঁহাৰি দিয়া নাই</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google Driveত বেক আপ লওক। আপোনাৰ ডেটা সহজে পুনঃস্থাপন কৰক বা যিকোনো সময়তে ডিভাইচ সলনি কৰক। আপোনাৰ বেকআপত এপ্ ডেটাও আছে।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />আপোনাৰ বেকআপবোৰ Googleত আপল’ড কৰা হৈছে আৰু আপোনাৰ Google একাউণ্টৰ পাছৱৰ্ড ব্যৱহাৰ কৰি এনক্ৰিপ্ট কৰা হৈছে।<ph name="END_PARAGRAPH2" /> @@ -6138,7 +6131,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" />ৰ এলবামসমূহ বাছনি কৰক</translation> <translation id="8202160505685531999">আপোনাৰ <ph name="DEVICE_TYPE" />ৰ প্ৰ'ফাইল আপডে'ট কৰিবলৈ অনুগ্ৰহ কৰি আপোনাৰ পাছৱৰ্ডটো পুনৰ দিয়ক।</translation> <translation id="8203732864715032075">আপোনালৈ জাননী পঠিয়াই আৰু বার্তাৰ বাবে এই কম্পিউটাৰক ডিফ’ল্ট হিচাপে মনত ৰাখে। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash অৱৰোধ কৰক (চুপাৰিছ কৰা)</translation> <translation id="820568752112382238">সকলোতকৈ বেছিকৈ চোৱা ছাইটসমূহ</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">চেলুলাৰ</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index 55e2f19..12db40c3 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -242,7 +242,6 @@ <translation id="1272079795634619415">Dayandırın</translation> <translation id="1272293450992660632">PIN-lər üst-üstə düşmür.</translation> <translation id="1272978324304772054">Bu hesab cihazın qeyd olduğu domenə aid deyil. Başqa domenə qeyd etmək istəyirsinizsə, ilk öncə cihazı bərpa etməlisiniz.</translation> -<translation id="1274977772557788323">Adobe Flash Player yaddaş ayarları</translation> <translation id="1274997165432133392">Kukilər və sayt datası</translation> <translation id="1275718070701477396">Seçilib</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> tətbiqinin quraşdırılması ləğv edilmədi</translation> @@ -276,7 +275,6 @@ <translation id="1313705515580255288">Əlfəcin, tarixçə və digər ayarlarınız Google Hesabınıza sinxronizasiya olunacaq.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Ev şəbəkəsidir, rominq deyil</translation> -<translation id="1315056510003830387">Fləşdən istifadə etmək icazəsi verilməyib</translation> <translation id="1316136264406804862">Axtarılır...</translation> <translation id="1316495628809031177">Sinxronizasiya dayandırıldı</translation> <translation id="1317637799698924700">Dok stansiyası USB Type-C üçün uyğun rejimdə işləyəcək.</translation> @@ -874,7 +872,6 @@ <translation id="197989455406964291">KDC şifrələmə növünü dəstəkləmir</translation> <translation id="1984417487208496350">Qoruma yoxdur (tövsiyə edilmir)</translation> <translation id="1987317783729300807">Hesablar</translation> -<translation id="1988494864246143197">Saytlar audio, video və ya video oyunları göstərmək üçün adətən Fləşdən istifadə edir. Fləş Pleyer 2020-ci ilin dekabrından etibarən dəstəklənməyəcək.</translation> <translation id="1989112275319619282">Baxın</translation> <translation id="1990512225220753005">Bu səhifədə qısayollar göstərməyin</translation> <translation id="1992397118740194946">Ayarlanmayıb</translation> @@ -1644,7 +1641,6 @@ <translation id="2880660355386638022">Pəncərənin yerləşdirilməsi</translation> <translation id="2881076733170862447">Artırmaya Kliklədiyiniz Vaxt</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> bir anlıq başladılaraq sıfırlanacaq</translation> -<translation id="288387288628762616">Fləşdən istifadə etmək icazəsi verilib</translation> <translation id="2885378588091291677">Tapşırıq Meneceri</translation> <translation id="2885729872133513017">Server cavabının şifrəsi açılarkən xəta baş verdi.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2076,6 +2072,7 @@ <translation id="3428419049384081277">Hesaba daxil olmusunuz!</translation> <translation id="3428747202529429621">Daxil olduğunuzda Chrome'da sizi qoruyur və digər Google tətbiqlərində təhlükəsizliyinizi artırmaq üçün istifadə edilə bilər</translation> <translation id="3428800329481094896">Linux konteyneri ssh açarları əldə edilir</translation> +<translation id="3429271624041785769">Veb məzmun dilləri</translation> <translation id="3429275422858276529">Səhifəni sonradan asanlıqla tapmaq üçün əlfəcin qoyun</translation> <translation id="3432227430032737297">Bütün Göstərilənləri Silin</translation> <translation id="3432757130254800023">Yerli şəbəkədə görüntülənməsi üçün audio və video göndərin</translation> @@ -2460,7 +2457,6 @@ <translation id="383669374481694771">Bu ümumi məlumat bu cihaz və ondan istifadə haqqındadır (məsələn, batareya səviyyəsi, sistem və tətbiq fəaliyyəti və xətalar). Data Android məhsullarını təkmilləşdirmək məqsədilə istifadə olunacaq. Bəzi ümumiləşdirilmiş məlumatlar Google tətbiqlərinə və Android developerləri kimi partnyorlara tətbiq və məhsullarını təkmilləşdirməkdə kömək edəcək.</translation> <translation id="3838085852053358637">Artırmanı yükləmək alınmadı</translation> <translation id="3838486795898716504">Daha çox <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Kuki və digər sayt və plagin data</translation> <translation id="383891835335927981">Heç bir sayt yaxınlaşdırılmayıb və ya uzaqlaşdırılmayıb</translation> <translation id="3839509547554145593">Siçanın sürüşdürmə sürətini aktivləşdirin</translation> <translation id="3839516600093027468">Həmişə <ph name="HOST" /> hostunun buferi görməsini blok edin</translation> @@ -2502,6 +2498,7 @@ <translation id="3879748587602334249">Endirmə meneceri</translation> <translation id="3881478300875776315">Daha az sətir göstərin</translation> <translation id="3882165008614329320">Kamera və ya fayldan mövcud video</translation> +<translation id="3884152383786131369">Bir neçə dildə əlçatan veb məzmun siyahıdakı ilk dəstəklənən dili istifadə edəcək. Bu tərcihlər brauzer ayarlarınızla sinxronlaşdırılır. <ph name="BEGIN_LINK_LEARN_MORE" />Ətraflı məlumat<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Bu sayta giriş sorğunuz <ph name="NAME" /> ünvanına göndərilib</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ilə qeyd götürmə</translation> <translation id="3890064827463908288">Wi-Fi Sinxronlaşdırmasını istifadə etmək üçün Chrome Sinxronlaşdırmasını aktiv edin</translation> @@ -2634,7 +2631,6 @@ <translation id="4023146161712577481">Cihaz konfiqurasiyası bəlirlənir.</translation> <translation id="4025039777635956441">Seçilmiş saytı səssiz edin</translation> <translation id="4027804175521224372">(Siz out itkin edirik <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" /> )</translation> -<translation id="4027951648498485763">Chrome'dan çıxana qədər Fleş ayarlarınız saxlanılacaq.</translation> <translation id="4028467762035011525">Daxiletmə metodlarını əlavə edin</translation> <translation id="4031179711345676612">Mikrofona icazə verildi</translation> <translation id="4031527940632463547">Sensorlar blok edilib</translation> @@ -2784,7 +2780,6 @@ <translation id="4232375817808480934">Kerberos'u konfiqurasiya edin</translation> <translation id="4235200303672858594">Bütün ekran</translation> <translation id="4235965441080806197">Daxilolmanı ləğv edin</translation> -<translation id="4237773362828263530">"*" işarələri ilə ayarlar artıq dəstəklənmir. <ph name="BEGIN_LINK" />Bu ayarları dəyişmək üçün<ph name="END_LINK" /> admininiz ilə əlaqə saxlayın.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Tabı Sonra Oxuyun}other{Tabları Sonra Oxuyun}}</translation> <translation id="4242145785130247982">Çoxsaylı klient sertifikatları dəstəklənmir</translation> <translation id="4242533952199664413">Ayarları açın</translation> @@ -3048,7 +3043,6 @@ <translation id="4548483925627140043">Siqnal tapılmadı</translation> <translation id="4549791035683739768">Təhlükəsizlik açarında saxlanılan barmaq izi yoxdur</translation> <translation id="4551763574344810652">Geri qaytarmaq üçün <ph name="MODIFIER_KEY_DESCRIPTION" /> qısayoluna klikləyin</translation> -<translation id="4552089082226364758">İşartı</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> şəbəkəsi, siqnal gücü <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Cihaz dilini dəyişmək üçün Chromebook'u yenidən başlatmalısınız. <ph name="BEGIN_LINK_LEARN_MORE" />Ətraflı məlumat<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Xarici artırma eyni və ya köhnə versiyadadır.</translation> @@ -3403,7 +3397,6 @@ <translation id="4974733135013075877">Çıxış və uşaq kilidi</translation> <translation id="4976009197147810135">Vertikal bölün</translation> <translation id="4977942889532008999">Girişi təsdiqləyin</translation> -<translation id="4978905460870207779">Saytlar Fləşdən istifadə üçün icazə istəyə bilər</translation> <translation id="4980805016576257426">Bu artırmada virus var.</translation> <translation id="4981449534399733132">Axtarış tarixçəsini bütün sinxronizasiya olunmuş cihazlardan və Google Hesabınızdan silmək üçün <ph name="BEGIN_LINK" />daxil olun<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Cihaz proqramı</translation> @@ -4175,7 +4168,6 @@ <translation id="5906732635754427568">Bu tətbiqlə bağlı data cihazdan silinəcək.</translation> <translation id="5908474332780919512">Daxil Olduqda Tətbiqi Başladın</translation> <translation id="5908695239556627796">Siçanın sürüşdürmə sürəti</translation> -<translation id="5908769186679515905">Saytları Fləş işlətməyə qarşı blok edin</translation> <translation id="5910363049092958439">Şəklin saxlanma formatı:</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> oflayndır</translation> <translation id="5911533659001334206">Qısayol göstəricisi</translation> @@ -4357,6 +4349,7 @@ <translation id="6112727384379533756">Bilet əlavə edin</translation> <translation id="6112931163620622315">Telefonunuzu yoxlayın</translation> <translation id="6112952769866305444">Şəxsi redaktə edin, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Chrome brauzeri və <ph name="DEVICE_TYPE" /> Başladıcısı üçün defolt axtarış sisteminizi ayarlayın</translation> <translation id="6113942107547980621">Smart Lock istifadə etmək üçün telefonda əsas istifadəçi profilinə keçin</translation> <translation id="6116921718742659598">Dil və daxiletmə ayarlarını dəyişdirin...</translation> <translation id="6120205520491252677">Ekrana başlamaq üçün bu səhifəni sancın...</translation> @@ -5223,6 +5216,7 @@ <translation id="7140928199327930795">Başqa əlçatan cihaz yoxdur.</translation> <translation id="7141105143012495934">Sign-sizin hesab ayrıntıları alına bilməz, çünki uğursuz oldu. Sizin administratoru ilə əlaqə və ya yenidən cəhd edin.</translation> <translation id="7143207342074048698">Qoşulur</translation> +<translation id="7143358760238281735">Heç bir tətbiq əlçatan deyil</translation> <translation id="7144878232160441200">Yenidən cəhd edin</translation> <translation id="714876143603641390">Lan Bağlantısı</translation> <translation id="7149893636342594995">Son 24 saat</translation> @@ -5694,6 +5688,7 @@ <translation id="7707922173985738739">Mobil data istifadə edin</translation> <translation id="7709152031285164251">Alınmadı - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Yayım...</translation> +<translation id="7712739869553853093">Çap önbaxışı dialoqu</translation> <translation id="7712836429117959503">ID-si <ph name="EXTENSION_ID" /> olan naməlum artırma</translation> <translation id="7714307061282548371"><ph name="DOMAIN" /> domenindən olan kukilərə icazə var</translation> <translation id="7714464543167945231">Sertifikat</translation> @@ -5823,7 +5818,6 @@ <translation id="7831491651892296503">Şəbəkə konfiqurasiya xətası</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Bitmə vaxtı</translation> -<translation id="783214144752121388">Fleş işlədən saytları blok edin (tövsiyə edilir)</translation> <translation id="7833720883933317473">Yadda saxlanmış fərdi sözlər burada görünəcək</translation> <translation id="7835178595033117206">Əlfəcin silindi</translation> <translation id="7836850009646241041">Təhlükəsizlik açarınıza yenidən toxunmağı sınayın</translation> @@ -6050,7 +6044,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Bu fayl şifrələnib. Sahibindən onun şifrəsini açmasını istəyin.}other{Bu fayllardan bəziləri şifrələnib. Sahibindən onların şifrəni açmasını istəyin.}}</translation> <translation id="808894953321890993">Parolu dəyişin</translation> <translation id="8090234456044969073">Tez-tez ziyarət etdiyiniz veb sayt siyahısını oxuyun</translation> -<translation id="8092681102116274204">"*" işarələri ilə ayarlar artıq dəstəklənmir. <ph name="BEGIN_LINK" />Bu ayarları dəyişmək üçün<ph name="END_LINK" /> artırma developeri və ya admininiz ilə əlaqə saxlayın.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> cavab vermir</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google Diskə yedəkləyin. İstənilən vaxt asanlıqla datanı bərpa edin və ya cihazı dəyişin. Yedəkləmələrə tətbiq datası daxildir.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Yedəkləmələr Google'a yüklənir və Google Hesab parolu ilə şifrələnir.<ph name="END_PARAGRAPH2" /> @@ -6144,7 +6137,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> albomlarını seçin</translation> <translation id="8202160505685531999">Yeniləmə Şifrəni yenidən daxil edin <ph name="DEVICE_TYPE" /> profil.</translation> <translation id="8203732864715032075">Bu kompüteri Mesajlaşma üçün xatırlatmaq məqsədilə ona bildirişlər və defoltlar göndərin. <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Fləşi bloklayın (tövsiyə olunur)</translation> <translation id="820568752112382238">Ən çox daxil olduğunuz saytlar</translation> <translation id="8206745257863499010">Blyuz</translation> <translation id="8206859287963243715">Mobil</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb index 3f1f60a..8348f18 100644 --- a/chrome/app/resources/generated_resources_be.xtb +++ b/chrome/app/resources/generated_resources_be.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Спыніць</translation> <translation id="1272293450992660632">PIN-коды не супадаюць.</translation> <translation id="1272978324304772054">Гэты ўліковы запіс карыстальніка не належыць да дамена, у якім зарэгістравана прылада. Калі вы жадаеце зарэгістравацца ў іншым дамене, вам трэба спярша аднавіць прыладу.</translation> -<translation id="1274977772557788323">Налады сховішча Adobe Flash Player</translation> <translation id="1274997165432133392">Файлы cookie і іншыя даныя сайтаў</translation> <translation id="1275718070701477396">Выбрана</translation> <translation id="1276994519141842946">Не ўдалося выдаліць праграму <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Вашы закладкі, гісторыя і іншыя налады будуць сінхранізавацца з Уліковым запісам Google.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Хатняя сетка, не ў роўмінгу</translation> -<translation id="1315056510003830387">Не дазволена выкарыстоўваць Flash</translation> <translation id="1316136264406804862">Ідзе пошук...</translation> <translation id="1316495628809031177">Сінхранізацыя прыпынена</translation> <translation id="1317637799698924700">Док-станцыя будзе працаваць у рэжыме, сумяшчальным з USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC не падтрымлівае шыфраванне гэтых тыпаў</translation> <translation id="1984417487208496350">Без абароны (не рэкамендуецца)</translation> <translation id="1987317783729300807">Уліковыя запісы</translation> -<translation id="1988494864246143197">Сайты звычайна выкарыстоўваюць Flash для прайгравання аўдыя і відэа, а таксама відэагульняў. Са снежня 2020 г. Flash Player падтрымлівацца не будзе.</translation> <translation id="1989112275319619282">Агляд</translation> <translation id="1990512225220753005">Не паказваць ярлыкі на гэтай старонцы</translation> <translation id="1992397118740194946">Не зададзена</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Размяшчэнне вокнаў</translation> <translation id="2881076733170862447">Калі націснуць на пашырэнне</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> перазапусціцца, і налады будуць скінуты імгненна</translation> -<translation id="288387288628762616">Дазволена выкарыстоўваць Flash</translation> <translation id="2885378588091291677">Менеджар заданняў</translation> <translation id="2885729872133513017">Узнікла праблема пры расшыфроўцы адказу сервера.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" />.</translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Вы ўвайшлі!</translation> <translation id="3428747202529429621">Абараняе вас у браўзеры Chrome і можа выкарыстоўвацца для паляпшэння бяспекі ў іншых праграмах Google, калі вы ўвайшлі ва ўліковы запіс</translation> <translation id="3428800329481094896">Атрыманне ключоў SSH для кантэйнера Linux</translation> +<translation id="3429271624041785769">Мовы вэб-змесціва</translation> <translation id="3429275422858276529">Дадайце гэту старонку ў закладкі, каб палегчыць яе пошук у далейшым</translation> <translation id="3432227430032737297">Выдаліць усе паказаныя</translation> <translation id="3432757130254800023">Адпраўка аўдыя і відэа на дысплэі ў лакальнай сетцы</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Гэта агульная інфармацыя пра гэту прыладу і яе выкарыстанне (напрыклад, пра ўзровень зараду акумулятара, дзеянні ў сістэме і праграмах, памылкі). Даныя будуць выкарыстоўвацца для ўдасканалення сістэмы Android, а пэўная згрупаваная інфармацыя дапаможа ўдасканаліць праграмы Google і будзе карыснай для партнёраў кампаніі, напрыклад для распрацоўшчыкаў Android, у паляпшэнні праграм і прадуктаў.</translation> <translation id="3838085852053358637">Не ўдалося загрузіць пашырэнне</translation> <translation id="3838486795898716504">Яшчэ адна старонка "<ph name="PAGE_TITLE" />"</translation> -<translation id="3838543471119263078">Файлы cookies і іншыя даныя сайтаў і ўбудоў</translation> <translation id="383891835335927981">Маштаб на сайтах не змяняўся</translation> <translation id="3839509547554145593">Уключыць паскарэнне прагорткі мышшу</translation> <translation id="3839516600093027468">Заўсёды блакіраваць хосту <ph name="HOST" /> доступ да буфера абмену</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Менеджар спамповак</translation> <translation id="3881478300875776315">Паказваць менш радкоў</translation> <translation id="3882165008614329320">Існуючае відэа з камеры або файла</translation> +<translation id="3884152383786131369">Вэб-змесціва, даступнае на некалькіх мовах, будзе адлюстроўвацца на першай мове з дадзенага спіса. Гэтыя параметры сінхранізуюцца з наладамі вашага браўзера. <ph name="BEGIN_LINK_LEARN_MORE" />Даведацца больш<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Запыт на доступ да гэтага сайта адпраўлены карыстальніку <ph name="NAME" /></translation> <translation id="3888550877729210209">Нататкі ў <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Каб выкарыстоўваць функцыю сінхранізацыі параметраў Wi-Fi, уключыце Сінхранізацыю Chrome</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Вызначаецца канфігурацыя прылады.</translation> <translation id="4025039777635956441">Выключыць гук на выбраным сайце</translation> <translation id="4027804175521224372">(Карыстайцеся ўсімі магчымасцямі – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Вашы налады Flash будуць захоўвацца, пакуль вы не выйдзеце з Chrome.</translation> <translation id="4028467762035011525">Дадаць метады ўводу</translation> <translation id="4031179711345676612">Выкарыстанне мікрафона дазволена</translation> <translation id="4031527940632463547">Датчыкі заблакіраваны</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Канфігурацыя Kerberos</translation> <translation id="4235200303672858594">Увесь экран</translation> <translation id="4235965441080806197">Скасаваць уваход</translation> -<translation id="4237773362828263530">Налады з сімваламі падстаноўкі "*" больш не падтрымліваюцца. <ph name="BEGIN_LINK" />Каб змяніць гэтыя налады<ph name="END_LINK" />, звяжыцеся з адміністратарам.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Дадаць укладку ў спіс "Чытаць пазней"}one{Дадаць укладкі ў спіс "Чытаць пазней"}few{Дадаць укладкі ў спіс "Чытаць пазней"}many{Дадаць укладкі ў спіс "Чытаць пазней"}other{Дадаць укладкі ў спіс "Чытаць пазней"}}</translation> <translation id="4242145785130247982">Выкарыстанне некалькі кліенцкіх сертыфікатаў не падтрымліваецца</translation> <translation id="4242533952199664413">Адкрыць налады</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Сігнал не знойдзены</translation> <translation id="4549791035683739768">На вашым ключы бяспекі няма захаваных адбіткаў пальцаў</translation> <translation id="4551763574344810652">Каб адрабіць, націсніце <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> -<translation id="4552089082226364758">Флэш-даныя</translation> <translation id="4552759165874948005">Тып сеткі – <ph name="NETWORK_TYPE" />, магутнасць сігналу – <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Каб змяніць мову прылады, трэба перазапусціць Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Даведацца больш<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Знешняе пашырэнне мае тую ж версію, што існуючае пашырэнне, або ніжэйшую.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Выйсці і заблакіраваць</translation> <translation id="4976009197147810135">Падзяліць вертыкальна</translation> <translation id="4977942889532008999">Пацвярджэнне доступу</translation> -<translation id="4978905460870207779">Сайты могуць запытваць дазвол на выкарыстанне тэхналогіі Flash</translation> <translation id="4980805016576257426">Гэта пашырэнне змяшчае шкоднае змесціва.</translation> <translation id="4981449534399733132">Каб ачысціць даныя прагляду з усіх сінхранізаваных прылад і Уліковага запісу Google, <ph name="BEGIN_LINK" />увайдзіце ва ўліковы запіс<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Праграмнае забеспячэнне прылады</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Даныя, звязаныя з гэтай праграмай, будуць выдалены з гэтай прылады.</translation> <translation id="5908474332780919512">Запускаць праграму пры ўваходзе</translation> <translation id="5908695239556627796">Хуткасць прагорткі мышшу</translation> -<translation id="5908769186679515905">Забараніць сайтам запускаць Flash</translation> <translation id="5910363049092958439">За&хаваць відарыс як...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> па-за сеткай</translation> <translation id="5911533659001334206">Прагляд спалучэнняў клавіш</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Дадаць білет</translation> <translation id="6112931163620622315">Праверце свой тэлефон</translation> <translation id="6112952769866305444">Змяніць профіль карыстальніка: <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Задайце стандартную пошукавую сістэму для браўзера Chrome і Панэлі запуску на прыладзе <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Каб выкарыстоўваць Smart Lock, пераключыцеся на асноўны карыстальніцкі профіль на тэлефоне</translation> <translation id="6116921718742659598">Змяніць налады мовы і ўводу</translation> <translation id="6120205520491252677">Замацаваць гэту старонку на пачатковым экране...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Няма іншых даступных прылад.</translation> <translation id="7141105143012495934">Уваход не выкананы: не ўдалося атрымаць даныя ўліковага запісу. Звярніцеся да адміністратара або паўтарыце спробу.</translation> <translation id="7143207342074048698">Падключэнне</translation> +<translation id="7143358760238281735">Праграмы недаступныя</translation> <translation id="7144878232160441200">Паўтарыць</translation> <translation id="714876143603641390">Магчымасць падключэння LAN</translation> <translation id="7149893636342594995">За апошнія 24 гадзіны</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Выкарыстоўваць мабільную перадачу даных</translation> <translation id="7709152031285164251">Памылка: <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Трансліраваць...</translation> +<translation id="7712739869553853093">Дыялогавае акно перадпрагляду друку</translation> <translation id="7712836429117959503">Невядомае пашырэнне з ідэнтыфікатарам <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Файлы cookie з дамена <ph name="DOMAIN" /> дазволены</translation> <translation id="7714464543167945231">Сертыфікат</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Памылка наладжвання сеткі</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Час заканчэння</translation> -<translation id="783214144752121388">Забараніць сайтам запускаць Flash (рэкамендуецца)</translation> <translation id="7833720883933317473">Дададзеныя карыстальнікам словы, якія былі захаваны, з'явяцца тут</translation> <translation id="7835178595033117206">Закладка выдалена</translation> <translation id="7836850009646241041">Паспрабуйце дакрануцца да ключа бяспекі яшчэ раз</translation> @@ -6058,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Файл зашыфраваны. Папрасіце ўладальніка файла расшыфраваць яго.}one{Некаторыя з гэтых файлаў зашыфраваны. Папрасіце ўладальніка файлаў расшыфраваць іх.}few{Некаторыя з гэтых файлаў зашыфраваны. Папрасіце ўладальніка файлаў расшыфраваць іх.}many{Некаторыя з гэтых файлаў зашыфраваны. Папрасіце ўладальніка файлаў расшыфраваць іх.}other{Некаторыя з гэтых файлаў зашыфраваны. Папрасіце ўладальніка файлаў расшыфраваць іх.}}</translation> <translation id="808894953321890993">Змяніць пароль</translation> <translation id="8090234456044969073">Прагледзець спіс вэб-сайтаў, якія вы наведваеце часцей за ўсё</translation> -<translation id="8092681102116274204">Налады з сімваламі падстаноўкі "*" больш не падтрымліваюцца. <ph name="BEGIN_LINK" />Каб змяніць гэтыя налады<ph name="END_LINK" />, звяжыцеся з распрацоўшчыкам пашырэння або адміністратарам.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> не адказвае</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Рэзервовае капіраванне на Google Дыск. Лёгка аднаўляйце даныя і пераносьце іх на іншыя прылады. Стварайце рэзервовыя копіі даных праграм.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Рэзервовыя копіі запампоўваюцца ў Google і шыфруюцца пад паролем ад вашага Уліковага запісу Google.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6146,6 @@ <translation id="8201717382574620700">Выбраць альбомы "<ph name="TOPIC_SOURCE" />"</translation> <translation id="8202160505685531999">Каб абнавіць профіль прылады <ph name="DEVICE_TYPE" />, увядзіце пароль яшчэ раз.</translation> <translation id="8203732864715032075">Адпраўляць вам апавяшчэнні і зрабіць гэты камп'ютар стандартным для праграмы "Паведамленні". <ph name="LINK_BEGIN" />Даведацца больш<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Блакіраваць змесціва Flash (рэкамендуецца)</translation> <translation id="820568752112382238">Сайты, якія часцей за ўсё наведваліся</translation> <translation id="8206745257863499010">Блюзавы</translation> <translation id="8206859287963243715">Мабільная сетка</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index ca431a9..20048fb 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Стоп</translation> <translation id="1272293450992660632">ПИН кодовете не са идентични.</translation> <translation id="1272978324304772054">Този профил на потребител не принадлежи на домейна, с който е записано устройството. Ако искате да регистрирате устройството с друг домейн, първо трябва да преминете през процеса на възстановяване.</translation> -<translation id="1274977772557788323">Настройки за хранилището на Adobe Flash Player</translation> <translation id="1274997165432133392">„Бисквитки“ и други данни за сайтове</translation> <translation id="1275718070701477396">Избрано</translation> <translation id="1276994519141842946">Деинсталирането на <ph name="APP_NAME" /> не бе успешно</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Вашите отметки, история и други настройки ще се синхронизират с профила ви в Google.</translation> <translation id="1314565355471455267">VPN за Android</translation> <translation id="131461803491198646">Собствената мрежа, не роуминг</translation> -<translation id="1315056510003830387">Сайтове без разрешение за използване на Flash</translation> <translation id="1316136264406804862">Търси се...</translation> <translation id="1316495628809031177">Синхронизирането е на пауза</translation> <translation id="1317637799698924700">Докинг станцията ви ще функционира в режим за съвместимост с USB Type-C.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">Типът шифроване не се поддържа от KDC</translation> <translation id="1984417487208496350">Без защита (не се препоръчва)</translation> <translation id="1987317783729300807">Профили</translation> -<translation id="1988494864246143197">Сайтовете обикновено използват Flash за възпроизвеждане на аудио- и видеосъдържание или за изпълнение на видеоигри. Поддръжката на Flash Player ще бъде прекратена след декември 2020 г.</translation> <translation id="1989112275319619282">Сърфиране</translation> <translation id="1990512225220753005">Преките пътища да не се показват на тази страница</translation> <translation id="1992397118740194946">Няма зададен</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">Разположение на прозорците</translation> <translation id="2881076733170862447">При кликване върху разширението</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> незабавно ще се рестартира и настройките му ще се нулират</translation> -<translation id="288387288628762616">Сайтове с разрешение за използване на Flash</translation> <translation id="2885378588091291677">Диспечер на задачите</translation> <translation id="2885729872133513017">Възникна проблем при декодирането на отговора от сървъра.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2078,6 +2074,7 @@ <translation id="3428419049384081277">Влязохте в профила си!</translation> <translation id="3428747202529429621">Осигурява безопасността ви в Chrome и може да се използва с цел подобряване на сигурността ви в други приложения на Google, докато сте в профила си.</translation> <translation id="3428800329481094896">SSH ключовете на контейнера за Linux се извличат</translation> +<translation id="3429271624041785769">Езици за уеб съдържанието</translation> <translation id="3429275422858276529">Запазете отметка към тази страница, за да я намирате лесно по-късно</translation> <translation id="3432227430032737297">Премахване на всички показани</translation> <translation id="3432757130254800023">Изпращане на аудио и видео до дисплеи в локалната мрежа</translation> @@ -2463,7 +2460,6 @@ <translation id="383669374481694771">Това е обща информация за устройството и употребата му (например за нивото на батерията, активността на системата и приложенията, както и за грешките). Тези данни ще се използват за подобряването на Android, а част от обобщената информация ще помогне и на приложенията и партньорите ни, например програмисти за Android, да усъвършенстват приложенията и продуктите си.</translation> <translation id="3838085852053358637">Зареждането на разширението не бе успешно</translation> <translation id="3838486795898716504">Още от „<ph name="PAGE_TITLE" />“</translation> -<translation id="3838543471119263078">„Бисквитки“ и други данни за сайтове и приставки</translation> <translation id="383891835335927981">Няма сайтове с увеличен или намален мащаб</translation> <translation id="3839509547554145593">Активиране на ускорено превъртане с мишката</translation> <translation id="3839516600093027468">Забраняване винаги на <ph name="HOST" /> да преглежда буферната памет</translation> @@ -2506,6 +2502,7 @@ <translation id="3879748587602334249">Мениджър на изтеглянията</translation> <translation id="3881478300875776315">Показване на по-малко редове</translation> <translation id="3882165008614329320">Съществуващ видеоклип от камерата или от файл</translation> +<translation id="3884152383786131369">За показване на уеб съдържанието, което се предлага на няколко езика, ще се използва първият поддържан от този списък. Тези предпочитания се синхронизират с настройките на браузъра. <ph name="BEGIN_LINK_LEARN_MORE" />Научете повече<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Заявката ви за достъп до този сайт бе изпратена до <ph name="NAME" /></translation> <translation id="3888550877729210209">Водене на бележки с/ъс <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Включете синхронизирането в Chrome, за да използвате синхронизирането на Wi-Fi</translation> @@ -2638,7 +2635,6 @@ <translation id="4023146161712577481">Определяне на конфигурацията на устройството.</translation> <translation id="4025039777635956441">Спиране на звука на избрания сайт</translation> <translation id="4027804175521224372">(Изпускате – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Настройките ви за Flash ще се запазят, докато не излезете от Chrome.</translation> <translation id="4028467762035011525">Добавяне на методи на въвеждане</translation> <translation id="4031179711345676612">Достъпът до микрофона е разрешен</translation> <translation id="4031527940632463547">Сензорите са блокирани</translation> @@ -2790,7 +2786,6 @@ <translation id="4232375817808480934">Конфигуриране на Kerberos</translation> <translation id="4235200303672858594">Цял екран</translation> <translation id="4235965441080806197">Анулиране на влизането</translation> -<translation id="4237773362828263530">Вече не се поддържат настройки със заместващ знак „*“. Свържете се с администратора си, за да <ph name="BEGIN_LINK" />промените тези настройки<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Четене на раздела по-късно}other{Четене на разделите по-късно}}</translation> <translation id="4242145785130247982">Не се поддържа използването на няколко клиентски сертификата</translation> <translation id="4242533952199664413">Отваряне на настройките</translation> @@ -3054,7 +3049,6 @@ <translation id="4548483925627140043">Не бе открит сигнал</translation> <translation id="4549791035683739768">В ключа ви за сигурност няма съхранени отпечатъци</translation> <translation id="4551763574344810652">Натиснете <ph name="MODIFIER_KEY_DESCRIPTION" /> за отмяна</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> мрежа, сила на сигнала <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Трябва да рестартирате своя Chromebook, за да промените езика на устройството. <ph name="BEGIN_LINK_LEARN_MORE" />Научете повече<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Версията на външното разширение е същата или по-стара в сравнение със съществуващата.</translation> @@ -3409,7 +3403,6 @@ <translation id="4974733135013075877">Изход и заключване за деца</translation> <translation id="4976009197147810135">Вертикално разделяне</translation> <translation id="4977942889532008999">Потвърждаване на достъпа</translation> -<translation id="4978905460870207779">Сайтовете могат да извеждат запитвания за използване на Flash</translation> <translation id="4980805016576257426">Това разширение съдържа злонамерен софтуер.</translation> <translation id="4981449534399733132">За да изчистите данните за сърфирането от всичките си синхронизирани устройства и от профила си в Google, <ph name="BEGIN_LINK" />влезте в него<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Софтуер на устройството</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Данните, свързани с това приложение, ще бъдат премахнати от устройството.</translation> <translation id="5908474332780919512">Стартиране на приложението, когато влезете в профила си</translation> <translation id="5908695239556627796">Скорост на превъртане с мишката</translation> -<translation id="5908769186679515905">Блокиране на изпълняването на Flash от сайтове</translation> <translation id="5910363049092958439">&Запазване на изображението като...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> е офлайн</translation> <translation id="5911533659001334206">Визуализатор на клавишните комбинации</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Добавяне на пропуск</translation> <translation id="6112931163620622315">Проверете телефона си</translation> <translation id="6112952769866305444">Редактиране на подстраницата за човека, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Задайте основната търсеща машина за браузъра Chrome и стартовия панел на <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">За да използвате Smart Lock, превключете към основния потребителски профил на телефона си</translation> <translation id="6116921718742659598">Промяна на настройките за език и въвеждане</translation> <translation id="6120205520491252677">Фиксиране на тази страница в стартовия екран...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Няма други налични устройства.</translation> <translation id="7141105143012495934">Влизането не бе успешно, тъй като данните за профила ви не можаха да се извлекат. Моля, свържете се с администратора си или опитайте отново.</translation> <translation id="7143207342074048698">Свързва се</translation> +<translation id="7143358760238281735">Няма приложения</translation> <translation id="7144878232160441200">Повторен опит</translation> <translation id="714876143603641390">Връзка с LAN</translation> <translation id="7149893636342594995">Последните 24 часа</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Използване на мобилни данни</translation> <translation id="7709152031285164251">Не бе успешно – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Предаване...</translation> +<translation id="7712739869553853093">Диалогов прозорец за визуализация за печат</translation> <translation id="7712836429117959503">Неизвестно разширение с идент. № <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">„Бисквитките“·от <ph name="DOMAIN" /> са разрешени</translation> <translation id="7714464543167945231">Сертификат</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Грешка при конфигурирането на мрежата</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Краен час</translation> -<translation id="783214144752121388">Блокиране на изпълняването на Flash от сайтове (препоръчително)</translation> <translation id="7833720883933317473">Тук ще се покажат запазените персонализирани думи</translation> <translation id="7835178595033117206">Отметката бе премахната</translation> <translation id="7836850009646241041">Докоснете отново ключа си за сигурност</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Този файл е шифрован. Помолете собственика му да го разшифрова.}other{Някои от тези файлове са шифровани. Помолете собственика им да ги разшифрова.}}</translation> <translation id="808894953321890993">Промяна на паролата</translation> <translation id="8090234456044969073">Четене на списък с най-често посещаваните от вас уебсайтове</translation> -<translation id="8092681102116274204">Вече не се поддържат настройки със заместващ знак „*“. Свържете се с програмиста на разширението или с администратора си, за да <ph name="BEGIN_LINK" />промените тези настройки<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> не реагира</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Създаване на резервно копие в Google Диск. По всяко време можете лесно да възстановите данните на устройството си или да го замените с друго. Резервното ви копие включва данните на приложенията.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Резервните ви копия са качени в Google и са шифровани посредством паролата за профила ви в Google.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">Избиране на албуми от <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Моля, въведете отново паролата си, за да актуализирате потребителския си профил за <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Функция, която ви изпраща известия и по подразбиране запомня този компютър за Messages. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Блокиране на Flash (препоръчително)</translation> <translation id="820568752112382238">Най-посещавани сайтове</translation> <translation id="8206745257863499010">Музикант</translation> <translation id="8206859287963243715">Клетъчно</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index 5a87617..e978128 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">বন্ধ</translation> <translation id="1272293450992660632">আপনার পিনের মানগুলি মিলছে না।</translation> <translation id="1272978324304772054">এই ডিভাইসটি যে ডোমেনে আছে সেটার সাথে এই ব্যবহারকারীর অ্যাকাউন্টটি নথিভুক্ত করা হয় নি। যদি আপনি কোনো অন্য ডোমেনের সাথে জুড়তে চান তাহলে সবার প্রথমে ডিভাইস পুনরুদ্ধার করা প্রয়োজন।</translation> -<translation id="1274977772557788323">Adobe Flash Player স্টোরেজ সেটিংস...</translation> <translation id="1274997165432133392">কুকিজ এবং অন্য সাইট ডেটা</translation> <translation id="1275718070701477396">নির্বাচিত</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> আনইনস্টল করা যায়নি</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">আপনার বুকমার্ক, ইতিহাস এবং অন্যান্য সেটিংস আপনার Google অ্যাকাউন্টে সিঙ্ক হবে৷</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">হোম নেটওয়ার্ক, রোমিং নয়</translation> -<translation id="1315056510003830387">ফ্ল্যাশ ব্যবহার করার অনুমতি দেওয়া হয়নি</translation> <translation id="1316136264406804862">সার্চ করা হচ্ছে...</translation> <translation id="1316495628809031177">সিঙ্ক থামানো হয়েছে</translation> <translation id="1317637799698924700">ইউএসবি টাইপ-সির সাথে মানানসই মোডে আপনার ডকিং স্টেশন কাজ করবে।</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">উল্লিখিত এনক্রিপশনের ধরন KDC-তে কাজ করে না</translation> <translation id="1984417487208496350">সুরক্ষিত নয় (সাজেস্ট করা হচ্ছে না)</translation> <translation id="1987317783729300807">অ্যাকাউন্টসমূহ</translation> -<translation id="1988494864246143197">অডিও, ভিডিও অথবা ভিডিও গেম চালাতে সাইট সাধারণত Flash ব্যবহার করে। Flash Player ডিসেম্বর, ২০২০-এর পরে আর ব্যবহার করা যাবে না।</translation> <translation id="1989112275319619282">ব্রাউজ করুন</translation> <translation id="1990512225220753005">এই পৃষ্ঠাতে শর্টকাট দেখাবেন না</translation> <translation id="1992397118740194946">সেট করা নেই</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">উইন্ডো প্লেসমেন্ট</translation> <translation id="2881076733170862447">যখন আপনি এক্সটেনশনে ক্লিক করেন</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> আবার চালু হবে এবং সাময়িকভাবে রিসেট হবে</translation> -<translation id="288387288628762616">ফ্ল্যাশ ব্যবহার করার অনুমতি দেওয়া হয়েছে</translation> <translation id="2885378588091291677">কার্য পরিচালক</translation> <translation id="2885729872133513017">সার্ভারের উত্তর ডিকোড করার সময় সমস্যা হয়েছে।</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2464,7 +2460,6 @@ <translation id="383669374481694771">আপনার ডিভাইস এবং সেটি কীভাবে ব্যবহার করবেন (যেমন, ব্যাটারি লেভেল, সিস্টেম ও অ্যাপ অ্যাক্টিভিটি এবং সমস্যা) সেই বিষয়ে কিছু সাধারণ তথ্য এখানে দেওয়া হয়েছে। এই ডেটা Android পরিষেবাকে আরও ভাল করতে ব্যবহার করা হবে। এছাড়া, কিছু একত্রিত তথ্য Google অ্যাপ এবং Android ডেভেলপারদের মতন পার্টনারদের তাদের তৈরি করা অ্যাপ ও প্রোডাক্টের মান আরও ভাল করতে সাহায্য করবে।</translation> <translation id="3838085852053358637">এক্সটেনশন লোড করা যায়নি</translation> <translation id="3838486795898716504">আরও <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">কুকিজ এবং অন্যান্য সাইট এবং প্লাগ-ইন ডেটা</translation> <translation id="383891835335927981">কোনো সাইটের জুম বাড়ানো বা কমানো হয়নি</translation> <translation id="3839509547554145593">মাউসের মাধ্যমে স্ক্রল করার ক্ষেত্রে অ্যাক্সিলারেশন চালু করুন</translation> <translation id="3839516600093027468">ক্লিপবোর্ড দেখা থেকে <ph name="HOST" /> কে সবসময় ব্লক করুন</translation> @@ -2637,7 +2632,6 @@ <translation id="4023146161712577481">ডিভাইসের কনফিগারেশন নির্ধারণ করা হচ্ছে।</translation> <translation id="4025039777635956441">বেছে নেওয়া সাইট মিউট করুন</translation> <translation id="4027804175521224372">(আপনি এটিকে ছাড়ছেন—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">আপনি Chrome বন্ধ না করা পর্যন্ত আপনার ফ্ল্যাশ সেটিংস রেখে দেওয়া হবে।</translation> <translation id="4028467762035011525">ইনপুট পদ্ধতি যোগ করুন</translation> <translation id="4031179711345676612">মাইক্রোফোন ব্যবহারের অনুমতি দেওয়া হয়েছে</translation> <translation id="4031527940632463547">সেন্সরগুলি ব্লক করা হয়েছে</translation> @@ -2789,7 +2783,6 @@ <translation id="4232375817808480934">Kerberos কনফিগার করুন</translation> <translation id="4235200303672858594">সম্পূর্ণ স্ক্রিন</translation> <translation id="4235965441080806197">সাইন-ইন বাতিল করুন</translation> -<translation id="4237773362828263530">"*" ওয়াইল্ডকার্ড সহ সেটিংস আর কাজ করে না। <ph name="BEGIN_LINK" />এই সেটিংস পরিবর্তন করতে<ph name="END_LINK" /> আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{পরে পড়ার জন্য মার্ক করে রাখা ট্যাব}one{পরে পড়ার জন্য মার্ক করে রাখা ট্যাব}other{পরে পড়ার জন্য মার্ক করে রাখা ট্যাব}}</translation> <translation id="4242145785130247982">একাধিক ক্লায়েন্ট সার্টিফিকেট কাজ করে না</translation> <translation id="4242533952199664413">সেটিংস খুলুন</translation> @@ -3053,7 +3046,6 @@ <translation id="4548483925627140043">সিগন্যাল নেই</translation> <translation id="4549791035683739768">আপনার 'নিরাপত্তা কী'-তে কোনও ফিঙ্গারপ্রিন্ট সেভ করা নেই</translation> <translation id="4551763574344810652">আগের অবস্থায় ফিরে যেতে <ph name="MODIFIER_KEY_DESCRIPTION" /> টিপুন</translation> -<translation id="4552089082226364758">ফ্ল্যাশ</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> নেটওয়ার্ক, সিগন্যাল:<ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">ডিভাইসের ভাষা পরিবর্তন করতে, আপনাকে Chromebook রিস্টার্ট করতে হবে। <ph name="BEGIN_LINK_LEARN_MORE" />আরও জানুন<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">বিদ্যমানটির তুলনায় বাহ্যিক এক্সটেনশনটি একই বা আরও পুরনো ভার্সনের৷</translation> @@ -3408,7 +3400,6 @@ <translation id="4974733135013075877">প্রস্থান এবং চাইল্ডলক করুন</translation> <translation id="4976009197147810135">ভার্টিক্যাল স্প্লিট করুন</translation> <translation id="4977942889532008999">অ্যাক্সেস নিশ্চিত করুন</translation> -<translation id="4978905460870207779">সাইট Flash ব্যবহার করতে আপনার অনুমতি চাইতে পারে</translation> <translation id="4980805016576257426">এই এক্সটেনশনটিতে ম্যালওয়্যার আছে।</translation> <translation id="4981449534399733132">আপনার সিঙ্ক করা সমস্ত ডিভাইস এবং Google অ্যাকাউন্ট থেকে ব্রাউজিং ডেটা খালি করার জন্য <ph name="BEGIN_LINK" />সাইন-ইন করুন<ph name="END_LINK" />।</translation> <translation id="4982236238228587209">ডিভাইসের সফ্টওয়্যার</translation> @@ -4180,7 +4171,6 @@ <translation id="5906732635754427568">এই অ্যাপ্লিকেশান সংশ্লিষ্ট ডেটা এই ডিভাইস থেকে সরিয়ে ফেলা হবে।</translation> <translation id="5908474332780919512">সাইন-ইন করলেই অ্যাপ চালু হয়ে যাবে</translation> <translation id="5908695239556627796">মাউসের মাধ্যমে স্ক্রল করার স্পিড</translation> -<translation id="5908769186679515905">সাইটগুলিকে Flash চালানোর বিষয়ে অবরুদ্ধ করুন</translation> <translation id="5910363049092958439">এই ভাবে ছবি সেভ করুন...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> এখন অফলাইন</translation> <translation id="5911533659001334206">শর্টকাট ভিউয়ার</translation> @@ -5830,7 +5820,6 @@ <translation id="7831491651892296503">নেটওয়ার্ক কনফিগার করার সময় ত্রুটি</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">শেষের সময়</translation> -<translation id="783214144752121388">Flash-এর ব্যবহার আটকাতে সাইট ব্লক করুন (সাজেস্ট করা হয়েছে)</translation> <translation id="7833720883933317473">সংরক্ষিত কাস্টম শব্দ এখানে দেখা যাবে</translation> <translation id="7835178595033117206">বুকমার্ক সরানো হয়েছে</translation> <translation id="7836850009646241041">আপনার নিরাপত্তা কী আবার স্পর্শ করার চেষ্টা করুন</translation> @@ -6058,7 +6047,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{এই ফাইল এনক্রিপ্ট করা আছে। ফাইলের মালিককে সেটি ডিক্রিপ্ট করতে বলুন।}one{এগুলির মধ্যে কিছু ফাইল এনক্রিপ্ট করা হয়েছে। ফাইলের মালিককে সেগুলি ডিক্রিপ্ট করতে বলুন।}other{এগুলির মধ্যে কিছু ফাইল এনক্রিপ্ট করা হয়েছে। ফাইলের মালিককে সেগুলি ডিক্রিপ্ট করতে বলুন।}}</translation> <translation id="808894953321890993">পাসওয়ার্ড পরিবর্তন করুন</translation> <translation id="8090234456044969073">আপনার সবচেয়ে ঘন ঘন পরিদর্শিত ওয়েবসাইটের একটি তালিকা পড়ুন</translation> -<translation id="8092681102116274204">"*" ওয়াইল্ডকার্ড সহ সেটিংস আর কাজ করে না। <ph name="BEGIN_LINK" />এই সেটিংস পরিবর্তন করতে<ph name="END_LINK" /> এক্সটেনশন ডেভেলপার বা আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> এর কোনও প্রতিক্রিয়া নেই</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ড্রাইভে ব্যাক-আপ নিন। যেকোনও সময় সহজেই আপনার ডেটা ফিরিয়ে আনুন বা ডিভাইস পাল্টান। আপনার ব্যাক-আপে অ্যাপ ডেটা থাকে।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />আপনার ব্যাক-আপ ডেটা Google-এ আপলোড করা হবে এবং আপনার Google অ্যাকাউন্টের পাসওয়ার্ড ব্যবহার করে সেগুলিকে এনক্রিপ্ট করা হবে।<ph name="END_PARAGRAPH2" /> @@ -6152,7 +6140,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" />-এর অ্যালবামগুলি বেছে নিন</translation> <translation id="8202160505685531999">অাপনার <ph name="DEVICE_TYPE" /> প্রোফাইল আপডেট করার জন্য দয়া করে পুনরায় আপনার পাসওয়ার্ড লিখুন।</translation> <translation id="8203732864715032075">আপনাকে বিজ্ঞপ্তি পাঠায় এবং মেসেজের জন্য এই কম্পিউটারকে ডিফল্ট হিসেবে মনে রাখে। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash ব্লক করুন (সাজেস্ট করা হয়েছে)</translation> <translation id="820568752112382238">সবচেয়ে বেশিবার দেখা সাইট</translation> <translation id="8206745257863499010">ব্লুজস</translation> <translation id="8206859287963243715">সেলুলার</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index 6d0dda7..62a7093 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Zaustavi</translation> <translation id="1272293450992660632">Vrijednosti PIN-a se ne podudaraju.</translation> <translation id="1272978324304772054">Ovaj korisnički račun ne pripada domeni u koju je uređaj prijavljen. Ako se želite prijaviti u drugu domenu, morate prvo proći kroz oporavak uređaja.</translation> -<translation id="1274977772557788323">Postavke pohrane Adobe Flash plejera</translation> <translation id="1274997165432133392">Kolačići i drugi podaci o web lokaciji</translation> <translation id="1275718070701477396">Odabrano</translation> <translation id="1276994519141842946">Deinstaliranje aplikacije <ph name="APP_NAME" /> nije uspjelo</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Vaše oznake, historija i druge postavke će se sinhronizirati s vašim Google računom.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Matična mreža, bez roaminga</translation> -<translation id="1315056510003830387">Nije dozvoljeno korištenje Flasha</translation> <translation id="1316136264406804862">Pretraživanje…</translation> <translation id="1316495628809031177">Sinhronizacija je pauzirana</translation> <translation id="1317637799698924700">Priključna stanica će funkcinirati u načinu koji je kompatibilan s priključkom USB tipa C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC ne podržava vrstu šifriranja</translation> <translation id="1984417487208496350">Bez zaštite (ne preporučuje se)</translation> <translation id="1987317783729300807">Računi</translation> -<translation id="1988494864246143197">Web lokacije obično koriste Flash za reproduciranje zvuka, videozapisa ili video igara. Flash Player neće više biti podržan nakon decembra 2020. godine.</translation> <translation id="1989112275319619282">Pregledaj</translation> <translation id="1990512225220753005">Ne prikazuj prečice na ovoj stranici</translation> <translation id="1992397118740194946">Nije postavljeno</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Postavljanje prozora</translation> <translation id="2881076733170862447">Kada kliknete na ekstenziju</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> će se ponovo pokrenuti i momentalno vratiti na zadano</translation> -<translation id="288387288628762616">Dozvoljeno je korištenje Flasha</translation> <translation id="2885378588091291677">Upravitelj zadataka</translation> <translation id="2885729872133513017">Došlo je do problema prilikom dekodiranja odgovora servera.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,7 +2077,7 @@ <translation id="3428419049384081277">Prijavljeni ste!</translation> <translation id="3428747202529429621">Štiti vas na Chromeu i može se koristiti da poboljša vašu sigurnost u drugim Google aplikacijama kada ste prijavljeni</translation> <translation id="3428800329481094896">Dohvaćanje SSH ključeva Linux spremnika</translation> -<translation id="3429271624041785769">Jezici web-sadržaja</translation> +<translation id="3429271624041785769">Jezici web sadržaja</translation> <translation id="3429275422858276529">Označite ovu stranicu kako biste je kasnije lakše pronašli</translation> <translation id="3432227430032737297">Ukloni sve prikazano</translation> <translation id="3432757130254800023">Slati audio i video ekranima na lokalnoj mreži</translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">Ovo su opće informacije o ovom uređaju i načinu na koji se koristi (kao što je nivo napunjenosti baterije, aktivnosti sistema i aplikacija te greške). Ovi podaci će se koristiti da se poboljša Android, a neki zbirni podaci će također pomoći Google aplikacijama i partnerima, kao što su Android programeri, da poboljšaju svoje aplikacije i proizvode.</translation> <translation id="3838085852053358637">Učitavanje ekstenzije nije uspjelo</translation> <translation id="3838486795898716504">Više: <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Kolačići i drugi podaci web lokacije i dodataka</translation> <translation id="383891835335927981">Nijedna web lokacija nije uvećana ili umanjena</translation> <translation id="3839509547554145593">Omogući ubrzanje klizanja miša</translation> <translation id="3839516600093027468">Uvijek blokiraj pristup međumemoriji web lokaciji <ph name="HOST" /></translation> @@ -2508,7 +2503,7 @@ <translation id="3879748587602334249">Upravitelj za preuzimanja</translation> <translation id="3881478300875776315">Prikaži manje redova</translation> <translation id="3882165008614329320">Postojeći videozapis s kamere ili fajla</translation> -<translation id="3884152383786131369">Web-sadržaj dostupan na više jezika koristit će prvi podržani jezik s ovog popisa. Te se postavke sinkroniziraju s postavkama vašeg preglednika. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> +<translation id="3884152383786131369">Sadržaj weba koji je dostupan na više jezika će koristiti prvi podržani jezik s liste. Ove postavke se sinhroniziraju s postavkama preglednika. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Vaš zahtjev za pristup ovoj web lokaciji je poslan korisniku <ph name="NAME" /></translation> <translation id="3888550877729210209">Kreiranje bilježaka pomoću aplikacije <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Uključivanje Sinhronizacije Chromea radi korištenja WiFi sinhronizacije</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Utvrđivanje konfiguracije uređaja.</translation> <translation id="4025039777635956441">Isključi zvuk odabrane web lokacije</translation> <translation id="4027804175521224372">(Šta propuštate – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Postavke za Flash će biti zadržane dok ne napustite Chrome.</translation> <translation id="4028467762035011525">Dodajte načine unosa</translation> <translation id="4031179711345676612">Mikrofon je dozvoljen</translation> <translation id="4031527940632463547">Senzori su blokirani</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Konfiguriranje Kerberosa</translation> <translation id="4235200303672858594">Cijeli ekran</translation> <translation id="4235965441080806197">Otkaži prijavu</translation> -<translation id="4237773362828263530">Postavke sa zamjenskim znakovima "*" nisu više podržane. Kontaktirajte administratora da <ph name="BEGIN_LINK" />promijenite ove postavke<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Pročitajte karticu kasnije}one{Pročitajte kartice kasnije}few{Pročitajte kartice kasnije}other{Pročitajte kartice kasnije}}</translation> <translation id="4242145785130247982">Višestruke potvrde klijenta nisu podržane</translation> <translation id="4242533952199664413">Otvori postavke</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Signal nije pronađen</translation> <translation id="4549791035683739768">Na vašem sigurnosnom ključu nisu pohranjeni otisci prstiju</translation> <translation id="4551763574344810652">Pritisnite tipku <ph name="MODIFIER_KEY_DESCRIPTION" /> da opozovete radnju</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Mreža <ph name="NETWORK_TYPE" />, jačina signala <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Morate ponovo pokrenuti Chromebook da promijenite jezik uređaja. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Vanjska ekstenzija je iste ili niže verzije u poređenju sa postojećom.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Izađi i zaključaj za djecu</translation> <translation id="4976009197147810135">Podjela po vertikali</translation> <translation id="4977942889532008999">Potvrdite pristup</translation> -<translation id="4978905460870207779">Web lokacije mogu tražiti da koriste Flash</translation> <translation id="4980805016576257426">Ova ekstenzija sadrži zlonamjeran softver.</translation> <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Prijavite se<ph name="END_LINK" /> da obrišete podatke o pregledanju sa svih svojih sinhroniziranih uređaja i Google računa.</translation> <translation id="4982236238228587209">Softver uređaja</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">Podaci koji su povezani s ovom aplikacijom bit će uklonjeni s ovog uređaja.</translation> <translation id="5908474332780919512">Pokreni aplikaciju prilikom prijave</translation> <translation id="5908695239556627796">Brzina klizanja miša</translation> -<translation id="5908769186679515905">Blokiraj pokretanje Flasha na web lokacijama</translation> <translation id="5910363049092958439">Sa&čuvaj sliku kao…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> je van mreže</translation> <translation id="5911533659001334206">Pregled prečaca</translation> @@ -4367,7 +4357,7 @@ <translation id="6112727384379533756">Dodaj tiket</translation> <translation id="6112931163620622315">Provjerite telefon</translation> <translation id="6112952769866305444">Uređivanje osobe, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> -<translation id="6113434369102685411">Postavite zadanu tražilicu za preglednik Chrome i pokretač za <ph name="DEVICE_TYPE" /></translation> +<translation id="6113434369102685411">Postavite zadani pretraživač za preglednik Chrome i pokretač uređaja <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Za korištenje Pametnog zaključavanja, na telefonu prebacite na profil primarnog korisnika</translation> <translation id="6116921718742659598">Promijenite postavke jezika i unosa</translation> <translation id="6120205520491252677">Zakači ovu stranicu za Početni ekran…</translation> @@ -5234,7 +5224,7 @@ <translation id="7140928199327930795">Nema drugih dostupnih uređaja.</translation> <translation id="7141105143012495934">Prijava nije uspjela jer nije bilo moguće preuzeti vaše podatke računa. Kontaktirajte administratora ili pokušajte ponovo.</translation> <translation id="7143207342074048698">Povezivanje</translation> -<translation id="7143358760238281735">Nema aplikacija</translation> +<translation id="7143358760238281735">Nijedna aplikacija nije dostupna</translation> <translation id="7144878232160441200">Pokušajte ponovo.</translation> <translation id="714876143603641390">Povezivost LAN-a</translation> <translation id="7149893636342594995">Posljednja 24 sata</translation> @@ -5706,7 +5696,7 @@ <translation id="7707922173985738739">Koristi prijenos podataka na mobilnoj mreži</translation> <translation id="7709152031285164251">Neuspješno – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Emitiraj...</translation> -<translation id="7712739869553853093">Dijalog Pregled ispisa</translation> +<translation id="7712739869553853093">Dijaloški okvir pregleda štampanja</translation> <translation id="7712836429117959503">Nepoznata ekstenzija s ID-jem <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Dozvoljeni su kolačići s domene <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">Potvrda</translation> @@ -5836,7 +5826,6 @@ <translation id="7831491651892296503">Greška prilikom konfiguriranja mreže</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Vrijeme završetka</translation> -<translation id="783214144752121388">Blokiraj web lokacijama pokretanje Flasha (preporučeno)</translation> <translation id="7833720883933317473">Sačuvane prilagođene riječi će se pojaviti ovdje</translation> <translation id="7835178595033117206">Oznaka je uklonjena</translation> <translation id="7836850009646241041">Pokušajte ponovo dodirnuti sigurnosni ključ</translation> @@ -6064,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Ovaj fajl je šifriran. Zatražite od vlasnika da ga dešifrira.}one{Neki od ovih fajlova su šifrirani. Zatražite od vlasnika da ih dešifrira.}few{Neki od ovih fajlova su šifrirani. Zatražite od vlasnika da ih dešifrira.}other{Neki od ovih fajlova su šifrirani. Zatražite od vlasnika da ih dešifrira.}}</translation> <translation id="808894953321890993">Promijenite lozinku</translation> <translation id="8090234456044969073">Čitanje spiska najčešće korištenih web lokacija</translation> -<translation id="8092681102116274204">Postavke sa zamjenskim znakovima "*" nisu više podržane. Kontaktirajte programera ekstenzije ili administratora da <ph name="BEGIN_LINK" />promijenite ove postavke<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ne reagira</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Napravite sigurnosnu kopiju na Google Disku. Jednostavno u svakom trenutku vratite svoje podatke ili promijenite uređaj. Vaša sigurnosna kopija uključuje podatke o aplikacijama.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Vaše sigurnosne kopije se otpremaju na Google i šifriraju pomoću lozinke vašeg Google računa.<ph name="END_PARAGRAPH2" /> @@ -6159,7 +6147,6 @@ <translation id="8201717382574620700">Odaberite albume: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Ponovo unesite zaporku da biste ažurirali svoj profil na uređaju <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Šalje vam obavještenja i kao zadanu postavku pamti ovaj računar za Messages. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokiraj Flash (preporučeno)</translation> <translation id="820568752112382238">Najposjećenije web lokacije</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">Mobitel</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 6cefc0a7..89ba312 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Atura</translation> <translation id="1272293450992660632">Els valors del PIN no coincideixen.</translation> <translation id="1272978324304772054">Aquest compte d'usuari no pertany al domini on s'ha registrat el dispositiu. Si el voleu registrar en un domini diferent, primer cal que apliqueu el procés de recuperació del dispositiu.</translation> -<translation id="1274977772557788323">Configuració d'emmagatzematge d'Adobe Flash Player</translation> <translation id="1274997165432133392">Galetes i altres dades dels llocs web</translation> <translation id="1275718070701477396">Seleccionat</translation> <translation id="1276994519141842946">No s'ha pogut instal·lar <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Se sincronitzaran les adreces d'interès, l'historial i la configuració amb el vostre compte de Google</translation> <translation id="1314565355471455267">VPN d'Android</translation> <translation id="131461803491198646">Xarxa domèstica, no itinerància</translation> -<translation id="1315056510003830387">Sense permís per utilitzar Flash</translation> <translation id="1316136264406804862">S'està cercant...</translation> <translation id="1316495628809031177">La sincronització està en pausa</translation> <translation id="1317637799698924700">La base de connexió funcionarà en un mode compatible amb els connectors USB tipus C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">El Centre de distribució de claus de Kerberos no admet aquest tipus d'encriptació</translation> <translation id="1984417487208496350">Sense protecció (opció no recomanada)</translation> <translation id="1987317783729300807">Comptes</translation> -<translation id="1988494864246143197">Els llocs web solen utilitzar Flash per reproduir àudio, vídeo o videojocs. Flash Player ja no s'admetrà a partir de desembre de 2020.</translation> <translation id="1989112275319619282">Examina</translation> <translation id="1990512225220753005">No mostris dreceres en aquesta pàgina</translation> <translation id="1992397118740194946">No establerta</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">Col·locació de finestres</translation> <translation id="2881076733170862447">Quan facis clic a l'extensió</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> es reiniciarà i es restablirà temporalment.</translation> -<translation id="288387288628762616">Amb permís per utilitzar Flash</translation> <translation id="2885378588091291677">Gestor de tasques</translation> <translation id="2885729872133513017">S'ha produït un problema en descodificar la resposta del servidor.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2080,6 +2076,7 @@ <translation id="3428419049384081277">Has iniciat la sessió</translation> <translation id="3428747202529429621">Et protegeix a Chrome i és possible que s'utilitzi per millorar la teva seguretat en altres aplicacions de Google quan tinguis la sessió iniciada</translation> <translation id="3428800329481094896">S'estan recollint les claus SSH del contenidor de Linux</translation> +<translation id="3429271624041785769">Idiomes del contingut web</translation> <translation id="3429275422858276529">Afegeix aquesta pàgina a les adreces d'interès per trobar-la fàcilment més endavant</translation> <translation id="3432227430032737297">Suprimeix totes les que es mostren</translation> <translation id="3432757130254800023">Enviar àudio i vídeo a les visualitzacions de la xarxa local</translation> @@ -2464,7 +2461,6 @@ <translation id="383669374481694771">Es tracta d'informació general sobre aquest dispositiu i sobre com es fa servir, com ara els errors, el nivell de bateria i l'activitat al sistema i en aplicacions. Les dades s'utilitzaran per millorar Android i part de la informació agregada també ajudarà les aplicacions i els partners de Google, com ara els desenvolupadors d'Android, a millorar les seves aplicacions i els seus productes.</translation> <translation id="3838085852053358637">No s'ha pogut carregar l'extensió</translation> <translation id="3838486795898716504">Més <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Galetes i altres dades de llocs i de connectors</translation> <translation id="383891835335927981">No s'ha ampliat ni reduït cap lloc</translation> <translation id="3839509547554145593">Activa l'acceleració de desplaçament del ratolí tàctil</translation> <translation id="3839516600093027468">No permetis mai que <ph name="HOST" /> vegi el porta-retalls</translation> @@ -2506,6 +2502,7 @@ <translation id="3879748587602334249">Gestor de baixades</translation> <translation id="3881478300875776315">Mostra menys línies</translation> <translation id="3882165008614329320">Vídeo existent de la càmera o d'un fitxer</translation> +<translation id="3884152383786131369">El contingut web disponible en diversos idiomes utilitzarà el primer idioma admès d'aquesta llista. Aquestes preferències se sincronitzen amb les opcions de configuració del navegador. <ph name="BEGIN_LINK_LEARN_MORE" />Més informació<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">La teva sol·licitud per accedir a aquest lloc s'ha enviat a <ph name="NAME" /></translation> <translation id="3888550877729210209">Escriu notes amb <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Activa l'opció Sincronització de Chrome per utilitzar la funció Sincronització Wi‑Fi</translation> @@ -2637,7 +2634,6 @@ <translation id="4023146161712577481">S'està determinant la configuració del dispositiu</translation> <translation id="4025039777635956441">Silencia el lloc web seleccionat</translation> <translation id="4027804175521224372">(Us esteu perdent: <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">La configuració de Flash es conservarà fins que surtis de Chrome.</translation> <translation id="4028467762035011525">Afegeix mètodes d'introducció de text</translation> <translation id="4031179711345676612">El micròfon es pot utilitzar</translation> <translation id="4031527940632463547">Sensors bloquejats</translation> @@ -2789,7 +2785,6 @@ <translation id="4232375817808480934">Configura Kerberos</translation> <translation id="4235200303672858594">Tota la pantalla</translation> <translation id="4235965441080806197">Cancel·la l'inici de sessió</translation> -<translation id="4237773362828263530">Ja no s'admeten opcions de configuració amb comodins "*". Contacta amb l'administrador per <ph name="BEGIN_LINK" />canviar aquestes opcions de configuració<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Llegeix la pestanya més tard}other{Llegeix les pestanyes més tard}}</translation> <translation id="4242145785130247982">No s'admet l'ús de diversos certificats de client</translation> <translation id="4242533952199664413">Obre la configuració</translation> @@ -3053,7 +3048,6 @@ <translation id="4548483925627140043">No s'ha trobat el senyal</translation> <translation id="4549791035683739768">La clau de seguretat no té empremtes digitals emmagatzemades</translation> <translation id="4551763574344810652">Prem <ph name="MODIFIER_KEY_DESCRIPTION" /> per desfer l'acció</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Xarxa <ph name="NETWORK_TYPE" /> (intensitat del senyal: <ph name="SIGNAL_STRENGTH" /> per cent)</translation> <translation id="4553526521109675518">Has de reiniciar el Chromebook per canviar-ne l'idioma. <ph name="BEGIN_LINK_LEARN_MORE" />Més informació<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">L'extensió externa té la mateixa versió, o una d'anterior, en comparació amb l'existent.</translation> @@ -3408,7 +3402,6 @@ <translation id="4974733135013075877">Surt i estableix el bloqueig infantil</translation> <translation id="4976009197147810135">Divisió vertical</translation> <translation id="4977942889532008999">Confirmació de l'accés</translation> -<translation id="4978905460870207779">Els llocs web poden demanar permís per utilitzar Flash</translation> <translation id="4980805016576257426">Aquesta extensió conté programari maliciós.</translation> <translation id="4981449534399733132">Per esborrar les dades de navegació de tots els dispositius sincronitzats i del Compte de Google, <ph name="BEGIN_LINK" />inicia la sessió<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Programari del dispositiu</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Les dades associades a aquesta aplicació se suprimiran del dispositiu.</translation> <translation id="5908474332780919512">Obre l'aplicació en iniciar la sessió</translation> <translation id="5908695239556627796">Velocitat de desplaçament del ratolí</translation> -<translation id="5908769186679515905">Impedeix que els llocs web executin Flash</translation> <translation id="5910363049092958439">De&sa la imatge com a...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> no té connexió</translation> <translation id="5911533659001334206">Visualitzador de dreceres</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Afegeix un tiquet</translation> <translation id="6112931163620622315">Comprova el telèfon</translation> <translation id="6112952769866305444">Edita la persona (<ph name="PROFILE_NAME" />, <ph name="USERNAME" />)</translation> +<translation id="6113434369102685411">Defineix el motor de cerca predeterminat per al navegador Chrome i el menú d'aplicacions de <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Per fer servir Smart Lock, ves al perfil d'usuari principal del telèfon</translation> <translation id="6116921718742659598">Canvia la configuració d'idioma i d'introducció de text</translation> <translation id="6120205520491252677">Fixa aquesta pàgina a la pantalla d'inici...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">No hi ha cap altre dispositiu disponible.</translation> <translation id="7141105143012495934">S'ha produït un problema en iniciar la sessió perquè no s'ha pogut recuperar la informació del compte. Contacteu amb l'administrador o torneu a provar-ho.</translation> <translation id="7143207342074048698">Connectant</translation> +<translation id="7143358760238281735">No hi ha cap aplicació disponible</translation> <translation id="7144878232160441200">Torna-ho a provar</translation> <translation id="714876143603641390">Connectivitat de la LAN</translation> <translation id="7149893636342594995">24 darreres hores</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Utilitza dades mòbils</translation> <translation id="7709152031285164251">Error: <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Emet…</translation> +<translation id="7712739869553853093">Quadre de diàleg de la previsualització d'impressió</translation> <translation id="7712836429117959503">Extensió desconeguda amb l'identificador <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">S'admeten les galetes del domini <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">Certificat</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">S'ha produït un error en configurar la xarxa</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Hora de finalització</translation> -<translation id="783214144752121388">Impedeix que els llocs web executin Flash (opció recomanada)</translation> <translation id="7833720883933317473">Les paraules personalitzades desades es mostraran aquí</translation> <translation id="7835178595033117206">L'adreça d'interès s'ha suprimit</translation> <translation id="7836850009646241041">Torna a tocar la clau de seguretat</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Aquest fitxer està encriptat. Demana al propietari que el desencripti.}other{Alguns d'aquests fitxers estan encriptats. Demana al propietari que els desencripti.}}</translation> <translation id="808894953321890993">Canvia la contrasenya</translation> <translation id="8090234456044969073">Llegir una llista dels llocs web més visitats</translation> -<translation id="8092681102116274204">Ja no s'admeten opcions de configuració amb comodins "*". Contacta amb el desenvolupador de l'extensió o amb l'administrador perquè <ph name="BEGIN_LINK" />canviï aquestes opcions de configuració<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> no respon</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Crea còpies de seguretat a Google Drive. Canvia de dispositiu o restaura'n les dades fàcilment en qualsevol moment. La còpia de seguretat inclou dades d'aplicacions.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Les còpies de seguretat es pengen a Google i s'encripten amb la contrasenya del teu Compte de Google.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6146,6 @@ <translation id="8201717382574620700">Selecciona els àlbums de: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Torneu a introduir la contrasenya per actualitzar el vostre perfil del dispositiu <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Enviar-te notificacions en aquest ordinador i establir-lo com a predeterminat per a Missatges. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Bloqueja Flash (opció recomanada)</translation> <translation id="820568752112382238">Els llocs web més visitats</translation> <translation id="8206745257863499010">Música</translation> <translation id="8206859287963243715">Cel·lular</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index dac289ad..d1c9156 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Zastavit</translation> <translation id="1272293450992660632">Hodnoty kódů PIN se neshodují.</translation> <translation id="1272978324304772054">Tento uživatelský účet nepatří do domény, do které je zaregistrováno toto zařízení. Chcete-li se zaregistrovat do jiné domény, je nutné nejdříve provést obnovení zařízení.</translation> -<translation id="1274977772557788323">Nastavení úložiště přehrávače Adobe Flash Player</translation> <translation id="1274997165432133392">Soubory cookie a jiná data webů</translation> <translation id="1275718070701477396">Vybráno</translation> <translation id="1276994519141842946">Odinstalace aplikace <ph name="APP_NAME" /> se nezdařila</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Záložky, historie a další nastavení budou synchronizovány s účtem Google.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Domácí síť, bez roamingu</translation> -<translation id="1315056510003830387">Zákaz používat Flash</translation> <translation id="1316136264406804862">Vyhledávání...</translation> <translation id="1316495628809031177">Synchronizace je pozastavena</translation> <translation id="1317637799698924700">Dokovací stanice bude fungovat v režimu kompatibilním s rozhraním USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC nepodporuje typ šifrování</translation> <translation id="1984417487208496350">Bez ochrany (nedoporučujeme)</translation> <translation id="1987317783729300807">Účty</translation> -<translation id="1988494864246143197">Weby pomocí formátu Flash obvykle přehrávají zvuk, video nebo videohry. Přehrávač Flash Player bude podporován jen do prosince 2020.</translation> <translation id="1989112275319619282">Procházet</translation> <translation id="1990512225220753005">Nezobrazovat zkratky na této stránce</translation> <translation id="1992397118740194946">Hodnota není nastavena</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">Umístění oken</translation> <translation id="2881076733170862447">Když kliknete na rozšíření</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> se za chvíli restartuje a resetuje</translation> -<translation id="288387288628762616">Povolení používat Flash</translation> <translation id="2885378588091291677">Správce úloh</translation> <translation id="2885729872133513017">Při dekódování odpovědi serveru došlo k chybě.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2080,6 +2076,7 @@ <translation id="3428419049384081277">Jste přihlášeni!</translation> <translation id="3428747202529429621">Zajišťuje vám bezpečí v Chromu a může zvýšit vaši bezpečnost v jiných aplikacích Google, když jste přihlášeni.</translation> <translation id="3428800329481094896">Načítání klíčů SSH kontejneru systému Linux</translation> +<translation id="3429271624041785769">Jazyky webového obsahu</translation> <translation id="3429275422858276529">Přidejte si tuto stránku do záložek, abyste ji později snáze našli</translation> <translation id="3432227430032737297">Odstranit všechny zobrazené</translation> <translation id="3432757130254800023">Odesílat zvuk a video na displeje v místní síti</translation> @@ -2464,7 +2461,6 @@ <translation id="383669374481694771">Toto jsou obecné informace o zařízení a způsobu jeho používání (např. stav baterie, aktivita systému a aplikací nebo chyby). Data budou využívána k vylepšení systému Android. Některé souhrnné informace pomohou s vylepšováním aplikací a služeb také našim partnerům, například vývojářům Androidu.</translation> <translation id="3838085852053358637">Rozšíření se nepodařilo načíst</translation> <translation id="3838486795898716504">Další stránka <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Soubory cookie a další data webů a pluginů</translation> <translation id="383891835335927981">Žádný web nemá nastaveno přiblížení či oddálení zobrazení</translation> <translation id="3839509547554145593">Zapnout zrychlení posouvání myší</translation> <translation id="3839516600093027468">Webu <ph name="HOST" /> přístup ke schránce vždy blokovat</translation> @@ -2506,6 +2502,7 @@ <translation id="3879748587602334249">Správce stahování</translation> <translation id="3881478300875776315">Zobrazit méně řádků</translation> <translation id="3882165008614329320">Existující video z fotoaparátu nebo soubor</translation> +<translation id="3884152383786131369">U webového obsahu, který je k dispozici v několika jazycích, se použije první jazyk v seznamu. Tyto předvolby jsou synchronizovány s nastavením prohlížeče. <ph name="BEGIN_LINK_LEARN_MORE" />Další informace<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Vaše žádost o přístup k tomuto webu byla odeslána uživateli <ph name="NAME" />.</translation> <translation id="3888550877729210209">Pořizování poznámek pomocí aplikace <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Chcete-li použít Synchronizaci Wi-Fi, zapněte Synchronizaci Chromu</translation> @@ -2637,7 +2634,6 @@ <translation id="4023146161712577481">Zjišťování konfigurace zařízení</translation> <translation id="4025039777635956441">Ztlumit vybraný web</translation> <translation id="4027804175521224372">(Využijte všech funkcí — <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Nastavení přehrávače Flash zůstanou zachována, dokud Chrome neukončíte.</translation> <translation id="4028467762035011525">Přidat metody zadávání</translation> <translation id="4031179711345676612">Mikrofon je povolen</translation> <translation id="4031527940632463547">Použití senzorů je blokováno</translation> @@ -2789,7 +2785,6 @@ <translation id="4232375817808480934">Nakonfigurovat Kerberos</translation> <translation id="4235200303672858594">Celá obrazovka</translation> <translation id="4235965441080806197">Zrušit přihlášení</translation> -<translation id="4237773362828263530">Nastavení se zástupným znakem „*“ už nejsou podporována. Pokud <ph name="BEGIN_LINK" />tato nastavení chcete změnit<ph name="END_LINK" />, kontaktujte svého administrátora.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Přečíst kartu později}few{Přečíst karty později}many{Přečíst karty později}other{Přečíst karty později}}</translation> <translation id="4242145785130247982">Více certifikátů klientů není podporováno</translation> <translation id="4242533952199664413">Otevřít Nastavení</translation> @@ -3053,7 +3048,6 @@ <translation id="4548483925627140043">Signál nebyl nalezen</translation> <translation id="4549791035683739768">V bezpečnostním klíči nejsou uloženy žádné otisky</translation> <translation id="4551763574344810652">Stisknutím <ph name="MODIFIER_KEY_DESCRIPTION" /> vrátíte provedenou akci zpět</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Síť: <ph name="NETWORK_TYPE" />, síla signálu: <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Pokud chcete změnit jazyk Chromebooku, musíte ho restartovat. <ph name="BEGIN_LINK_LEARN_MORE" />Další informace<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Externí rozšíření má stejnou nebo nižší verzi než stávající.</translation> @@ -3408,7 +3402,6 @@ <translation id="4974733135013075877">Ukončit a použít rodičovský zámek</translation> <translation id="4976009197147810135">Svisle rozdělit</translation> <translation id="4977942889532008999">Potvrzení přístupu</translation> -<translation id="4978905460870207779">Weby mohou žádat o použití formátu Flash</translation> <translation id="4980805016576257426">Toto rozšíření obsahuje malware.</translation> <translation id="4981449534399733132">Chcete-li vymazat údaje o prohlížení ze všech synchronizovaných zařízení i z účtu Google, <ph name="BEGIN_LINK" />přihlaste se<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Software zařízení</translation> @@ -4179,7 +4172,6 @@ <translation id="5906732635754427568">Data přidružená k této aplikaci z tohoto zařízení budou odstraněna.</translation> <translation id="5908474332780919512">Spustit aplikaci při přihlášení</translation> <translation id="5908695239556627796">Rychlost posouvání myší</translation> -<translation id="5908769186679515905">Blokovat spouštění obsahu Flash na webech</translation> <translation id="5910363049092958439">Uložit o&brázek jako...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> je offline</translation> <translation id="5911533659001334206">Prohlížeč klávesových zkratek</translation> @@ -4363,6 +4355,7 @@ <translation id="6112727384379533756">Přidat lístek</translation> <translation id="6112931163620622315">Zkontrolujte telefon</translation> <translation id="6112952769866305444">Upravit osobu, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Nastavte výchozí vyhledávač pro prohlížeč Chrome a pro Spouštěč zařízení <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Chcete-li použít funkci Smart Lock, přejděte na primární uživatelský profil na telefonu</translation> <translation id="6116921718742659598">Změnit nastavení jazyka a vstupu</translation> <translation id="6120205520491252677">Připnout tuto stránku na úvodní obrazovku...</translation> @@ -5229,6 +5222,7 @@ <translation id="7140928199327930795">Nejsou k dispozici žádná další zařízení.</translation> <translation id="7141105143012495934">Přihlášení selhalo, protože se nepodařilo načíst podrobnosti účtu. Kontaktujte administrátora nebo to zkuste znovu.</translation> <translation id="7143207342074048698">Připojování</translation> +<translation id="7143358760238281735">Nejsou k dispozici žádné aplikace</translation> <translation id="7144878232160441200">Opakovat</translation> <translation id="714876143603641390">Připojení k síti LAN</translation> <translation id="7149893636342594995">Posledních 24 hodin</translation> @@ -5700,6 +5694,7 @@ <translation id="7707922173985738739">Používat mobilní data</translation> <translation id="7709152031285164251">Chyba – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Odeslat...</translation> +<translation id="7712739869553853093">Dialogové okno náhledu tisku</translation> <translation id="7712836429117959503">Neznámé rozšíření s ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Soubory cookie z domény <ph name="DOMAIN" /> byly povoleny</translation> <translation id="7714464543167945231">Certifikát</translation> @@ -5829,7 +5824,6 @@ <translation id="7831491651892296503">Chyba při konfiguraci sítě</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Čas ukončení</translation> -<translation id="783214144752121388">Blokovat webům spouštění obsahu Flash (doporučeno)</translation> <translation id="7833720883933317473">Tady se budou zobrazovat uložená vlastní slova</translation> <translation id="7835178595033117206">Záložka byla odstraněna</translation> <translation id="7836850009646241041">Zkuste se znovu dotknout bezpečnostního klíče</translation> @@ -6057,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Tento soubor je zašifrovaný. Požádejte vlastníka, aby ho dešifroval.}few{Některé z těchto souborů jsou zašifrované. Požádejte vlastníka, aby je dešifroval.}many{Některé z těchto souborů jsou zašifrované. Požádejte vlastníka, aby je dešifroval.}other{Některé z těchto souborů jsou zašifrované. Požádejte vlastníka, aby je dešifroval.}}</translation> <translation id="808894953321890993">Změnit heslo</translation> <translation id="8090234456044969073">Může číst seznam nejčastěji navštěvovaných webů</translation> -<translation id="8092681102116274204">Nastavení se zástupným znakem „*“ už nejsou podporována. Požádejte vývojáře rozšíření nebo administrátora o <ph name="BEGIN_LINK" />změnu těchto nastavení<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">Plugin <ph name="PLUGIN_NAME" /> neodpovídá</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Zálohování na Disk Google. Snadno obnovte svá data nebo kdykoliv přejděte na jiné zařízení. Záloha zahrnuje data aplikací.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Zálohy se nahrávají do Googlu a šifrují pomocí hesla účtu Google.<ph name="END_PARAGRAPH2" /> @@ -6151,7 +6144,6 @@ <translation id="8201717382574620700">Vyberte alba: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Chcete-li aktualizovat profil zařízení <ph name="DEVICE_TYPE" />, znovu zadejte heslo.</translation> <translation id="8203732864715032075">Odesílat vám oznámení a zapamatovat si tento počítač pro Zprávy. <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokování blesku (doporučeno)</translation> <translation id="820568752112382238">Nejnavštěvovanější weby</translation> <translation id="8206745257863499010">Melodie</translation> <translation id="8206859287963243715">Mobil</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 8ac81b3..6562b1d0 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Stop</translation> <translation id="1272293450992660632">Pinkodeværdierne stemmer ikke overens.</translation> <translation id="1272978324304772054">Denne brugerkonto tilhører ikke det domæne, som enheden er tilmeldt. Hvis du vil foretage en tilmelding til et andet domæne, skal enheden først genoprettes.</translation> -<translation id="1274977772557788323">Lagerindstillinger for Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies og andre websitedata</translation> <translation id="1275718070701477396">Valgt</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> kunne ikke installeres</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Dine bogmærker, din historik og dine andre indstillinger bliver synkroniseret med din Google-konto.</translation> <translation id="1314565355471455267">VPN for Android</translation> <translation id="131461803491198646">Hjemmenetværk, uden roaming</translation> -<translation id="1315056510003830387">Har ikke tilladelse til at bruge Flash</translation> <translation id="1316136264406804862">Søger...</translation> <translation id="1316495628809031177">Synkroniseringen er sat på pause</translation> <translation id="1317637799698924700">Din dockingstation køres i USB-C-kompatibel tilstand.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC understøtter ikke krypteringstypen</translation> <translation id="1984417487208496350">Ingen beskyttelse (anbefales ikke)</translation> <translation id="1987317783729300807">Konti</translation> -<translation id="1988494864246143197">Websites bruger normalt Flash til at afspille lyd, video eller videospil. Flash Player understøttes ikke længere fra december 2020.</translation> <translation id="1989112275319619282">Gennemse</translation> <translation id="1990512225220753005">Vis ikke genveje på denne side</translation> <translation id="1992397118740194946">Ikke angivet</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Placering af vinduer</translation> <translation id="2881076733170862447">Når du klikker på udvidelsen</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> Genstart og nulstilling påbegyndes om et øjeblik</translation> -<translation id="288387288628762616">Har tilladelse til at bruge Flash</translation> <translation id="2885378588091291677">Jobliste</translation> <translation id="2885729872133513017">Der opstod et problem under afkodningen af serversvaret.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">Dette er generelle oplysninger om denne enhed og brugen af den (f.eks. batteriniveau, system- og appaktivitet samt fejl). Dataene bruges til at forbedre Android, og visse samlede oplysninger kan også hjælpe partnere som f.eks. Android-udviklere med at forbedre deres apps og produkter.</translation> <translation id="3838085852053358637">Udvidelsen kunne ikke indlæses</translation> <translation id="3838486795898716504">Flere <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies og andre website- og plugindata</translation> <translation id="383891835335927981">Der er ikke zoomet ind eller ud på nogen websites</translation> <translation id="3839509547554145593">Aktivér acceleration af rulning på mus</translation> <translation id="3839516600093027468">Bloker altid <ph name="HOST" /> fra at se udklipsholderen</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Enhedskonfigurationen fastslås.</translation> <translation id="4025039777635956441">Slå lyden fra på det valgte website</translation> <translation id="4027804175521224372">(Du går glip af noget – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Dine Flash-indstillinger gemmes, indtil du lukker Chrome.</translation> <translation id="4028467762035011525">Tilføj indtastningsmetoder</translation> <translation id="4031179711345676612">Der er givet adgang til mikrofonen</translation> <translation id="4031527940632463547">Der er blokeret for sensorer</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Konfigurer Kerberos</translation> <translation id="4235200303672858594">Hele skærmen</translation> <translation id="4235965441080806197">Annuller login</translation> -<translation id="4237773362828263530">Indstillinger med jokertegn (*) understøttes ikke længere. Kontakt din administrator for at <ph name="BEGIN_LINK" />ændre disse indstillinger<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Læs fanen senere}one{Læs fanerne senere}other{Læs fanerne senere}}</translation> <translation id="4242145785130247982">Flere klientcertifikater understøttes ikke</translation> <translation id="4242533952199664413">Åbn Indstillinger</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Der blev ikke fundet noget signal</translation> <translation id="4549791035683739768">Der er ikke gemt nogen fingeraftryk i din sikkerhedsnøgle</translation> <translation id="4551763574344810652">Tryk på <ph name="MODIFIER_KEY_DESCRIPTION" /> for at fortryde</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" />-netværk, signalstyrke <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Du skal genstarte din Chromebook for at ændre enhedens sprog. <ph name="BEGIN_LINK_LEARN_MORE" />Få flere oplysninger<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Ekstern udvidelse er den samme version eller en ældre version end den eksisterende.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Afslut, og aktivér børnesikring</translation> <translation id="4976009197147810135">Opdel lodret</translation> <translation id="4977942889532008999">Bekræft adgang</translation> -<translation id="4978905460870207779">Websites kan anmode om at tilladelse til at bruge Flash</translation> <translation id="4980805016576257426">Denne udvidelse indeholder malware.</translation> <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Log ind<ph name="END_LINK" /> for at rydde browserdata fra alle dine synkroniserede enheder og din Google-konto.</translation> <translation id="4982236238228587209">Enhedens software</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">Data, der er knyttet til denne app, bliver fjernet fra enheden.</translation> <translation id="5908474332780919512">Start app, når du logger ind</translation> <translation id="5908695239556627796">Hastighed for rulning på mus</translation> -<translation id="5908769186679515905">Bloker websites fra at køre Flash</translation> <translation id="5910363049092958439">Ge&m billede som...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> er offline</translation> <translation id="5911533659001334206">Genvejsviser</translation> @@ -5836,7 +5826,6 @@ <translation id="7831491651892296503">Der opstod en fejl under konfigurationen af netværket</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Sluttidspunkt</translation> -<translation id="783214144752121388">Bloker websites fra at køre Flash (anbefales)</translation> <translation id="7833720883933317473">Dine gemte tilføjelser til ordbogen vises her</translation> <translation id="7835178595033117206">Bogmærket blev fjernet</translation> <translation id="7836850009646241041">Prøv at trykke på din sikkerhedsnøgle igen</translation> @@ -6064,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Denne fil er krypteret. Bed ejeren af filen om at dekryptere den.}one{En af disse filer er krypteret. Bed ejeren af den om at dekryptere den.}other{Nogle af disse filer er krypteret. Bed ejeren af dem om at dekryptere dem.}}</translation> <translation id="808894953321890993">Skift adgangskode</translation> <translation id="8090234456044969073">Se en liste over dine mest besøgte websites</translation> -<translation id="8092681102116274204">Indstillinger med jokertegn (*) understøttes ikke længere. Kontakt udvikleren af udvidelsen eller din administrator for at <ph name="BEGIN_LINK" />ændre disse indstillinger<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> svarer ikke</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Sikkerhedskopiér til Google Drev. Du kan til enhver tid gendanne dine data eller skifte til en anden enhed. Backups omfatter appdata.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Backups uploades til Google og krypteres ved hjælp af adgangskoden til din Google-konto.<ph name="END_PARAGRAPH2" /> @@ -6159,7 +6147,6 @@ <translation id="8201717382574620700">Vælg <ph name="TOPIC_SOURCE" />-album</translation> <translation id="8202160505685531999">Angiv adgangskoden igen for at opdatere din <ph name="DEVICE_TYPE" />-profil.</translation> <translation id="8203732864715032075">Sende dig notifikationer og huske denne computer som standard til Beskeder. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Bloker Flash (anbefales)</translation> <translation id="820568752112382238">Mest besøgte websites</translation> <translation id="8206745257863499010">BB King</translation> <translation id="8206859287963243715">Mobil</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index eaed57bc0..ed1288c 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Stoppen</translation> <translation id="1272293450992660632">Die PIN-Werte stimmen nicht überein.</translation> <translation id="1272978324304772054">Dieses Nutzerkonto gehört nicht zu der Domain, in der das Gerät angemeldet ist. Wenn Sie sich in einer anderen Domain anmelden möchten, müssen Sie zunächst eine Gerätewiederherstellung durchführen.</translation> -<translation id="1274977772557788323">Speichereinstellungen für Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies und andere Websitedaten</translation> <translation id="1275718070701477396">Ausgewählt</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> konnte nicht deinstalliert werden</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Ihre Lesezeichen, Ihr Verlauf und andere Einstellungen werden mit Ihrem Google-Konto synchronisiert.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Heimnetzwerk, kein Roaming</translation> -<translation id="1315056510003830387">Dürfen Flash nicht verwenden</translation> <translation id="1316136264406804862">Suche läuft...</translation> <translation id="1316495628809031177">Synchronisierung pausiert</translation> <translation id="1317637799698924700">Ihre Dockingstation arbeitet im Modus für USB Typ-C-Kompatibilität.</translation> @@ -448,6 +446,7 @@ <translation id="1509281256533087115">Auf <ph name="DEVICE_NAME_AND_VENDOR" /> per USB zugreifen</translation> <translation id="1509960214886564027">Funktionen auf vielen Websites funktionieren möglicherweise nicht mehr</translation> <translation id="1510238584712386396">Launcher</translation> +<translation id="151070646350206700">Websites können Sie nicht unterbrechen und fragen, ob Sie Benachrichtigungen erhalten möchten</translation> <translation id="1510785804673676069">Wenn Sie einen Proxy-Server verwenden, überprüfen Sie Ihre Proxy-Einstellungen oder erkundigen Sie sich bei Ihrem Netzwerkadministrator, ob der Proxy-Server funktioniert. Wenn Sie keinen Proxy-Server verwenden möchten, ändern Sie Ihre <ph name="LINK_START" />Proxy-Einstellungen<ph name="LINK_END" />.</translation> <translation id="1511997356770098059">Auf diesem Sicherheitsschlüssel können keine Anmeldedaten gespeichert werden</translation> <translation id="1512210426710821809">Dies kann nur durch eine Neuinstallation von <ph name="IDS_SHORT_PRODUCT_OS_NAME" /> rückgängig gemacht werden</translation> @@ -874,7 +873,6 @@ <translation id="197989455406964291">KDC unterstützt den Verschlüsselungstyp nicht</translation> <translation id="1984417487208496350">Kein Schutz (nicht empfohlen)</translation> <translation id="1987317783729300807">Konten</translation> -<translation id="1988494864246143197">Websites verwenden Flash normalerweise zur Wiedergabe von Audio- oder Videodateien oder Videospielen. Flash Player wird ab Dezember 2020 nicht mehr unterstützt.</translation> <translation id="1989112275319619282">Durchsuchen</translation> <translation id="1990512225220753005">Keine Verknüpfungen auf dieser Seite anzeigen</translation> <translation id="1992397118740194946">Nicht eingerichtet</translation> @@ -931,6 +929,7 @@ <translation id="205560151218727633">Google Assistant-Logo</translation> <translation id="2058456167109518507">Gerät erkannt</translation> <translation id="2059913712424898428">Zeitzone</translation> +<translation id="2060375639911876205">eSIM-Profil entfernen</translation> <translation id="2065405795449409761">Chrome wird von automatisierter Testsoftware gesteuert.</translation> <translation id="2071393345806050157">Keine lokale Protokolldatei vorhanden</translation> <translation id="2073148037220830746">{NUM_EXTENSIONS,plural, =1{Zum Installieren der Erweiterung klicken}other{Zum Installieren dieser Erweiterungen klicken}}</translation> @@ -1643,7 +1642,6 @@ <translation id="2880660355386638022">Fensterpositionierung</translation> <translation id="2881076733170862447">Wenn die Erweiterung angeklickt wird</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> wird in wenigen Augenblicken neu gestartet und zurückgesetzt.</translation> -<translation id="288387288628762616">Dürfen Flash verwenden</translation> <translation id="2885378588091291677">Task-Manager</translation> <translation id="2885729872133513017">Beim Decodieren der Serverantwort ist ein Problem aufgetreten.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2459,7 +2457,6 @@ <translation id="383669374481694771">Dies sind allgemeine Informationen zu diesem Gerät und dessen Nutzung, zum Beispiel der Akkustand, System- und App-Aktivitäten und Fehler. Die Daten werden dazu verwendet, Android zu verbessern. Einige aggregierte Daten helfen auch Apps und Partnern von Google, beispielsweise Android-Entwicklern, ihre Apps und Produkte weiter zu verbessern.</translation> <translation id="3838085852053358637">Fehler beim Laden der Erweiterung</translation> <translation id="3838486795898716504">Weitere <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies und andere Website- und Plug-in-Daten</translation> <translation id="383891835335927981">Keine Websites wurden vergrößert oder verkleinert</translation> <translation id="3839509547554145593">Scroll-Beschleunigung für Maus aktivieren</translation> <translation id="3839516600093027468">Immer verhindern, dass <ph name="HOST" /> die Zwischenablage abruft</translation> @@ -2633,7 +2630,6 @@ <translation id="4023146161712577481">Gerätekonfiguration wird abgerufen</translation> <translation id="4025039777635956441">Ausgewählte Website stummschalten</translation> <translation id="4027804175521224372">(Keine Synchronisierung Ihrer Daten – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Ihre Flash-Einstellungen bleiben erhalten, bis Sie Chrome beenden.</translation> <translation id="4028467762035011525">Eingabemethoden hinzufügen</translation> <translation id="4031179711345676612">Mikrofonnutzung zulässig</translation> <translation id="4031527940632463547">Sensoren blockiert</translation> @@ -2724,6 +2720,7 @@ <translation id="4131410914670010031">Schwarz-Weiß</translation> <translation id="413193092008917129">Netzwerk-Diagnoseabläufe</translation> <translation id="4132183752438206707">Entdecken Sie Apps im Google Play Store</translation> +<translation id="4132364317545104286">eSIM-Profil umbenennen</translation> <translation id="4133076602192971179">Sie können Ihr Passwort in der App ändern</translation> <translation id="4136203100490971508">Das Nachtlicht wird automatisch bei Sonnenaufgang deaktiviert</translation> <translation id="41365691917097717">Wenn Sie fortfahren, erlauben Sie der ADB-Fehlerbehebung, Android-Apps zu erstellen und zu testen. Durch diese Aktion können Android-Apps installiert werden, die nicht von Google geprüft wurden. Zum Deaktivieren ist das Zurücksetzen auf die Werkseinstellungen erforderlich.</translation> @@ -2784,7 +2781,6 @@ <translation id="4232375817808480934">Kerberos konfigurieren</translation> <translation id="4235200303672858594">Gesamten Bildschirm</translation> <translation id="4235965441080806197">Anmeldung abbrechen</translation> -<translation id="4237773362828263530">Einstellungen mit "*"-Platzhaltern werden nicht mehr unterstützt. Kontaktieren Sie den Administrator, um <ph name="BEGIN_LINK" />diese Einstellungen zu ändern<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Tab später lesen}other{Tabs später lesen}}</translation> <translation id="4242145785130247982">Mehrere Clientzertifikate werden nicht unterstützt</translation> <translation id="4242533952199664413">Einstellungen öffnen</translation> @@ -3048,7 +3044,6 @@ <translation id="4548483925627140043">Signal nicht gefunden</translation> <translation id="4549791035683739768">Auf Ihrem Sicherheitsschlüssel sind keine Fingerabdrücke gespeichert</translation> <translation id="4551763574344810652">"<ph name="MODIFIER_KEY_DESCRIPTION" />" drücken, um Aktion rückgängig zu machen</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Netzwerk: <ph name="NETWORK_TYPE" />, Signalstärke: <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Sie müssen Ihr Chromebook neu starten, um die Gerätesprache zu ändern. <ph name="BEGIN_LINK_LEARN_MORE" />Weitere Informationen<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Die Version der externen Erweiterung ist identisch mit der vorhandenen Version oder niedriger als diese.</translation> @@ -3237,6 +3232,7 @@ <translation id="4778644898150334464">Anderes Passwort verwenden</translation> <translation id="4779083564647765204">Zoomen</translation> <translation id="4779136857077979611">Onigiri</translation> +<translation id="4779766576531456629">eSIM-Mobilfunknetzwerk umbenennen</translation> <translation id="4780321648949301421">Seite speichern unter...</translation> <translation id="4785719467058219317">Sie verwenden einen Sicherheitsschlüssel, der nicht auf dieser Website registriert ist</translation> <translation id="4788092183367008521">Bitte überprüfen Sie die Netzwerkverbindung und versuchen Sie es noch einmal.</translation> @@ -3402,7 +3398,6 @@ <translation id="4974733135013075877">Beenden und Kindersicherung aktivieren</translation> <translation id="4976009197147810135">Vertikal teilen</translation> <translation id="4977942889532008999">Zugriff bestätigen</translation> -<translation id="4978905460870207779">Websites dürfen nachfragen, ob sie Flash verwenden dürfen</translation> <translation id="4980805016576257426">Diese Erweiterung enthält Malware.</translation> <translation id="4981449534399733132">Wenn Sie Browserdaten von all Ihren synchronisierten Geräten und aus Ihrem Google-Konto löschen möchten, <ph name="BEGIN_LINK" />melden Sie sich an<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Gerätesoftware</translation> @@ -3680,6 +3675,7 @@ <translation id="5324780743567488672">Zeitzone automatisch anhand des Standorts einstellen</translation> <translation id="5327248766486351172">Name</translation> <translation id="5327570636534774768">Dieses Gerät ist für die Verwaltung durch eine andere Domain markiert. Heben Sie die Bereitstellung von dieser Domain aus auf, bevor Sie den Demomodus einrichten.</translation> +<translation id="5327912693242073631">Funktionen, die Benachrichtigungen erfordern, funktionieren nicht</translation> <translation id="532943162177641444">Tippen Sie auf die Benachrichtigung auf Ihrem <ph name="PHONE_NAME" />, um einen mobilen Hotspot einzurichten, den dieses Gerät nutzen kann.</translation> <translation id="5329858601952122676">&Löschen</translation> <translation id="5331069282670671859">In dieser Kategorie befinden sich keine Zertifikate</translation> @@ -3731,6 +3727,7 @@ <translation id="5390112241331447203">Datei system_logs.txt, die in Feedbackberichten gesendet wird, einbeziehen.</translation> <translation id="5390677308841849479">Dunkelrot und Orange</translation> <translation id="5390743329570580756">Senden für</translation> +<translation id="5392192690789334093">Dürfen Benachrichtigungen senden</translation> <translation id="5397794290049113714">Ich</translation> <translation id="5398497406011404839">Ausgeblendete Lesezeichen</translation> <translation id="5398572795982417028">Der Seitenbereich ist zu groß. Die maximale Seitenanzahl liegt bei <ph name="MAXIMUM_PAGE" /></translation> @@ -4033,6 +4030,7 @@ <translation id="5739235828260127894">Bestätigung steht aus. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Sehr groß</translation> <translation id="5740328398383587084">Nearby Share</translation> +<translation id="5740820643029013514">Symbole als Aufforderung zum Annehmen von Benachrichtigungen verwenden (empfohlen)</translation> <translation id="574104302965107104">Displayspiegelung</translation> <translation id="574209121243317957">Tonhöhe</translation> <translation id="5746169159649715125">Als PDF speichern</translation> @@ -4170,7 +4168,6 @@ <translation id="5906732635754427568">Daten, die dieser App zugewiesen sind, werden von diesem Gerät entfernt.</translation> <translation id="5908474332780919512">App beim Anmelden starten</translation> <translation id="5908695239556627796">Scroll-Geschwindigkeit mit der Maus</translation> -<translation id="5908769186679515905">Ausführen von Flash für Websites blockieren</translation> <translation id="5910363049092958439">Bi&ld speichern unter...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ist offline</translation> <translation id="5911533659001334206">Tastenkombinationsanzeige</translation> @@ -4252,6 +4249,7 @@ <translation id="6002210667729577411">Gruppe in ein neues Fenster verschieben</translation> <translation id="6002452033851752583">Passwort aus Ihrem Google-Konto gelöscht</translation> <translation id="6002458620803359783">Bevorzugte Stimmen</translation> +<translation id="6003143259071779217">eSIM-Mobilfunknetz entfernen</translation> <translation id="6006484371116297560">Klassisch</translation> <translation id="6007240208646052708">Die Sprachsuche ist nicht in Ihrer Sprache verfügbar.</translation> <translation id="6009781704028455063">Integrierter Sensor</translation> @@ -4520,6 +4518,7 @@ <translation id="6308937455967653460">&Link speichern unter...</translation> <translation id="6309443618838462258">Ihr Administrator lässt diese Eingabemethode nicht zu</translation> <translation id="6309510305002439352">Mikrofon ausgeschaltet</translation> +<translation id="6310472381159916879">Profil entfernen</translation> <translation id="6311220991371174222">Chrome kann nicht gestartet werden, da beim Öffnen Ihres Profils ein Fehler aufgetreten ist. Versuchen Sie, Chrome neu zu starten.</translation> <translation id="6312403991423642364">Unbekannter Netzwerkfehler</translation> <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Der Sicherheitscheck wurde vor 1 Tag durchgeführt}other{Der Sicherheitscheck wurde vor {NUM_DAYS} Tagen durchgeführt}}</translation> @@ -4709,6 +4708,7 @@ <translation id="6532663472409656417">Unternehmenseigen</translation> <translation id="6535331821390304775"><ph name="ORIGIN" /> immer erlauben, Links dieses Typs in der zugehörigen App zu öffnen</translation> <translation id="6537613839935722475">Der Name darf aus Buchstaben, Ziffern und Bindestrichen (-) bestehen</translation> +<translation id="6537880577641744343">Commander</translation> <translation id="6538635548667167211">Aktuelle Einstellung für Datennutzung ist "Mobile Daten"</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Hinweis:<ph name="END_BOLD" /> Aktivieren Sie diese Option nur dann, wenn Sie dazu aufgefordert wurden und sich sicher sind, dass es unbedenklich ist. Die Datenerfassung kann die Leistung verringern.</translation> <translation id="6541638731489116978">Diese Website darf nicht auf Ihre Bewegungssensoren zugreifen.</translation> @@ -5817,7 +5817,6 @@ <translation id="7831491651892296503">Fehler bei der Netzwerkkonfiguration</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Ende</translation> -<translation id="783214144752121388">Ausführen von Flash für Websites blockieren (empfohlen)</translation> <translation id="7833720883933317473">Hier werden gespeicherte benutzerdefinierte Wörter angezeigt</translation> <translation id="7835178595033117206">Lesezeichen entfernt</translation> <translation id="7836850009646241041">Berühren Sie Ihren Sicherheitsschlüssel noch einmal</translation> @@ -5840,6 +5839,7 @@ <translation id="7855678561139483478">Tab in neues Fenster verschieben</translation> <translation id="7857117644404132472">Ausnahme hinzufügen</translation> <translation id="7857949311770343000">Ist das die "Neuer Tab"-Seite, die Sie erwartet hatten?</translation> +<translation id="7858328180167661092"><ph name="APP_NAME" /> (Windows)</translation> <translation id="785948723952233770">Diese Option wird ab Januar nicht mehr unterstützt. Wenden Sie sich an Ihren Administrator.</translation> <translation id="786073089922909430">Dienst: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="7861215335140947162">&Downloads</translation> @@ -6044,7 +6044,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Diese Datei ist verschlüsselt. Bitten Sie den Inhaber, sie zu entschlüsseln.}other{Einige dieser Dateien sind verschlüsselt. Bitten Sie den Inhaber, sie zu entschlüsseln.}}</translation> <translation id="808894953321890993">Passwort ändern</translation> <translation id="8090234456044969073">Liste Ihrer meistbesuchten Websites lesen</translation> -<translation id="8092681102116274204">Einstellungen mit "*"-Platzhaltern werden nicht mehr unterstützt. Kontaktieren Sie den Entwickler der Erweiterung oder Ihren Administrator, um <ph name="BEGIN_LINK" />diese Einstellungen zu ändern<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> reagiert nicht</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />In Google Drive sichern: Sie können Ihre Daten jederzeit wiederherstellen – auch auf einem anderen Gerät. Ihre Sicherung enthält App-Daten.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Sicherungen werden bei Google hochgeladen und mit dem Passwort Ihres Google-Kontos verschlüsselt.<ph name="END_PARAGRAPH2" /> @@ -6138,7 +6137,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" />-Alben auswählen</translation> <translation id="8202160505685531999">Geben Sie Ihr Passwort erneut ein, um Ihr <ph name="DEVICE_TYPE" />-Profil zu aktualisieren.</translation> <translation id="8203732864715032075">Messages sendet Benachrichtigungen und merkt sich diesen Computer. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash blockieren (empfohlen)</translation> <translation id="820568752112382238">Am häufigsten besuchte Websites</translation> <translation id="8206745257863499010">Blues</translation> <translation id="8206859287963243715">Mobil</translation> @@ -6161,6 +6159,7 @@ <translation id="8236917170563564587">Stattdessen diesen Tab teilen</translation> <translation id="8237647586961940482">Dunkelrosa und Rot</translation> <translation id="8239032431519548577">Enterprise-Registrierung abgeschlossen</translation> +<translation id="8239932336306009582">Dürfen keine Benachrichtigungen senden</translation> <translation id="8241040075392580210">Heiter bis wolkig</translation> <translation id="8241806945692107836">Gerätekonfiguration wird abgerufen...</translation> <translation id="8241868517363889229">Ihre Lesezeichen lesen und ändern</translation> @@ -6290,6 +6289,7 @@ <translation id="8386091599636877289">Richtlinie nicht gefunden.</translation> <translation id="8386903983509584791">Suche abgeschlossen</translation> <translation id="8387361103813440603">Dürfen meine Standortdaten nicht abrufen</translation> +<translation id="8389264703141926739">Benachrichtigungen blockieren</translation> <translation id="8389416080014625855">QR-Code für diese Seite erstellen</translation> <translation id="8389492867173948260">Dieser Erweiterung erlauben, alle meine Daten auf von mir besuchten Websites zu lesen und zu ändern:</translation> <translation id="8390449457866780408">Der Server ist nicht verfügbar.</translation> @@ -6499,6 +6499,7 @@ <translation id="8645354835496065562">Zugriff auf Sensor weiterhin zulassen</translation> <translation id="8645920082661222035">Erkennt schädliche Ereignisse im Voraus und warnt Sie, bevor sie eintreten</translation> <translation id="8646209145740351125">Synchronisierung deaktivieren</translation> +<translation id="864637694230589560">Websites senden normalerweise Benachrichtigungen, um Sie über Eilmeldungen oder Chatnachrichten zu informieren</translation> <translation id="8647834505253004544">Keine gültige Webadresse</translation> <translation id="8648252583955599667"><ph name="GET_HELP_LINK" /> oder <ph name="RE_SCAN_LINK" /></translation> <translation id="8648408795949963811">Farbtemperatur des Nachtlichts</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 880d0733a..bf6deb5e 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Διακοπή</translation> <translation id="1272293450992660632">Οι τιμές PIN δεν ταιριάζουν.</translation> <translation id="1272978324304772054">Αυτός ο λογαριασμός χρήστη δεν ανήκει στον τομέα στον οποίο έχει εγγραφεί η συσκευή. Εάν επιθυμείτε να εγγραφείτε σε έναν διαφορετικό τομέα θα πρέπει πρώτα να κάνετε ανάκτηση συσκευής.</translation> -<translation id="1274977772557788323">Ρυθμίσεις αποθήκευσης του Adobe Flash Player</translation> <translation id="1274997165432133392">Εμφάνιση cookie και άλλων δεδομένων ιστότοπου</translation> <translation id="1275718070701477396">Επιλεγμένο</translation> <translation id="1276994519141842946">Δεν ήταν δυνατή η απεγκατάσταση της εφαρμογής <ph name="APP_NAME" />.</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Οι σελιδοδείκτες, το ιστορικό και άλλες ρυθμίσεις θα συγχρονιστούν με το Λογαριασμό σας Google</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Εγχώριο δίκτυο, χωρίς περιαγωγή </translation> -<translation id="1315056510003830387">Δεν επιτρέπεται να χρησιμοποιούν Flash</translation> <translation id="1316136264406804862">Αναζήτηση...</translation> <translation id="1316495628809031177">Ο συγχρονισμός τέθηκε σε παύση</translation> <translation id="1317637799698924700">Η βάση σύνδεσης θα βρίσκεται σε λειτουργία συμβατότητας USB τύπου C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">Το KDC δεν υποστηρίζει τον τύπο κρυπτογράφησης</translation> <translation id="1984417487208496350">Χωρίς προστασία (δεν συνιστάται)</translation> <translation id="1987317783729300807">Λογαριασμοί</translation> -<translation id="1988494864246143197">Οι ιστότοποι χρησιμοποιούν συνήθως το Flash για την αναπαραγωγή ήχου, βίντεο ή βιντεοπαιχνιδιών. Το Flash Player δεν θα υποστηρίζεται μετά τον Δεκέμβριο του 2020.</translation> <translation id="1989112275319619282">Περιήγηση</translation> <translation id="1990512225220753005">Να μην εμφανίζονται οι συντομεύσεις σε αυτήν τη σελίδα</translation> <translation id="1992397118740194946">Δεν έχει οριστεί</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Τοποθέτηση παραθύρου</translation> <translation id="2881076733170862447">Όταν κάνετε κλικ στην επέκταση</translation> <translation id="2882943222317434580">Θα γίνει άμεσα επανεκκίνηση και επαναφορά του <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation> -<translation id="288387288628762616">Επιτρέπεται να χρησιμοποιούν Flash</translation> <translation id="2885378588091291677">Διαχείριση εργασιών</translation> <translation id="2885729872133513017">Παρουσιάστηκε ένα πρόβλημα κατά την αποκωδικοποίηση απάντησης διακομιστή.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Είστε συνδεδεμένοι!</translation> <translation id="3428747202529429621">Διατηρεί την ασφάλειά σας στο Chrome και μπορεί να χρησιμοποιηθεί για τη βελτίωση της ασφάλειάς σας σε άλλες εφαρμογές Google όταν είστε συνδεδεμένοι.</translation> <translation id="3428800329481094896">Ανάκτηση των κλειδιών SSH του κοντέινερ Linux</translation> +<translation id="3429271624041785769">Γλώσσες περιεχομένου ιστού</translation> <translation id="3429275422858276529">Προσθέστε σελιδοδείκτη σε αυτήν τη σελίδα, για να την εντοπίσετε εύκολα αργότερα</translation> <translation id="3432227430032737297">Κατάργηση όλων όσων εμφανίζονται</translation> <translation id="3432757130254800023">Αποστολή ήχου και βίντεο σε οθόνες στο τοπικό δίκτυο</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Αυτές είναι γενικές πληροφορίες σχετικά με αυτήν τη συσκευή και τον τρόπο με τον οποίο χρησιμοποιείται (όπως το επίπεδο της μπαταρίας, τη δραστηριότητα συστήματος και εφαρμογών και τα σφάλματα). Τα δεδομένα θα χρησιμοποιηθούν για τη βελτίωση του Android, ενώ ορισμένες συγκεντρωτικές πληροφορίες θα συμβάλλουν στη βελτίωση των εφαρμογών Google και θα χρησιμοποιηθούν από τους συνεργάτες της Google, όπως τους προγραμματιστές Android, προκειμένου να βελτιώσουν τις εφαρμογές και τα προϊόντα τους.</translation> <translation id="3838085852053358637">Η φόρτωση της επέκτασης απέτυχε</translation> <translation id="3838486795898716504">Περισσότερες σελίδες <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookie και άλλα δεδομένα ιστότοπου και προσθηκών</translation> <translation id="383891835335927981">Δεν έχει γίνει μεγέθυνση ή σμίκρυνση κανενός ιστοτόπου</translation> <translation id="3839509547554145593">Ενεργοποίηση επιτάχυνσης κύλισης ποντικιού</translation> <translation id="3839516600093027468">Να γίνεται πάντα αποκλεισμός της προβολής του προχείρου από <ph name="HOST" /></translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Διαχείριση λήψεων</translation> <translation id="3881478300875776315">Εμφάνιση λιγότερων γραμμών</translation> <translation id="3882165008614329320">Υπάρχον βίντεο από την κάμερα ή από αρχείο</translation> +<translation id="3884152383786131369">Το περιεχόμενο ιστού που είναι διαθέσιμο σε πολλές γλώσσες θα χρησιμοποιεί την πρώτη υποστηριζόμενη γλώσσα από αυτήν τη λίστα. Αυτές οι προτιμήσεις συγχρονίζονται με τις ρυθμίσεις του προγράμματος περιήγησης. <ph name="BEGIN_LINK_LEARN_MORE" />Μάθετε περισσότερα<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Το αίτημά σας για να αποκτήσετε πρόσβαση σε αυτόν τον ιστότοπο έχει σταλεί στον/η(ν) <ph name="NAME" /></translation> <translation id="3888550877729210209">Λήψη σημειώσεων με την εφαρμογή <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Ενεργοποιήστε τον Συγχρονισμό Chrome για να χρησιμοποιήσετε τον Συγχρονισμό Wi-Fi</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Καθορισμός διαμόρφωσης συσκευής.</translation> <translation id="4025039777635956441">Σίγαση επιλεγμένου ιστοτόπου</translation> <translation id="4027804175521224372">(Απουσιάζετε—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Οι ρυθμίσεις σας Flash θα διατηρηθούν μέχρι να τερματίσετε τη λειτουργία του Chrome.</translation> <translation id="4028467762035011525">Προσθήκη μεθόδων εισαγωγής</translation> <translation id="4031179711345676612">Επιτρέπεται το μικρόφωνο</translation> <translation id="4031527940632463547">Οι αισθητήρες αποκλείστηκαν</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Διαμόρφωση του Kerberos</translation> <translation id="4235200303672858594">Πλήρης οθόνη</translation> <translation id="4235965441080806197">Ακύρωση σύνδεσης</translation> -<translation id="4237773362828263530">Δεν υποστηρίζονται πλέον ρυθμίσεις με χαρακτήρες μπαλαντέρ "*". Επικοινωνήστε με τον διαχειριστή σας για <ph name="BEGIN_LINK" /> αλλαγή αυτών των ρυθμίσεων<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Ανάγνωση καρτέλας αργότερα}other{Ανάγνωση καρτελών αργότερα}}</translation> <translation id="4242145785130247982">Δεν υποστηρίζονται πολλά πιστοποιητικά πελάτη.</translation> <translation id="4242533952199664413">Ανοίξτε τις ρυθμίσεις</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Δεν βρέθηκε σήμα.</translation> <translation id="4549791035683739768">Δεν υπάρχουν αποθηκευμένα μοναδικά χαρακτηριστικά στο κλειδί ασφαλείας σας.</translation> <translation id="4551763574344810652">Πατήστε <ph name="MODIFIER_KEY_DESCRIPTION" /> για αναίρεση.</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Δίκτυο <ph name="NETWORK_TYPE" />, ισχύς σήματος <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Πρέπει να επανεκκινήσετε το Chromebook για να αλλάξετε τη γλώσσα συσκευής. <ph name="BEGIN_LINK_LEARN_MORE" />Μάθετε περισσότερα<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Η εξωτερική επέκταση είναι στην ίδια ή προγενέστερη έκδοση σε σύγκριση με την υπάρχουσα.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Έξοδος και κλείδωμα για παιδιά</translation> <translation id="4976009197147810135">Κάθετος διαχωρισμός</translation> <translation id="4977942889532008999">Επιβεβαίωση πρόσβασης</translation> -<translation id="4978905460870207779">Οι ιστότοποι μπορούν να ζητούν να χρησιμοποιήσουν το Flash</translation> <translation id="4980805016576257426">Αυτή η επέκταση περιέχει κακόβουλο πρόγραμμα.</translation> <translation id="4981449534399733132">Για να διαγράψετε τα δεδομένα περιήγησης από όλες τις συγχρονισμένες συσκευές σας και τον Λογαριασμό σας Google, <ph name="BEGIN_LINK" />συνδεθείτε<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Λογισμικό συσκευής</translation> @@ -4182,7 +4175,6 @@ <translation id="5906732635754427568">Τα δεδομένα που σχετίζονται με αυτήν την εφαρμογή θα καταργηθούν από αυτήν τη συσκευή.</translation> <translation id="5908474332780919512">Εκκίνηση εφαρμογής κατά τη σύνδεση</translation> <translation id="5908695239556627796">Ταχύτητα κύλισης ποντικιού</translation> -<translation id="5908769186679515905">Αποκλεισμός ιστοτόπων από την εκτέλεση Flash</translation> <translation id="5910363049092958439">Απο&θήκευση Εικόνας Ως...</translation> <translation id="5910726859585389579">Η συσκευή <ph name="DEVICE_TYPE" /> είναι εκτός σύνδεσης.</translation> <translation id="5911533659001334206">Πρόγραμμα προβολής συντομεύσεων</translation> @@ -4366,6 +4358,7 @@ <translation id="6112727384379533756">Προσθήκη εισιτηρίου</translation> <translation id="6112931163620622315">Ελέγξτε το τηλέφωνό σας</translation> <translation id="6112952769866305444">Επεξεργασία ατόμου, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Ρυθμίστε την προεπιλεγμένη μηχανή αναζήτησης για το πρόγραμμα περιήγησης Chrome και την Εφαρμογή εκκίνησης <ph name="DEVICE_TYPE" />.</translation> <translation id="6113942107547980621">Για να χρησιμοποιήσετε το Smart Lock, κάντε εναλλαγή στο προφίλ κύριου χρήστη στο τηλέφωνό σας</translation> <translation id="6116921718742659598">Αλλαγή γλώσσας και ρυθμίσεις εισόδου</translation> <translation id="6120205520491252677">Καρφίτσωμα αυτής της σελίδας στην Οθόνη έναρξης…</translation> @@ -5232,6 +5225,7 @@ <translation id="7140928199327930795">Δεν υπάρχουν άλλες διαθέσιμες συσκευές.</translation> <translation id="7141105143012495934">Η σύνδεση απέτυχε επειδή δεν ήταν δυνατή η ανάκτηση των στοιχείων του λογαριασμού σας. Επικοινωνήστε με τον διαχειριστή σας ή προσπαθήστε ξανά.</translation> <translation id="7143207342074048698">Σύνδεση</translation> +<translation id="7143358760238281735">Δεν υπάρχουν διαθέσιμες εφαρμογές.</translation> <translation id="7144878232160441200">Επανάληψη</translation> <translation id="714876143603641390">Συνδεσιμότητα LAN</translation> <translation id="7149893636342594995">Τελευταίες 24 ώρες</translation> @@ -5703,6 +5697,7 @@ <translation id="7707922173985738739">Χρήση δεδομένων κινητής τηλεφωνίας</translation> <translation id="7709152031285164251">Αποτυχία - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Μετάδοση…</translation> +<translation id="7712739869553853093">Παράθυρο διαλόγου προεπισκόπησης εκτύπωσης</translation> <translation id="7712836429117959503">Άγνωστη επέκταση με αναγνωριστικό <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Τα cookie από τον τομέα <ph name="DOMAIN" /> επιτρέπονται</translation> <translation id="7714464543167945231">Πιστοποιητικό</translation> @@ -5832,7 +5827,6 @@ <translation id="7831491651892296503">Σφάλμα κατά τη διαμόρφωση του δικτύου</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Ώρα λήξης</translation> -<translation id="783214144752121388">Αποκλεισμός εκτέλεσης Flash από ιστοτόπους (συνιστάται)</translation> <translation id="7833720883933317473">Οι αποθηκευμένες προσαρμοσμένες λέξεις θα εμφανίζονται εδώ</translation> <translation id="7835178595033117206">Ο σελιδοδείκτης καταργήθηκε</translation> <translation id="7836850009646241041">Δοκιμάστε να αγγίξετε ξανά το κλειδί ασφαλείας σας</translation> @@ -6060,7 +6054,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Αυτό το αρχείο είναι κρυπτογραφημένο. Ζητήστε από τον κάτοχό του να το αποκρυπτογραφήσει.}other{Ορισμένα από αυτά τα αρχεία είναι κρυπτογραφημένα. Ζητήστε από τον κάτοχό τους να τα αποκρυπτογραφήσει.}}</translation> <translation id="808894953321890993">Αλλαγή κωδικού πρόσβασης</translation> <translation id="8090234456044969073">Ανάγνωση λίστας με τους ιστότοπους που επισκέπτεστε πιο συχνά</translation> -<translation id="8092681102116274204">Δεν υποστηρίζονται πλέον ρυθμίσεις με χαρακτήρες μπαλαντέρ "*". Επικοινωνήστε με τον προγραμματιστή της επέκτασης ή τον διαχειριστή σας για <ph name="BEGIN_LINK" />αλλαγή αυτών των ρυθμίσεων<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">Η προσθήκη <ph name="PLUGIN_NAME" /> δεν ανταποκρίνεται</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Δημιουργία αντιγράφων ασφαλείας στο Google Drive. Επαναφέρετε με ευκολία τα δεδομένα σας ή αλλάξτε συσκευή ανά πάσα στιγμή. Το αντίγραφο ασφαλείας σας περιλαμβάνει δεδομένα εφαρμογών.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Τα αντίγραφα ασφαλείας σας μεταφορτώνονται στην Google και κρυπτογραφούνται χρησιμοποιώντας τον κωδικό πρόσβασης του Λογαριασμού σας Google.<ph name="END_PARAGRAPH2" /> @@ -6155,7 +6148,6 @@ <translation id="8201717382574620700">Επιλέξτε λευκώματα από <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Εισαγάγετε ξανά τον κωδικό πρόσβασής σας για να ενημερώσετε το προφίλ σας στο <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Να λαμβάνετε ειδοποιήσεις και να οριστεί ως προεπιλογή η απομνημόνευση αυτού του υπολογιστή για τα Μηνύματα. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Αποκλεισμός Flash (συνιστάται)</translation> <translation id="820568752112382238">Ιστότοποι με τις περισσότερες επισκέψεις</translation> <translation id="8206745257863499010">Μπλουζ</translation> <translation id="8206859287963243715">Κινητό</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 8b395eae..2e0cc2e 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Stop</translation> <translation id="1272293450992660632">PIN values do not match.</translation> <translation id="1272978324304772054">This user account does not belong to the domain that the device is enrolled to. If you want to enrol to a different domain you need to go through device recovery first.</translation> -<translation id="1274977772557788323">Adobe Flash Player Storage settings</translation> <translation id="1274997165432133392">Cookies and other site data</translation> <translation id="1275718070701477396">Selected</translation> <translation id="1276994519141842946">Couldn't uninstall <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Your bookmarks, history and other settings will be synced to your Google Account.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Home network, not roaming</translation> -<translation id="1315056510003830387">Not allowed to use Flash</translation> <translation id="1316136264406804862">Searching...</translation> <translation id="1316495628809031177">Sync is paused</translation> <translation id="1317637799698924700">Your docking station will operate in USB Type-C compatible mode.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC does not support encryption type</translation> <translation id="1984417487208496350">No protection (not recommended)</translation> <translation id="1987317783729300807">Accounts</translation> -<translation id="1988494864246143197">Sites usually use Flash to play audio, video or video games. Flash Player will no longer be supported after December 2020.</translation> <translation id="1989112275319619282">Browse</translation> <translation id="1990512225220753005">Don't show shortcuts on this page</translation> <translation id="1992397118740194946">Not set</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Window placement</translation> <translation id="2881076733170862447">When you click the extension</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> will restart and reset momentarily</translation> -<translation id="288387288628762616">Allowed to use Flash</translation> <translation id="2885378588091291677">Task Manager</translation> <translation id="2885729872133513017">A problem occurred when decoding server response.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">This is general information about this device and how it's used (such as battery level, system and app activity, and errors). The data will be used to improve Android, and some aggregated information will also help Google apps and partners, such as Android developers, make their apps and products better.</translation> <translation id="3838085852053358637">Failed to load extension</translation> <translation id="3838486795898716504">More <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies and other site and plug-in data</translation> <translation id="383891835335927981">No sites have been zoomed in or out</translation> <translation id="3839509547554145593">Enable mouse scroll acceleration</translation> <translation id="3839516600093027468">Always block <ph name="HOST" /> from seeing the clipboard</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Determining device configuration.</translation> <translation id="4025039777635956441">Mute Selected Site</translation> <translation id="4027804175521224372">(You're missing out—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Your Flash settings will be kept until you quit Chrome.</translation> <translation id="4028467762035011525">Add input methods</translation> <translation id="4031179711345676612">Microphone allowed</translation> <translation id="4031527940632463547">Sensors blocked</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Configure Kerberos</translation> <translation id="4235200303672858594">Entire screen</translation> <translation id="4235965441080806197">Cancel sign in</translation> -<translation id="4237773362828263530">Settings with '*' wildcards are no longer supported. Contact your administrator to <ph name="BEGIN_LINK" />change these settings<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Read tab later}other{Read tabs later}}</translation> <translation id="4242145785130247982">Multiple client certificates are not supported</translation> <translation id="4242533952199664413">Open settings</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Signal not found</translation> <translation id="4549791035683739768">Your security key has no fingerprints stored</translation> <translation id="4551763574344810652">Press <ph name="MODIFIER_KEY_DESCRIPTION" /> to undo</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> network, signal strength <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">You need to restart your Chromebook to change the device language. <ph name="BEGIN_LINK_LEARN_MORE" />Learn more<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">External extension is at the same or lower version compared to the existing one.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Exit and child lock</translation> <translation id="4976009197147810135">Split vertical</translation> <translation id="4977942889532008999">Confirm Access</translation> -<translation id="4978905460870207779">Sites can ask to use Flash</translation> <translation id="4980805016576257426">This extension contains malware.</translation> <translation id="4981449534399733132">To clear browsing data from all of your synced devices and your Google Account, <ph name="BEGIN_LINK" />sign in<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Device software</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">Data associated with this app will be removed from this device.</translation> <translation id="5908474332780919512">Start app when you sign in</translation> <translation id="5908695239556627796">Mouse scroll speed</translation> -<translation id="5908769186679515905">Block sites from running Flash</translation> <translation id="5910363049092958439">Sa&ve Image As...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> is offline</translation> <translation id="5911533659001334206">Shortcut viewer</translation> @@ -5836,7 +5826,6 @@ <translation id="7831491651892296503">Error configuring network</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">End time</translation> -<translation id="783214144752121388">Block sites from running Flash (recommended)</translation> <translation id="7833720883933317473">Saved custom words will appear here</translation> <translation id="7835178595033117206">Bookmark removed</translation> <translation id="7836850009646241041">Try touching your security key again</translation> @@ -6064,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{This file is encrypted. Ask its owner to decrypt it.}other{Some of these files are encrypted. Ask their owner to decrypt them.}}</translation> <translation id="808894953321890993">Change password</translation> <translation id="8090234456044969073">Read a list of your most frequently visited websites</translation> -<translation id="8092681102116274204">Settings with '*' wildcards are no longer supported. Contact the extension developer or your administrator to <ph name="BEGIN_LINK" />change these settings<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> isn't responding</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Back up to Google Drive. Easily restore your data or switch device at any time. Your backup includes app data.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Your backups are uploaded to Google and encrypted using your Google Account password.<ph name="END_PARAGRAPH2" /> @@ -6159,7 +6147,6 @@ <translation id="8201717382574620700">Select <ph name="TOPIC_SOURCE" /> albums</translation> <translation id="8202160505685531999">Please re-enter your password to update your <ph name="DEVICE_TYPE" /> profile.</translation> <translation id="8203732864715032075">Send you notifications and default to remembering this computer for Messages. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Block Flash (recommended)</translation> <translation id="820568752112382238">Most-visited sites</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">Mobile</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index e049fb8a..dd85c219 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Interrumpir</translation> <translation id="1272293450992660632">Los valores del PIN no coinciden.</translation> <translation id="1272978324304772054">Esta cuenta de usuario no pertenece al dominio en el que se inscribió el dispositivo. Si deseas inscribirte en un dominio diferente, primero tendrás que realizar el proceso de recuperación del dispositivo.</translation> -<translation id="1274977772557788323">Configuración de almacenamiento de Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies y otros datos de sitios</translation> <translation id="1275718070701477396">Seleccionado</translation> <translation id="1276994519141842946">No se pudo desinstalar <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Los favoritos, el historial y demás parámetros de configuración se sincronizarán con tu cuenta de Google.</translation> <translation id="1314565355471455267">VPN de Android</translation> <translation id="131461803491198646">Red local, no en modo roaming</translation> -<translation id="1315056510003830387">No puede usar Flash</translation> <translation id="1316136264406804862">Buscando...</translation> <translation id="1316495628809031177">Se pausó la sincronización</translation> <translation id="1317637799698924700">La estación de conectores funcionará en modo compatible con USB tipo C.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC no es compatible con el tipo de encriptación</translation> <translation id="1984417487208496350">Sin protección (opción no recomendada)</translation> <translation id="1987317783729300807">Cuentas</translation> -<translation id="1988494864246143197">Por lo general los sitios usan Flash para reproducir audio o video, o ejecutar videojuegos. Flash Player dejará de ser compatible a partir de diciembre de 2020.</translation> <translation id="1989112275319619282">Navegar</translation> <translation id="1990512225220753005">No se muestran accesos directos en esta página</translation> <translation id="1992397118740194946">No está configurada</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">Ubicación de ventanas</translation> <translation id="2881076733170862447">Cuando haces clic en la extensión</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> se reiniciará y se restablecerá en un momento.</translation> -<translation id="288387288628762616">Puede usar Flash</translation> <translation id="2885378588091291677">Administrador de tareas</translation> <translation id="2885729872133513017">Hubo un problema cuando se intentó decodificar la respuesta del servidor.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2078,6 +2074,7 @@ <translation id="3428419049384081277">¡Accediste!</translation> <translation id="3428747202529429621">Te protege en Chrome y puede usarse para mejorar tu seguridad en otras apps de Google cuando accedes a tu cuenta.</translation> <translation id="3428800329481094896">Obteniendo claves SSH del contenedor de Linux</translation> +<translation id="3429271624041785769">Idiomas del contenido web</translation> <translation id="3429275422858276529">Agrega esta página a favoritos para encontrarla fácilmente más tarde</translation> <translation id="3432227430032737297">Quitar todo lo que se muestra</translation> <translation id="3432757130254800023">Enviar audio y video a pantallas en la red local</translation> @@ -2462,7 +2459,6 @@ <translation id="383669374481694771">Aquí se muestra información general sobre este dispositivo y cómo se usa (por ejemplo, el nivel de batería, la actividad de las apps y el sistema, y los errores). Los datos se usarán para mejorar Android, y la información agregada también permitirá que las apps y los socios de Google, como los desarrolladores de Android, mejoren sus apps y productos.</translation> <translation id="3838085852053358637">Se produjo un error al cargar la extensión</translation> <translation id="3838486795898716504">Más <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies y otros datos de sitios y de complementos</translation> <translation id="383891835335927981">No se configuró el zoom para ningún sitio</translation> <translation id="3839509547554145593">Habilitar la aceleración de desplazamiento del mouse</translation> <translation id="3839516600093027468">Nunca permitir que <ph name="HOST" /> vea el portapapeles</translation> @@ -2504,6 +2500,7 @@ <translation id="3879748587602334249">Administrador de descargas</translation> <translation id="3881478300875776315">Mostrar menos líneas</translation> <translation id="3882165008614329320">Video existente de la cámara o archivo</translation> +<translation id="3884152383786131369">El contenido web disponible en múltiples idiomas usará el primer idioma compatible de esta lista. Estas preferencias están sincronizadas con la configuración de tu navegador. <ph name="BEGIN_LINK_LEARN_MORE" />Más información<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Tu solicitud de acceso a este sitio se envió a <ph name="NAME" /></translation> <translation id="3888550877729210209">Tomar notas con <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Activa la Sincronización de Chrome para usar la Sincronización Wi-Fi</translation> @@ -2636,7 +2633,6 @@ <translation id="4023146161712577481">Determinando configuración del dispositivo</translation> <translation id="4025039777635956441">Silenciar el sitio seleccionado</translation> <translation id="4027804175521224372">(Te estás perdiendo <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Se mantendrá la configuración de Flash hasta que salgas de Chrome.</translation> <translation id="4028467762035011525">Agregar métodos de entrada</translation> <translation id="4031179711345676612">Micrófono permitido</translation> <translation id="4031527940632463547">Se bloqueó el acceso a los sensores</translation> @@ -2788,7 +2784,6 @@ <translation id="4232375817808480934">Configurar Kerberos</translation> <translation id="4235200303672858594">Toda la pantalla</translation> <translation id="4235965441080806197">Cancelar acceso</translation> -<translation id="4237773362828263530">Ya no se admiten las opciones de configuración con los comodines "*". Para <ph name="BEGIN_LINK" />cambiarlas<ph name="END_LINK" />, comunícate con tu administrador.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Leer la pestaña más tarde}other{Leer las pestañas más tarde}}</translation> <translation id="4242145785130247982">No se admiten Certificados de cliente múltiples.</translation> <translation id="4242533952199664413">Abrir la configuración</translation> @@ -3052,7 +3047,6 @@ <translation id="4548483925627140043">no se encontró la señal</translation> <translation id="4549791035683739768">Tu llave de seguridad no tiene huellas digitales almacenadas</translation> <translation id="4551763574344810652">Presiona <ph name="MODIFIER_KEY_DESCRIPTION" /> para deshacer</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Red <ph name="NETWORK_TYPE" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Para cambiar el idioma del dispositivo, debes reiniciar la Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Más información<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">La versión de la extensión externa es igual o anterior a la actual.</translation> @@ -3241,7 +3235,7 @@ <translation id="4778644898150334464">Usar otra contraseña</translation> <translation id="4779083564647765204">Zoom</translation> <translation id="4779136857077979611">Onigiri</translation> -<translation id="4779766576531456629">Cambiar el nombre de la red móvil por eSIM</translation> +<translation id="4779766576531456629">Cambiar el nombre de la Red móvil por eSIM</translation> <translation id="4780321648949301421">Guardar página como...</translation> <translation id="4785719467058219317">Estás usando una llave de seguridad que no se registró con este sitio web</translation> <translation id="4788092183367008521">Comprueba la conexión de red y vuelve a intentarlo.</translation> @@ -3407,7 +3401,6 @@ <translation id="4974733135013075877">Salir y bloquear para niños</translation> <translation id="4976009197147810135">División vertical</translation> <translation id="4977942889532008999">Confirmar acceso</translation> -<translation id="4978905460870207779">Permitir que los sitios soliciten permiso para usar Flash</translation> <translation id="4980805016576257426">Esta extensión contiene software malicioso.</translation> <translation id="4981449534399733132">Para borrar los datos de navegación de todos los dispositivos sincronizados y de tu Cuenta de Google, <ph name="BEGIN_LINK" />accede a ella<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Software del dispositivo</translation> @@ -3737,7 +3730,7 @@ <translation id="5390112241331447203">Incluye el archivo system_logs.txt que se envía en los informes de comentarios.</translation> <translation id="5390677308841849479">Rojo oscuro y naranja</translation> <translation id="5390743329570580756">Enviar para</translation> -<translation id="5392192690789334093">Puede enviar notificaciones</translation> +<translation id="5392192690789334093">Pueden enviar notificaciones</translation> <translation id="5397794290049113714">Tú</translation> <translation id="5398497406011404839">Favoritos ocultos</translation> <translation id="5398572795982417028">Referencia de página fuera de los límites; el valor máximo es <ph name="MAXIMUM_PAGE" /></translation> @@ -4178,7 +4171,6 @@ <translation id="5906732635754427568">Los datos asociados a esta app se quitarán de este dispositivo.</translation> <translation id="5908474332780919512">Iniciar la app al acceder</translation> <translation id="5908695239556627796">Velocidad de desplazamiento del mouse</translation> -<translation id="5908769186679515905">Bloquear la ejecución de Flash en los sitios</translation> <translation id="5910363049092958439">Gu&ardar imagen como...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> está sin conexión</translation> <translation id="5911533659001334206">Visualizador de combinaciones de teclas</translation> @@ -4260,7 +4252,7 @@ <translation id="6002210667729577411">Mover grupo a ventana nueva</translation> <translation id="6002452033851752583">Se borró la contraseña guardada en tu Cuenta de Google</translation> <translation id="6002458620803359783">Voces preferidas</translation> -<translation id="6003143259071779217">Quitar la red móvil por eSIM</translation> +<translation id="6003143259071779217">Quitar la Red móvil por eSIM</translation> <translation id="6006484371116297560">Clásico</translation> <translation id="6007240208646052708">La búsqueda por voz no está disponible en tu idioma.</translation> <translation id="6009781704028455063">Sensor incorporado</translation> @@ -4362,6 +4354,7 @@ <translation id="6112727384379533756">Agregar un ticket</translation> <translation id="6112931163620622315">Revisa el teléfono</translation> <translation id="6112952769866305444">Editar persona, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Configura tu motor de búsqueda predeterminado para el navegador Chrome y el Selector de <ph name="DEVICE_TYPE" />.</translation> <translation id="6113942107547980621">Para usar Smart Lock, cambia al perfil del usuario principal en tu teléfono</translation> <translation id="6116921718742659598">Cambiar la configuración de idioma y de entrada de texto</translation> <translation id="6120205520491252677">Fijar esta página a la Pantalla de inicio...</translation> @@ -5228,6 +5221,7 @@ <translation id="7140928199327930795">No hay otros dispositivos disponibles.</translation> <translation id="7141105143012495934">Se produjo un error de acceso porque no se pudieron recuperar los datos de tu cuenta. Comunícate con el administrador o vuelve a intentarlo.</translation> <translation id="7143207342074048698">Conectando</translation> +<translation id="7143358760238281735">No hay apps disponibles</translation> <translation id="7144878232160441200">Volver a intentar</translation> <translation id="714876143603641390">Conectividad LAN</translation> <translation id="7149893636342594995">Últimas 24 horas</translation> @@ -5699,6 +5693,7 @@ <translation id="7707922173985738739">Usa los datos móviles.</translation> <translation id="7709152031285164251">Error: <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Transmitir…</translation> +<translation id="7712739869553853093">Cuadro de diálogo de vista previa de la impresión</translation> <translation id="7712836429117959503">Extensión desconocida con ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Se permiten las cookies de <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">Certificado</translation> @@ -5828,7 +5823,6 @@ <translation id="7831491651892296503">Se produjo un error cuando se configuraba la red</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Hora de finalización</translation> -<translation id="783214144752121388">Impedir que los sitios ejecuten Flash (recomendado)</translation> <translation id="7833720883933317473">Las palabras personalizadas guardadas aparecerán aquí</translation> <translation id="7835178595033117206">Se quitó el favorito</translation> <translation id="7836850009646241041">Vuelve a tocar tu llave de seguridad</translation> @@ -6056,7 +6050,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Este archivo está encriptado. Pídele al propietario que lo desencripte.}other{Algunos de estos archivos están encriptados. Pídele al propietario que los desencripte.}}</translation> <translation id="808894953321890993">Cambiar contraseña</translation> <translation id="8090234456044969073">Leer una lista de los sitios web que visitas con más frecuencia</translation> -<translation id="8092681102116274204">Ya no se admiten las opciones de configuración con los comodines "*". Para <ph name="BEGIN_LINK" />cambiarlas<ph name="END_LINK" />, comunícate con el desarrollador de la extensión o tu administrador.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> no responde</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Crea una copia de seguridad en Google Drive. Restablece fácilmente tus datos o cambia de dispositivo en cualquier momento. Tu copia de seguridad incluye datos de las apps.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Las copias de seguridad se suben a Google y se encriptan con la contraseña de tu cuenta.<ph name="END_PARAGRAPH2" /> @@ -6151,7 +6144,6 @@ <translation id="8201717382574620700">Seleccionar álbumes de <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Vuelve a ingresar la contraseña para actualizar tu perfil de <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Te envía notificaciones y establece esta computadora como la opción predeterminada para la app de Mensajes. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">No permitir Flash (recomendado)</translation> <translation id="820568752112382238">Sitios más visitados</translation> <translation id="8206745257863499010">Musical</translation> <translation id="8206859287963243715">Celular</translation> @@ -6174,7 +6166,7 @@ <translation id="8236917170563564587">Compartir esta pestaña en su lugar</translation> <translation id="8237647586961940482">Rosa oscuro y rojo</translation> <translation id="8239032431519548577">Se completó la inscripción empresarial</translation> -<translation id="8239932336306009582">No puede enviar notificaciones</translation> +<translation id="8239932336306009582">No pueden enviar notificaciones</translation> <translation id="8241040075392580210">Nublado</translation> <translation id="8241806945692107836">Determinando configuración del dispositivo…</translation> <translation id="8241868517363889229">Leer y cambiar los favoritos</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index a468e33..c7e66a40 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Interrumpir</translation> <translation id="1272293450992660632">Los códigos PIN no coinciden.</translation> <translation id="1272978324304772054">Esta cuenta de usuario no pertenece al dominio en el que se ha registrado el dispositivo. Si quieres registrarlo en un dominio diferente, primero debes llevar a cabo el proceso de recuperación de dispositivo.</translation> -<translation id="1274977772557788323">Configuración de almacenamiento de Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies y otros datos de sitios web</translation> <translation id="1275718070701477396">Seleccionado</translation> <translation id="1276994519141842946">No se ha podido desinstalar <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Tus marcadores, tu historial y otras opciones se sincronizarán con tu cuenta de Google.</translation> <translation id="1314565355471455267">VPN de Android</translation> <translation id="131461803491198646">Red doméstica, sin itinerancia</translation> -<translation id="1315056510003830387">No puede usar Flash</translation> <translation id="1316136264406804862">Buscando...</translation> <translation id="1316495628809031177">La sincronización está en pausa</translation> <translation id="1317637799698924700">Tu base funcionará en el modo compatible con USB tipo C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">El centro de distribución de llaves (KDC) no es compatible con este tipo de cifrado</translation> <translation id="1984417487208496350">Sin protección (no recomendado)</translation> <translation id="1987317783729300807">Cuentas</translation> -<translation id="1988494864246143197">Los sitios web suelen utilizar Flash para reproducir audio, vídeos o videojuegos. Flash Player dejará de ser compatible a partir de diciembre del 2020.</translation> <translation id="1989112275319619282">Examinar</translation> <translation id="1990512225220753005">No mostrar accesos directos en esta página</translation> <translation id="1992397118740194946">Sin configurar</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Ubicación de ventanas</translation> <translation id="2881076733170862447">Al hacer clic en la extensión</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> se reiniciará y se restablecerá momentáneamente</translation> -<translation id="288387288628762616">Puede usar Flash</translation> <translation id="2885378588091291677">Administrador de tareas</translation> <translation id="2885729872133513017">No se ha podido decodificar la respuesta del servidor.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Has iniciado sesión</translation> <translation id="3428747202529429621">Te protege en Chrome y puede usarse para mejorar tu seguridad en otras aplicaciones de Google cuando has iniciado sesión</translation> <translation id="3428800329481094896">Obteniendo las claves SSH del contenedor de Linux</translation> +<translation id="3429271624041785769">Idiomas del contenido web</translation> <translation id="3429275422858276529">Añade esta página a marcadores para encontrarla fácilmente en otro momento</translation> <translation id="3432227430032737297">Quitar todas las que se muestran</translation> <translation id="3432757130254800023">Enviar audio y vídeo a pantallas de la red local</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Esta página muestra información general sobre este dispositivo y su uso (como el nivel de batería, la actividad de las aplicaciones y del sistema, y los errores). Sirve para mejorar Android, y parte de los datos recogidos también mejoran las aplicaciones y ayudan a los partners de Google, como los desarrolladores de Android, a mejorar sus productos y aplicaciones.</translation> <translation id="3838085852053358637">No se ha podido cargar la extensión</translation> <translation id="3838486795898716504">Más <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies y otros datos de sitios y complementos</translation> <translation id="383891835335927981">No se ha ampliado ni reducido ningún sitio web</translation> <translation id="3839509547554145593">Habilitar aceleración de desplazamiento del ratón</translation> <translation id="3839516600093027468">No permitir nunca que <ph name="HOST" /> vea el portapapeles</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Administrador de descargas</translation> <translation id="3881478300875776315">Mostrar menos líneas</translation> <translation id="3882165008614329320">Vídeo de la cámara o un archivo</translation> +<translation id="3884152383786131369">El contenido web disponible que esté disponible en varios idiomas usará el primer idioma admitido de esta lista. Estas preferencias se sincronizan con la configuración de tu navegador. <ph name="BEGIN_LINK_LEARN_MORE" />Más información<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Tu solicitud de acceso a este sitio web se ha enviado a <ph name="NAME" /></translation> <translation id="3888550877729210209">Tomando notas con <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Activa la Sincronización de Chrome para usar la Sincronización Wi‑Fi</translation> @@ -2638,7 +2635,6 @@ <translation id="4023146161712577481">Determinando la configuración del dispositivo.</translation> <translation id="4025039777635956441">Silenciar el sitio web seleccionado</translation> <translation id="4027804175521224372">(Te lo estás perdiendo: <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Tu configuración de Flash se mantendrá hasta que cierres Chrome.</translation> <translation id="4028467762035011525">Añadir métodos de introducción de texto</translation> <translation id="4031179711345676612">Micrófono permitido</translation> <translation id="4031527940632463547">Sensores bloqueados</translation> @@ -2790,7 +2786,6 @@ <translation id="4232375817808480934">Configurar Kerberos</translation> <translation id="4235200303672858594">Toda la pantalla</translation> <translation id="4235965441080806197">Cancelar inicio de sesión</translation> -<translation id="4237773362828263530">Los ajustes que usen el carácter comodín "*" ya no se admiten. Ponte en contacto con tu administrador para <ph name="BEGIN_LINK" />cambiar estos ajustes<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Leer pestaña más tarde}other{Leer pestañas más tarde}}</translation> <translation id="4242145785130247982">No se admite el uso de varios certificados de cliente.</translation> <translation id="4242533952199664413">Abrir Configuración</translation> @@ -3054,7 +3049,6 @@ <translation id="4548483925627140043">Señal no encontrada</translation> <translation id="4549791035683739768">No hay ninguna huella digital almacenada en tu llave de seguridad</translation> <translation id="4551763574344810652">Pulsa <ph name="MODIFIER_KEY_DESCRIPTION" /> para deshacer</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Red <ph name="NETWORK_TYPE" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Debes reiniciar tu Chromebook para cambiar el idioma del dispositivo. <ph name="BEGIN_LINK_LEARN_MORE" />Más información<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">La versión de la extensión externa es igual o anterior a la actual.</translation> @@ -3409,7 +3403,6 @@ <translation id="4974733135013075877">Salir y bloquear</translation> <translation id="4976009197147810135">División vertical</translation> <translation id="4977942889532008999">Confirmar acceso</translation> -<translation id="4978905460870207779">Los sitios web pueden solicitar permiso para utilizar Flash</translation> <translation id="4980805016576257426">Esta extensión contiene software malicioso.</translation> <translation id="4981449534399733132">Para borrar los datos de navegación de todos los dispositivos sincronizados y de tu cuenta de Google, <ph name="BEGIN_LINK" />inicia sesión<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Software del dispositivo</translation> @@ -4180,7 +4173,6 @@ <translation id="5906732635754427568">Los datos asociados a esta aplicación se eliminarán de este dispositivo.</translation> <translation id="5908474332780919512">Abrir aplicación al iniciar sesión</translation> <translation id="5908695239556627796">Velocidad de desplazamiento del ratón</translation> -<translation id="5908769186679515905">Impedir que los sitios web ejecuten Flash</translation> <translation id="5910363049092958439">Guar&dar imagen como...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> no tiene conexión</translation> <translation id="5911533659001334206">Visor de combinaciones de teclas</translation> @@ -4364,6 +4356,7 @@ <translation id="6112727384379533756">Añadir un ticket</translation> <translation id="6112931163620622315">Comprueba tu teléfono</translation> <translation id="6112952769866305444">Editar persona (<ph name="PROFILE_NAME" />, <ph name="USERNAME" />)</translation> +<translation id="6113434369102685411">Establece el buscador predeterminado para el navegador Chrome y el menú de aplicaciones de <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Si quieres usar Smart Lock, cambia al perfil del usuario principal en tu teléfono.</translation> <translation id="6116921718742659598">Cambiar configuración de idioma y de introducción de texto</translation> <translation id="6120205520491252677">Fijar esta página en la pantalla de inicio...</translation> @@ -5230,6 +5223,7 @@ <translation id="7140928199327930795">No hay otros dispositivos disponibles.</translation> <translation id="7141105143012495934">Se ha producido un error al iniciar sesión porque no ha sido posible recuperar la información de la cuenta. Ponte en contacto con el administrador o vuelve a intentarlo.</translation> <translation id="7143207342074048698">Conectando</translation> +<translation id="7143358760238281735">No hay aplicaciones disponibles</translation> <translation id="7144878232160441200">Volver a intentar</translation> <translation id="714876143603641390">Conectividad LAN</translation> <translation id="7149893636342594995">Últimas 24 horas</translation> @@ -5701,6 +5695,7 @@ <translation id="7707922173985738739">Se utilizarán datos móviles</translation> <translation id="7709152031285164251">Error: <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Enviar...</translation> +<translation id="7712739869553853093">Cuadro de diálogo de la vista previa de impresión</translation> <translation id="7712836429117959503">Extensión desconocida con ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Se han habilitado las cookies de <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">Certificado</translation> @@ -5830,7 +5825,6 @@ <translation id="7831491651892296503">No se ha podido configurar la red</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Hora de finalización</translation> -<translation id="783214144752121388">Impedir que los sitios web ejecuten Flash (recomendado)</translation> <translation id="7833720883933317473">Las palabras personalizadas guardadas aparecerán aquí</translation> <translation id="7835178595033117206">Marcador eliminado</translation> <translation id="7836850009646241041">Vuelve a tocar tu llave de seguridad</translation> @@ -6058,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Este archivo está cifrado. Pídele al propietario que lo descifre.}other{Algunos de estos archivos están cifrados. Pídele al propietario que los descifre.}}</translation> <translation id="808894953321890993">Cambiar contraseña</translation> <translation id="8090234456044969073">Leer una lista de los sitios web que visitas con más frecuencia</translation> -<translation id="8092681102116274204">Los ajustes que usen el carácter comodín "*" ya no se admiten. Ponte en contacto con el desarrollador de la extensión o con tu administrador para <ph name="BEGIN_LINK" />cambiar estos ajustes<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> no responde</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Crear copia de seguridad en Google Drive. Cambia de dispositivo o restaura tus datos fácilmente en cualquier momento. La copia de seguridad incluye datos de las aplicaciones.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Tus copias de seguridad se suben a Google y se cifran con la contraseña de tu cuenta de Google.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6146,6 @@ <translation id="8201717382574620700">Seleccionar álbumes de <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Vuelve a introducir tu contraseña para actualizar tu perfil de <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Recibir notificaciones en este ordenador y establecerlo como predeterminado para enviar y recibir mensajes. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Bloquear Flash (recomendado)</translation> <translation id="820568752112382238">Sitios web más visitados</translation> <translation id="8206745257863499010">Música</translation> <translation id="8206859287963243715">Móvil</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 08e9b56..5059415 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Peata</translation> <translation id="1272293450992660632">PIN-koodide väärtused ei ühti.</translation> <translation id="1272978324304772054">See kasutajakonto ei kuulu domeeni, kus seade on registreeritud. Kui soovite registreeruda mõnel teisel domeenil, peate esmalt tegema seadmetaaste.</translation> -<translation id="1274977772557788323">Adobe Flash Playeri salvestusruumi seaded</translation> <translation id="1274997165432133392">Küpsised ja muud saidi andmed</translation> <translation id="1275718070701477396">Valitud</translation> <translation id="1276994519141842946">Rakendust <ph name="APP_NAME" /> ei saanud installida</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Teie järjehoidjaid, ajalugu ja muud seaded sünkroonitakse Google'i kontoga.</translation> <translation id="1314565355471455267">Androidi VPN</translation> <translation id="131461803491198646">Koduvõrk, mitte rändlus</translation> -<translation id="1315056510003830387">Pole lubatud kasutada Flashi</translation> <translation id="1316136264406804862">Otsimine ...</translation> <translation id="1316495628809031177">Sünkroonimine on peatatud</translation> <translation id="1317637799698924700">Teie dokkimisjaam töötab C-tüüpi USB-ga ühilduvas režiimis.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC ei toeta krüpteerimistüüpi</translation> <translation id="1984417487208496350">Kaitseta (ei ole soovitatav)</translation> <translation id="1987317783729300807">Kontod</translation> -<translation id="1988494864246143197">Saidid kasutavad Flashi tavaliselt heli, video ja videomängude esitamiseks. Flash Playerit pärast 2020. aasta detsembrit enam ei toetata.</translation> <translation id="1989112275319619282">Sirvi</translation> <translation id="1990512225220753005">Ära kuva sellel lehel otseteid</translation> <translation id="1992397118740194946">Pole määratud</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Akende paigutus</translation> <translation id="2881076733170862447">Laiendusel klõpsamisel</translation> <translation id="2882943222317434580">Teenus <ph name="IDS_SHORT_PRODUCT_NAME" /> taaskäivitatakse ja lähtestatakse hetke pärast</translation> -<translation id="288387288628762616">Lubatud kasutada Flashi</translation> <translation id="2885378588091291677">Tegumihaldur</translation> <translation id="2885729872133513017">Serveri vastuse dekodeerimisel ilmnes probleem.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">See on üldteave seadme ja selle kasutamise kohta (nt aku laetuse tase, süsteemi ja rakenduste tegevused ning vead). Neid andmeid kasutatakse Androidi täiustamiseks ning teatud koondandmed on abiks ka Google'i rakendustele ja partneritele (nt Androidi arendajatele), aidates neil rakendusi ning teenuseid paremaks muuta.</translation> <translation id="3838085852053358637">Laienduse laadimine ebaõnnestus</translation> <translation id="3838486795898716504">Rohkem: <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Küpsised ja muud saidi ning pistikprogrammi andmed</translation> <translation id="383891835335927981">Ühtegi saiti pole sisse ega välja suumitud</translation> <translation id="3839509547554145593">Luba hiire kerimise kiirendamine</translation> <translation id="3839516600093027468">Blokeeri hosti <ph name="HOST" /> jaoks alati lõikelaua nägemine</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Seadme konfiguratsiooni määramine.</translation> <translation id="4025039777635956441">Vaigista valitud sait</translation> <translation id="4027804175521224372">(Jääte heast ilma – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Teie Flashi seaded säilitatakse kuni Chrome'ist väljumiseni.</translation> <translation id="4028467762035011525">Sisestusmeetodite lisamine</translation> <translation id="4031179711345676612">Mikrofon on lubatud</translation> <translation id="4031527940632463547">Andurid on blokeeritud</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Kerberose seadistamine</translation> <translation id="4235200303672858594">Kogu ekraan</translation> <translation id="4235965441080806197">Tühista sisselogimine</translation> -<translation id="4237773362828263530">Metamärkidega „*” seadeid enam ei toetata. Võtke <ph name="BEGIN_LINK" />nende seadete muutmiseks<ph name="END_LINK" /> ühendust oma administraatoriga.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Loe vahelehte hiljem}other{Loe vahelehti hiljem}}</translation> <translation id="4242145785130247982">Mitme kliendisertifikaadi kasutamist ei toetata</translation> <translation id="4242533952199664413">Ava seaded</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Signaali ei leitud</translation> <translation id="4549791035683739768">Teie turvavõtmele ei ole sõrmejälgi salvestatud</translation> <translation id="4551763574344810652">Tagasivõtmiseks vajutage klahvi <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" />-võrk, signaalitugevus: <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Seadme keele muutmiseks peate oma Chromebooki taaskäivitama. <ph name="BEGIN_LINK_LEARN_MORE" />Lisateave<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Välise laienduse versioon on sama või vanem mis olemasoleval.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Välju ja määra lastelukk</translation> <translation id="4976009197147810135">Vertikaalne poolitamine</translation> <translation id="4977942889532008999">Juurdepääsu kinnitamine</translation> -<translation id="4978905460870207779">Saidid saavad küsida luba Flashi kasutamiseks</translation> <translation id="4980805016576257426">Laiendus sisaldab pahavara.</translation> <translation id="4981449534399733132">Sirvimisandmete kustutamiseks kõigist sünkroonitud seadmetest ja oma Google'i kontolt <ph name="BEGIN_LINK" />logige sisse<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Seadme tarkvara</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">Selle rakendusega seostatud andmed eemaldatakse seadmest.</translation> <translation id="5908474332780919512">Käivita rakendus sisselogimisel</translation> <translation id="5908695239556627796">Hiire kerimiskiirus</translation> -<translation id="5908769186679515905">Keela Flashi käitamine saitidel</translation> <translation id="5910363049092958439">Sal&vesta pilt nimega...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> on võrguühenduseta</translation> <translation id="5911533659001334206">Otseteede vaatur</translation> @@ -5836,7 +5826,6 @@ <translation id="7831491651892296503">Viga võrgu seadistamisel</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Lõppaeg</translation> -<translation id="783214144752121388">Blokeeri Flashi käitamine saitidel (soovitatav)</translation> <translation id="7833720883933317473">Salvestatud kohandatud sõnad kuvatakse siin</translation> <translation id="7835178595033117206">Järjehoidja on eemaldatud</translation> <translation id="7836850009646241041">Puudutage uuesti turvavõtit</translation> @@ -6064,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{See fail on krüpteeritud. Paluge omanikul see dekrüpteerida.}other{Mõni neist failidest on krüpteeritud. Paluge nende omanikul need dekrüpteerida.}}</translation> <translation id="808894953321890993">Muuda parooli</translation> <translation id="8090234456044969073">Teie kõige sagedamini vaadatud veebisaitide loendi lugemine</translation> -<translation id="8092681102116274204">Metamärkidega „*” seadeid enam ei toetata. Võtke <ph name="BEGIN_LINK" />nende seadete muutmiseks<ph name="END_LINK" /> ühendust laienduse arendaja või oma administraatoriga.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ei reageeri</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Varundage andmed Google Drive'i. Saate andmed igal ajal hõlpsasti taastada või seadet vahetada. Teie varukoopia hõlmab rakenduste andmeid.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Teie varukoopiad laaditakse Google'isse üles ja krüpteeritakse teie Google'i konto parooliga.<ph name="END_PARAGRAPH2" /> @@ -6159,7 +6147,6 @@ <translation id="8201717382574620700">Albumite valimine – <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Sisestage oma seadme <ph name="DEVICE_TYPE" /> profiili värskendamiseks parool uuesti.</translation> <translation id="8203732864715032075">See arvuti jäetakse rakenduse Messages jaoks meelde ning teile saadetakse sõnumite kohta märguandeid. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokeeri Flash (soovitatav)</translation> <translation id="820568752112382238">Enim külastatavad saidid</translation> <translation id="8206745257863499010">Bluusilik</translation> <translation id="8206859287963243715">Mobiil</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index b32f2f0..1f15dfe 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Gelditu</translation> <translation id="1272293450992660632">PIN kodeak ez datoz bat.</translation> <translation id="1272978324304772054">Erabiltzaile-kontu hau ez da gailua erregistratu den domeinukoa. Beste domeinu batean erregistratu ahal izateko, gailua berreskuratu behar duzu.</translation> -<translation id="1274977772557788323">Adobe Flash Player aplikazioaren biltegiratze-ezarpenak</translation> <translation id="1274997165432133392">Cookieak eta webguneko beste datuak</translation> <translation id="1275718070701477396">Hautatua</translation> <translation id="1276994519141842946">Ezin izan da desinstalatu <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Laster-markak, historia eta bestelako ezarpenak Google-ko kontuarekin sinkronizatuko dira.</translation> <translation id="1314565355471455267">Android VPN sarea</translation> <translation id="131461803491198646">Tokiko sarea, ez ibiltaritza</translation> -<translation id="1315056510003830387">Ezin dute erabili Flash</translation> <translation id="1316136264406804862">Bilatzen…</translation> <translation id="1316495628809031177">Sinkronizazioa pausatuta dago</translation> <translation id="1317637799698924700">C motako USB egokigailuekiko (USB Type-C) bateragarritasun moduan funtzionatuko du oinarriak.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC zentroak ez du onartzen enkriptatze mota hori</translation> <translation id="1984417487208496350">Babesik gabe (ez da gomendatzen)</translation> <translation id="1987317783729300807">Kontuak</translation> -<translation id="1988494864246143197">Webguneek Flash erabili ohi dute soinua, bideoa edo bideo-jokoak erreproduzitzeko. 2020ko abendutik aurrera, Flash Player produktuak bateragarri izateari utziko dio.</translation> <translation id="1989112275319619282">Arakatu</translation> <translation id="1990512225220753005">Ez erakutsi lasterbideak orri honetan</translation> <translation id="1992397118740194946">Ezarri gabe</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Leihoaren kokalekua</translation> <translation id="2881076733170862447">Luzapena sakatzen duzunean</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> berrabiarazi eta berrezarri egingo da</translation> -<translation id="288387288628762616">Flash erabil dezakete</translation> <translation id="2885378588091291677">Zereginen kudeatzailea</translation> <translation id="2885729872133513017">Arazo bat izan da zerbitzariaren erantzuna deskodetzean.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">Gailu honi eta hura erabiltzeko moduari buruzko informazio orokorra da hau (adibidez, bateria-maila, sistemako eta aplikazioetako jarduerak, eta erroreak). Android hobetzeko erabiliko dira datuok. Gainera, multzokatutako datu batzuk oso baliagarriak dira Google-ren aplikazioak hobetzeko eta bazkideei (adibidez, Android-en garatzaileei) euren aplikazio eta produktuak hobetzen laguntzeko.</translation> <translation id="3838085852053358637">Ezin izan da kargatu luzapena</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> orriaren jarraipena</translation> -<translation id="3838543471119263078">Cookieak eta webgune nahiz pluginen bestelako datuak</translation> <translation id="383891835335927981">Ez da aplikatu zoomik inongo webgunetan</translation> <translation id="3839509547554145593">Gaitu saguarekin gora/behera bizkorrago egiteko aukera</translation> <translation id="3839516600093027468">Blokeatu beti <ph name="HOST" /> webguneari arbela ikusteko aukera</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Gailuaren konfigurazioa zehazten.</translation> <translation id="4025039777635956441">Ezkutatu hautatutako webgunea</translation> <translation id="4027804175521224372">(Aukera galtzen ari zara: <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Chrome-tik irteten zaren arte gordeko dira Flash ezarpenak.</translation> <translation id="4028467762035011525">Gehitu idazketa-metodoak</translation> <translation id="4031179711345676612">Mikrofonoa erabil daiteke</translation> <translation id="4031527940632463547">Blokeatuta daude sentsoreak</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Konfiguratu Kerberos</translation> <translation id="4235200303672858594">Pantaila osoa</translation> <translation id="4235965441080806197">Utzi bertan behera saio-hasiera</translation> -<translation id="4237773362828263530">"*" komodina duten ezarpenak ez dira onartzen jada. <ph name="BEGIN_LINK" />Ezarpen horiek aldatzeko<ph name="END_LINK" />, jarri harremanetan administratzailearekin.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Irakurri fitxa geroago}other{Irakurri fitxak geroago}}</translation> <translation id="4242145785130247982">Ezin dira erabili bezero-ziurtagiri bat baino gehiago</translation> <translation id="4242533952199664413">Ireki ezarpenak</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Ez da aurkitu seinalea</translation> <translation id="4549791035683739768">Segurtasun-giltzak ez dauka hatz-markarik gordeta</translation> <translation id="4551763574344810652">Sakatu <ph name="MODIFIER_KEY_DESCRIPTION" /> desegiteko</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> sarea. Seinalearen indarra: % <ph name="SIGNAL_STRENGTH" />.</translation> <translation id="4553526521109675518">Gailuaren hizkuntza aldatzeko, Chromebook berrabiarazi egin behar duzu. <ph name="BEGIN_LINK_LEARN_MORE" />Lortu informazio gehiago<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Kanpoko luzapena lehendik dagoenaren bertsio berean edo zaharragoan dago.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Irten eta blokeatu haurrentzat</translation> <translation id="4976009197147810135">Zatitu bertikalki</translation> <translation id="4977942889532008999">Berretsi sarbidea</translation> -<translation id="4978905460870207779">Webguneek Flash erabiltzea eska dezakete</translation> <translation id="4980805016576257426">Luzapenak malwarea dauka.</translation> <translation id="4981449534399733132">Sinkronizatutako gailu guztietako eta zure Google-ko kontuko arakatze-datuak garbitzeko, <ph name="BEGIN_LINK" />hasi saioa<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Gailuaren softwarea</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">Aplikazio honekin erlazionatutako datu guztiak kenduko dira gailu honetatik.</translation> <translation id="5908474332780919512">Abiarazi aplikazioa saioa hasten duzunean</translation> <translation id="5908695239556627796">Saguarekin gora/behera egiteko abiadura</translation> -<translation id="5908769186679515905">Ez utzi webguneei Flash abiarazten</translation> <translation id="5910363049092958439">Gor&de irudia honela…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ez dago konektatuta</translation> <translation id="5911533659001334206">Lasterbideen ikustailea</translation> @@ -5836,7 +5826,6 @@ <translation id="7831491651892296503">Errore bat gertatu da sarea konfiguratzean</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Amaiera-ordua</translation> -<translation id="783214144752121388">Ez utzi webguneei Flash abiarazten (gomendatua)</translation> <translation id="7833720883933317473">Hemen agertuko dira gordetako hitz pertsonalizatuak</translation> <translation id="7835178595033117206">Kendu da laster-marka</translation> <translation id="7836850009646241041">Ukitu berriro segurtasun-giltza</translation> @@ -6063,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Fitxategia enkriptatuta dago. Eskatu jabeari hura desenkriptatzeko.}other{Fitxategi hauetako batzuk enkriptatuta daude. Eskatu jabeari haiek desenkriptatzeko.}}</translation> <translation id="808894953321890993">Aldatu pasahitza</translation> <translation id="8090234456044969073">Irakurri gehien bisitatzen dituzun webguneen zerrenda</translation> -<translation id="8092681102116274204">"*" komodina duten ezarpenak ez dira onartzen jada. <ph name="BEGIN_LINK" />Ezarpen hauek aldatzeko<ph name="END_LINK" />, jarri luzapenaren garatzailearekin edo administratzailearekin harremanetan.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> pluginak ez du erantzuten</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Egin babeskopiak Google Drive-n; horrela, errazagoa izango da datuak leheneratzea edo beste gailu batera eramatea. Aplikazioetako datuak ere sartzen dira babeskopietan.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Babeskopiak Google-ra kargatzen dira eta enkriptatu egiten dira Google-ko kontuaren pasahitza erabilita.<ph name="END_PARAGRAPH2" /> @@ -6158,7 +6146,6 @@ <translation id="8201717382574620700">Hautatu <ph name="TOPIC_SOURCE" /> iturburuko albumak</translation> <translation id="8202160505685531999">Idatzi berriro pasahitza <ph name="DEVICE_TYPE" /> gailuko profila eguneratzeko.</translation> <translation id="8203732864715032075">Jaso jakinarazpenak eta ezarri ordenagailua lehenetsi gisa Mezuak aplikazioan gogoratzeko. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokeatu Flash (gomendatua)</translation> <translation id="820568752112382238">Gehien bisitatutako webguneak</translation> <translation id="8206745257863499010">Blues-zalea</translation> <translation id="8206859287963243715">Konexio mugikorra</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index 27caf7a1..b7df380 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">توقف</translation> <translation id="1272293450992660632">مقادیر پین مطابقت ندارند.</translation> <translation id="1272978324304772054">این حساب کاربری متعلق به دامنهای که دستگاه در آن ثبت شده است، نیست. اگر میخواهید در دامنه دیگری ثبتنام کنید ابتدا باید دستگاه را بازیابی کنید.</translation> -<translation id="1274977772557788323">تنظیمات فضای ذخیرهسازی Adobe Flash Player</translation> <translation id="1274997165432133392">کوکیها و دیگر دادههای سایت</translation> <translation id="1275718070701477396">انتخاب شد</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> حذف نصب نشد</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">نشانکها، سابقه و سایر تنظیماتتان با حساب Google شما همگام خواهند شد.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">شبکه اصلی، بدون فراگردی</translation> -<translation id="1315056510003830387">اجازه ندارد از Flash استفاده کند</translation> <translation id="1316136264406804862">در حال جستجو...</translation> <translation id="1316495628809031177">همگامسازی موقتاً متوقف شده است</translation> <translation id="1317637799698924700">ایستگاه پایه اتصال در حالت سازگار با «USB نوع C» کار میکند.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC از نوع رمزگذاری پشتیبانی نمیکند</translation> <translation id="1984417487208496350">بدون محافظت (توصیه نمیشود)</translation> <translation id="1987317783729300807">اشتراکها</translation> -<translation id="1988494864246143197">سایتها معمولاً از Flash برای پخش صدا، ویدیو، یا بازیهای ویدیویی استفاده میکنند. Flash Player از دسامبر ۲۰۲۰ دیگر پشتیبانی نخواهد شد.</translation> <translation id="1989112275319619282">مشاهده محتوای موجود در فروشگاه ما</translation> <translation id="1990512225220753005">میانبرها در این صفحه نشان داده نشود</translation> <translation id="1992397118740194946">تنظیم نشده است</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">جایگذاری پنجره</translation> <translation id="2881076733170862447">وقتی روی افزونه کلیک میکنید</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> راهاندازی مجدد و به صورت لحظهای بازنشانی میشود</translation> -<translation id="288387288628762616">اجازه دارد از Flash استفاده کند</translation> <translation id="2885378588091291677">مدیر فعالیتها</translation> <translation id="2885729872133513017">هنگام رمزگشایی پاسخ سرور، مشکلی پیش آمد.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2078,6 +2074,7 @@ <translation id="3428419049384081277">وارد سیستم شدهاید!</translation> <translation id="3428747202529429621">وقتی به سیستم وارد شده باشید، امنیت شما را در Chrome حفظ میکند و ممکن است برای بهبود امنیت شما در برنامههای دیگر Google استفاده شود</translation> <translation id="3428800329481094896">درحال واکشی کلیدهای ssh محتوی Linux</translation> +<translation id="3429271624041785769">زبان محتوای وب</translation> <translation id="3429275422858276529">این صفحه را نشانکگذاری کنید تا بعداً آن را بهآسانی پیدا کنید</translation> <translation id="3432227430032737297">حذف همه موارد نشان دادهشده</translation> <translation id="3432757130254800023">ارسال صوت و تصویر برای نمایش در شبکه محلی</translation> @@ -2462,7 +2459,6 @@ <translation id="383669374481694771">این اطلاعاتی کلی درباره این دستگاه و نحوه استفاده از آن است (مانند سطح شارژ باتری، فعالیت سیستم و برنامه، و خطاها). از این دادهها برای بهبود Android استفاده خواهد شد و بعضی از اطلاعات انبوهشی نیز به برنامههای Google و شریکان، مانند برنامهنویسان Android کمک خواهد کرد برنامهها و محصولاتشان را بهتر کنند.</translation> <translation id="3838085852053358637">افزونه بار نشد</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> بیشتر</translation> -<translation id="3838543471119263078">کوکیها و دادههای افزایه و سایتهای دیگر</translation> <translation id="383891835335927981">هیچ سایتی بزرگنمایی یا کوچکنمایی نشده است</translation> <translation id="3839509547554145593">فعال کردن شتاب پیمایش موشواره</translation> <translation id="3839516600093027468">دسترسی <ph name="HOST" /> به بریدهدان همیشه مسدود باشد</translation> @@ -2504,6 +2500,7 @@ <translation id="3879748587602334249">مدیریت بارگیری</translation> <translation id="3881478300875776315">نمایش خطوط کمتر</translation> <translation id="3882165008614329320">ویدیوی موجود از دوربین یا فایل</translation> +<translation id="3884152383786131369">محتوای وبی که به چند زبان دردسترس است از اولین زبان پشتیبانیشده در این فهرست استفاده خواهد کرد. این اولویتها با تنظیمات مرورگرتان همگامسازی میشود. <ph name="BEGIN_LINK_LEARN_MORE" />بیشتر بدانید<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">درخواست شما برای دسترسی به این سایت برای <ph name="NAME" /> ارسال شده است</translation> <translation id="3888550877729210209">یادداشتبرداری با <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">روشن کردن «همگامسازی Chrome» برای استفاده از «همگامسازی Wi-Fi»</translation> @@ -2636,7 +2633,6 @@ <translation id="4023146161712577481">تعیین پیکربندی دستگاه</translation> <translation id="4025039777635956441">بیصدا کردن سایت انتخابشده</translation> <translation id="4027804175521224372">(شما موفق نشدید-<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">تنظیمات Flash تا وقتی از Chrome خارج شوید حفظ میشود.</translation> <translation id="4028467762035011525">افزودن روشهای ورودی</translation> <translation id="4031179711345676612">میکروفون مجاز است</translation> <translation id="4031527940632463547">حسگرها مسدود شدند</translation> @@ -2788,7 +2784,6 @@ <translation id="4232375817808480934">پیکربندی Kerberos</translation> <translation id="4235200303672858594">کل صفحه</translation> <translation id="4235965441080806197">لغو ورود به سیستم</translation> -<translation id="4237773362828263530">تنظیمات دارای نویسه عام «*» دیگر پشتیبانی نمیشود. برای <ph name="BEGIN_LINK" />تغییر دادن این تنظیمات<ph name="END_LINK" />، با سرپرستتان تماس بگیرید.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{خواندن برگه در فرصتی دیگر}one{خواندن برگهها در فرصتی دیگر}other{خواندن برگهها در فرصتی دیگر}}</translation> <translation id="4242145785130247982">چند مورد از گواهینامههای کارخواه پشتیبانی نمیشوند</translation> <translation id="4242533952199664413">باز کردن تنظیمات</translation> @@ -3052,7 +3047,6 @@ <translation id="4548483925627140043">سیگنال پیدا نشد</translation> <translation id="4549791035683739768">هیچ اثر انگشتی برای کلید امنیتیتان ذخیره نشده است</translation> <translation id="4551763574344810652">برای واگرد، <ph name="MODIFIER_KEY_DESCRIPTION" /> را فشار دهید</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">شبکه <ph name="NETWORK_TYPE" />، قدرت سیگنال <ph name="SIGNAL_STRENGTH" /> درصد</translation> <translation id="4553526521109675518">باید Chromebook را بازراهاندازی کنید تا زبان دستگاه تغییر کند. <ph name="BEGIN_LINK_LEARN_MORE" />بیشتر بدانید<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">برنامه افزودنی خارجی در مقایسه با برنامه کنونی، دارای همان نسخه یا نسخه پایینتر است.</translation> @@ -3407,7 +3401,6 @@ <translation id="4974733135013075877">خروج و قفل کودک</translation> <translation id="4976009197147810135">تقسیم عمودی</translation> <translation id="4977942889532008999">تأیید دسترسی</translation> -<translation id="4978905460870207779">سایتها میتوانند استفاده از Flash را درخواست کنند</translation> <translation id="4980805016576257426">این افزونه بدافزار دارد.</translation> <translation id="4981449534399733132">برای اینکه دادههای محصول مرور را از همه دستگاههای همگامسازیشده و حساب Google خود پاک کنید، <ph name="BEGIN_LINK" />به سیستم وارد شوید<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">نرمافزار دستگاه</translation> @@ -4178,7 +4171,6 @@ <translation id="5906732635754427568">دادههای مرتبط با این برنامه از این دستگاه پاک میشوند.</translation> <translation id="5908474332780919512">راهاندازی برنامه هنگام ورود به سیستم</translation> <translation id="5908695239556627796">سرعت پیمایش موشواره</translation> -<translation id="5908769186679515905">اجرای Flash در سایتها مسدود شود</translation> <translation id="5910363049092958439">ذ&خیره فایل تصویری بهعنوان...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> آفلاین است</translation> <translation id="5911533659001334206">نمایشگر میانبر</translation> @@ -4362,6 +4354,7 @@ <translation id="6112727384379533756">افزودن بلیت</translation> <translation id="6112931163620622315">تلفن را بررسی کنید</translation> <translation id="6112952769866305444">ویرایش شخص، <ph name="PROFILE_NAME" />، <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">تنظیم موتور جستجوی پیشفرض برای مرورگر Chrome و «راهانداز <ph name="DEVICE_TYPE" />»</translation> <translation id="6113942107547980621">برای استفاده از Smart Lock، به نمایه کاربر اصلی در تلفن جابهجا شوید</translation> <translation id="6116921718742659598">تغییر تنظیمات زبان و ورودی</translation> <translation id="6120205520491252677">پین کردن این صفحه به صفحه شروع…</translation> @@ -5228,6 +5221,7 @@ <translation id="7140928199327930795">هیچ دستگاه دیگری در دسترس نیست.</translation> <translation id="7141105143012495934">به دلیل اینکه جزئيات حساب شما بازیابی نشد، ورود به سیستم ناموفق بود. لطفاً با سرپرستتان تماس بگیرید یا دوباره امتحان کنید.</translation> <translation id="7143207342074048698">در حال اتصال</translation> +<translation id="7143358760238281735">هیچ برنامهای دردسترس نیست</translation> <translation id="7144878232160441200">سعی مجدد</translation> <translation id="714876143603641390">اتصال LAN</translation> <translation id="7149893636342594995">۲۴ ساعت گذشته</translation> @@ -5699,6 +5693,7 @@ <translation id="7707922173985738739">استفاده از داده تلفن همراه</translation> <translation id="7709152031285164251">انجام نشد - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&ارسال محتوا…</translation> +<translation id="7712739869553853093">کادر گفتگوی پیشنمایش چاپ</translation> <translation id="7712836429117959503">افزونه ناشناس با شناسه <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">کوکیهای <ph name="DOMAIN" /> مجاز است</translation> <translation id="7714464543167945231">گواهی</translation> @@ -5828,7 +5823,6 @@ <translation id="7831491651892296503">خطا در پیکربندی شبکه</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">زمان پایان</translation> -<translation id="783214144752121388">اجرای Flash در سایتها مسدود شود (توصیه میشود)</translation> <translation id="7833720883933317473">کلمات سفارشی ذخیرهشده در اینجا نشان داده خواهند شد</translation> <translation id="7835178595033117206">نشانک حذف شد</translation> <translation id="7836850009646241041">دوباره کلید امنیتی خود را لمس کنید</translation> @@ -6056,7 +6050,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{این فایل رمزگذاری شده است. از مالک بخواهید آن را رمزگشایی کند.}one{بعضی از این فایلها رمزگذاری شدهاند. از مالک بخواهید آن را رمزگشایی کند.}other{بعضی از این فایلها رمزگذاری شدهاند. از مالک بخواهید آنها را رمزگشایی کند.}}</translation> <translation id="808894953321890993">تغییر گذرواژه</translation> <translation id="8090234456044969073">خواندن فهرستی از وبسایتهای غالباً بازدید شده شما</translation> -<translation id="8092681102116274204">تنظیمات دارای نویسه عام «*» دیگر پشتیبانی نمیشود. برای <ph name="BEGIN_LINK" />تغییر دادن این تنظیمات<ph name="END_LINK" />، با برنامهنویس افزونه یا سرپرستتان تماس بگیرید.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> پاسخ نمیدهد</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />پشتیبانگیری در Google Drive. هرزمان خواستید دادههایتان را بهآسانی بازیابی کنید یا دستگاهتان را عوض کنید. نسخه پشتیبان دادههای برنامه را شامل میشود.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />دادههای پشتیبان در Google بارگذاری میشود و با استفاده از گذرواژه حساب Google شما رمزگذاری میشود.<ph name="END_PARAGRAPH2" /> @@ -6151,7 +6144,6 @@ <translation id="8201717382574620700">انتخاب آلبومهای <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">لطفاً برای بهروزرسانی نمایه <ph name="DEVICE_TYPE" /> خود، گذرواژهتان را دوباره وارد کنید.</translation> <translation id="8203732864715032075">ارسال اعلان برای شما و بهخاطرسپردن این رایانه بهعنوان پیشفرض برای «پیامها». <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash مسدود شود (توصیه میشود)</translation> <translation id="820568752112382238">سایتهایی که بیشتر بازدید شده</translation> <translation id="8206745257863499010">بلوزی</translation> <translation id="8206859287963243715">سلولی</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 54158df71..65f762e 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Pysäytä</translation> <translation id="1272293450992660632">PIN-koodit eivät täsmää.</translation> <translation id="1272978324304772054">Tämä käyttäjätili ei kuulu verkkotunnukselle, jossa laite on otettu käyttöön. Jos haluat ottaa laitteen käyttöön eri verkkotunnuksessa, sinun tulee ensin suorittaa laitteen palauttaminen.</translation> -<translation id="1274977772557788323">Adobe Flash Playerin tallennusasetukset</translation> <translation id="1274997165432133392">Evästeet ja muut sivuston tiedot</translation> <translation id="1275718070701477396">Valittu</translation> <translation id="1276994519141842946">Poistaminen ei onnistunut: <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Kirjanmerkkisi, historiasi ja muut asetukset synkronoidaan Google-tiliisi.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Kotiverkko, ei roaming-tilassa </translation> -<translation id="1315056510003830387">Flashin käyttö sallittu</translation> <translation id="1316136264406804862">Haetaan...</translation> <translation id="1316495628809031177">Synkronointi on keskeytetty</translation> <translation id="1317637799698924700">Telineesi toimii USB Type-C ‑yhteensopivassa tilassa.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC ei tue salaustyyppiä</translation> <translation id="1984417487208496350">Ei suojausta (ei suositella)</translation> <translation id="1987317783729300807">Tilit</translation> -<translation id="1988494864246143197">Sivustot käyttävät yleensä Flashia audio- tai videotoistoon tai videopeleihin. Flash Playeria ei enää tueta joulukuun 2020 jälkeen.</translation> <translation id="1989112275319619282">Selaa</translation> <translation id="1990512225220753005">Älä näytä pikakuvakkeita tällä sivulla</translation> <translation id="1992397118740194946">Ei asetettu</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Ikkunoiden sijoittelu</translation> <translation id="2881076733170862447">Kun klikkaat laajennusta</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> käynnistyy uudelleen ja nollautuu hetkellisesti</translation> -<translation id="288387288628762616">Flashin käyttö sallittu</translation> <translation id="2885378588091291677">Tehtävänhallinta</translation> <translation id="2885729872133513017">Palvelinvastauksen koodinpurku epäonnistui.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Olet kirjautunut sisään!</translation> <translation id="3428747202529429621">Pitää sinut turvassa Chromessa ja voi parantaa suojaustasi muissa Google-sovelluksissa, kun olet sisäänkirjautuneena</translation> <translation id="3428800329481094896">Haetaan Linux-säilön SSH-avaimia</translation> +<translation id="3429271624041785769">Verkkosisällön kielet</translation> <translation id="3429275422858276529">Lisää tämä sivu kirjanmerkkeihin, niin löydät sen myöhemmin helposti.</translation> <translation id="3432227430032737297">Poista kaikki näytetyt</translation> <translation id="3432757130254800023">Lähetä ääntä ja videota näyttöihin lähiverkossa</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Nämä ovat yleisiä tietoja tästä laitteesta ja sen käytöstä (esim. akun varaustasosta, järjestelmän ja sovellusten toiminnasta sekä virheistä). Datan avulla Androidia parannetaan, ja koottua dataa käytetään Google-sovellusten, Android-kehittäjien tai muiden kumppanien sovellusten ja tuotteiden parantamiseen.</translation> <translation id="3838085852053358637">Laajennuksen lataus epäonnistui</translation> <translation id="3838486795898716504">Lisää <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Evästeet ja muut sivuston ja laajennuksien tiedot</translation> <translation id="383891835335927981">Zoomausta ei ole käytetty sivustoilla.</translation> <translation id="3839509547554145593">Ota käyttöön hiiren vierityksen kiihdytys</translation> <translation id="3839516600093027468"><ph name="HOST" /> ei saa koskaan nähdä leikepöydän sisältöä</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Latausten hallinta</translation> <translation id="3881478300875776315">Näytä vähemmän rivejä</translation> <translation id="3882165008614329320">Olemassa oleva video kamerasta tai tiedostosta</translation> +<translation id="3884152383786131369">Verkkosisältö, joka on saatavilla useilla kielillä, käyttää ensimmäistä tuettua kieltä tältä listalta. Nämä asetukset synkronoidaan selainasetustesi kanssa. <ph name="BEGIN_LINK_LEARN_MORE" />Lue lisää<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Pyyntösi päästä tälle sivustolle on lähetetty henkilölle <ph name="NAME" />.</translation> <translation id="3888550877729210209">Muistiinpanojen kirjoittaminen sovelluksella <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Laita Chromen synkronointi päälle, jotta voit käyttää Wi-Fin synkronointia</translation> @@ -2636,7 +2633,6 @@ <translation id="4023146161712577481">Selvitetään laitteen kokoonpanoa.</translation> <translation id="4025039777635956441">Mykistä valittu sivusto</translation> <translation id="4027804175521224372">(Ota täysi hyöty käyttöön — <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Flash-asetukset pidetään ennallaan, kunnes lopetat Chromen käytön.</translation> <translation id="4028467762035011525">Lisää syöttötapoja</translation> <translation id="4031179711345676612">Mikrofoni sallittu</translation> <translation id="4031527940632463547">Tunnistimet estetty</translation> @@ -2788,7 +2784,6 @@ <translation id="4232375817808480934">Määritä Kerberos</translation> <translation id="4235200303672858594">Koko ruutu</translation> <translation id="4235965441080806197">Peruuta sisäänkirjautuminen</translation> -<translation id="4237773362828263530">Asetuksia, joissa on jokerimerkki *, ei enää tueta. Pyydä järjestelmänvalvojaa <ph name="BEGIN_LINK" />muuttamaan näitä asetuksia<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Lue välilehti myöhemmin}other{Lue välilehdet myöhemmin}}</translation> <translation id="4242145785130247982">Useita käyttöoikeusvarmenteita ei tueta</translation> <translation id="4242533952199664413">Avaa asetukset</translation> @@ -3052,7 +3047,6 @@ <translation id="4548483925627140043">Ei signaalia</translation> <translation id="4549791035683739768">Suojausavaimeesi ei ole tallennettu sormenjälkiä.</translation> <translation id="4551763574344810652">Kumoa painamalla <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> verkko, signaalin vahvuus <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Chromebook on käynnistettävä uudelleen, jotta laitteen kieli vaihtuu. <ph name="BEGIN_LINK_LEARN_MORE" />Lue lisää<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Ulkoinen laajennus on sama tai aiempi versio kuin nykyinen.</translation> @@ -3407,7 +3401,6 @@ <translation id="4974733135013075877">Sulje ja aseta lapsilukko</translation> <translation id="4976009197147810135">Pystysuuntainen jako</translation> <translation id="4977942889532008999">Vahvista osoite</translation> -<translation id="4978905460870207779">Sivustot saavat pyytää Flashin käyttölupaa</translation> <translation id="4980805016576257426">Tämä laajennus sisältää haittaohjelmia.</translation> <translation id="4981449534399733132">Jos haluat poistaa selailutiedot kaikilta synkronoiduilta laitteiltasi ja Google-tililtäsi, <ph name="BEGIN_LINK" />kirjaudu sisään<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Laiteohjelmisto</translation> @@ -4178,7 +4171,6 @@ <translation id="5906732635754427568">Tähän sovellukseen liittyvät tiedot poistetaan tältä laitteelta.</translation> <translation id="5908474332780919512">Käynnistä sovellus kun kirjaudut sisään</translation> <translation id="5908695239556627796">Hiiren vieritysnopeus</translation> -<translation id="5908769186679515905">Estä sivustoja suorittamasta Flashia</translation> <translation id="5910363049092958439">T&allenna kuva nimellä...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> on offline-tilassa</translation> <translation id="5911533659001334206">Pikanäppäimet</translation> @@ -4362,6 +4354,7 @@ <translation id="6112727384379533756">Lisää tukipyyntö</translation> <translation id="6112931163620622315">Tarkista puhelimesi</translation> <translation id="6112952769866305444">Muokkaa henkilöä <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Valitse oletushakukone Chrome-selainta ja käynnistysohjelmaa (<ph name="DEVICE_TYPE" />) varten</translation> <translation id="6113942107547980621">Jos haluat käyttää Smart Lockia, vaihda ensisijaiseen käyttäjäprofiiliin puhelimellasi</translation> <translation id="6116921718742659598">Vaihda kielen ja syöttötavan asetuksia</translation> <translation id="6120205520491252677">Kiinnitä tämä sivu aloitusruutuun...</translation> @@ -5230,6 +5223,7 @@ <translation id="7140928199327930795">Ei muita käytettävissä olevia laitteita.</translation> <translation id="7141105143012495934">Sisäänkirjautuminen epäonnistui, koska tilitietojasi ei löytynyt. Ota yhteyttä järjestelmänvalvojaan tai yritä uudelleen.</translation> <translation id="7143207342074048698">Yhdistetään</translation> +<translation id="7143358760238281735">Ei sovelluksia</translation> <translation id="7144878232160441200">Yritä uudelleen</translation> <translation id="714876143603641390">LAN-yhteys</translation> <translation id="7149893636342594995">Viimeiset 24 tuntia</translation> @@ -5701,6 +5695,7 @@ <translation id="7707922173985738739">Käytä mobiilidataa</translation> <translation id="7709152031285164251">Epäonnistui – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Cast...</translation> +<translation id="7712739869553853093">Tulostuksen esikatseluikkuna</translation> <translation id="7712836429117959503">Tuntematon laajennus, jonka tunnus on <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Evästeet lähteestä <ph name="DOMAIN" /> sallittu</translation> <translation id="7714464543167945231">Varmenne</translation> @@ -5829,7 +5824,6 @@ <translation id="7831491651892296503">Verkon määritysvirhe</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Päättymisaika</translation> -<translation id="783214144752121388">Estä sivustoja käyttämästä Flashia (suositus)</translation> <translation id="7833720883933317473">Tässä näytetään tallennetut muokatut sanat.</translation> <translation id="7835178595033117206">Kirjanmerkki poistettu</translation> <translation id="7836850009646241041">Kosketa suojausavaintasi uudelleen</translation> @@ -6057,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Tämä tiedosto on salattu. Pyydä sen omistajaa purkamaan salaus.}other{Osa näistä tiedostoista on salattu. Pyydä niiden omistajaa purkamaan salaus.}}</translation> <translation id="808894953321890993">Vaihda salasana</translation> <translation id="8090234456044969073">Lukea useimmin käyttämiesi verkkosivustojen luettelo</translation> -<translation id="8092681102116274204">Asetuksia, joissa on jokerimerkki *, ei enää tueta. Pyydä laajennuksen kehittäjää tai järjestelmänvalvojaa <ph name="BEGIN_LINK" />muuttamaan näitä asetuksia<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ei vastaa.</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Varmuuskopioi Google Driveen. Palauta dataa tai vaihda laitetta helposti milloin tahansa. Varmuuskopio sisältää sovellusdatan.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Varmuuskopiot ladataan Googleen ja salataan Google-tilisi salasanalla.<ph name="END_PARAGRAPH2" /> @@ -6152,7 +6145,6 @@ <translation id="8201717382574620700">Valitse albumeita: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Päivitä <ph name="DEVICE_TYPE" />-profiilisi kirjoittamalla salasanasi uudelleen.</translation> <translation id="8203732864715032075">Voit saada ilmoituksia, ja tämä tietokone voidaan muistaa oletuksena Messages-sovellusta käytettäessä. <ph name="LINK_BEGIN" />Lisätietoja<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Estä Flash (suositus)</translation> <translation id="820568752112382238">Useimmin vieraillut sivustot</translation> <translation id="8206745257863499010">Muusikko</translation> <translation id="8206859287963243715">Matkapuhelin</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index a500e41d..d66e799b 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Stop</translation> <translation id="1272293450992660632">Hindi nagtutugma ang mga value ng PIN.</translation> <translation id="1272978324304772054">Ang user account na ito ay hindi pagmamay-ari ng domain kung saan nakatala ang device. Kung nais mong magpatala sa ibang domain, kailangan mo munang sumailalim sa pagbawi ng device.</translation> -<translation id="1274977772557788323">Mga setting ng Storage ng Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies at iba pang data ng site</translation> <translation id="1275718070701477396">Pinili</translation> <translation id="1276994519141842946">Hindi ma-uninstall ang <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Isi-sync ang iyong mga bookmark, kasaysayan, at iba pang mga setting sa iyong Google Account.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Home network, hindi roaming</translation> -<translation id="1315056510003830387">Hindi pinapayagang gumamit ng Flash</translation> <translation id="1316136264406804862">Naghahanap...</translation> <translation id="1316495628809031177">Naka-pause ang pag-sync</translation> <translation id="1317637799698924700">Gagana ang iyong istasyon ng pag-dock sa USB Type-C compatible mode.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">Hindi sinusuportahan ng KDC ang uri ng pag-encrypt</translation> <translation id="1984417487208496350">Walang proteksyon (hindi inirerekomenda)</translation> <translation id="1987317783729300807">Mga Account</translation> -<translation id="1988494864246143197">Karaniwang ginagamit ng mga site ang Flash para mag-play ng audio, video, o mga video game. Hindi na susuportahan ang Flash Player pagkatapos ng Disyembre 2020.</translation> <translation id="1989112275319619282">Mag-browse</translation> <translation id="1990512225220753005">Huwag magpakita ng mga shortcut sa page na ito</translation> <translation id="1992397118740194946">Hindi nakatakda</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Placement ng window</translation> <translation id="2881076733170862447">Kapag Iki-click Mo ang Extension</translation> <translation id="2882943222317434580">Magre-restart at magre-reset ang <ph name="IDS_SHORT_PRODUCT_NAME" /> sa ilang sandali</translation> -<translation id="288387288628762616">Pinapayagang gumamit ng Flash</translation> <translation id="2885378588091291677">Task Manager</translation> <translation id="2885729872133513017">Nagkaproblema habang dine-decode ang tugon ng server.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">Ito ay pangkalahatang impormasyon tungkol sa device na ito at kung paano ito ginagamit (gaya ng antas ng baterya, aktibidad ng system at app, at mga error). Gagamitin ang data para pahusayin ang Android, at makakatulong din ang ilang pinagsama-samang impormasyon sa mga app at partner ng Google, gaya ng mga developer ng Android, na pahusayin ang kanilang mga app at produkto.</translation> <translation id="3838085852053358637">Hindi na-load ang extension</translation> <translation id="3838486795898716504">Higit pang <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies at iba pang data ng site at plugin</translation> <translation id="383891835335927981">Walang site na na-zoom in o na-zoom out</translation> <translation id="3839509547554145593">I-enable ang pag-accelerate sa pag-scroll ng mouse</translation> <translation id="3839516600093027468">Palaging i-block ang <ph name="HOST" /> sa pagtingin sa clipboard</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Tinutukoy ang configuration ng device.</translation> <translation id="4025039777635956441">I-mute ang Napiling Site</translation> <translation id="4027804175521224372">(Hindi ka nakakakuha—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Papanatilihin ang mga setting ng iyong Flash hanggang sa umalis ka sa Chrome.</translation> <translation id="4028467762035011525">Magdagdag ng mga pamamaraan ng pag-input</translation> <translation id="4031179711345676612">Pinapayagan ang mikropono</translation> <translation id="4031527940632463547">Na-block ang mga sensor</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">I-configure ang Kerberos</translation> <translation id="4235200303672858594">Buong screen</translation> <translation id="4235965441080806197">Kanselahin ang pag-sign in</translation> -<translation id="4237773362828263530">Hindi na sinusuportahan ang mga setting na may "*" na wildcard. Makipag-ugnayan sa iyong administrator para <ph name="BEGIN_LINK" />baguhin ang mga setting na ito<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Basahin ang Tab sa Ibang Pagkakataon}one{Basahin ang Mga Tab sa Ibang Pagkakataon}other{Basahin ang Mga Tab sa Ibang Pagkakataon}}</translation> <translation id="4242145785130247982">Hindi sinusuportahan ang maraming certificate ng client</translation> <translation id="4242533952199664413">Buksan ang mga setting</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Walang nakitang signal</translation> <translation id="4549791035683739768">Walang naka-store na fingerprint sa iyong security key</translation> <translation id="4551763574344810652">Pindutin ang <ph name="MODIFIER_KEY_DESCRIPTION" /> para i-undo</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> network, lakas ng signal na <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Kailangan mong i-restart ang iyong Chromebook para mapalitan ang wika ng device. <ph name="BEGIN_LINK_LEARN_MORE" />Matuto pa<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Pareho o mas mababa ang bersyon ng external na extension kumpara sa umiiral nang extension.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Lumabas at i-childlock</translation> <translation id="4976009197147810135">I-split nang patayo</translation> <translation id="4977942889532008999">Kumpirmahin ang Pag-access</translation> -<translation id="4978905460870207779">Puwedeng hilingin ng mga site na gumamit ng Flash</translation> <translation id="4980805016576257426">May malware ang extension na ito.</translation> <translation id="4981449534399733132">Para i-clear ang data sa pag-browse sa lahat ng iyong naka-sync na device at sa Google Account mo, <ph name="BEGIN_LINK" />mag-sign in<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Software ng device</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">Aalisin sa device na ito ang data na nauugnay sa app na ito.</translation> <translation id="5908474332780919512">Buksan ang App Kapag Nag-sign In Ka</translation> <translation id="5908695239556627796">Bilis ng pag-scroll ng mouse</translation> -<translation id="5908769186679515905">I-block ang mga site sa pagpapatakbo ng Flash</translation> <translation id="5910363049092958439">I-sa&ve ang Imahe Bilang...</translation> <translation id="5910726859585389579">Offline ang <ph name="DEVICE_TYPE" /></translation> <translation id="5911533659001334206">Shortcut viewer</translation> @@ -5836,7 +5826,6 @@ <translation id="7831491651892296503">Nagkaroon ng error sa pag-configure sa network</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Oras ng pagtatapos</translation> -<translation id="783214144752121388">I-block ang mga site sa pagpapatakbo ng Flash (inirerekomenda)</translation> <translation id="7833720883933317473">Lalabas dito ang mga na-save na custom na salita</translation> <translation id="7835178595033117206">Inalis ang bookmark</translation> <translation id="7836850009646241041">Subukang pindutin ulit ang iyong security key</translation> @@ -6064,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Naka-encrypt ang file na ito. Hilingin sa may-ari nitong i-decrypt ito.}one{Naka-encrypt ang ilan sa mga file na ito. Hilingin sa may-ari ng mga ito na i-decrypt ang mga ito.}other{Naka-encrypt ang ilan sa mga file na ito. Hilingin sa may-ari ng mga ito na i-decrypt ang mga ito.}}</translation> <translation id="808894953321890993">Palitan ang password</translation> <translation id="8090234456044969073">Basahin ang isang listahan ng iyong mga pinakamadalas bisitahing website</translation> -<translation id="8092681102116274204">Hindi na sinusuportahan ang mga setting na may "*" na wildcard. Makipag-ugnayan sa developer ng extension o sa iyong administrator para <ph name="BEGIN_LINK" />baguhin ang mga setting na ito<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">Hindi tumutugon ang <ph name="PLUGIN_NAME" /></translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Mag-back up sa Google Drive. Madaling i-restore ang iyong data o magpalit ng device anumang oras. Kabilang sa iyong backup ang data ng app.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Ina-upload sa Google ang iyong mga backup at ine-encrypt gamit ang password ng Google Account mo.<ph name="END_PARAGRAPH2" /> @@ -6159,7 +6147,6 @@ <translation id="8201717382574620700">Pumili ng mga album sa <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Mangyaring ilagay muli ang iyong password upang i-update ang iyong profile sa <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Papadalhan ka ng mga notification at aalalahanin ang computer na ito para sa Messages bilang default. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">I-block ang Flash (inirerekomenda)</translation> <translation id="820568752112382238">Mga pinakamadalas bisitahing site</translation> <translation id="8206745257863499010">Musika</translation> <translation id="8206859287963243715">Cellular</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb index 4b35132..d33977fd 100644 --- a/chrome/app/resources/generated_resources_fr-CA.xtb +++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Arrêter</translation> <translation id="1272293450992660632">Les NIP ne correspondent pas.</translation> <translation id="1272978324304772054">Ce compte d'utilisateur n'appartient pas au domaine pour lequel cet appareil est enregistré. Si vous souhaitez vous enregistrer à un autre domaine, vous devez d'abord suivre la procédure de récupération de votre appareil.</translation> -<translation id="1274977772557788323">Paramètres de stockage d'Adobe Flash Player</translation> <translation id="1274997165432133392">Témoins et autres données de sites</translation> <translation id="1275718070701477396">Sélectionné</translation> <translation id="1276994519141842946">Impossible de désinstaller <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Vos favoris, votre historique et certains paramètres seront synchronisés avec votre compte Google.</translation> <translation id="1314565355471455267">RPV Android</translation> <translation id="131461803491198646">Réseau domestique, sans itinérance</translation> -<translation id="1315056510003830387">Non autorisés à utiliser Flash</translation> <translation id="1316136264406804862">Recherche en cours…</translation> <translation id="1316495628809031177">Synchronisation interrompue</translation> <translation id="1317637799698924700">Votre station d'accueil fonctionnera en mode de compatibilité USB de type C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC ne prend pas en charge ce type de chiffrement</translation> <translation id="1984417487208496350">Aucune protection (non recommandé)</translation> <translation id="1987317783729300807">Comptes</translation> -<translation id="1988494864246143197">Les sites utilisent généralement Flash pour lire du contenu audio ou vidéo, ou des jeux vidéo. Après décembre 2020, le lecteur Flash ne sera plus pris en charge.</translation> <translation id="1989112275319619282">Parcourir</translation> <translation id="1990512225220753005">Ne pas afficher les raccourcis sur cette page</translation> <translation id="1992397118740194946">Non défini</translation> @@ -1650,7 +1647,6 @@ <translation id="2880660355386638022">Position des fenêtres</translation> <translation id="2881076733170862447">Lorsque vous cliquez sur l'extension</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> va redémarrer et être réinitialisé dans un instant</translation> -<translation id="288387288628762616">Autorisés à utiliser Flash</translation> <translation id="2885378588091291677">Moniteur d'activité</translation> <translation id="2885729872133513017">Un problème est survenu lors du décodage de la réponse du serveur.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2082,6 +2078,7 @@ <translation id="3428419049384081277">Vous êtes connecté!</translation> <translation id="3428747202529429621">Il vous protège dans Chrome et peut être utilisé pour améliorer votre sécurité dans d'autres applications Google lorsque vous êtes connecté à votre compte</translation> <translation id="3428800329481094896">Récupération des clés SSH du conteneur Linux en cours…</translation> +<translation id="3429271624041785769">Langues pour le contenu Web</translation> <translation id="3429275422858276529">Ajoutez cette page aux favoris pour la retrouver plus facilement plus tard</translation> <translation id="3432227430032737297">Supprimer tous les éléments affichés</translation> <translation id="3432757130254800023">Envoyer des contenus audio et vidéo vers des écrans sur le réseau local</translation> @@ -2466,7 +2463,6 @@ <translation id="383669374481694771">Ces données d'ordre général concernent votre appareil et son utilisation (comme le niveau de la pile, les erreurs, ainsi que l'activité du système et des applications). Elles serviront à améliorer la plateforme Android. Certaines données collectées aideront également nos partenaires, tels que les concepteurs Android, à améliorer leurs applications et leurs produits.</translation> <translation id="3838085852053358637">Échec du chargement de l'extension</translation> <translation id="3838486795898716504">Pages suivantes pour <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Témoins et autres données de sites et de plugiciels</translation> <translation id="383891835335927981">Aucun site n'a fait l'objet d'un zoom avant ou arrière</translation> <translation id="3839509547554145593">Activer l'accélération du défilement pour la souris</translation> <translation id="3839516600093027468">Toujours empêcher <ph name="HOST" /> de voir le presse-papiers</translation> @@ -2508,6 +2504,7 @@ <translation id="3879748587602334249">Gestionnaire de téléchargement</translation> <translation id="3881478300875776315">Afficher moins de lignes</translation> <translation id="3882165008614329320">Vidéo existante de la caméra ou du fichier</translation> +<translation id="3884152383786131369">Le contenu Web offert en plusieurs langues utilisera la première langue prise en charge de cette liste. Ces préférences sont synchronisées avec les paramètres de votre navigateur. <ph name="BEGIN_LINK_LEARN_MORE" />En savoir plus<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Votre demande d'accès à ce site a été envoyée à <ph name="NAME" /></translation> <translation id="3888550877729210209">Prendre des notes avec <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Activez la synchronisation Chrome pour utiliser la synchronisation Wi-Fi</translation> @@ -2640,7 +2637,6 @@ <translation id="4023146161712577481">Détermination de la configuration de l'appareil en cours…</translation> <translation id="4025039777635956441">Désactiver le son pour le site sélectionné</translation> <translation id="4027804175521224372">(Bénéficiez de toutes les fonctionnalités — <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Vos paramètres Flash seront conservés jusqu'à ce que vous quittiez Chrome.</translation> <translation id="4028467762035011525">Ajouter des méthodes d'entrée</translation> <translation id="4031179711345676612">Le microphone est autorisé</translation> <translation id="4031527940632463547">Capteurs bloqués</translation> @@ -2792,7 +2788,6 @@ <translation id="4232375817808480934">Configurer Kerberos</translation> <translation id="4235200303672858594">Plein écran</translation> <translation id="4235965441080806197">Annuler la connexion</translation> -<translation id="4237773362828263530">Les paramètres contenant le caractère générique « * » ne sont plus pris en charge. Communiquez avec votre administrateur pour <ph name="BEGIN_LINK" />modifier ces paramètres<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Lire l'onglet plus tard}one{Lire l'onglet plus tard}other{Lire les onglets plus tard}}</translation> <translation id="4242145785130247982">Plusieurs certificats clients ne sont pas pris en charge</translation> <translation id="4242533952199664413">Ouvrir les paramètres</translation> @@ -3056,7 +3051,6 @@ <translation id="4548483925627140043">Signal introuvable</translation> <translation id="4549791035683739768">Votre clé de sécurité ne contient aucune empreinte digitale enregistrée</translation> <translation id="4551763574344810652">Appuyez sur <ph name="MODIFIER_KEY_DESCRIPTION" /> pour annuler l'action</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Réseau <ph name="NETWORK_TYPE" />; intensité du signal : <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Vous devez redémarrer votre Chromebook pour changer la langue de l'appareil. <ph name="BEGIN_LINK_LEARN_MORE" />En savoir plus<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">La version d'extension externe est égale ou inférieure à celle existante.</translation> @@ -3411,7 +3405,6 @@ <translation id="4974733135013075877">Quitter et activer le verrouillage enfant</translation> <translation id="4976009197147810135">Séparation verticale</translation> <translation id="4977942889532008999">Confirmation d'accès</translation> -<translation id="4978905460870207779">Les sites peuvent demander à utiliser Flash</translation> <translation id="4980805016576257426">Cette extension contient un logiciel malveillant.</translation> <translation id="4981449534399733132">Pour effacer les données de navigation de tous vos appareils synchronisés et de votre compte Google, <ph name="BEGIN_LINK" />connectez-vous<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Logiciels sur l'appareil</translation> @@ -4182,7 +4175,6 @@ <translation id="5906732635754427568">Les données associées à cette application seront supprimées de cet appareil.</translation> <translation id="5908474332780919512">Démarrer l'application lorsque vous vous connectez</translation> <translation id="5908695239556627796">Vitesse de défilement de la souris</translation> -<translation id="5908769186679515905">Bloquer l'exécution de Flash par les sites</translation> <translation id="5910363049092958439">En&registrer l'image sous...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> est hors ligne</translation> <translation id="5911533659001334206">Visualiseur de raccourcis</translation> @@ -4366,6 +4358,7 @@ <translation id="6112727384379533756">Ajouter un ticket</translation> <translation id="6112931163620622315">Vérifier votre téléphone</translation> <translation id="6112952769866305444">Modifier la personne, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Définir le moteur de recherche par défaut pour le navigateur Chrome et le lanceur d'applications de l'appareil <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Pour utiliser Smart Lock, passez au profil d'utilisateur principal sur votre téléphone</translation> <translation id="6116921718742659598">Modifier les paramètres de langue et d'entrée</translation> <translation id="6120205520491252677">Épingler cette page à l'écran de démarrage...</translation> @@ -5232,6 +5225,7 @@ <translation id="7140928199327930795">Aucun autre périphérique accessible.</translation> <translation id="7141105143012495934">La connexion a échoué, car les détails de votre compte n'ont pas pu être récupérés. Veuillez communiquer avec votre administrateur ou réessayer.</translation> <translation id="7143207342074048698">Connexion…</translation> +<translation id="7143358760238281735">Aucune application à partager</translation> <translation id="7144878232160441200">Réessayer</translation> <translation id="714876143603641390">Connectivité LAN</translation> <translation id="7149893636342594995">24 dernières heures</translation> @@ -5703,6 +5697,7 @@ <translation id="7707922173985738739">Utiliser les données mobiles</translation> <translation id="7709152031285164251">Échec — <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Diffuser…</translation> +<translation id="7712739869553853093">Boîte de dialogue d'aperçu d'impression</translation> <translation id="7712836429117959503">Extension inconnue avec l'identifiant <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Les témoins de <ph name="DOMAIN" /> sont autorisés</translation> <translation id="7714464543167945231">Certificat</translation> @@ -5832,7 +5827,6 @@ <translation id="7831491651892296503">Erreur de configuration réseau</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Heure de fin</translation> -<translation id="783214144752121388">Empêcher les sites d'utiliser Flash (recommandé)</translation> <translation id="7833720883933317473">Les mots personnalisés enregistrés s'afficheront ici</translation> <translation id="7835178595033117206">Favori supprimé</translation> <translation id="7836850009646241041">Essayez de toucher votre clé de sécurité à nouveau</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Ce fichier est chiffré. Demandez à son propriétaire de le déchiffrer.}one{Ce fichier est chiffré. Demandez à son propriétaire de le déchiffrer.}other{Certains de ces fichiers sont chiffrés. Demandez à leur propriétaire de les déchiffrer.}}</translation> <translation id="808894953321890993">Changer le mot de passe</translation> <translation id="8090234456044969073">Lire une liste des sites Web que vous visitez le plus</translation> -<translation id="8092681102116274204">Les paramètres contenant le caractère générique « * » ne sont plus pris en charge. Communiquez avec le concepteur de l'extension ou avec votre administrateur pour <ph name="BEGIN_LINK" />modifier ces paramètres<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">Le plugiciel <ph name="PLUGIN_NAME" /> ne répond pas</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Sauvegarder sur Google Disque. Restaurez vos données aisément ou changez d'appareil à tout moment. Votre sauvegarde comprend les données des applications.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Vos sauvegardes sont téléversées dans les serveurs de Google et sont chiffrées en utilisant le mot de passe de votre compte Google.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">Sélectionner des albums de type <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Veuillez entrer de nouveau votre mot de passe pour mettre à jour votre profil <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Vous envoyer des notifications et mémoriser cet ordinateur par défaut pour les messages. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Bloquer Flash (recommandé)</translation> <translation id="820568752112382238">Sites les plus visités</translation> <translation id="8206745257863499010">Mélodie</translation> <translation id="8206859287963243715">Cellulaire</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 5ee79b154..b931232 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Arrêter</translation> <translation id="1272293450992660632">Les valeurs de code PIN sont différentes.</translation> <translation id="1272978324304772054">Ce compte utilisateur n'appartient pas au domaine auprès duquel l'appareil est enregistré. Si vous souhaitez vous enregistrer auprès d'un autre domaine, vous devez d'abord suivre la procédure de récupération de votre appareil.</translation> -<translation id="1274977772557788323">Paramètres de stockage d'Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies et autres données de site</translation> <translation id="1275718070701477396">Sélectionnée</translation> <translation id="1276994519141842946">Impossible de désinstaller <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Vos favoris, votre historique et d'autres paramètres seront synchronisés avec votre compte Google.</translation> <translation id="1314565355471455267">VPN Android</translation> <translation id="131461803491198646">Réseau domestique, sans itinérance</translation> -<translation id="1315056510003830387">Non autorisé à utiliser Flash</translation> <translation id="1316136264406804862">Recherche en cours…</translation> <translation id="1316495628809031177">Synchronisation en pause</translation> <translation id="1317637799698924700">Votre station d'accueil fonctionnera dans le mode compatible USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC n'est pas compatible avec ce type de chiffrement</translation> <translation id="1984417487208496350">Aucune protection (non recommandé)</translation> <translation id="1987317783729300807">Comptes</translation> -<translation id="1988494864246143197">Les sites utilisent généralement Flash pour lire du contenu audio ou vidéo, ou des jeux vidéo. Flash Player ne sera plus accepté après décembre 2020.</translation> <translation id="1989112275319619282">Parcourir</translation> <translation id="1990512225220753005">Ne pas afficher de raccourcis sur cette page</translation> <translation id="1992397118740194946">Non défini</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Positionnement des fenêtres</translation> <translation id="2881076733170862447">Lorsque vous cliquez sur l'extension</translation> <translation id="2882943222317434580">Dans un instant, <ph name="IDS_SHORT_PRODUCT_NAME" /> va redémarrer et être réinitialisé.</translation> -<translation id="288387288628762616">Autorisé à utiliser Flash</translation> <translation id="2885378588091291677">Gestionnaire de tâches</translation> <translation id="2885729872133513017">Un problème est survenu lors du décodage de la réponse du serveur.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2465,7 +2461,6 @@ <translation id="383669374481694771">Ces informations d'ordre général concernent votre appareil et son utilisation (comme le niveau de la batterie, les erreurs, ainsi que l'activité du système et des applications). Elles serviront à améliorer Android, et certaines données globales aideront également nos développeurs d'applications et nos partenaires tels que les développeurs Android, à perfectionner leurs applications et leurs produits.</translation> <translation id="3838085852053358637">Échec du chargement de l'extension</translation> <translation id="3838486795898716504">Plus de pages <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies et autres données de site et de plug-in</translation> <translation id="383891835335927981">Vous n'avez fait de zoom avant ou arrière sur aucun site</translation> <translation id="3839509547554145593">Activer l'accélération du défilement avec la souris</translation> <translation id="3839516600093027468">Toujours empêcher <ph name="HOST" /> de voir le contenu du presse-papiers</translation> @@ -2639,7 +2634,6 @@ <translation id="4023146161712577481">Détermination de la configuration de l'appareil en cours…</translation> <translation id="4025039777635956441">Bloquer le site sélectionné</translation> <translation id="4027804175521224372">(Bénéficiez de toutes ses fonctionnalités - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Vos paramètres Flash seront conservés jusqu'à ce que vous quittiez Chrome.</translation> <translation id="4028467762035011525">Ajouter des modes de saisie</translation> <translation id="4031179711345676612">Micro autorisé</translation> <translation id="4031527940632463547">Capteurs bloqués</translation> @@ -2791,7 +2785,6 @@ <translation id="4232375817808480934">Configurer Kerberos</translation> <translation id="4235200303672858594">Plein écran</translation> <translation id="4235965441080806197">Annuler la connexion</translation> -<translation id="4237773362828263530">Les paramètres avec des caractères génériques "*" ne sont plus acceptés. Contactez votre administrateur pour <ph name="BEGIN_LINK" />modifier ces paramètres<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Lire l'onglet plus tard}one{Lire l'onglet plus tard}other{Lire les onglets plus tard}}</translation> <translation id="4242145785130247982">Plusieurs certificats client ne sont pas compatibles</translation> <translation id="4242533952199664413">Ouvrir les paramètres</translation> @@ -3055,7 +3048,6 @@ <translation id="4548483925627140043">Signal introuvable</translation> <translation id="4549791035683739768">Aucune empreinte digitale n'est stockée dans votre clé de sécurité</translation> <translation id="4551763574344810652">Appuyez sur <ph name="MODIFIER_KEY_DESCRIPTION" /> pour annuler</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Réseau <ph name="NETWORK_TYPE" />, force du signal : <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Vous devez redémarrer votre Chromebook pour changer la langue de l'appareil. <ph name="BEGIN_LINK_LEARN_MORE" />En savoir plus<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">La version d'extension externe est identique ou antérieure à la version existante.</translation> @@ -3410,7 +3402,6 @@ <translation id="4974733135013075877">Fermer et activer le verrouillage enfant</translation> <translation id="4976009197147810135">Séparation verticale</translation> <translation id="4977942889532008999">Confirmer l'accès</translation> -<translation id="4978905460870207779">Les sites peuvent demander à utiliser Flash</translation> <translation id="4980805016576257426">Cette extension contient des logiciels malveillants.</translation> <translation id="4981449534399733132">Pour effacer les données de navigation sur tous vos appareils synchronisés et dans votre compte Google, <ph name="BEGIN_LINK" />connectez-vous<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Logiciels de l'appareil</translation> @@ -4182,7 +4173,6 @@ <translation id="5906732635754427568">Les données associées à cette application seront supprimées de cet appareil.</translation> <translation id="5908474332780919512">Lancer l'application lors de la connexion</translation> <translation id="5908695239556627796">Vitesse de défilement avec la souris</translation> -<translation id="5908769186679515905">Interdire aux sites d'exécuter Flash</translation> <translation id="5910363049092958439">En&registrer l'image sous...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> est hors connexion</translation> <translation id="5911533659001334206">Visionneuse de raccourcis</translation> @@ -5832,7 +5822,6 @@ <translation id="7831491651892296503">Erreur lors de la configuration du réseau</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Heure de fin</translation> -<translation id="783214144752121388">Empêcher les sites d'exécuter Flash (recommandé)</translation> <translation id="7833720883933317473">Les mots personnalisés enregistrés s'afficheront ici</translation> <translation id="7835178595033117206">Favori supprimé</translation> <translation id="7836850009646241041">Appuyez de nouveau sur votre clé de sécurité</translation> @@ -6060,7 +6049,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Ce fichier étant chiffré, demandez à son propriétaire de le déchiffrer.}one{Ce fichier étant chiffré, demandez à son propriétaire de le déchiffrer.}other{Certains de ces fichiers étant chiffrés, demandez à leur propriétaire de les déchiffrer.}}</translation> <translation id="808894953321890993">Modifier le mot de passe</translation> <translation id="8090234456044969073">Lire une liste des sites Web que vous consultez le plus souvent</translation> -<translation id="8092681102116274204">Les paramètres avec des caractères génériques "*" ne sont plus acceptés. Contactez le développeur de l'extension ou votre administrateur pour <ph name="BEGIN_LINK" />modifier ces paramètres<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ne répond pas</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Sauvegarder dans Google Drive. Restaurez vos données ou changez d'appareil facilement et à tout moment. La sauvegarde inclut les données d'applications.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Vos sauvegardes sont importées dans Google et chiffrées à l'aide du mot de passe de votre compte Google.<ph name="END_PARAGRAPH2" /> @@ -6155,7 +6143,6 @@ <translation id="8201717382574620700">Sélectionner des albums dans <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Saisissez à nouveau votre mot de passe pour modifier votre profil <ph name="DEVICE_TYPE" /></translation> <translation id="8203732864715032075">Vous envoyer des notifications et mémoriser cet ordinateur pour l'utilisation de l'appli Messages. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Bloquer Flash (recommandé)</translation> <translation id="820568752112382238">Sites les plus consultés</translation> <translation id="8206745257863499010">Musique</translation> <translation id="8206859287963243715">Mobile</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 02a6aaa..dc2b97a6 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Deter</translation> <translation id="1272293450992660632">Os valores dos PIN non coinciden.</translation> <translation id="1272978324304772054">Esta conta de usuario non pertence ao dominio no que se rexistrou o dispositivo. Se queres rexistralo nun dominio diferente, primeiro debes levar a cabo o proceso de recuperación do dispositivo.</translation> -<translation id="1274977772557788323">Configuración de almacenamento de Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies e outros datos do sitio</translation> <translation id="1275718070701477396">Seleccionado</translation> <translation id="1276994519141842946">Non se puido desinstalar <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Os teus marcadores, historiais e demais configuracións sincronizaranse coa túa conta de Google.</translation> <translation id="1314565355471455267">VPN de Android</translation> <translation id="131461803491198646">Rede doméstica, sen itinerancia</translation> -<translation id="1315056510003830387">Sitios que non poden usar Flash</translation> <translation id="1316136264406804862">Buscando...</translation> <translation id="1316495628809031177">A sincronización púxose en pausa</translation> <translation id="1317637799698924700">A túa base funcionará no modo de compatibilidade con USB tipo C.</translation> @@ -877,7 +875,6 @@ <translation id="197989455406964291">O KDC non é compatible co tipo de encriptación</translation> <translation id="1984417487208496350">Sen protección (non recomendado)</translation> <translation id="1987317783729300807">Contas</translation> -<translation id="1988494864246143197">Os sitios adoitan usar Flash para reproducir contido de audio e de vídeo, así como para ofrecerche videoxogos. A partir de decembro de 2020, Flash Player deixará de ser compatible.</translation> <translation id="1989112275319619282">Examinar</translation> <translation id="1990512225220753005">Non se mostran atallos nesta páxina</translation> <translation id="1992397118740194946">Sen configurar</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">Colocación das ventás</translation> <translation id="2881076733170862447">Cando fagas clic na extensión</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> reiniciarase e restablecerase momentaneamente</translation> -<translation id="288387288628762616">Sitios que poden usar Flash</translation> <translation id="2885378588091291677">Xestor de tarefas</translation> <translation id="2885729872133513017">Produciuse un problema ao descodificar a resposta do servidor.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2080,6 +2076,7 @@ <translation id="3428419049384081277">Iniciaches sesión</translation> <translation id="3428747202529429621">Protéxete en Chrome e pode utilizarse para mellorar a túa seguranza noutras aplicacións de Google cando teñas iniciada a sesión</translation> <translation id="3428800329481094896">Obtendo claves SSH do contedor de Linux</translation> +<translation id="3429271624041785769">Idiomas de contido web</translation> <translation id="3429275422858276529">Engade esta páxina aos marcadores para atopala facilmente máis tarde</translation> <translation id="3432227430032737297">Eliminar todos os sitios mostrados</translation> <translation id="3432757130254800023">Enviar audio e vídeo ás pantallas que se atopan na rede local</translation> @@ -2464,7 +2461,6 @@ <translation id="383669374481694771">Trátase de información xeral acerca deste dispositivo e do seu uso, como o nivel de batería, a actividade das aplicacións e do sistema, e os erros. Os datos utilizaranse coa finalidade de mellorar Android, e algunha información agregada tamén axudará ás aplicacións de Google e aos socios, como os programadores de Android, a mellorar as súas aplicacións e produtos.</translation> <translation id="3838085852053358637">Produciuse un erro ao cargar a extensión</translation> <translation id="3838486795898716504">Máis <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies e outros datos de sitios e plugins</translation> <translation id="383891835335927981">Non se achegou nin se afastou o zoom en ningún sitio</translation> <translation id="3839509547554145593">Activar aceleración de desprazamento do rato</translation> <translation id="3839516600093027468">Impedir sempre que o host <ph name="HOST" /> vexa o contido do portapapeis</translation> @@ -2506,6 +2502,7 @@ <translation id="3879748587602334249">Administrador de descargas</translation> <translation id="3881478300875776315">Mostrar menos liñas</translation> <translation id="3882165008614329320">Vídeo existente da cámara ou do ficheiro</translation> +<translation id="3884152383786131369">No contido web que estean dispoñibles varios idiomas usarase o primeiro admitido da lista. Estas preferencias sincronízanse coa configuración do teu navegador. <ph name="BEGIN_LINK_LEARN_MORE" />Máis información<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Enviouse a túa solicitude para acceder a este sitio a <ph name="NAME" /></translation> <translation id="3888550877729210209">Tomar notas con <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Activar Sincronización de Chrome para usar a función Sincronización wifi</translation> @@ -2638,7 +2635,6 @@ <translation id="4023146161712577481">Determinando a configuración do dispositivo.</translation> <translation id="4025039777635956441">Silenciar sitio seleccionado</translation> <translation id="4027804175521224372">(Non perdas opcións, <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">A configuración de Flash manterase ata que saias de Chrome.</translation> <translation id="4028467762035011525">Engadir métodos de introdución de texto</translation> <translation id="4031179711345676612">Permítese o micrófono</translation> <translation id="4031527940632463547">Sensores bloqueados</translation> @@ -2790,7 +2786,6 @@ <translation id="4232375817808480934">Configurar Kerberos</translation> <translation id="4235200303672858594">Pantalla completa</translation> <translation id="4235965441080806197">Cancelar inicio de sesión</translation> -<translation id="4237773362828263530">As opcións de configuración cos comodíns "*" xa non están dispoñibles. Ponte en contacto co teu administrador para <ph name="BEGIN_LINK" />cambiar estas opcións de configuración<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Ler pestana máis tarde}other{Ler pestanas máis tarde}}</translation> <translation id="4242145785130247982">Non se permite utilizar varios certificados de cliente</translation> <translation id="4242533952199664413">Abrir configuración</translation> @@ -3054,7 +3049,6 @@ <translation id="4548483925627140043">Non se atopou o sinal</translation> <translation id="4549791035683739768">A túa chave de seguranza non ten impresións dixitais almacenadas</translation> <translation id="4551763574344810652">Preme <ph name="MODIFIER_KEY_DESCRIPTION" /> para desfacer a acción</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Rede de tipo <ph name="NETWORK_TYPE" />, intensidade do sinal do <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Para cambiar o idioma do teu Chromebook, debes reiniciar o dispositivo. <ph name="BEGIN_LINK_LEARN_MORE" />Máis información<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">A extensión externa ten a mesma versión ou unha inferior en comparación coa existente.</translation> @@ -3409,7 +3403,6 @@ <translation id="4974733135013075877">Saír e activar bloqueo para nenos</translation> <translation id="4976009197147810135">Dividir verticalmente</translation> <translation id="4977942889532008999">Confirmar acceso</translation> -<translation id="4978905460870207779">Os sitios poden pedirche permiso para usar Flash</translation> <translation id="4980805016576257426">Esta extensión contén software malicioso.</translation> <translation id="4981449534399733132">Para borrar os datos de navegación de todos os dispositivos sincronizados e da túa Conta de Google, tes que <ph name="BEGIN_LINK" />iniciar sesión<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Software do dispositivo</translation> @@ -4180,7 +4173,6 @@ <translation id="5906732635754427568">Os datos asociados con esta aplicación quitaranse deste dispositivo.</translation> <translation id="5908474332780919512">Iniciar aplicación ao iniciar sesión</translation> <translation id="5908695239556627796">Velocidade de desprazamento do rato</translation> -<translation id="5908769186679515905">Non permitir que os sitios executen Flash</translation> <translation id="5910363049092958439">Gar&dar imaxe como...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> está sen conexión</translation> <translation id="5911533659001334206">Visor de atallos</translation> @@ -4364,6 +4356,7 @@ <translation id="6112727384379533756">Engadir tícket</translation> <translation id="6112931163620622315">Consulta o teléfono</translation> <translation id="6112952769866305444">Edita a persoa, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Establece o motor de busca predeterminado para o navegador Chrome e o menú de aplicacións de <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Para utilizar Smart Lock, cambia ao perfil do usuario principal do teléfono</translation> <translation id="6116921718742659598">Cambiar configuración de idioma e entrada</translation> <translation id="6120205520491252677">Fixar esta páxina á pantalla de inicio...</translation> @@ -5230,6 +5223,7 @@ <translation id="7140928199327930795">Non hai ningún outro dispositivo dispoñible.</translation> <translation id="7141105143012495934">Produciuse un erro no inicio de sesión porque non se puideron recuperar os datos da túa conta. Ponte en contacto co administrador ou téntao de novo.</translation> <translation id="7143207342074048698">Conectando</translation> +<translation id="7143358760238281735">Sen aplicacións dispoñibles</translation> <translation id="7144878232160441200">Volver tentar</translation> <translation id="714876143603641390">Conectividade LAN</translation> <translation id="7149893636342594995">Últimas 24 horas</translation> @@ -5701,6 +5695,7 @@ <translation id="7707922173985738739">Utilizaranse datos móbiles</translation> <translation id="7709152031285164251">Erro: <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Emitir...</translation> +<translation id="7712739869553853093">Cadro de diálogo de vista previa de impresión</translation> <translation id="7712836429117959503">Extensión descoñecida co código de identificación <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Permítense as cookies de <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">Certificado</translation> @@ -5830,7 +5825,6 @@ <translation id="7831491651892296503">Produciuse un erro ao configurar a rede</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Hora de finalización</translation> -<translation id="783214144752121388">Impedir que os sitios executen Flash (recomendado)</translation> <translation id="7833720883933317473">As palabras personalizadas gardadas aparecerán aquí</translation> <translation id="7835178595033117206">Quitouse o marcador</translation> <translation id="7836850009646241041">Proba a tocar de novo a túa chave de seguranza</translation> @@ -6057,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Este ficheiro está encriptado. Pídelle ao seu propietario que o desencripte.}other{Algúns destes ficheiros están encriptados. Pídelle ao seu propietario que os desencripte.}}</translation> <translation id="808894953321890993">Cambiar contrasinal</translation> <translation id="8090234456044969073">Ler unha lista dos sitios web que visitas con máis frecuencia</translation> -<translation id="8092681102116274204">As opcións de configuración cos comodíns "*" xa non están dispoñibles. Ponte en contacto co programador de extensións ou co teu administrador para <ph name="BEGIN_LINK" />cambiar estas opcións de configuración<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">O complemento <ph name="PLUGIN_NAME" /> non responde</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Crear copia de seguranza en Google Drive. Restaura facilmente os teus datos ou cambia de dispositivo en calquera momento. A copia de seguranza inclúe os datos das aplicacións.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />As túas copias de seguranza cárganse en Google e encríptanse co contrasinal da túa Conta de Google.<ph name="END_PARAGRAPH2" /> @@ -6152,7 +6145,6 @@ <translation id="8201717382574620700">Seleccionar álbums de <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Volve introducir o contrasinal para actualizar o teu perfil de <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Envíache notificacións e lembra de modo predeterminado este ordenador para Mensaxes. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Bloquear Flash (recomendado)</translation> <translation id="820568752112382238">Sitios máis visitados</translation> <translation id="8206745257863499010">Tipo blues</translation> <translation id="8206859287963243715">Móbil</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index f16a428..f40035c5 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">રોકો</translation> <translation id="1272293450992660632">પિન મૂલ્યો મેળ ખાતા નથી.</translation> <translation id="1272978324304772054">આ વપરાશકર્તા એકાઉન્ટ ડિવાઇસની નોંધણી થયેલા ડોમેનમાંનું નથી. જો તમે કોઈ અલગ ડોમેન પર નોંધણી કરવા માગતા હો, તો તમારે પ્રથમ ડિવાઇસની રિકવરી તપાસવી પડશે.</translation> -<translation id="1274977772557788323">Adobe Flash Player સ્ટોરેજ સેટિંગ્સ</translation> <translation id="1274997165432133392">કુકીઝ અને અન્ય સાઇટ ડેટા</translation> <translation id="1275718070701477396">પસંદ કરેલું</translation> <translation id="1276994519141842946"><ph name="APP_NAME" />ને અનઇન્સ્ટૉલ કરી શક્યાં નહીં</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">તમારા બુકમાર્ક, ઇતિહાસ અને બીજા સેટિંગ તમારા Google એકાઉન્ટ સાથે સિંક કરવામાં આવશે.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">હોમ નેટવર્ક, રોમિંગ નહીં</translation> -<translation id="1315056510003830387">ફ્લૅશનો ઉપયોગ કરવાની મંજૂરી નથી</translation> <translation id="1316136264406804862">શોધી રહ્યું છે ...</translation> <translation id="1316495628809031177">સિંક થોભાવ્યું છે</translation> <translation id="1317637799698924700">તમારું ડૉકિંગ સ્ટેશન USB Type-C સુસંગત મોડમાં ઑપરેટ થશે.</translation> @@ -874,7 +872,6 @@ <translation id="197989455406964291">KDCમાં એન્ક્રિપ્શન પ્રકારની સુવિધા નથી</translation> <translation id="1984417487208496350">કોઈ સંરક્ષણ નથી (સુઝાવ આપતા નથી)</translation> <translation id="1987317783729300807">એકાઉન્ટ્સ</translation> -<translation id="1988494864246143197">ઑડિયો, વીડિયો અથવા વીડિયો ગેમ ચલાવવા માટે, સાઇટ સામાન્ય રીતે ફ્લૅશનો ઉપયોગ કરે છે. 2020 ડિસેમ્બર પછી Flash Player ચાલશે નહીં.</translation> <translation id="1989112275319619282">બ્રાઉઝ કરો</translation> <translation id="1990512225220753005">આ પેજ પર શૉર્ટકટ બતાવશો નહીં</translation> <translation id="1992397118740194946">સેટ નથી</translation> @@ -1645,7 +1642,6 @@ <translation id="2880660355386638022">વિંડોનું સ્થાન નિયોજન</translation> <translation id="2881076733170862447">તમે એક્સ્ટેંશનને ક્લિક કરો ત્યારે</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> પુનઃપ્રારંભ થશે અને પળવારમાં ફરીથી સેટ થશે</translation> -<translation id="288387288628762616">ફ્લૅશનો ઉપયોગ કરવાની મંજૂરી છે</translation> <translation id="2885378588091291677">કાર્ય વ્યવસ્થાપક</translation> <translation id="2885729872133513017">સર્વરના પ્રતિસાદને ડીકોડ કરતી વખતે સમસ્યા આવી.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2461,7 +2457,6 @@ <translation id="383669374481694771">આ ડિવાઇસ અને તે કેવી રીતે ઉપયોગમાં લેવાય છે તે (જેમ કે બૅટરીનું લેવલ, સિસ્ટમ અને ઍપ પ્રવૃત્તિ તેમજ ભૂલો) વિશેની આ સામાન્ય માહિતી છે. આ ડેટાનો ઉપયોગ Androidને બહેતર બનાવવા માટે કરવામાં આવશે અને અમુક એકીકૃત માહિતી, Google ઍપ અને ભાગીદારો, જેમ કે Android ડેવલપરને પણ તેઓની ઍપ અને પ્રોડક્ટને બહેતર બનાવવામાં સહાયરૂપ થશે.</translation> <translation id="3838085852053358637">એક્સ્ટેન્શન લોડ કરવામાં નિષ્ફળ થયાં</translation> <translation id="3838486795898716504">વધુ <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">કુકીઝ અને અન્ય સાઇટ તથા પ્લગિન ડેટા</translation> <translation id="383891835335927981">કોઈ સાઇટનું ઝૂમ વધારેલ અથવા તો ઘટાડેલ નથી</translation> <translation id="3839509547554145593">માઉસ સ્ક્રોલ ઍક્સલરેશન સુવિધા ચાલુ કરો</translation> <translation id="3839516600093027468"><ph name="HOST" />ને હંમેશા ક્લિપબોર્ડ જોવાથી બ્લૉક કરો</translation> @@ -2635,7 +2630,6 @@ <translation id="4023146161712577481">ઉપકરણ ગોઠવણી નક્કી કરી રહ્યાં છે.</translation> <translation id="4025039777635956441">પસંદ કરેલી સાઇટને મ્યૂટ કરો</translation> <translation id="4027804175521224372">(તમે ભૂલી રહ્યા છો - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">જ્યાં સુધી તમે Chrome છોડશો નહીં, ત્યાં સુધી તમારી ફ્લૅશ સેટિંગને સાચવી રખાશે.</translation> <translation id="4028467762035011525">ઇનપુટ પદ્ધતિઓ ઉમેરો</translation> <translation id="4031179711345676612">માઇક્રોફોનને મંજૂરી</translation> <translation id="4031527940632463547">સેન્સર બ્લૉક કરેલ છે</translation> @@ -2787,7 +2781,6 @@ <translation id="4232375817808480934">Kerberosની ગોઠવણી કરો</translation> <translation id="4235200303672858594">સમગ્ર સ્ક્રીન</translation> <translation id="4235965441080806197">સાઇન ઇન રદ કરો</translation> -<translation id="4237773362828263530">હવે "*" વાઇલ્ડ કાર્ડ ધરાવતા સેટિંગને સપોર્ટ અપાતો નથી. <ph name="BEGIN_LINK" />આ સેટિંગ બદલવા<ph name="END_LINK" /> માટે તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{ટૅબ પછીથી વાંચો}one{ટૅબ પછીથી વાંચો}other{ટૅબ પછીથી વાંચો}}</translation> <translation id="4242145785130247982">એકથી વધુ ક્લાયન્ટ પ્રમાણપત્રોને સપોર્ટ આપવામાં આવતો નથી</translation> <translation id="4242533952199664413">સેટિંગ્સ ખોલો</translation> @@ -3051,7 +3044,6 @@ <translation id="4548483925627140043">નેટવર્કનું કોઈ સિગ્નલ મળી રહ્યું નથી</translation> <translation id="4549791035683739768">તમારી સિક્યુરિટી કીમાં કોઈ ફિંગરપ્રિન્ટ સંગ્રહિત નથી</translation> <translation id="4551763574344810652">છેલ્લો ફેરફાર રદ કરવા માટે <ph name="MODIFIER_KEY_DESCRIPTION" /> દબાવો</translation> -<translation id="4552089082226364758">ફ્લેશ</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> નેટવર્ક, સિગ્નલની પ્રબળતા <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">ડિવાઇસની ભાષા બદલવા માટે તમારે તમારું Chromebook ફરી ચાલુ કરવું જરૂરી છે. <ph name="BEGIN_LINK_LEARN_MORE" />વધુ જાણો<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">બાહ્ય એક્સ્ટેંશન હાલના એક્સ્ટેંશનની સરખામણીએ સમાન અથવા નીચલા વર્ઝન પર છે.</translation> @@ -3406,7 +3398,6 @@ <translation id="4974733135013075877">બહાર નિકળો અને ચાઇલ્ડ લૉક</translation> <translation id="4976009197147810135">સ્ક્રીનને ઊભી વિભાજિત કરો</translation> <translation id="4977942889532008999">ઍક્સેસની પુષ્ટિ કરો</translation> -<translation id="4978905460870207779">સાઇટ ફ્લૅશનો ઉપયોગ કરવાનું પૂછી શકે છે</translation> <translation id="4980805016576257426">આ એક્સટેન્શનમાં માલવેર છે.</translation> <translation id="4981449534399733132">તમારા બધા સિંક કરેલા ડિવાઇસ અને તમારા Google એકાઉન્ટમાંથી બ્રાઉઝિંગ ડેટા સાફ કરવા માટે, <ph name="BEGIN_LINK" />સાઇન ઇન કરો<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">ડિવાઇસનું સૉફ્ટવેર</translation> @@ -4178,7 +4169,6 @@ <translation id="5906732635754427568">આ ઍપ્લિકેશન સાથે સંકળાયેલ ડેટાને આ ઉપકરણમાંથી દૂર કરવામાં આવશે.</translation> <translation id="5908474332780919512">તમે સાઇન ઇન કરો ત્યારે ઍપ શરૂ કરો</translation> <translation id="5908695239556627796">માઉસ સ્ક્રોલની ઝડપ</translation> -<translation id="5908769186679515905">સાઇટ્સને ફ્લેશ ચલાવવાથી અવરોધિત કરો</translation> <translation id="5910363049092958439">છબીને આ રૂપે સા&ચવો...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ઑફલાઇન છે</translation> <translation id="5911533659001334206">શૉર્ટકટ દર્શક</translation> @@ -5828,7 +5818,6 @@ <translation id="7831491651892296503">નેટવર્કની ગોઠવણી કરતી વખતે ભૂલ આવી</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">સમાપ્તિ સમય</translation> -<translation id="783214144752121388">સાઇટને ફ્લૅશ (સુઝાવ આપેલ) ચલાવવાથી બ્લૉક કરો</translation> <translation id="7833720883933317473">સાચવેલ કસ્ટમ શબ્દો અહીં દેખાશે</translation> <translation id="7835178595033117206">બુકમાર્ક કાઢી નાખ્યું</translation> <translation id="7836850009646241041">તમારી સિક્યુરિટી કીને ફરી સ્પર્શ કરી જુઓ</translation> @@ -6051,7 +6040,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{આ ફાઇલ એન્ક્રિપ્ટ કરેલી છે. તેના માલિકને તેને ડિક્રિપ્ટ કરવાનું કહો.}one{આમાંની કેટલીક ફાઇલો એન્ક્રિપ્ટ કરેલી છે. તેમના માલિકને તેને ડિક્રિપ્ટ કરવાનું કહો.}other{આમાંની કેટલીક ફાઇલો એન્ક્રિપ્ટ કરેલી છે. તેમના માલિકને તેને ડિક્રિપ્ટ કરવાનું કહો.}}</translation> <translation id="808894953321890993">પાસવર્ડ બદલો</translation> <translation id="8090234456044969073">તમારી મોટાભાગની અવારનાવર મુલાકાત લીધેલ વેબસાઇટ્સની સૂચિ વાંચો</translation> -<translation id="8092681102116274204">હવે "*" વાઇલ્ડ કાર્ડ ધરાવતા સેટિંગને સપોર્ટ અપાતો નથી. <ph name="BEGIN_LINK" />આ સેટિંગ બદલવા<ph name="END_LINK" /> માટે એક્સ્ટેન્શન ડેવલપરનો અથવા તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> પ્રતિસાદ આપી રહ્યું નથી</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ડ્રાઇવમાં બૅકઅપ લો. કોઈપણ સમયે તમારો ડેટા સરળતાથી પાછો મેળવો અથવા ડિવાઇસ સ્વિચ કરો. તમારા બૅકઅપમાં ઍપનો ડેટા શામેલ હોય છે.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />તમારા બૅકઅપ Google પર અપલોડ કરવામાં આવે છે અને Google એકાઉન્ટ પાસવર્ડનો ઉપયોગ કરીને એન્ક્રિપ્ટ કરવામાં આવે છે.<ph name="END_PARAGRAPH2" /> @@ -6146,7 +6134,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" />ના આલ્બમ પસંદ કરો</translation> <translation id="8202160505685531999">તમારી <ph name="DEVICE_TYPE" /> પ્રોફાઇલને અપડેટ કરવા માટે કૃપા કરીને તમારો પાસવર્ડ ફરીથી દાખલ કરો.</translation> <translation id="8203732864715032075">તમને નોટિફિકેશન મોકલે અને સંદેશ માટે ડિફૉલ્ટ રૂપે આ કમ્પ્યુટરને યાદ રાખે. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">ફ્લૅશને બ્લૉક કરો (ભલામણ કરવામાં આવે છે)</translation> <translation id="820568752112382238">સૌથી વધુ મુલાકાત લેવાયેલી સાઇટ</translation> <translation id="8206745257863499010">બ્લુસી</translation> <translation id="8206859287963243715">સેલ્યુલર</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 74b119e..7a46e8a 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">रोकें</translation> <translation id="1272293450992660632">पिन के मान मेल नहीं खाते.</translation> <translation id="1272978324304772054">यह उपयोगकर्ता खाता उस डोमेन से संबंधित नहीं है जिसमें डिवाइस का नाम दर्ज है. अगर आप किसी दूसरे डोमेन में नाम दर्ज करना चाहते हैं तो, आपको पहले डिवाइस बहाल करना होगा.</translation> -<translation id="1274977772557788323">Adobe Flash Player जगह सेटिंग</translation> <translation id="1274997165432133392">कुकी और साइट का अन्य डेटा</translation> <translation id="1275718070701477396">चयनित</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> अनइंस्टॉल नहीं हो सका</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">आपके बुकमार्क, इतिहास, और अन्य सेटिंग को आपके Google खाते में समन्वयित किया जाएगा</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">होम नेटवर्क, रोमिंग नहीं</translation> -<translation id="1315056510003830387">फ़्लैश इस्तेमाल करने की अनुमति नहीं है</translation> <translation id="1316136264406804862">खोज रहा है...</translation> <translation id="1316495628809031177">सिंक रोका हुआ है</translation> <translation id="1317637799698924700">आपका डॉकिंग स्टेशन, यूएसबी टाइप-सी पर काम करने वाले मोड पर चलेगा.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">केडीसी में सुरक्षित करने का यह तरीका इस्तेमाल नहीं किया जा सकता.</translation> <translation id="1984417487208496350">कोई सुरक्षा नहीं (हम ऐसा करने का सुझाव नहीं देते)</translation> <translation id="1987317783729300807">खाते</translation> -<translation id="1988494864246143197">आम तौर पर, साइटें Flash का इस्तेमाल ऑडियो, वीडियो या वीडियो गेम चलाने के लिए करती हैं. दिसंबर 2020 के बाद Flash Player को बंद कर दिया जाएगा.</translation> <translation id="1989112275319619282">ब्राउज़ करें</translation> <translation id="1990512225220753005">इस पेज पर शॉर्टकट न दिखाएं</translation> <translation id="1992397118740194946">सेट नहीं है</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">विंडो प्लेसमेंट</translation> <translation id="2881076733170862447">जब आप एक्सटेंशन को क्लिक करते हैं</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> फिर से प्रारंभ होगा और जल्दी ही रीेसेट हो जाएगा</translation> -<translation id="288387288628762616">फ़्लैश का इस्तेमाल करने की अनुमति है</translation> <translation id="2885378588091291677">काम का प्रबंधक</translation> <translation id="2885729872133513017">सर्वर के जवाब को डिकोड करते समय कोई परेशानी हुई.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">आप साइन इन किए हुए हैं!</translation> <translation id="3428747202529429621">अगर आप Chrome में साइन इन हैं, तो यह सुविधा आपको सुरक्षित रखती है. साथ ही, अन्य Google ऐप्लिकेशन में इसका इस्तेमाल सुरक्षा को बेहतर बनाने में भी हो सकता है</translation> <translation id="3428800329481094896">Linux कंटेनर SSH कुंजियां लाई जा रही हैं</translation> +<translation id="3429271624041785769">वेब कॉन्टेंट की भाषाएं</translation> <translation id="3429275422858276529">बाद में इस पेज को आसानी से पाने के लिए इसे बुकमार्क करें</translation> <translation id="3432227430032737297">दिखाई गईं सभी कुकी निकालें</translation> <translation id="3432757130254800023">स्थानीय नेटवर्क पर उपलब्ध प्रदर्शनों पर ऑडियो और वीडियो भेजें</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">यह इस डिवाइस और इसके इस्तेमाल से जुड़ी सामान्य जानकारी है, जैसे कि बैटरी कितनी चार्ज है, सिस्टम, और ऐप्लिकेशन की गतिविधि और गड़बड़ियां. डिवाइस से जुड़े इस डेटा का इस्तेमाल Android काे बेहतर बनाने के लिए किया जाएगा. साथ ही, इकट्ठा की गई कुछ जानकारी की मदद से Android डेवलपर जैसे पार्टनर और Google के ऐप्लिकेशन अपने प्रॉडक्ट को बेहतर बना पाएंगे.</translation> <translation id="3838085852053358637">एक्सटेंशन लोड नहीं हो सका</translation> <translation id="3838486795898716504">ज़्यादा <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">कुकी और अन्य साइट और प्लग इन डेटा</translation> <translation id="383891835335927981">कोई भी साइट ज़ूम इन या ज़ूम आउट नहीं की गई है</translation> <translation id="3839509547554145593">माउस से स्क्रोल करने की रफ़्तार बढ़ाने की सुविधा चालू करें</translation> <translation id="3839516600093027468"><ph name="HOST" /> को क्लिपबोर्ड देखने से हमेशा ब्लॉक करें</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">डाउनलोड मैनेजर</translation> <translation id="3881478300875776315">कम लाइनें दिखाएं</translation> <translation id="3882165008614329320">कैमरा या फ़ाइल से मौजूदा वीडियो</translation> +<translation id="3884152383786131369">कई भाषाओं में उपलब्ध वेब कॉन्टेंट, इस सूची में दी गई पहली भाषा में दिखाया जाएगा. इन प्राथमिकताओं को आपके ब्राउज़र की सेटिंग के साथ सिंक किया जाता है. <ph name="BEGIN_LINK_LEARN_MORE" />ज़्यादा जानें<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">यह साइट एक्सेस करने का आपका अनुरोध <ph name="NAME" /> को भेज दिया गया है</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> से नोट लेना</translation> <translation id="3890064827463908288">'वाई-फ़ाई सिंक' इस्तेमाल करने के लिए 'Chrome सिंक' चालू करें</translation> @@ -2638,7 +2635,6 @@ <translation id="4023146161712577481">डिवाइस कॉन्फ़िगरेशन तय करना.</translation> <translation id="4025039777635956441">चुनी गई साइट म्यूट करें</translation> <translation id="4027804175521224372">(आप इसे छोड़ रहे हैं—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">आपकी फ़्लैश सेटिंग को तब तक रखा जाएगा जब तक कि आप Chrome को छोड़ नहीं देते.</translation> <translation id="4028467762035011525">इनपुट का तरीका जोड़ें</translation> <translation id="4031179711345676612">माइक्रोफ़ोन की अनुमति है</translation> <translation id="4031527940632463547">सेंसर ब्लॉक हैं</translation> @@ -2790,7 +2786,6 @@ <translation id="4232375817808480934">Kerberos कॉन्फ़िगर करें</translation> <translation id="4235200303672858594">संपूर्ण स्क्रीन</translation> <translation id="4235965441080806197">साइन इन रद्द करें</translation> -<translation id="4237773362828263530">"*" वाइल्डकार्ड से जुड़ी सेटिंग अब काम नहीं करतीं. <ph name="BEGIN_LINK" />ये सेटिंग बदलने के लिए<ph name="END_LINK" />, अपने एडमिन से संपर्क करें.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{टैब को बाद में पढ़ें}one{टैब को बाद में पढ़ें}other{टैब को बाद में पढ़ें}}</translation> <translation id="4242145785130247982">एक से ज़्यादा क्लाइंट प्रमाणपत्र काम नहीं करते</translation> <translation id="4242533952199664413">सेटिंग खोलें</translation> @@ -3054,7 +3049,6 @@ <translation id="4548483925627140043">सिग्नल नहीं मिला</translation> <translation id="4549791035683739768">आपकी सुरक्षा कुंजी में कोई फ़िंगरप्रिंट सेव नहीं की गई है</translation> <translation id="4551763574344810652">पहले जैसा करने के लिए <ph name="MODIFIER_KEY_DESCRIPTION" /> दबाएं</translation> -<translation id="4552089082226364758">फ़्लैश</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> नेटवर्क, सिग्नल की क्षमता <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">आपको डिवाइस की भाषा बदलने के लिए, अपने Chromebook को रीस्टार्ट करना होगा. <ph name="BEGIN_LINK_LEARN_MORE" />ज़्यादा जानें<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">बाहरी एक्सटेंशन मौजूदा की तुलना में समान या निम्नतर संस्करण पर है.</translation> @@ -3409,7 +3403,6 @@ <translation id="4974733135013075877">बाहर निकलें और चाइल्ड लॉक करें</translation> <translation id="4976009197147810135">वर्टिकल (ऊपर से नीचे की ओर) रूप से छोटे-छोटे हिस्सों में बांटें यानी स्प्लिट करें</translation> <translation id="4977942889532008999">एक्सेस के लिए दोबारा पूछें</translation> -<translation id="4978905460870207779">साइटें Flash का इस्तेमाल करने के लिए पूछ सकती हैं</translation> <translation id="4980805016576257426">इस एक्सटेंशन में मैलवेयर है.</translation> <translation id="4981449534399733132">अपने सभी सिंक किए हुए डिवाइस और अपने 'Google खाते' से ब्राउज़िंग डेटा साफ़ करने के लिए, <ph name="BEGIN_LINK" />साइन इन करें<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">डिवाइस का सॉफ़्टवेयर</translation> @@ -4180,7 +4173,6 @@ <translation id="5906732635754427568">इस ऐप्लिकेशन से जुड़े डेटा को इस डिवाइस से हटा दिया जाएगा.</translation> <translation id="5908474332780919512">साइन इन करने पर ऐप्लिकेशन को चालू करें</translation> <translation id="5908695239556627796">माउस से स्क्रोल करने की रफ़्तार</translation> -<translation id="5908769186679515905">साइट को Flash चलाने से रोकें</translation> <translation id="5910363049092958439">इमेज को इस रूप में सेव करें...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ऑफ़लाइन है</translation> <translation id="5911533659001334206">शॉर्टकट व्यूअर</translation> @@ -4364,6 +4356,7 @@ <translation id="6112727384379533756">टिकट जोड़ें</translation> <translation id="6112931163620622315">अपने फ़ोन में देखें</translation> <translation id="6112952769866305444">व्यक्ति की जानकारी, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /> में बदलाव करें</translation> +<translation id="6113434369102685411">Chrome ब्राउज़र और <ph name="DEVICE_TYPE" /> लॉन्चर के लिए अपना डिफ़ॉल्ट सर्च इंजन सेट करें</translation> <translation id="6113942107547980621">Smart Lock इस्तेमाल करने के लिए, अपने डिवाइस के प्राथमिक उपयोगकर्ता की प्रोफ़ाइल पर स्विच करें</translation> <translation id="6116921718742659598">भाषा और अक्षर सेटिंग बदलें</translation> <translation id="6120205520491252677">इस पेज को प्रारंभ स्क्रीन में पिन करें...</translation> @@ -5230,6 +5223,7 @@ <translation id="7140928199327930795">कोई अन्य उपलब्ध डिवाइस नहीं हैं.</translation> <translation id="7141105143012495934">साइन इन नहीं हो पाया क्योंकि आपके खाते की जानकारी फिर से नहीं पाई जा सकी. कृपया अपने एडमिन से संपर्क करें या फिर से कोशिश करें.</translation> <translation id="7143207342074048698">कनेक्टिंग</translation> +<translation id="7143358760238281735">कोई भी ऐप्लिकेशन उपलब्ध नहीं है</translation> <translation id="7144878232160441200">फिर से प्रयास करें</translation> <translation id="714876143603641390">LAN कनेक्टिविटी</translation> <translation id="7149893636342594995">पिछले 24 घंटे</translation> @@ -5701,6 +5695,7 @@ <translation id="7707922173985738739">मोबाइल डेटा का उपयोग करें</translation> <translation id="7709152031285164251">विफल - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&कास्ट करें...</translation> +<translation id="7712739869553853093">यह प्रिंट की झलक है</translation> <translation id="7712836429117959503"><ph name="EXTENSION_ID" /> आईडी वाला अज्ञात एक्सटेंशन</translation> <translation id="7714307061282548371"><ph name="DOMAIN" /> की कुकी को अनुमति दी गई है</translation> <translation id="7714464543167945231">प्रमाणपत्र</translation> @@ -5829,7 +5824,6 @@ <translation id="7831491651892296503">नेटवर्क कॉन्फ़िगर करने में गड़बड़ी</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">खत्म होने का समय</translation> -<translation id="783214144752121388">साइट को Flash चलाने से रोकें (सुझाव है)</translation> <translation id="7833720883933317473">सेव किए गए कस्टम शब्द यहां दिखाई देंगे</translation> <translation id="7835178595033117206">बुकमार्क हटाया गया</translation> <translation id="7836850009646241041">अपनी सुरक्षा कुंजी को फिर से छुएं</translation> @@ -6057,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{यह फ़ाइल सुरक्षित की गई है. इसके मालिक से इसे सबकी पहुंच में लाने के लिए कहें.}one{इनमें से कुछ फ़ाइलें सुरक्षित की गई हैं. इनके मालिक से इन्हें सबकी पहुंच में लाने के लिए कहें.}other{इनमें से कुछ फ़ाइलें सुरक्षित की गई हैं. इनके मालिक से इन्हें सबकी पहुंच में लाने के लिए कहें.}}</translation> <translation id="808894953321890993">पासवर्ड बदलें</translation> <translation id="8090234456044969073">अपनी सबसे ज़्यादा देखी गई वेबसाइटों की सूची पढ़ें</translation> -<translation id="8092681102116274204">"*" वाइल्डकार्ड से जुड़ी सेटिंग अब काम नहीं करतीं. <ph name="BEGIN_LINK" />ये सेटिंग बदलने के लिए<ph name="END_LINK" />, एक्सटेंशन के डेवलपर या अपने एडमिन से संपर्क करें.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> जवाब नहीं दे रहा है</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />'Google डिस्क' में बैक अप लें. किसी भी समय अपना डेटा आसानी से बहाल करें या डिवाइस बदलें. आपके बैकअप में आपका ऐप्लिकेशन डेटा शामिल होता है.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />आपके बैकअप आपके Google खाते के पासवर्ड से सुरक्षित करके Google पर अपलोड किए जाते हैं.<ph name="END_PARAGRAPH2" /> @@ -6152,7 +6145,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> एल्बम चुनें</translation> <translation id="8202160505685531999">अपनी <ph name="DEVICE_TYPE" /> प्रोफ़ाइल अपडेट करने के लिए कृपया अपना पासवर्ड फिर से डालें.</translation> <translation id="8203732864715032075">आपको सूचनाएं भेजती है और यह याद रखती है कि मैसेज के लिए यह कंप्यूटर डिफ़ॉल्ट है. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash को ब्लॉक करें (हम इस सेटिंग को चालू रखने का सुझाव देते हैं)</translation> <translation id="820568752112382238">सबसे ज़्यादा देखी गई साइटें</translation> <translation id="8206745257863499010">ब्लुसी</translation> <translation id="8206859287963243715">सेलुलर</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index 2c7afc561..066ed97 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Zaustavi</translation> <translation id="1272293450992660632">PIN-ovi se ne podudaraju</translation> <translation id="1272978324304772054">Ovaj korisnički račun ne pripada domeni na koju je uređaj prijavljen. Ako se želite prijaviti na neku drugu domenu, prvo morate proći oporavak uređaja.</translation> -<translation id="1274977772557788323">Postavke pohrane Adobe Flash Playera</translation> <translation id="1274997165432133392">Kolačići i ostali podaci o web-lokacijama</translation> <translation id="1275718070701477396">Odabrano</translation> <translation id="1276994519141842946">Nije moguće deinstalirati <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Vaše oznake, povijest i ostale postavke sinkronizirat će se s vašim Google računom.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Matična mreža, bez roaminga</translation> -<translation id="1315056510003830387">Nije dopuštena upotreba Flasha</translation> <translation id="1316136264406804862">Pretraživanje...</translation> <translation id="1316495628809031177">Sinkronizacija je pauzirana</translation> <translation id="1317637799698924700">Priključna stanica radit će u načinu kompatibilnom s USB-om vrste C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC ne podržava vrstu enkripcije</translation> <translation id="1984417487208496350">Bez zaštite (ne preporučuje se)</translation> <translation id="1987317783729300807">Računi</translation> -<translation id="1988494864246143197">Web-lokacije obično upotrebljavaju Flash za reprodukciju audiozapisa, videozapisa ili videoigara. Flash Player više neće biti podržan nakon prosinca 2020.</translation> <translation id="1989112275319619282">Pregledaj</translation> <translation id="1990512225220753005">Nemoj prikazivati prečace na ovoj stranici</translation> <translation id="1992397118740194946">Nije postavljeno</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Postavljanje prozora</translation> <translation id="2881076733170862447">Kada kliknete proširenje</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> će se odmah ponovo pokrenuti i vratiti na zadano</translation> -<translation id="288387288628762616">Dopuštena je upotreba Flasha</translation> <translation id="2885378588091291677">Upravitelj zadataka</translation> <translation id="2885729872133513017">Pojavio se problem prilikom dekodiranja odgovora poslužitelja.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">To su općeniti podaci o ovom uređaju i načinu na koji se upotrebljava (kao što su razina baterije, aktivnosti sustava i aplikacija te pogreške). Ti podaci upotrijebit će se za poboljšanje Androida, a neki skupni podaci pomoći će i Googleovim aplikacijama i partnerima, na primjer razvojnim programerima za Android, da poboljšaju svoje aplikacije i proizvode.</translation> <translation id="3838085852053358637">Učitavanje proširenja nije uspjelo</translation> <translation id="3838486795898716504">Više za <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Kolačići i ostali podaci o web-lokacijama i dodacima</translation> <translation id="383891835335927981">Nijedna web-lokacija nije povećana ili smanjena</translation> <translation id="3839509547554145593">Omogući ubrzanje pomicanja mišem</translation> <translation id="3839516600093027468">Uvijek blokiraj web-lokaciji <ph name="HOST" /> uvid u međuspremnik</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Određivanje konfiguracije uređaja.</translation> <translation id="4025039777635956441">Isključi zvuk na odabranoj web-lokaciji</translation> <translation id="4027804175521224372">(Propuštate — <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Vaše će se postavke Flasha zadržati dok ne zatvorite Chrome.</translation> <translation id="4028467762035011525">Dodavanje načina unosa</translation> <translation id="4031179711345676612">Mikrofon je dopušten</translation> <translation id="4031527940632463547">Senzori su blokirani</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Konfigurirajte Kerberos</translation> <translation id="4235200303672858594">Cijeli zaslon</translation> <translation id="4235965441080806197">Otkaži prijavu</translation> -<translation id="4237773362828263530">Postavke sa zamjenskim znakovima "*" više nisu podržane. Obratite se razvojnom programeru da biste <ph name="BEGIN_LINK" />promijenili te postavke<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Pročitajte karticu kasnije}one{Pročitajte kartice kasnije}few{Pročitajte kartice kasnije}other{Pročitajte kartice kasnije}}</translation> <translation id="4242145785130247982">Nije podržano više certifikata klijenta</translation> <translation id="4242533952199664413">Otvori postavke</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Signal nije pronađen</translation> <translation id="4549791035683739768">Na vašem sigurnosnom ključu nema pohranjenih otisaka prstiju</translation> <translation id="4551763574344810652">Pritisnite <ph name="MODIFIER_KEY_DESCRIPTION" /> za poništavanje</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> mreža, jačina signala <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Da biste promijenili jezik uređaja, trebate ponovo pokrenuti Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Vanjsko proširenje iste je ili starije verzije u odnosu na postojeću.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Zatvori i zaključaj</translation> <translation id="4976009197147810135">Podijeli okomito</translation> <translation id="4977942889532008999">Potvrdite pristup</translation> -<translation id="4978905460870207779">Web-lokacije mogu tražiti dopuštenje za upotrebu Flasha</translation> <translation id="4980805016576257426">Proširenje sadrži zlonamjerni softver.</translation> <translation id="4981449534399733132">Da biste izbrisali podatke o pregledavanju sa svih svojih sinkroniziranih uređaja i svojeg Google računa, <ph name="BEGIN_LINK" />prijavite se<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Softver uređaja</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">Podaci povezani s tom aplikacijom uklonit će se s uređaja.</translation> <translation id="5908474332780919512">Pokrenite aplikaciju kad se prijavite</translation> <translation id="5908695239556627796">Brzina pomicanja mišem</translation> -<translation id="5908769186679515905">Onemogući web-lokacijama pokretanje Flasha</translation> <translation id="5910363049092958439">Sp&remi sliku kao...</translation> <translation id="5910726859585389579">Uređaj <ph name="DEVICE_TYPE" /> nije povezan s internetom</translation> <translation id="5911533659001334206">Pregled prečaca</translation> @@ -5836,7 +5826,6 @@ <translation id="7831491651892296503">Pogreška prilikom konfiguriranja mreže</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Vrijeme završetka</translation> -<translation id="783214144752121388">Onemogući web-lokacijama pokretanje Flasha (preporučeno)</translation> <translation id="7833720883933317473">Ovdje će se pojaviti spremljene prilagođene riječi</translation> <translation id="7835178595033117206">Oznaka je uklonjena</translation> <translation id="7836850009646241041">Pokušajte ponovo dodirnuti sigurnosni ključ</translation> @@ -6064,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Datoteka je kriptirana. Recite vlasniku da je dekriptira.}one{Neke su od ovih datoteka kriptirane. Recite vlasniku da ih dekriptira.}few{Neke su od ovih datoteka kriptirane. Recite vlasniku da ih dekriptira.}other{Neke su od ovih datoteka kriptirane. Recite vlasniku da ih dekriptira.}}</translation> <translation id="808894953321890993">Promjena zaporke</translation> <translation id="8090234456044969073">pročitati popis web-lokacija koje najčešće posjećujete</translation> -<translation id="8092681102116274204">Postavke sa zamjenskim znakovima "*" više nisu podržane. Obratite se razvojnom programeru proširenja ili administratoru da biste <ph name="BEGIN_LINK" />promijenili te postavke<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ne reagira</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Izradite sigurnosnu kopiju na Google disku. Jednostavno vratite podatke ili prijeđite na drugi uređaj u bilo kojem trenutku. Sigurnosna kopija uključuje podatke aplikacija.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Sigurnosna kopija prenosi se na Google i kriptira pomoću zaporke vašeg Google računa.<ph name="END_PARAGRAPH2" /> @@ -6159,7 +6147,6 @@ <translation id="8201717382574620700">Odaberite albume s usluge <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Ponovo unesite zaporku da biste ažurirali svoj profil na uređaju <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Slanje obavijesti i vraćanje na postavku pamćenja ovog računala za Poruke. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Onemogući Flash (preporučeno)</translation> <translation id="820568752112382238">Najposjećenije web-lokacije</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">Mobitel</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index c547bdfd..75b36c9 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Leállítás</translation> <translation id="1272293450992660632">A PIN-kódok nem egyeznek.</translation> <translation id="1272978324304772054">Ez a felhasználói fiók nem ahhoz a domainhez tartozik, amelyhez az eszköz. Ha másik domainen kívánja regisztrálni azt, először vissza kell állítania az eszköz beállításait.</translation> -<translation id="1274977772557788323">Adobe Flash Player tárolási beállítások</translation> <translation id="1274997165432133392">Cookie-k és egyéb webhelyadatok</translation> <translation id="1275718070701477396">Kijelölt</translation> <translation id="1276994519141842946">A(z) <ph name="APP_NAME" /> eltávolítása nem sikerült</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">A könyvjelzők, előzmények és más beállítások szinkronizálódnak Google-fiókjával</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Otthoni hálózat, nincs roaming</translation> -<translation id="1315056510003830387">Nem használhatják a Flasht</translation> <translation id="1316136264406804862">Keresés...</translation> <translation id="1316495628809031177">A szinkronizálás szünetel</translation> <translation id="1317637799698924700">A dokkolóállomás C típusú USB-vel kompatibilis módban fog futni.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">A KDC nem támogatja a titkosítástípust</translation> <translation id="1984417487208496350">Nincs védelem (nem javasolt)</translation> <translation id="1987317783729300807">Fiókok</translation> -<translation id="1988494864246143197">A webhelyek általában hanganyagok, videók vagy videojátékok lejátszásához használják a Flash-t. A böngésző 2020 decembere után már nem támogatja a Flash Player használatát.</translation> <translation id="1989112275319619282">Böngészés</translation> <translation id="1990512225220753005">Ne jelenjenek meg parancsikonok ezen az oldalon</translation> <translation id="1992397118740194946">Nincs beállítva</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Ablakelhelyezés</translation> <translation id="2881076733170862447">Amikor a bővítményre kattint</translation> <translation id="2882943222317434580">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> rövidesen újraindul, és alapállapotba áll</translation> -<translation id="288387288628762616">Használhatják a Flasht</translation> <translation id="2885378588091291677">Feladatkezelő</translation> <translation id="2885729872133513017">Hiba történt a szerverválasz dekódolása során.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Sikeresen bejelentkezett.</translation> <translation id="3428747202529429621">Gondoskodik a biztonságáról a Chrome-ban, és használható a biztonság növelésére más Google-alkalmazásokban olyankor, amikor Ön be van jelentkezve.</translation> <translation id="3428800329481094896">A Linux-tároló SSH-kulcsainak lekérése</translation> +<translation id="3429271624041785769">Webes tartalmak nyelvei</translation> <translation id="3429275422858276529">Adja hozzá az oldalt a könyvjelzőkhöz, hogy később könnyen megtalálja</translation> <translation id="3432227430032737297">Az összes megjelenített eltávolítása</translation> <translation id="3432757130254800023">Hang és videó küldése a helyi hálózaton lévő kijelzőkre</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Ez általános információ erről az eszközről és a használati módjáról (például az akkumulátor töltöttségéről, a rendszer- és alkalmazástevékenységekről, valamint a hibákról). Az adatokat arra használjuk fel, hogy továbbfejlesszük az Androidot, bizonyos összesített adatok pedig a Google-alkalmazásoknak és -partnereknek, például az Android-fejlesztőknek segítenek alkalmazásaik és termékeik fejlesztésében.</translation> <translation id="3838085852053358637">Nem sikerült betölteni a bővítményt</translation> <translation id="3838486795898716504">Továbbiak: <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookie-k, illetve webhelyek és beépülő modulok egyéb adatai</translation> <translation id="383891835335927981">Nincs nagyított vagy kicsinyített webhely</translation> <translation id="3839509547554145593">Az egérrel való görgetés gyorsításának engedélyezése</translation> <translation id="3839516600093027468">A vágólap megtekintésének állandó tiltása a(z) <ph name="HOST" /> számára</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Letöltéskezelő</translation> <translation id="3881478300875776315">Kevesebb sor megjelenítése</translation> <translation id="3882165008614329320">Meglévő videó a fényképezőgépről vagy fájlból</translation> +<translation id="3884152383786131369">A több nyelven hozzáférhető webes tartalmak az ezen a listán szereplő első támogatott nyelvet használják majd. Ezeket a preferenciákat a rendszer szinkronizálja a böngésző beállításaival. <ph name="BEGIN_LINK_LEARN_MORE" />További információ<ph name="END_LINK_LEARN_MORE" />.</translation> <translation id="3886446263141354045">Webhely-hozzáférési kérelme elküldve a következő személynek: <ph name="NAME" /></translation> <translation id="3888550877729210209">Jegyzetek készítése a(z) <ph name="LOCK_SCREEN_APP_NAME" /> alkalmazással</translation> <translation id="3890064827463908288">A Wi-Fi-szinkronizálás használatához kapcsolja be a Chrome-szinkronizálás funkciót</translation> @@ -2638,7 +2635,6 @@ <translation id="4023146161712577481">Eszközkonfiguráció meghatározása.</translation> <translation id="4025039777635956441">Kiválasztott webhely némítása</translation> <translation id="4027804175521224372">(<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">A Flash-beállítások addig maradnak meg, amíg be nem zárja a Chrome-ot.</translation> <translation id="4028467762035011525">Beviteli módszerek hozzáadása</translation> <translation id="4031179711345676612">Mikrofon engedélyezve</translation> <translation id="4031527940632463547">Érzékelők letiltva</translation> @@ -2790,7 +2786,6 @@ <translation id="4232375817808480934">A Kerberos konfigurálása</translation> <translation id="4235200303672858594">Teljes képernyő</translation> <translation id="4235965441080806197">Bejelentkezés megszakítása</translation> -<translation id="4237773362828263530">A „*” helyettesítő karakteres beállítások már nem támogatottak. Forduljon a rendszergazdához, ha <ph name="BEGIN_LINK" />módosítani szeretné ezeket a beállításokat<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Lap olvasása később}other{Lapok olvasása később}}</translation> <translation id="4242145785130247982">Több ügyféltanúsítvány sem támogatott</translation> <translation id="4242533952199664413">Beállítások megnyitása</translation> @@ -3054,7 +3049,6 @@ <translation id="4548483925627140043">A jel nem található</translation> <translation id="4549791035683739768">A biztonsági kulcs nem tárol ujjlenyomatokat</translation> <translation id="4551763574344810652">Nyomja meg a <ph name="MODIFIER_KEY_DESCRIPTION" /> billentyűparancsot a visszavonáshoz</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Hálózat: <ph name="NETWORK_TYPE" />, jelerősség: <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Az eszköz nyelvének módosításához újra kell indítani a Chromebookot. <ph name="BEGIN_LINK_LEARN_MORE" />További információ<ph name="END_LINK_LEARN_MORE" />.</translation> <translation id="4554591392113183336">A külső bővítmény a meglévő bővítmény verziószintjén vagy az alatt van.</translation> @@ -3409,7 +3403,6 @@ <translation id="4974733135013075877">Kilépés és gyermekzár</translation> <translation id="4976009197147810135">Felosztás függőlegesen</translation> <translation id="4977942889532008999">Hozzáférés megerősítése</translation> -<translation id="4978905460870207779">A webhelyek engedélyt kérhetnek a Flash használatára</translation> <translation id="4980805016576257426">Ez a bővítmény rosszindulatú programot tartalmaz.</translation> <translation id="4981449534399733132">Ha az összes szinkronizált eszközéről és a Google-fiókjából is törölni szeretné böngészési adatait, <ph name="BEGIN_LINK" />jelentkezzen be<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Az eszközön lévő szoftverek</translation> @@ -4182,7 +4175,6 @@ <translation id="5906732635754427568">Az alkalmazáshoz kapcsolódó adatok törlődnek erről az eszközről.</translation> <translation id="5908474332780919512">Alkalmazás indítása bejelentkezéskor</translation> <translation id="5908695239556627796">Egér görgetési sebessége</translation> -<translation id="5908769186679515905">A Flash futtatásának tiltása a webhelyeken</translation> <translation id="5910363049092958439">Ké&p mentése másként...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> – offline</translation> <translation id="5911533659001334206">Billentyűparancs-megjelenítő</translation> @@ -4366,6 +4358,7 @@ <translation id="6112727384379533756">Jegy felvétele</translation> <translation id="6112931163620622315">Folytassa a telefonján</translation> <translation id="6112952769866305444">Személy szerkesztése, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Állítsa be az alapértelmezett keresőmotort a Chrome böngészőhöz és a(z) <ph name="DEVICE_TYPE" /> indítójához</translation> <translation id="6113942107547980621">Ha használni szeretné a Smart Lock funkciót, váltson a telefon elsődleges felhasználói profiljára</translation> <translation id="6116921718742659598">Nyelvi és beviteli beállítások módosítása</translation> <translation id="6120205520491252677">Az oldal rögzítése a kezdőképernyőn...</translation> @@ -5232,6 +5225,7 @@ <translation id="7140928199327930795">Nincs más elérhető eszköz.</translation> <translation id="7141105143012495934">A bejelentkezés nem sikerült, mert a fiókadatokat nem sikerült lekérni. Kérjük, forduljon rendszergazdájához, vagy próbálja újra.</translation> <translation id="7143207342074048698">Csatlakozás</translation> +<translation id="7143358760238281735">Nem található alkalmazás</translation> <translation id="7144878232160441200">Újra</translation> <translation id="714876143603641390">LAN-csatlakozás</translation> <translation id="7149893636342594995">Az elmúlt 24 órából</translation> @@ -5703,6 +5697,7 @@ <translation id="7707922173985738739">Mobiladat-kapcsolat használata</translation> <translation id="7709152031285164251">Meghiúsult – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Átküldés…</translation> +<translation id="7712739869553853093">Nyomtatási előnézet párbeszédpanelje</translation> <translation id="7712836429117959503">Ismeretlen bővítmény (azonosító: <ph name="EXTENSION_ID" />)</translation> <translation id="7714307061282548371">A(z) <ph name="DOMAIN" /> oldalról származó cookie-k engedélyezve vannak</translation> <translation id="7714464543167945231">Tanúsítvány</translation> @@ -5832,7 +5827,6 @@ <translation id="7831491651892296503">Hiba történt a hálózat konfigurálásakor</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Befejezés ideje</translation> -<translation id="783214144752121388">A Flash futtatásának letiltása a webhelyeken (ajánlott)</translation> <translation id="7833720883933317473">A mentett egyéni szavak itt jelennek meg</translation> <translation id="7835178595033117206">Könyvjelző eltávolítva</translation> <translation id="7836850009646241041">Próbálja meg ismét megérinteni a biztonsági kulcsot</translation> @@ -6060,7 +6054,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{A fájl titkosítva van. Kérje meg a tulajdonost, hogy oldja fel a titkosítását.}other{A fájlok közül néhány titkosítva van. Kérje meg tulajdonosukat, hogy oldja fel a titkosításukat.}}</translation> <translation id="808894953321890993">Jelszó módosítása</translation> <translation id="8090234456044969073">Az Ön által leggyakrabban felkeresett webhelyek listájának olvasása</translation> -<translation id="8092681102116274204">A „*” helyettesítő karakteres beállítások már nem támogatottak. Forduljon a bővítmény fejlesztőjéhez vagy a rendszergazdához, ha <ph name="BEGIN_LINK" />módosítani szeretné ezeket a beállításokat<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">A(z) <ph name="PLUGIN_NAME" /> nem válaszol</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Biztonsági másolat készítése a Google Drive-ra. Bármikor könnyedén helyreállíthatja adatait, illetve lecserélheti eszközét. A biztonsági másolat alkalmazásadatokat tartalmaz.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />A biztonsági másolatokat a Google szerveire tölti fel a rendszer, és az Ön Google-fiókjához használt jelszóval titkosítja.<ph name="END_PARAGRAPH2" /> @@ -6155,7 +6148,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" />-albumok kiválasztása</translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" />-profilja frissítéséhez adja meg újra jelszavát.</translation> <translation id="8203732864715032075">Értesítések küldése, valamint a számítógép alapértelmezettként való megjegyzése a Messages alkalmazásban. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation> -<translation id="8205561625497621211">Flash-tartalmak letiltása (ajánlott)</translation> <translation id="820568752112382238">Leggyakrabban felkeresett webhelyek</translation> <translation id="8206745257863499010">Énekes</translation> <translation id="8206859287963243715">Mobil</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index b2b7f6f..5332ff0 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -245,7 +245,6 @@ <translation id="1272079795634619415">Դադարեցնել</translation> <translation id="1272293450992660632">PIN-ի արժեքները չեն համընկնում:</translation> <translation id="1272978324304772054">Օգտատիրոջ այս հաշիվը չի պատկանում տիրույթին, որտեղ գրանցված է սարքը: Եթե ցանկանում եք գրանցվել այլ տիրույթում, նախ պետք է վերականգնեք սարքը:</translation> -<translation id="1274977772557788323">Adobe Flash Player-ի պահեստի կարգավորումներ</translation> <translation id="1274997165432133392">Cookie ֆայլեր և կայքի այլ տվյալներ</translation> <translation id="1275718070701477396">Ընտրված</translation> <translation id="1276994519141842946">Չհաջողվեց հեռացնել <ph name="APP_NAME" /> հավելվածը</translation> @@ -279,7 +278,6 @@ <translation id="1313705515580255288">Ձեր էջանիշները, պատմությունը և այլ կարգավորումները կհամաժամացվեն ձեր Google հաշվի հետ:</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Տնային ցանց, առանց ռոումինգի</translation> -<translation id="1315056510003830387">Չի թույլատրվում օգտագործել Flash բովանդակություն</translation> <translation id="1316136264406804862">Որոնում...</translation> <translation id="1316495628809031177">Համաժամացումն ընդհատված է</translation> <translation id="1317637799698924700">Ձեր դոկ-կայանը կաշխատի USB Type-C-ի հետ համատեղելի ռեժիմում:</translation> @@ -879,7 +877,6 @@ <translation id="197989455406964291">KDC-ն չի աջակցում գաղտնագրման տեսակը</translation> <translation id="1984417487208496350">Առանց պաշտպանության (խորհուրդ չի տրվում)</translation> <translation id="1987317783729300807">Հաշիվներ</translation> -<translation id="1988494864246143197">Կայքերը սովորաբար օգտագործում են Flash-ը՝ աուդիո և վիդեո բովանդակություն, ինչպես նաև տեսախաղեր նվագարկելու համար։ Flash Player-ը 2020 թ․ դեկտեմբերից այլևս չի աջակցվի։</translation> <translation id="1989112275319619282">Ընտրել</translation> <translation id="1990512225220753005">Չցուցադրել դյուրանցումներ այս էջում</translation> <translation id="1992397118740194946">Տրված չէ</translation> @@ -1650,7 +1647,6 @@ <translation id="2880660355386638022">Պատուհանների տեղակայում</translation> <translation id="2881076733170862447">Երբ դուք սեղմում եք ընդլայնման վրա</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" />-ը կվերագործարկվի և անմիջապես կվերակայվի</translation> -<translation id="288387288628762616">Թույլատրվում է օգտագործել Flash բովանդակություն</translation> <translation id="2885378588091291677">Task Manager</translation> <translation id="2885729872133513017">Չհաջողվեց ապակոդավորել սերվերի պատասխանը։</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2467,7 +2463,6 @@ <translation id="383669374481694771">Սրանք ընդհանուր տեղեկություններ են այս սարքի և դրա օգտագործման (օրինակ՝ մարտկոցի լիցքի, համակարգի ու հավելվածների օգտագործման և սխալների) մասին։ Տեղեկություններն օգտագործվելու են Android-ի ծառայությունների աշխատանքը բարելավելու համար։ Տվյալների մի մասը օգտակար կլինի մեր գործընկերների, օրինակ, Android ծրագրավորողների համար և կօգնի բարելավել նաև նրանց հավելվածներն ու արտադրանքները։</translation> <translation id="3838085852053358637">Չհաջողվեց բեռնել ընդլայնումը</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> վերնագրով այլ էջեր</translation> -<translation id="3838543471119263078">Cookie ֆայլերը և կայքերի ու փլագինների այլ տվյալներ</translation> <translation id="383891835335927981">Ոչ մի կայք չի մասշտաբավորվել</translation> <translation id="3839509547554145593">Միացնել մկնիկով ոլորման արագացումը</translation> <translation id="3839516600093027468">Միշտ արգելափակել <ph name="HOST" /> կայքի մուտքը սեղմատախտակին</translation> @@ -2642,7 +2637,6 @@ <translation id="4023146161712577481">Սահմանվում է սարքի կազմաձևումը:</translation> <translation id="4025039777635956441">Անջատել նշված կայքի ձայնը</translation> <translation id="4027804175521224372">(Մի բաց թողեք հնարավորությունը - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Երբ փակեք դիտարկիչը, Adobe Flash Player-ի կարգավորումները կզրոյացվեն:</translation> <translation id="4028467762035011525">Ավելացնել ներածման մեթոդներ</translation> <translation id="4031179711345676612">Խոսափողի օգտագործումը թույլատրված է</translation> <translation id="4031527940632463547">տվիչների օգտագործումն արգելված է</translation> @@ -2794,7 +2788,6 @@ <translation id="4232375817808480934">Kerberos-ի կարգավորում</translation> <translation id="4235200303672858594">Ողջ էկրանը</translation> <translation id="4235965441080806197">Չեղարկել մուտքը</translation> -<translation id="4237773362828263530">Դերանշանով (*) կարգավորումներն այլևս չեն աջակցվում։ <ph name="BEGIN_LINK" />Այս կարգավորումները փոխելու<ph name="END_LINK" /> համար դիմեք ձեր ադմինիստրատորին։</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Կարդալ ներդիրն ավելի ուշ}one{Կարդալ ներդիրներն ավելի ուշ}other{Կարդալ ներդիրներն ավելի ուշ}}</translation> <translation id="4242145785130247982">Սպասառուների բազմակի վկայագրեր չեն աջակցվում</translation> <translation id="4242533952199664413">Բացել կարգավորումները</translation> @@ -3058,7 +3051,6 @@ <translation id="4548483925627140043">Ազդանշան չի գտնվել</translation> <translation id="4549791035683739768">Անվտանգության բանալու վրա պահված մատնահետքեր չկան</translation> <translation id="4551763574344810652">Հետարկելու համար սեղմեք <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Ցանց՝ <ph name="NETWORK_TYPE" />, ազդանշանի ուժգնություն՝ <ph name="SIGNAL_STRENGTH" /></translation> <translation id="4553526521109675518">Սարքի լեզուն փոխելու համար վերագործարկեք Chromebook-ը։ <ph name="BEGIN_LINK_LEARN_MORE" />Իմանալ ավելին<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Արտաքին ընդլայնումը ընթացիկի համեմատ ունի նույն կամ ավելի հին տարբերակ:</translation> @@ -3414,7 +3406,6 @@ <translation id="4974733135013075877">Դուրս գալ և արգելափակել</translation> <translation id="4976009197147810135">Ուղղաձիգ տրոհում</translation> <translation id="4977942889532008999">Մուտքի հաստատում</translation> -<translation id="4978905460870207779">Կայքերը կարող են Flash օգտագործելու թույլտվություն հայցել</translation> <translation id="4980805016576257426">Այս ընդլայնումը վնասաբեր ծրագիր է պարունակում:</translation> <translation id="4981449534399733132">Այցելությունների պատմությունը բոլոր համաժամացված սարքերից և Google հաշվից ջնջելու համար <ph name="BEGIN_LINK" />մտեք հաշիվ<ph name="END_LINK" />:</translation> <translation id="4982236238228587209">Սարքի ծրագրեր</translation> @@ -4187,7 +4178,6 @@ <translation id="5906732635754427568">Այս հավելվածին առնչվող տվյալները կհեռացվեն այս սարքից:</translation> <translation id="5908474332780919512">Գործարկել հավելվածը մուտք գործելիս</translation> <translation id="5908695239556627796">Մկնիկով ոլորման արագությունը</translation> -<translation id="5908769186679515905">Արգելել կայքերին աշխատեցնել Flash</translation> <translation id="5910363049092958439">Պա&հել պատկերը որպես…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> սարքը միացած չէ ինտերնետին</translation> <translation id="5911533659001334206">Դյուրանցումների դիտակ</translation> @@ -5839,7 +5829,6 @@ <translation id="7831491651892296503">Չհաջողվեց կազմաձևել ցանցը</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Ավարտի ժամը</translation> -<translation id="783214144752121388">Արգելել կայքերին աշխատեցնել Flash (խորհուրդ է տրվում)</translation> <translation id="7833720883933317473">Պահված հատուկ բառերը կցուցադրվեն այստեղ</translation> <translation id="7835178595033117206">Էջանիշը հեռացվել է</translation> <translation id="7836850009646241041">Փորձեք նորից հպել անվտանգության ձեր բանալուն</translation> @@ -6066,7 +6055,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Այս ֆայլը գաղտնագրված է։ Խնդրեք սեփականատիրոջը վերծանել այն։}one{Այս ֆայլերից որոշները գաղտնագրված են։ Խնդրեք սեփականատիրոջը վերծանել դրանք։}other{Այս ֆայլերից որոշները գաղտնագրված են։ Խնդրեք սեփականատիրոջը վերծանել դրանք։}}</translation> <translation id="808894953321890993">Փոխել գաղտնաբառը</translation> <translation id="8090234456044969073">Դիտել առավել հաճախակի այցելած կայքերի ցանկը</translation> -<translation id="8092681102116274204">Դերանշանով (*) կարգավորումներն այլևս չեն աջակցվում։ <ph name="BEGIN_LINK" />Այս կարգավորումները փոփոխելու<ph name="END_LINK" /> համար դիմեք ընդլայնման մշակողին կամ ձեր ադմինիստրատորին։</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> փլագինը չի արձագանքում</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Կրկնօրինակ Google Drive-ում։ Արագ վերականգնեք ձեր տվյալները կամ տեղափոխեք այլ սարք: Կրկնօրինակները ներառում են հավելվածների տվյալները։<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Կրկնօրինակները վերբեռնվում են Google և գաղտնագրվում ձեր Google հաշվի գաղտնաբառի միջոցով։<ph name="END_PARAGRAPH2" /> @@ -6161,7 +6149,6 @@ <translation id="8201717382574620700">Ընտրել <ph name="TOPIC_SOURCE" />ի ալբոմներ</translation> <translation id="8202160505685531999">Նորից մուտքագրեք գաղտնաբառը՝ ձեր <ph name="DEVICE_TYPE" /> սարքի պրոֆիլը թարմացնելու համար:</translation> <translation id="8203732864715032075">Ցուցադրել ծանուցումներ՝ հեռախոսում ստացած հաղորդագրությունների մասին։ <ph name="LINK_BEGIN" />Մանրամասն<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Արգելափակել Flash բովանդակությունը (խորհուրդ է տրվում)</translation> <translation id="820568752112382238">Հաճախ այցելած կայքեր</translation> <translation id="8206745257863499010">Բլյուզ</translation> <translation id="8206859287963243715">Բջջային</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index 43e5fa9..3ee7de4 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Berhenti</translation> <translation id="1272293450992660632">Nilai PIN tidak cocok.</translation> <translation id="1272978324304772054">Akun pengguna ini tidak berada di domain tempat perangkat mendaftar. Jika Anda ingin mendaftar ke domain lain, Anda perlu melakukan pemulihan perangkat terlebih dulu.</translation> -<translation id="1274977772557788323">Setelan Penyimpanan Adobe Flash Player</translation> <translation id="1274997165432133392">Cookie dan data situs lainnya</translation> <translation id="1275718070701477396">Dipilih</translation> <translation id="1276994519141842946">Tidak dapat meng-uninstal <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Bookmark, histori, dan setelan lainnya akan disinkronkan ke Akun Google.</translation> <translation id="1314565355471455267">VPN Android</translation> <translation id="131461803491198646">Jaringan asal, tidak dalam jelajah</translation> -<translation id="1315056510003830387">Tidak diizinkan menggunakan Flash</translation> <translation id="1316136264406804862">Menelusuri...</translation> <translation id="1316495628809031177">Sinkronisasi dijeda</translation> <translation id="1317637799698924700">Stasiun dok Anda akan berfungsi dalam mode yang kompatibel dengan USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC tidak mendukung jenis enkripsi</translation> <translation id="1984417487208496350">Tidak ada perlindungan (tidak direkomendasikan)</translation> <translation id="1987317783729300807">Akun</translation> -<translation id="1988494864246143197">Situs biasanya menggunakan Flash untuk memutar audio, video atau video game. Flash Player tidak akan didukung lagi setelah bulan Desember 2020.</translation> <translation id="1989112275319619282">Jelajahi</translation> <translation id="1990512225220753005">Jangan tampilkan pintasan di halaman ini</translation> <translation id="1992397118740194946">Belum disetel</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Penempatan jendela</translation> <translation id="2881076733170862447">Saat Anda Mengklik Ekstensi</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> akan segera dimulai dan direset</translation> -<translation id="288387288628762616">Diizinkan menggunakan Flash</translation> <translation id="2885378588091291677">Pengelola Tugas</translation> <translation id="2885729872133513017">Terjadi masalah saat mendekode respons server.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Anda sudah login</translation> <translation id="3428747202529429621">Memastikan Anda tetap aman di Chrome dan dapat digunakan untuk menyempurnakan keamanan Anda di aplikasi Google lainnya saat login</translation> <translation id="3428800329481094896">Mengambil kunci SSH container Linux</translation> +<translation id="3429271624041785769">Bahasan konten web</translation> <translation id="3429275422858276529">Bookmark halaman ini agar mudah ditemukan nanti</translation> <translation id="3432227430032737297">Buang Semua Yang Ditampilkan</translation> <translation id="3432757130254800023">Kirim audio dan video ke layar di jaringan lokal</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Ini adalah informasi umum tentang perangkat ini dan cara penggunaannya (seperti tingkat daya baterai, aktivitas sistem dan aplikasi, serta error). Data ini akan digunakan untuk menyempurnakan Android. Beberapa informasi gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android, membuat aplikasi dan produk mereka menjadi lebih baik.</translation> <translation id="3838085852053358637">Gagal memuat ekstensi</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> Lainnya</translation> -<translation id="3838543471119263078">Cookie serta data plugin dan situs lainnya</translation> <translation id="383891835335927981">Tidak ada situs yang telah diperbesar atau diperkecil</translation> <translation id="3839509547554145593">Aktifkan akselerasi scroll mouse</translation> <translation id="3839516600093027468">Selalu blokir <ph name="HOST" /> dari melihat papan klip</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Pengelola download</translation> <translation id="3881478300875776315">Tampilkan lebih sedikit baris</translation> <translation id="3882165008614329320">Video yang sudah ada dari kamera atau file</translation> +<translation id="3884152383786131369">Konten web yang tersedia dalam beberapa bahasa akan menggunakan bahasa pertama yang didukung dari daftar ini. Preferensi ini akan disinkronkan dengan setelan browser Anda. <ph name="BEGIN_LINK_LEARN_MORE" />Pelajari lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Permintaan Anda untuk mengakses situs ini telah dikirim ke <ph name="NAME" /></translation> <translation id="3888550877729210209">Mencatat dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Aktifkan Sinkronisasi Chrome untuk menggunakan Wi-Fi Sync</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Menentukan konfigurasi perangkat.</translation> <translation id="4025039777635956441">Bisukan Situs Terpilih</translation> <translation id="4027804175521224372">(Anda melewatkan—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Setelan Flash akan dipertahankan hingga Anda keluar dari Chrome.</translation> <translation id="4028467762035011525">Tambahkan metode input</translation> <translation id="4031179711345676612">Mikrofon diizinkan</translation> <translation id="4031527940632463547">Sensor diblokir</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Konfigurasikan Kerberos</translation> <translation id="4235200303672858594">Seluruh layar</translation> <translation id="4235965441080806197">Batalkan proses masuk</translation> -<translation id="4237773362828263530">Menyetel dengan karakter pengganti "*" tidak lagi didukung. Hubungi administrator Anda untuk <ph name="BEGIN_LINK" />mengubah setelan ini<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Baca Tab Nanti}other{Baca Tab Nanti}}</translation> <translation id="4242145785130247982">Beberapa sertifikat klien tidak didukung</translation> <translation id="4242533952199664413">Buka setelan</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Sinyal tidak ditemukan</translation> <translation id="4549791035683739768">Tidak ada sidik jari yang tersimpan di kunci keamanan Anda</translation> <translation id="4551763574344810652">Tekan <ph name="MODIFIER_KEY_DESCRIPTION" /> untuk mengurungkan</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Jaringan <ph name="NETWORK_TYPE" /> kekuatan sinyal <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Anda perlu memulai ulang Chromebook untuk mengubah bahasa perangkat. <ph name="BEGIN_LINK_LEARN_MORE" />Pelajari lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Versi ekstensi eksternal sama atau lebih rendah dibandingkan yang sudah ada.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Keluar dan aktifkan kunci anak</translation> <translation id="4976009197147810135">Pisahkan vertikal</translation> <translation id="4977942889532008999">Konfirmasi Akses</translation> -<translation id="4978905460870207779">Situs dapat meminta untuk menggunakan Flash</translation> <translation id="4980805016576257426">Ekstensi ini berisi software perusak.</translation> <translation id="4981449534399733132">Untuk menghapus data browsing dari semua perangkat yang disinkronkan dan dari Akun Google, <ph name="BEGIN_LINK" />login<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Software perangkat</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Data yang dikaitkan dengan aplikasi ini akan dihapus dari perangkat ini.</translation> <translation id="5908474332780919512">Mulai Aplikasi Saat Login</translation> <translation id="5908695239556627796">Kecepatan scroll mouse</translation> -<translation id="5908769186679515905">Blokir situs agar tidak menjalankan Flash</translation> <translation id="5910363049092958439">Sim&pan Gambar Sebagai...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> sedang offline</translation> <translation id="5911533659001334206">Shortcut viewer</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Tambahkan tiket</translation> <translation id="6112931163620622315">Periksa ponsel Anda</translation> <translation id="6112952769866305444">Mengedit orang, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Setel mesin telusur default untuk browser Chrome dan Peluncur <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Untuk menggunakan Smart Lock, beralihlah ke profil pengguna utama di ponsel Anda</translation> <translation id="6116921718742659598">Ubah setelan masukan dan bahasa</translation> <translation id="6120205520491252677">Pasang pin halaman ini ke layar Awal...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Tidak ada perangkat lain.</translation> <translation id="7141105143012495934">Proses masuk gagal karena detail akun Anda tidak dapat diambil. Hubungi administrator Anda atau coba lagi.</translation> <translation id="7143207342074048698">Menghubungkan</translation> +<translation id="7143358760238281735">Tidak ada aplikasi yang tersedia</translation> <translation id="7144878232160441200">Coba lagi</translation> <translation id="714876143603641390">Konektivitas LAN</translation> <translation id="7149893636342594995">24 jam terakhir</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Gunakan data seluler</translation> <translation id="7709152031285164251">Gagal - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Cast...</translation> +<translation id="7712739869553853093">Dialog pratinjau cetak</translation> <translation id="7712836429117959503">Ekstensi tidak dikenal dengan ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Cookie dari <ph name="DOMAIN" /> diizinkan</translation> <translation id="7714464543167945231">Sertifikat</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Terjadi error saat mengonfigurasi jaringan</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Waktu berakhir</translation> -<translation id="783214144752121388">Blokir situs agar tidak menjalankan Flash (disarankan)</translation> <translation id="7833720883933317473">Kata khusus yang disimpan akan muncul di sini</translation> <translation id="7835178595033117206">Bookmark dihapus</translation> <translation id="7836850009646241041">Coba sentuh lagi kunci keamanan Anda</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{File ini dienkripsi. Minta pemiliknya untuk mendekripsi.}other{Beberapa file ini dienkripsi. Minta pemiliknya untuk mendekripsi.}}</translation> <translation id="808894953321890993">Ubah sandi</translation> <translation id="8090234456044969073">Membaca daftar situs web yang paling sering Anda kunjungi</translation> -<translation id="8092681102116274204">Menyetel dengan karakter pengganti "*" tidak lagi didukung. Hubungi developer ekstensi atau administrator Anda untuk <ph name="BEGIN_LINK" />mengubah setelan ini<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> tidak merespons</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Cadangkan ke Google Drive. Pulihkan data atau beralih perangkat kapan saja dengan mudah. Cadangan Anda meliputi data aplikasi.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Cadangan Anda diupload ke Google dan dienkripsi menggunakan sandi Akun Google Anda.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">Pilih album <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Masukkan kembali sandi untuk memperbarui profil <ph name="DEVICE_TYPE" /> Anda.</translation> <translation id="8203732864715032075">Mengirim notifikasi dan secara default mengingat komputer ini untuk Message. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokir Flash (direkomendasikan)</translation> <translation id="820568752112382238">Situs yang paling sering dikunjungi</translation> <translation id="8206745257863499010">Jazzy</translation> <translation id="8206859287963243715">Seluler</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index 31d0537..f0cc76e 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Stöðva</translation> <translation id="1272293450992660632">PIN-númer stemma ekki.</translation> <translation id="1272978324304772054">Þessi notandareikningur heyrir ekki undir lénið sem tækið er skráð á. Ef þú vilt skrá þig á annað lén þarftu fyrst að fara í gegnum endurheimtarferli tækis.</translation> -<translation id="1274977772557788323">Geymslustillingar Adobe Flash Player</translation> <translation id="1274997165432133392">Fótspor og önnur gögn vefsvæðis</translation> <translation id="1275718070701477396">Valið</translation> <translation id="1276994519141842946">Ekki tókst að fjarlægja <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Bókamerkin þín, ferillinn og aðrar stillingar verða samstilltar við Google reikninginn þinn.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Heimanet, ekki í reiki</translation> -<translation id="1315056510003830387">Mega ekki nota Flash</translation> <translation id="1316136264406804862">Leitar...</translation> <translation id="1316495628809031177">Hlé er á samstillingu</translation> <translation id="1317637799698924700">Tengd dokka virkar í samhæfisstillingu USB (C-gerð).</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC styður ekki dulkóðunargerðina</translation> <translation id="1984417487208496350">Engin vörn (ekki mælt með)</translation> <translation id="1987317783729300807">Reikningar</translation> -<translation id="1988494864246143197">Vefsvæði nota yfirleitt Flash til að spila hljóð, myndskeið eða tölvuleiki. Flash Player verður ekki studdur eftir desember 2020.</translation> <translation id="1989112275319619282">Skoða</translation> <translation id="1990512225220753005">Ekki sýna flýtileiðir á þessari síðu</translation> <translation id="1992397118740194946">Ekki stillt</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Gluggastaðsetning</translation> <translation id="2881076733170862447">Þegar þú smellir á viðbótina</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> verður endurræst og endurstillt eftir augnablik.</translation> -<translation id="288387288628762616">Mega nota Flash</translation> <translation id="2885378588091291677">Verkstjórn</translation> <translation id="2885729872133513017">Villa kom upp þegar svar netþjóns var afkóðað.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Þú ert skráð(ur) inn!</translation> <translation id="3428747202529429621">Tryggir öryggi þitt í Chrome og kann að vera notað til að auka öryggi þitt í öðrum Google forritum þegar þú ert skráð(ur) inn</translation> <translation id="3428800329481094896">Sækir SSH-lykla Linux-geymis</translation> +<translation id="3429271624041785769">Tungumál vefefnis</translation> <translation id="3429275422858276529">Settu þessa síðu í bókamerki til að auðvelt sé að finna hana síðar</translation> <translation id="3432227430032737297">Fjarlægja öll sem birtast</translation> <translation id="3432757130254800023">Senda hljóð og mynd til skjáa á staðarnetinu</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Þetta eru almennar upplýsingar um þetta tæki og notkun þess (eins og stöðu rafhlöðunnar, kerfis- og forritavirkni og villur). Gögnin verða notuð til að bæta Android stýrikerfið og sumar uppsafnaðar upplýsingar geta gagnast forritum Google og samstarfsaðilum okkar, svo sem þróunaraðilum fyrir Android, við að bæta forrit og vörur.</translation> <translation id="3838085852053358637">Ekki tókst að hlaða viðbót</translation> <translation id="3838486795898716504">Fleiri <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Fótspor og önnur gögn vefsvæða og viðbóta</translation> <translation id="383891835335927981">Aðdráttur hefur ekki verið aukinn eða minnkaður á neinum vefsvæðum</translation> <translation id="3839509547554145593">Kveikja á flettihröðun músar</translation> <translation id="3839516600093027468">Koma alltaf í veg fyrir að <ph name="HOST" /> sjái klippiborðið</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Niðurhalsstjórnun</translation> <translation id="3881478300875776315">Sýna færri línur</translation> <translation id="3882165008614329320">Fyrirliggjandi myndskeið úr myndavél eða skrá</translation> +<translation id="3884152383786131369">Vefefni sem er í boði á mörgum tungumálum mun nota fyrsta studda tungumálið á listanum. Þessar kjörstillingar eru samstilltar vafrastillingunum. <ph name="BEGIN_LINK_LEARN_MORE" />Frekari upplýsingar<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Beiðni þín um aðgang að þessu vefsvæði hefur verið send til <ph name="NAME" /></translation> <translation id="3888550877729210209">Glósur með <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Kveiktu á Chrome samstillingu til að nota Wi-Fi-samstillingu</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Ákvarðar stillingar tækis.</translation> <translation id="4025039777635956441">Slökkva á hljóði valins svæðis</translation> <translation id="4027804175521224372">(Þú ert að missa af allskonar – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Stillingar Flash verða geymdar þar til þú lokar Chrome.</translation> <translation id="4028467762035011525">Bæta við innfærsluaðferðum</translation> <translation id="4031179711345676612">Hljóðnemi er leyfður</translation> <translation id="4031527940632463547">Skynjarar læstir</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Stilla Kerberos</translation> <translation id="4235200303672858594">Allur skjárinn</translation> <translation id="4235965441080806197">Hætta við innskráningu</translation> -<translation id="4237773362828263530">Stillingar með algildisstafnum „*“ eru ekki lengur studdar. Hafðu samband við kerfisstjórann þinn til að <ph name="BEGIN_LINK" />breyta þessum stillingum<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Lesa flipa seinna}one{Lesa flipa seinna}other{Lesa flipa seinna}}</translation> <translation id="4242145785130247982">Ekki er leyfilegt að nota mörg biðlaravottorð</translation> <translation id="4242533952199664413">Opna stillingar</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Merki fannst ekki</translation> <translation id="4549791035683739768">Engin fingraför eru vistuð í öryggislyklinum þínum</translation> <translation id="4551763574344810652">Ýttu á <ph name="MODIFIER_KEY_DESCRIPTION" /> til að afturkalla</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> net, <ph name="SIGNAL_STRENGTH" />% sendistyrkur</translation> <translation id="4553526521109675518">Endurræsa þarf Chromebook til að breyta tungumáli tækisins. <ph name="BEGIN_LINK_LEARN_MORE" />Frekari upplýsingar<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Útgáfa ytri viðbótar er hin sama og eða eldri en útgáfa fyrirliggjandi viðbótar.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Hætta og virkja barnalæsingu</translation> <translation id="4976009197147810135">Lóðrétt skipting</translation> <translation id="4977942889532008999">Staðfesta aðgang</translation> -<translation id="4978905460870207779">Vefsvæði geta beðið um að nota Flash</translation> <translation id="4980805016576257426">Þessi viðbót inniheldur spilliforrit.</translation> <translation id="4981449534399733132">Til að hreinsa vafragögn úr öllum samstilltum tækjum og af Google reikningnum þínum skaltu <ph name="BEGIN_LINK" />skrá þig inn<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Hugbúnaður tækis</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Gögn sem tengjast þessu forriti verða fjarlægð úr tækinu.</translation> <translation id="5908474332780919512">Ræsa forrit þegar þú skráir þig inn</translation> <translation id="5908695239556627796">Flettihraði músar</translation> -<translation id="5908769186679515905">Loka fyrir að vefsvæði noti Flash</translation> <translation id="5910363049092958439">&Vista mynd sem...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> er án nettengingar</translation> <translation id="5911533659001334206">Flýtileiðaskoðari</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Bæta við miða</translation> <translation id="6112931163620622315">Athugaðu símann</translation> <translation id="6112952769866305444">Breyta einstaklingi, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Stilltu sjálfgefna leitarvél fyrir Chrome vafrann og ræsiforrit <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Til að nota Smart Lock skaltu skipta yfir í prófíl aðalnotanda símans</translation> <translation id="6116921718742659598">Breyta tungumála- og innsláttarstillingum</translation> <translation id="6120205520491252677">Festa þessa síðu á upphafsskjánum...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Engin önnur tiltæk tæki.</translation> <translation id="7141105143012495934">Innskráning mistókst vegna þess að ekki tókst að sækja reikningsupplýsingar. Hafðu samband við kerfisstjóra eða reyndu aftur.</translation> <translation id="7143207342074048698">Tengist</translation> +<translation id="7143358760238281735">Engin forrit í boði</translation> <translation id="7144878232160441200">Reyna aftur</translation> <translation id="714876143603641390">LAN-tenging</translation> <translation id="7149893636342594995">Síðastliðinn sólarhring</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Nota farsímagögn</translation> <translation id="7709152031285164251">Mistókst – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Senda út...</translation> +<translation id="7712739869553853093">Gluggi prentforskoðunar</translation> <translation id="7712836429117959503">Óþekkt viðbót með auðkennið <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Fótspor frá <ph name="DOMAIN" /> leyfð</translation> <translation id="7714464543167945231">Vottorð</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Villa við að stilla netkerfi</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Lokatími</translation> -<translation id="783214144752121388">Loka fyrir að vefsvæði noti Flash (ráðlagt)</translation> <translation id="7833720883933317473">Vistuð sérsniðin orð munu birtast hér</translation> <translation id="7835178595033117206">Bókamerki fjarlægt</translation> <translation id="7836850009646241041">Prófaðu að snerta öryggislykilinn aftur</translation> @@ -6058,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Þessi skrá er dulkóðuð. Biddu eiganda hennar um að dulráða hana.}one{Sumar þessara skráa eru dulkóðaðar. Biddu eigandann um að dulráða þær.}other{Sumar þessara skráa eru dulkóðaðar. Biddu eigandann um að dulráða þær.}}</translation> <translation id="808894953321890993">Breyta aðgangsorði</translation> <translation id="8090234456044969073">Lesa lista yfir vefsvæðin sem þú heimsækir oftast</translation> -<translation id="8092681102116274204">Stillingar með algildisstafnum „*“ eru ekki lengur studdar. Hafðu samband við forritara viðbótarinnar eða kerfisstjórann til að <ph name="BEGIN_LINK" />breyta þessum stillingum<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> svarar ekki</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Vistaðu öryggisafrit á Google Drive. Endurheimtu gögnin þín eða skiptu um tæki hvenær sem er. Öryggisafritunin felur í sér forritagögn.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Öryggisafritunum þínum er hlaðið inn á Google og þau dulkóðuð með aðgangsorði Google reikningsins.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6146,6 @@ <translation id="8201717382574620700">Velja <ph name="TOPIC_SOURCE" /> albúm</translation> <translation id="8202160505685531999">Sláðu aðgangsorðið inn aftur til að uppfæra <ph name="DEVICE_TYPE" /> sniðið þitt.</translation> <translation id="8203732864715032075">Fáðu sendar tilkynningar og láttu muna eftir þessari tölvu fyrir Messages. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Loka á Flash (ráðlagt)</translation> <translation id="820568752112382238">Mest heimsóttu vefsvæðin</translation> <translation id="8206745257863499010">Blúsaður</translation> <translation id="8206859287963243715">Farsímakerfi</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index f09c433..bbccbb1 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Interrompi</translation> <translation id="1272293450992660632">I valori PIN non corrispondono.</translation> <translation id="1272978324304772054">Questo account utente non appartiene al dominio con cui è registrato il dispositivo. Se vuoi registrarti a un altro dominio devi prima effettuare il recupero del dispositivo.</translation> -<translation id="1274977772557788323">Impostazioni di archiviazione Adobe Flash Player</translation> <translation id="1274997165432133392">Cookie e altri dati dei siti</translation> <translation id="1275718070701477396">Selezionato</translation> <translation id="1276994519141842946">Impossibile installare <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">I Preferiti, la cronologia e le altre impostazioni verranno sincronizzati con il tuo Account Google.</translation> <translation id="1314565355471455267">VPN Android</translation> <translation id="131461803491198646">Rete domestica, roaming non attivo</translation> -<translation id="1315056510003830387">Non possono utilizzare Flash</translation> <translation id="1316136264406804862">Ricerca in corso...</translation> <translation id="1316495628809031177">Sincronizzazione in pausa</translation> <translation id="1317637799698924700">La dock station funzionerà alla modalità compatibile con USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC non supporta il tipo di crittografia</translation> <translation id="1984417487208496350">Nessuna protezione (sconsigliata)</translation> <translation id="1987317783729300807">Account</translation> -<translation id="1988494864246143197">In genere, i siti usano Flash per riprodurre contenuti audio, video o videogiochi. Flash Player non sarà più supportato dopo dicembre 2020.</translation> <translation id="1989112275319619282">Esplora</translation> <translation id="1990512225220753005">Non mostrare scorciatoie in questa pagina</translation> <translation id="1992397118740194946">Non impostata</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">Posizionamento delle finestre</translation> <translation id="2881076733170862447">Quando fai clic sull'estensione</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> verrà riavviato e ripristinato tra poco</translation> -<translation id="288387288628762616">Possono utilizzare Flash</translation> <translation id="2885378588091291677">Task Manager</translation> <translation id="2885729872133513017">Si è verificato un problema durante la decodifica della risposta del server.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2465,7 +2461,6 @@ <translation id="383669374481694771">Si tratta di informazioni generali su questo dispositivo e sulla relativa modalità di utilizzo, ad esempio il livello della batteria, l'attività nelle app e nel sistema e gli errori. I dati saranno utilizzati per migliorare Android e alcune informazioni aggregate saranno utili anche alle app e ai partner di Google, come ad esempio agli sviluppatori Android, che potranno migliorare i propri prodotti e le proprie app.</translation> <translation id="3838085852053358637">Caricamento estensione non riuscito</translation> <translation id="3838486795898716504">Altre <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookie e altri dati di siti e plug-in</translation> <translation id="383891835335927981">Non è stato aumentato o diminuito lo zoom di alcun sito</translation> <translation id="3839509547554145593">Attiva l'accelerazione di scorrimento del mouse</translation> <translation id="3839516600093027468">Impedisci sempre a <ph name="HOST" /> di leggere gli appunti</translation> @@ -2640,7 +2635,6 @@ <translation id="4023146161712577481">Configurazione del dispositivo in fase di determinazione.</translation> <translation id="4025039777635956441">Disattiva l'audio del sito selezionato</translation> <translation id="4027804175521224372">(Resta sincronizzato, <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Le impostazioni Flash rimarranno memorizzate fino all'uscita da Chrome.</translation> <translation id="4028467762035011525">Aggiungi metodi di immissione</translation> <translation id="4031179711345676612">Microfono consentito</translation> <translation id="4031527940632463547">Sensori bloccati</translation> @@ -2792,7 +2786,6 @@ <translation id="4232375817808480934">Configura Kerberos</translation> <translation id="4235200303672858594">Schermo intero</translation> <translation id="4235965441080806197">Annulla accesso</translation> -<translation id="4237773362828263530">Le impostazioni con caratteri jolly "*" non sono più supportate. Contatta l'amministratore per <ph name="BEGIN_LINK" />modificare queste impostazioni<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Leggi scheda più tardi}other{Leggi schede più tardi}}</translation> <translation id="4242145785130247982">Non sono supportati più certificati client</translation> <translation id="4242533952199664413">Apri le impostazioni</translation> @@ -3056,7 +3049,6 @@ <translation id="4548483925627140043">segnale non trovato</translation> <translation id="4549791035683739768">Nel token di sicurezza non sono archiviate impronte</translation> <translation id="4551763574344810652">Premi <ph name="MODIFIER_KEY_DESCRIPTION" /> per annullare</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Rete <ph name="NETWORK_TYPE" />, intensità del segnale <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Per cambiare la lingua del dispositivo, devi riavviare il Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Ulteriori informazioni<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">La versione dell'estensione esterna è pari o precedente a quella dell'estensione esistente.</translation> @@ -3411,7 +3403,6 @@ <translation id="4974733135013075877">Esci e blocca</translation> <translation id="4976009197147810135">Divisione in verticale</translation> <translation id="4977942889532008999">Conferma accesso</translation> -<translation id="4978905460870207779">I siti possono chiedere di usare Flash</translation> <translation id="4980805016576257426">Questa estensione contiene malware.</translation> <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Accedi<ph name="END_LINK" /> per cancellare i dati di navigazione da tutti i dispositivi sincronizzati e dal tuo Account Google.</translation> <translation id="4982236238228587209">Software dispositivo</translation> @@ -4182,7 +4173,6 @@ <translation id="5906732635754427568">I dati associati a questa app verranno rimossi dal dispositivo.</translation> <translation id="5908474332780919512">Avvia app all'accesso</translation> <translation id="5908695239556627796">Velocità di scorrimento del mouse</translation> -<translation id="5908769186679515905">Impedisci ai siti di eseguire Flash</translation> <translation id="5910363049092958439">Sal&va immagine con nome...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> è offline</translation> <translation id="5911533659001334206">Visualizzatore scorciatoie</translation> @@ -5835,7 +5825,6 @@ <translation id="7831491651892296503">Errore durante la configurazione della rete</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Ora di fine</translation> -<translation id="783214144752121388">Impedisci ai siti di eseguire Flash (opzione consigliata)</translation> <translation id="7833720883933317473">Le parole personalizzate salvate verranno visualizzate qui</translation> <translation id="7835178595033117206">Segnalibro rimosso</translation> <translation id="7836850009646241041">Prova a toccare di nuovo il token di sicurezza</translation> @@ -6063,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Questo file è criptato. Chiedi al proprietario di decriptarlo.}other{Alcuni di questi file sono criptati. Chiedi al proprietario di decriptarli.}}</translation> <translation id="808894953321890993">Cambia password</translation> <translation id="8090234456044969073">Lettura di un elenco di siti web più visitati</translation> -<translation id="8092681102116274204">Le impostazioni con caratteri jolly "*" non sono più supportate. Contatta lo sviluppatore dell'estensione o il tuo amministratore per <ph name="BEGIN_LINK" />cambiare queste impostazioni<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> non risponde</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Effettua il backup su Google Drive. Ripristina i dati o cambia facilmente dispositivo in qualsiasi momento. Il backup include i dati delle app.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Le copie di backup vengono caricate su Google e criptate mediante la password del tuo Account Google.<ph name="END_PARAGRAPH2" /> @@ -6157,7 +6145,6 @@ <translation id="8201717382574620700">Seleziona album <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Inserisci di nuovo la password per aggiornare il profilo <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Ricevere notifiche e impostare come predefinita la memorizzazione di questo computer per Messaggi. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blocca Flash (opzione consigliata)</translation> <translation id="820568752112382238">Siti più visitati</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">Cellulare</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index c4ae68f..11c99a3 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">הפסק</translation> <translation id="1272293450992660632">ערכי קוד האימות לא תואמים.</translation> <translation id="1272978324304772054">חשבון משתמש זה אינו שייך לדומיין שאליו רשום המכשיר. אם ברצונך להירשם לדומיין אחר, ראשית עליך לבצע שחזור מכשיר.</translation> -<translation id="1274977772557788323">הגדרות אחסון של Adobe Flash Player</translation> <translation id="1274997165432133392">קובצי Cookie ונתוני אתר נוספים</translation> <translation id="1275718070701477396">נבחר</translation> <translation id="1276994519141842946">לא ניתן היה להסיר את <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">הסימניות, ההיסטוריה והגדרות נוספות יסונכרנו עם חשבון Google שלך.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">רשת ביתית, לא בנדידה</translation> -<translation id="1315056510003830387">לא מורשים להשתמש ב-Flash</translation> <translation id="1316136264406804862">מתבצע חיפוש...</translation> <translation id="1316495628809031177">הסינכרון הושהה</translation> <translation id="1317637799698924700">תחנת העגינה תעבוד במצב התואם ל-USB-C.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC לא תומך בסוג ההצפנה</translation> <translation id="1984417487208496350">ללא הגנה (לא מומלץ)</translation> <translation id="1987317783729300807">חשבונות</translation> -<translation id="1988494864246143197">אתרים משתמשים בדרך כלל ב-Flash כדי להפעיל אודיו, וידאו או משחקי וידאו. התמיכה ב-Flash Player תופסק אחרי דצמבר 2020.</translation> <translation id="1989112275319619282">דפדף</translation> <translation id="1990512225220753005">לא להציג קיצורי דרך בדף הזה</translation> <translation id="1992397118740194946">לא מוגדר</translation> @@ -1647,7 +1644,6 @@ <translation id="2880660355386638022">מיקום חלונות</translation> <translation id="2881076733170862447">בלחיצה על התוסף</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> יבצע אתחול ואיפוס בעוד מספר רגעים</translation> -<translation id="288387288628762616">מורשים להשתמש ב-Flash</translation> <translation id="2885378588091291677">מנהל המשימות</translation> <translation id="2885729872133513017">התרחשה בעיה במהלך פענוח תגובת השרת.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2463,7 +2459,6 @@ <translation id="383669374481694771">זהו מידע כללי על המכשיר הזה ואופן השימוש בו (למשל רמת הסוללה, פעילות המערכת, הפעילות באפליקציות ושגיאות). הנתונים האלה ישמשו כדי לשפר את Android. חלק מהמידע הנצבר יעזור גם לשפר את האפליקציות של Google, וכן יעזור לשותפים של Google (למשל למפתחים של Android) לשפר את האפליקציות והמוצרים שלהם.</translation> <translation id="3838085852053358637">טעינת התוסף נכשלה</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> נוספים</translation> -<translation id="3838543471119263078">קובצי cookie ונתוני אתר ופלאגין נוספים</translation> <translation id="383891835335927981">באף אתר לא השתנה המרחק מהתצוגה</translation> <translation id="3839509547554145593">הפעלה של האצת גלילה בעכבר</translation> <translation id="3839516600093027468">יש למנוע תמיד מ-<ph name="HOST" /> לגשת אל הלוח</translation> @@ -2637,7 +2632,6 @@ <translation id="4023146161712577481">קביעת התצורה של המכשיר.</translation> <translation id="4025039777635956441">השתקת האתרים שנבחרו</translation> <translation id="4027804175521224372">(אתה מפסיד- <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">ההגדרות שלך ל-Flash יישמרו עד ליציאה מ-Chrome.</translation> <translation id="4028467762035011525">הוספה של שיטות קלט</translation> <translation id="4031179711345676612">ניתן להשתמש במיקרופון בדף זה</translation> <translation id="4031527940632463547">החיישנים חסומים</translation> @@ -2789,7 +2783,6 @@ <translation id="4232375817808480934">הגדרת Kerberos</translation> <translation id="4235200303672858594">כל המסך</translation> <translation id="4235965441080806197">בטל כניסה</translation> -<translation id="4237773362828263530">הגדרות עם תווים כלליים מסוג "*" כבר אינן נתמכות. יש לפנות אל מנהל המערכת כדי <ph name="BEGIN_LINK" />לשנות את ההגדרות האלה<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{קריאת הכרטיסייה במועד מאוחר יותר}two{קריאת הכרטיסיות במועד מאוחר יותר}many{קריאת הכרטיסיות במועד מאוחר יותר}other{קריאת הכרטיסיות במועד מאוחר יותר}}</translation> <translation id="4242145785130247982">אין תמיכה באישורי לקוח מרובים.</translation> <translation id="4242533952199664413">פתח את 'הגדרות'</translation> @@ -3053,7 +3046,6 @@ <translation id="4548483925627140043">לא אותר אות</translation> <translation id="4549791035683739768">לא נשמרו טביעות אצבעות במפתח האבטחה</translation> <translation id="4551763574344810652">אפשר לבטל את הפעולה בהקשה על <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">רשת <ph name="NETWORK_TYPE" />, עוצמת אות <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">כדי לשנות את שפת המכשיר, עליך להפעיל את Chromebook מחדש. <ph name="BEGIN_LINK_LEARN_MORE" />מידע נוסף<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">התוסף החיצוני הוא מגרסה זהה או קודמת לזו של התוסף הקיים.</translation> @@ -3408,7 +3400,6 @@ <translation id="4974733135013075877">יציאה והפעלת נעילה בטיחותית לילדים</translation> <translation id="4976009197147810135">פיצול אנכי</translation> <translation id="4977942889532008999">אשר גישה</translation> -<translation id="4978905460870207779">אתרים יכולים לבקש הרשאה להשתמש ב-Flash</translation> <translation id="4980805016576257426">התוסף הזה מכיל תוכנה זדונית.</translation> <translation id="4981449534399733132">כדי לנקות את נתוני הגלישה מכל המכשירים המסונכרנים ומחשבון Google שלך, <ph name="BEGIN_LINK" />יש לבצע כניסה<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">התוכנות במכשיר</translation> @@ -4179,7 +4170,6 @@ <translation id="5906732635754427568">המערכת תסיר מהמכשיר הזה נתונים המשויכים לאפליקציה הזו.</translation> <translation id="5908474332780919512">הפעלת האפליקציה בזמן הכניסה</translation> <translation id="5908695239556627796">מהירות גלילת העכבר</translation> -<translation id="5908769186679515905">חסימת הפעלה של Flash על-ידי אתרים</translation> <translation id="5910363049092958439">שמ&ירת תמונה בשם...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> אופליין</translation> <translation id="5911533659001334206">מציג קיצורי הדרך</translation> @@ -5828,7 +5818,6 @@ <translation id="7831491651892296503">אירעה שגיאה בהגדרת הרשת</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">שעת סיום</translation> -<translation id="783214144752121388">חסימת האפשרות של אתרים להפעיל Flash (מומלץ)</translation> <translation id="7833720883933317473">כאן יופיעו המילים המותאמות ששמרת</translation> <translation id="7835178595033117206">הסימנייה הוסרה</translation> <translation id="7836850009646241041">עליך לנסות לגעת שוב במפתח האבטחה</translation> @@ -6056,7 +6045,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{הקובץ הזה מוצפן. צריך לבקש מהבעלים שלו לפענח אותו.}two{חלק מהקבצים האלה מוצפנים. צריך לבקש מהבעלים שלהם לפענח אותם.}many{חלק מהקבצים האלה מוצפנים. צריך לבקש מהבעלים שלהם לפענח אותם.}other{חלק מהקבצים האלה מוצפנים. צריך לבקש מהבעלים שלהם לפענח אותם.}}</translation> <translation id="808894953321890993">שינוי הסיסמה</translation> <translation id="8090234456044969073">עיין ברשימת אתרי האינטרנט שבהם אתה מבקר הכי הרבה</translation> -<translation id="8092681102116274204">הגדרות עם תווים כלליים מסוג "*" כבר אינן נתמכות. יש לפנות אל מפתח התוסף או למנהל המערכת כדי <ph name="BEGIN_LINK" />לשנות את ההגדרות האלה<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> לא מגיב</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />גיבוי ב-Google Drive. אפשר לשחזר נתונים או להחליף מכשיר בקלות מתי שרוצים. הגיבוי כולל נתוני אפליקציות.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />הגיבויים נשמרים ב-Google ומוצפנים באמצעות הסיסמה לחשבון Google שלך. @@ -6153,7 +6141,6 @@ <translation id="8201717382574620700">בחר אלבומי <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">יש להזין שוב את הסיסמה כדי לעדכן את פרופיל <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">המערכת שולחת לך התראות ומגדירה את המחשב הזה כברירת מחדל לשליחת ההודעות. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">חסימת Flash (מומלץ)</translation> <translation id="820568752112382238">האתרים שאליהם נכנסת בתדירות הגבוהה ביותר</translation> <translation id="8206745257863499010">בלוז</translation> <translation id="8206859287963243715">סלולארי</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index f80bd0fd..cecb488 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">中止</translation> <translation id="1272293450992660632">PIN の値が一致しません。</translation> <translation id="1272978324304772054">このユーザー アカウントは、デバイスが登録されているドメインに属していません。別のドメインに登録する場合は、まず、デバイス リカバリ操作を行う必要があります。</translation> -<translation id="1274977772557788323">Adobe Flash Player のストレージ設定</translation> <translation id="1274997165432133392">Cookie と他のサイトデータ</translation> <translation id="1275718070701477396">選択されています</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> をアンインストールできませんでした</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">ブックマークや履歴などの設定が Google アカウントに同期されます。</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">ホーム ネットワーク、ローミングなし</translation> -<translation id="1315056510003830387">Flash の使用を許可しないサイト</translation> <translation id="1316136264406804862">検索しています...</translation> <translation id="1316495628809031177">同期は一時停止中です</translation> <translation id="1317637799698924700">ドッキング ステーションは USB Type-C 互換モードで動作します。</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC でサポートされていない暗号化タイプです</translation> <translation id="1984417487208496350">保護なし(推奨されません)</translation> <translation id="1987317783729300807">アカウント</translation> -<translation id="1988494864246143197">多くのサイトは、音声や動画、ビデオゲームを再生またはプレイするために Flash を使用します(Flash Player のサポートは 2020 年 12 月で終了します)。</translation> <translation id="1989112275319619282">閲覧</translation> <translation id="1990512225220753005">このページではショートカットを表示しません</translation> <translation id="1992397118740194946">未設定</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">ウィンドウの配置</translation> <translation id="2881076733170862447">拡張機能をクリックしたとき</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> の再起動とリセットを行います</translation> -<translation id="288387288628762616">Flash の使用を許可するサイト</translation> <translation id="2885378588091291677">タスク マネージャ</translation> <translation id="2885729872133513017">サーバーの応答をデコード中に問題が発生しました。</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2465,7 +2461,6 @@ <translation id="383669374481694771">このデバイスと使用状況に関する一般的な情報(電池残量、システムやアプリのアクティビティ、エラーなど)です。このデータは、Android の機能向上に使用されます。また、統計情報の一部は、Google のアプリのほか、Android デベロッパーなどのパートナーが開発するアプリやサービスの品質改善にも役立てられます。</translation> <translation id="3838085852053358637">拡張機能を読み込めませんでした</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> をもっと見る</translation> -<translation id="3838543471119263078">Cookie などのサイトデータやプラグイン データ</translation> <translation id="383891835335927981">拡大縮小値を設定したサイトはありません</translation> <translation id="3839509547554145593">マウスのスクロール アクセラレーションを有効にする</translation> <translation id="3839516600093027468"><ph name="HOST" /> によるクリップボードへのアクセスを常にブロックする</translation> @@ -2639,7 +2634,6 @@ <translation id="4023146161712577481">デバイスの設定を確認しています。</translation> <translation id="4025039777635956441">選択したサイトをミュート</translation> <translation id="4027804175521224372">(詳細についてはこちら —<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Chrome を終了するまで、Flash の設定は保持されます。</translation> <translation id="4028467762035011525">入力方法を追加</translation> <translation id="4031179711345676612">マイクを使用できます</translation> <translation id="4031527940632463547">センサーがブロックされました</translation> @@ -2791,7 +2785,6 @@ <translation id="4232375817808480934">Kerberos の設定</translation> <translation id="4235200303672858594">画面全体</translation> <translation id="4235965441080806197">ログインをキャンセル</translation> -<translation id="4237773362828263530">ワイルドカード「*」を使用した設定のサポートは終了しました。<ph name="BEGIN_LINK" />これらの設定を変更する<ph name="END_LINK" />には、管理者にご確認ください。</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{タブを後で読む}other{タブを後で読む}}</translation> <translation id="4242145785130247982">サポートされていないクライアント証明書が複数あります</translation> <translation id="4242533952199664413">設定を開く</translation> @@ -3055,7 +3048,6 @@ <translation id="4548483925627140043">シグナルは検出されませんでした</translation> <translation id="4549791035683739768">セキュリティ キーにフィンガープリントは保存されていません</translation> <translation id="4551763574344810652">元に戻すには <ph name="MODIFIER_KEY_DESCRIPTION" /> を押します</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> ネットワーク、信号強度 <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">デバイスの言語を変更するには Chromebook を再起動する必要があります。<ph name="BEGIN_LINK_LEARN_MORE" />詳細<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">外部の拡張機能のバージョンが既存のバージョン以下です。</translation> @@ -3410,7 +3402,6 @@ <translation id="4974733135013075877">終了してチャイルドロックをかける</translation> <translation id="4976009197147810135">縦に分割</translation> <translation id="4977942889532008999">アクセスの確認</translation> -<translation id="4978905460870207779">サイトが Flash の使用を要求できるようにする</translation> <translation id="4980805016576257426">この拡張機能には不正なソフトウェアが含まれています。</translation> <translation id="4981449534399733132">同期しているすべてのデバイスと Google アカウントから閲覧データを削除するには、<ph name="BEGIN_LINK" />ログイン<ph name="END_LINK" />してください。</translation> <translation id="4982236238228587209">デバイスのソフトウェア</translation> @@ -4181,7 +4172,6 @@ <translation id="5906732635754427568">このアプリに関連付けられているデータはこのデバイスから削除されます。</translation> <translation id="5908474332780919512">ログイン時にアプリを開く</translation> <translation id="5908695239556627796">マウスのスクロール速度</translation> -<translation id="5908769186679515905">サイトでの Flash の実行をブロックする</translation> <translation id="5910363049092958439">名前を付けて画像を保存(&V)...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> はオフラインです</translation> <translation id="5911533659001334206">ショートカット ビューア</translation> @@ -4532,7 +4522,7 @@ <translation id="6308937455967653460">名前を付けてリンク先を保存(&K)...</translation> <translation id="6309443618838462258">この入力方法は管理者によって許可されていません</translation> <translation id="6309510305002439352">マイクがオフになっています</translation> -<translation id="6310472381159916879">プロフィールを削除</translation> +<translation id="6310472381159916879">プロファイルを削除</translation> <translation id="6311220991371174222">プロフィールを開こうとして問題が発生したため、Chrome を起動できません。Chrome を再起動してみてください。</translation> <translation id="6312403991423642364">ネットワークが不明なためエラーが発生しました</translation> <translation id="6312567056350025599">{NUM_DAYS,plural, =1{安全確認を 1 日前に実行しました}other{安全確認を {NUM_DAYS} 日前に実行しました}}</translation> @@ -5831,7 +5821,6 @@ <translation id="7831491651892296503">ネットワークの設定中にエラーが発生しました</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">終了時間</translation> -<translation id="783214144752121388">サイトでの Flash の実行をブロックする(推奨)</translation> <translation id="7833720883933317473">保存したカスタムの単語がここに表示されます</translation> <translation id="7835178595033117206">ブックマークを削除しました</translation> <translation id="7836850009646241041">もう一度セキュリティ キーをタッチしてください</translation> @@ -6059,7 +6048,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{このファイルは暗号化されています。所有者に復号するよう依頼してください。}other{一部のファイルは暗号化されています。所有者に復号するよう依頼してください。}}</translation> <translation id="808894953321890993">パスワードの変更</translation> <translation id="8090234456044969073">よくアクセスするウェブサイトのリストの読み取り</translation> -<translation id="8092681102116274204">ワイルドカード「*」を使用した設定のサポートは終了しました。<ph name="BEGIN_LINK" />この設定を変更する<ph name="END_LINK" />には、拡張機能のデベロッパーか管理者にご確認ください。</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> が応答していません</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ドライブにバックアップします。これにより、いつでも簡単にデータを復元したりデバイスを切り替えたりできます。バックアップ対象にはアプリのデータが含まれます。<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />バックアップ データは Google にアップロードされ、Google アカウントのパスワードを使って暗号化されます。<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6142,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> アルバムを選択</translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> のプロフィールを更新するにはパスワードを再入力してください。</translation> <translation id="8203732864715032075">デフォルトでこのパソコンにメッセージの通知を送信する<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash をブロックする(推奨)</translation> <translation id="820568752112382238">よくアクセスするサイト</translation> <translation id="8206745257863499010">ブルース</translation> <translation id="8206859287963243715">携帯電話</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 18acd08f..0a5b9fd 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">შეწყვეტა</translation> <translation id="1272293450992660632">PIN-კოდების მნიშვნელობები არ ემთხვევა.</translation> <translation id="1272978324304772054">ამ მომხმარებლის ანგარიში არ მიეკუთვნება იმ დომეინს, რომელზეც რეგისტრირებულია მოწყობილობა. თუ გსურთ სხვა დომეინზე რეგისტრაცია, ჯერ უნდა გაიაროთ მოწყობილობის აღდგენის პროცედურა.</translation> -<translation id="1274977772557788323">Adobe Flash Player-ის მეხსიერების პარამეტრები</translation> <translation id="1274997165432133392">ქუქი და საიტის სხვა მონაცემები</translation> <translation id="1275718070701477396">შერჩეული</translation> <translation id="1276994519141842946"><ph name="APP_NAME" />-ის დეინსტალაცია ვერ მოხერხდა</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">თქვენი სანიშნეები, ისტორია და სხვა პარამეტრები დასინქრონდება Google ანგარიშთან.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">სახლის ქსელი, როუმინგის გარეშე</translation> -<translation id="1315056510003830387">Flash-ის გამოყენება დაუშვებელია</translation> <translation id="1316136264406804862">მიმდინარეობს ძიება…</translation> <translation id="1316495628809031177">სინქრონიზაცია შეჩერებულია</translation> <translation id="1317637799698924700">თქვენი სამაგრი იმუშავებს USB Type-C-თან თავსებად რეჟიმში.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">დაშიფვრის ტიპი მხარდაუჭერელია KDC-ის მიერ</translation> <translation id="1984417487208496350">დაცვის გარეშე (არარეკომენდებული)</translation> <translation id="1987317783729300807">ანგარიშები</translation> -<translation id="1988494864246143197">როგორც წესი, Flash საიტების მიერ გამოიყენება აუდიოს, ვიდეოს ან ვიდეოთამაშების გასაშვებად. Flash Player აღარ იქნება მხარდაჭერილი 2020 წლის დეკემბრის შემდეგ.</translation> <translation id="1989112275319619282">დათვალიერება</translation> <translation id="1990512225220753005">მალსახმობების დამალვა ამ გვერდზე</translation> <translation id="1992397118740194946">არ არის დაყენებული</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">ფანჯრის განლაგება</translation> <translation id="2881076733170862447">გაფართოებაზე დაწკაპუნებისას</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" />-ი ახორციელებს მომენტალურ გადატვირთვას და ქარნულ პარამეტრებზე დაბრუნებას</translation> -<translation id="288387288628762616">Flash-ის გამოყენება დაშვებულია</translation> <translation id="2885378588091291677">ამოცანების მმართველი</translation> <translation id="2885729872133513017">სერვერის რეაგირების გაშიფვრისას წარმოიქმნა პრობლემა.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2080,6 +2076,7 @@ <translation id="3428419049384081277">თქვენ შესული ხართ.</translation> <translation id="3428747202529429621">უზრუნველყოფს თქვენს უსაფრთხოებას Chrome-ში და Google-ის სხვა აპებში, როცა სისტემაში შესული ხართ</translation> <translation id="3428800329481094896">Linux-ის კონტეინერისთვის SSH-გასაღებების მიღება</translation> +<translation id="3429271624041785769">ვებკონტენტის ენები</translation> <translation id="3429275422858276529">დაამატეთ ეს გვერდი სანიშნეებს, რათა მოგვიანებით მარტივად იპოვოთ</translation> <translation id="3432227430032737297">ყველა ნაჩვენების ამოშლა</translation> <translation id="3432757130254800023">ადგილობრივ ქსელში არსებულ ეკრანებზე აუდიოსა და ვიდეოს გაგზავნა</translation> @@ -2464,7 +2461,6 @@ <translation id="383669374481694771">ეს არის ზოგადი ინფორმაცია ამ მოწყობილობისა და მისი გამოყენების შესახებ (მაგ. ბატარეის დონე, სისტემისა და აპების აქტივობა თუ შეცდომები). აღნიშნული მონაცემები ხელს შეუწყობს Android-ის გაუმჯობესებას, ხოლო შეჯამებული ინფორმაციის ნაწილი ასევე სასარგებლო იქნება Google-ის აპებისა და პარტნიორებისთვის, მაგალითად, Android-ის დეველოპერებისთვის, რომლებიც შეძლებენ საკუთარი აპებისა და პროდუქტების დახვეწას.</translation> <translation id="3838085852053358637">გაფართოება ვერ ჩაიტვირთა</translation> <translation id="3838486795898716504">მეტი <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">ქუქი-ჩანაწერები, ასევე საიტების და დანამატების სხვა მონაცემები</translation> <translation id="383891835335927981">მასშტაბის გადიდება ან შემცირება არცერთ საიტზე არ მოხდარა</translation> <translation id="3839509547554145593">მაუსით გადაადგილების დაჩქარების ჩართვა</translation> <translation id="3839516600093027468">ყოველთვის აეკრძალოს <ph name="HOST" />-ს გაცვლის ბუფერის ნახვა</translation> @@ -2506,6 +2502,7 @@ <translation id="3879748587602334249">ჩამოტვირთვის მენეჯერი</translation> <translation id="3881478300875776315">ნაკლები ხაზის ჩვენება</translation> <translation id="3882165008614329320">არსებული ვიდეო კამერიდან ან ფაილიდან</translation> +<translation id="3884152383786131369">რამდენიმე ენაზე ხელმისაწვდომი ვებკონტენტი ამ სიიდან პირველ მხარდაჭერილ ენას გამოიყენებს. ეს პარამეტრები სინქრონიზდება თქვენი ბრაუზერის პარამეტრებთან. <ph name="BEGIN_LINK_LEARN_MORE" />შეიტყვეთ მეტი<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">ამ საიტზე წვდომის მოთხოვნა გაეგზავნა <ph name="NAME" />-ს</translation> <translation id="3888550877729210209">ჩანიშვნა <ph name="LOCK_SCREEN_APP_NAME" />-ის მეშვეობით</translation> <translation id="3890064827463908288">Wi-Fi სინქრონიზაციის გამოსაყენებლად ჩართეთ Chrome სინქრონიზაცია</translation> @@ -2638,7 +2635,6 @@ <translation id="4023146161712577481">მოწყობილობის კონფიგურაციის განსაზღვრა.</translation> <translation id="4025039777635956441">არჩეული საიტის დადუმება</translation> <translation id="4027804175521224372">(თქვენ გამოტოვეთt - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">თქვენი Flash პარამეტრები შენარჩუნდება Chrome-იდან გასვლამდე.</translation> <translation id="4028467762035011525">შეყვანის მეთოდების დამატება</translation> <translation id="4031179711345676612">მიკროფონი დაშვებულია</translation> <translation id="4031527940632463547">სენსორების გამოყენება აკრძალულია</translation> @@ -2790,7 +2786,6 @@ <translation id="4232375817808480934">Kerberos-ის კონფიგურაცია</translation> <translation id="4235200303672858594">მთელ ეკრანზე</translation> <translation id="4235965441080806197">შესვლის გაუქმება</translation> -<translation id="4237773362828263530">„*“-ის ჩანაცვლების ნიშნის შემცველი პარამეტრები მხარდაჭერილი აღარ არის. <ph name="BEGIN_LINK" />ამ პარამეტრების შესაცვლელად<ph name="END_LINK" /> დაუკავშირდით თქვენს ადმინისტრატორს.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{ჩანართის მოგვიანებით წაკითხვა}other{ჩანართების მოგვიანებით წაკითხვა}}</translation> <translation id="4242145785130247982">კლიენტთა რამდენიმე სერტიფიკატის გამოყენება მხარდაუჭერელია</translation> <translation id="4242533952199664413">პარამეტრების გახსნა</translation> @@ -3054,7 +3049,6 @@ <translation id="4548483925627140043">სიგნალი ვერ მოიძებნა</translation> <translation id="4549791035683739768">თქვენს უსაფრთხოების გასაღებზე თითის ანაბეჭდები შენახული არ არის</translation> <translation id="4551763574344810652">მოქმედების გასაუქმებლად დაჭერით აირჩიეთ „<ph name="MODIFIER_KEY_DESCRIPTION" />“</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> ქსელი, სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">მოწყობილობის ენის შესაცვლელად საჭიროა თქვენი Chromebook-ის გადატვირთვა. <ph name="BEGIN_LINK_LEARN_MORE" />შეიტყვეთ მეტი<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">გარე გაფართოების ვერსია იგივე ან უფრო დაბალი ვერსიაა, არსებულთან შედარებით.</translation> @@ -3409,7 +3403,6 @@ <translation id="4974733135013075877">გამოსვლა და ბავშვებისგან დაბლოკვა</translation> <translation id="4976009197147810135">ვერტიკალური გაყოფა</translation> <translation id="4977942889532008999">წვდომის დადასტურება</translation> -<translation id="4978905460870207779">საიტებს შეუძლია Flash-ის გამოყენების თხოვნა</translation> <translation id="4980805016576257426">ეს გაფართოება მავნე პროგრამას შეიცავს.</translation> <translation id="4981449534399733132">თქვენი Google ანგარიშიდან და ყველა სინქრონიზებული მოწყობილობიდან დათვალიერების მონაცემების გასასუფთავებლად <ph name="BEGIN_LINK" />შედით სისტემაში<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">მოწყობილობის პროგრამული უზრუნველყოფა</translation> @@ -4180,7 +4173,6 @@ <translation id="5906732635754427568">ამ აპთან დაკავშირებული მონაცემები ამ მოწყობილობიდან ამოიშლება.</translation> <translation id="5908474332780919512">აპის გაშვება სისტემაში შესვლისას</translation> <translation id="5908695239556627796">მაუსით გადაადგილების სიჩქარე</translation> -<translation id="5908769186679515905">საიტებისთვის Flash-ის გაშვების დაბლოკვა</translation> <translation id="5910363049092958439">გამოსახულების შენ&ახვა, როგორც…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ხაზგარეშეა</translation> <translation id="5911533659001334206">მალსახმობების მნახველი</translation> @@ -4364,6 +4356,7 @@ <translation id="6112727384379533756">ბილეთის დამატება</translation> <translation id="6112931163620622315">შეამოწმეთ თქვენი ტელეფონი</translation> <translation id="6112952769866305444">პიროვნების რედაქტირება, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">დააყენეთ ნაგულისხმევი საძიებო სისტემა Chrome ბრაუზერისა და <ph name="DEVICE_TYPE" /> გამშვებისთვის</translation> <translation id="6113942107547980621">Smart Lock-ის გამოსაყენებლად საჭიროა ძირითადი მომხმარებლის პროფილის გადართვა თქვენს ტელეფონზე</translation> <translation id="6116921718742659598">შცვალეთ ენა და შეყვანის პარამეტრები</translation> <translation id="6120205520491252677">გვერდის ჩამაგრება საწყის ეკრანზე…</translation> @@ -5230,6 +5223,7 @@ <translation id="7140928199327930795">სხვა ხელმისაწვდომი მოწყობილობები არ არის.</translation> <translation id="7141105143012495934">შესვლა ვერ მოხერხდა, რადგან თქვენი ანგარიშის შესახებ დეტალების მიღება შეუძლებელია. გთხოვთ, დაუკავშირდეთ ადმინისტრატორს ან სცადოთ ხელახლა.</translation> <translation id="7143207342074048698">დაკავშირება</translation> +<translation id="7143358760238281735">ხელმისაწვდომი აპები არ არის</translation> <translation id="7144878232160441200">გაიმეორეთ</translation> <translation id="714876143603641390">LAN-ის კავშირი</translation> <translation id="7149893636342594995">ბოლო 24 საათი</translation> @@ -5701,6 +5695,7 @@ <translation id="7707922173985738739">მობილური ინტერნეტის გამოყენება</translation> <translation id="7709152031285164251">ვერ მოხერხდა - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&ტრანსლირება…</translation> +<translation id="7712739869553853093">ბეჭდვის გადახედვის დიალოგი</translation> <translation id="7712836429117959503">უცნობი გაფართოება შემდეგი ID-ით: <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">ქუქი-ჩანაწერები <ph name="DOMAIN" />-დან დაშვებულია</translation> <translation id="7714464543167945231">სერტიფიკატი</translation> @@ -5830,7 +5825,6 @@ <translation id="7831491651892296503">შეცდომა ქსელის კონფიგურაციისას</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">დასრულების დრო</translation> -<translation id="783214144752121388">საიტებისთვის Flash-ის გაშვების აკრძალვა (რეკომენდებული)</translation> <translation id="7833720883933317473">შენახული მორგებული სიტყვები აქ გამოჩნდება</translation> <translation id="7835178595033117206">სანიშნე ამოიშალა</translation> <translation id="7836850009646241041">ხელახლა სცადეთ თქვენს უსაფრთხოების გასაღებზე შეხება</translation> @@ -6057,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ეს ფაილი დაშიფრულია. სთხოვეთ მის მფლობელს დეშიფრაცია.}other{ამ ფაილებიდან ზოგიერთი დაშიფრულია. სთხოვეთ მათ მფლობელებს დეშიფრაცია.}}</translation> <translation id="808894953321890993">პაროლის შეცვლა</translation> <translation id="8090234456044969073">ყველაზე ხშირად მონახულებადი ვებსაიტების სიის წაკითხვა</translation> -<translation id="8092681102116274204">„*“-ის ჩანაცვლების ნიშნის შემცველი პარამეტრები მხარდაჭერილი აღარ არის. <ph name="BEGIN_LINK" />ამ პარამეტრების შესაცვლელად<ph name="END_LINK" /> დაუკავშირდით გაფართოების დეველოპერს ან თქვენს ადმინისტრატორს.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> არ რეაგირებს</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />სარეზერვო კოპირება Google Drive-ში. მარტივად აღადგინეთ თქვენი მონაცემები ან შეცვალეთ მოწყობილობები ნებისმიერ დროს. თქვენი სარეზერვო ასლი მოიცავს აპების მონაცემებს.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />სარეზერვო ასლები აიტვირთება Google-ში და დაიშიფრება თქვენი Google ანგარიშის პაროლით.<ph name="END_PARAGRAPH2" /> @@ -6151,7 +6144,6 @@ <translation id="8201717382574620700">აირჩიეთ ალბომები თემაზე <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">თქვენი <ph name="DEVICE_TYPE" />-ის პროფილის განსაახლებლად, გთხოვთ, ხელახლა შეიყვანოთ თქვენი პაროლი.</translation> <translation id="8203732864715032075">თქვენთვის შეტყობინებების გამოგზავნა და ნაგულისხმევად ამ კომპიუტერის დამახსოვრება Messages-თვის. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash-ის დაბლოკვა (რეკომენდებულია)</translation> <translation id="820568752112382238">ყველაზე ხშირად მონახულებადი საიტები</translation> <translation id="8206745257863499010">ბლუზი</translation> <translation id="8206859287963243715">ფიჭური</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index 3dfecb8..f7f6550 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Тоқтату</translation> <translation id="1272293450992660632">PIN кодтары сәйкес келмейді.</translation> <translation id="1272978324304772054">Бұл пайдаланушы есептік жазбасы құрылғы тіркелген доменге жатпайды. Басқа доменге тіркегіңіз келсе, алдымен құрылғыны қалпына келтіруіңіз керек.</translation> -<translation id="1274977772557788323">Adobe Flash Player жад параметрлері</translation> <translation id="1274997165432133392">Cookie файлдары және басқа сайт деректері</translation> <translation id="1275718070701477396">Таңдалған</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> жойылмады.</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Бетбелгілеріңіз, журналыңыз және басқа параметрлеріңіз Google есептік жазбасымен синхрондалады.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Роуминг емес, үй желісі</translation> -<translation id="1315056510003830387">Flash бағдарламасын пайдалануға рұқсаты жоқтар</translation> <translation id="1316136264406804862">Ізделуде…</translation> <translation id="1316495628809031177">Синхрондау кідіртілді</translation> <translation id="1317637799698924700">Қондыру станциясы USB Type-C портымен үйлесімді режимде жұмыс істейді.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC шифрлау түрін қолданбайды.</translation> <translation id="1984417487208496350">Қорғау режимін өшіру (ұсынылмайды)</translation> <translation id="1987317783729300807">Есептік жазбалар</translation> -<translation id="1988494864246143197">Сайттар әдетте аудионы, бейнені немесе бейне ойындарды ойнату үшін Flash-ті пайдаланады. 2020 жылдың желтоқсанынан кейін Flash Player-ге қолдау көрсетілмейді.</translation> <translation id="1989112275319619282">Шолу</translation> <translation id="1990512225220753005">Бұл бетте таңбашаларды көрсетпеу</translation> <translation id="1992397118740194946">Орнатылмаған</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">Терезені орналастыру</translation> <translation id="2881076733170862447">Кеңейтім басылғанда</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> қазір қайта іске қосылып, қайта орнатылады</translation> -<translation id="288387288628762616">Flash бағдарламасын пайдалануға рұқсаты барлар</translation> <translation id="2885378588091291677">Тапсырмалар реттегіші</translation> <translation id="2885729872133513017">Сервер жауабының шифрын шешу барысында ақау орын алды.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2462,7 +2458,6 @@ <translation id="383669374481694771">Бұл – осы құрылғы мен оны пайдалану (мысалы, батарея зарядының деңгейі, жүйе мен қолданбаларды пайдалану тарихы, қателер) туралы жалпы ақпарат. Мәлімет Android жүйесін жақсарту үшін пайдаланылады, ал кейбір ақпарат Google қолданбаларына және Android әзірлеушілері сияқты серіктестерге көмектеседі әрі олардың қолданбалары мен өнімдерін жақсарта түседі.</translation> <translation id="3838085852053358637">Кеңейтім жүктелмеді</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> атауы қойылған басқа беттер</translation> -<translation id="3838543471119263078">Cookie файлдары және басқа сайт пен плагин деректері</translation> <translation id="383891835335927981">Ешқандай сайт ұлғайтылмады не кішірейтілмеді</translation> <translation id="3839509547554145593">Тінтуірді айналдыру жылдамдығын арттыруды қосу</translation> <translation id="3839516600093027468"><ph name="HOST" /> хостының буферді көруіне әрқашан тыйым салу</translation> @@ -2636,7 +2631,6 @@ <translation id="4023146161712577481">Құрылғы конфигурациясын анықтау.</translation> <translation id="4025039777635956441">Таңдалған сайттағы дыбысты өшіру</translation> <translation id="4027804175521224372">(Мүмкіндікті жіберіп алмаңыз — <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Flash параметрлері Chrome браузерінен шыққанға дейін сақталады.</translation> <translation id="4028467762035011525">Енгізу әдісін қосу</translation> <translation id="4031179711345676612">Микрофонды пайдалануға рұқсат берілген</translation> <translation id="4031527940632463547">Датчиктер құлыпталды</translation> @@ -2788,7 +2782,6 @@ <translation id="4232375817808480934">Kerberos билетін конфигурациялау</translation> <translation id="4235200303672858594">Бүкіл экран</translation> <translation id="4235965441080806197">Жүйеге кіруден бас тарту</translation> -<translation id="4237773362828263530">"*" алмастырғыш таңбалары бар параметрлерге бұдан былай қолдау көрсетілмейді. <ph name="BEGIN_LINK" />Бұл параметрлерді өзгерту<ph name="END_LINK" /> үшін әкімшіге хабарласыңыз.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Қойындыны кейін оқу}other{Қойындыларды кейін оқу}}</translation> <translation id="4242145785130247982">Бірнеше клиент сертификатына қолдау көрсетілмейді.</translation> <translation id="4242533952199664413">Параметрлерді ашу</translation> @@ -3052,7 +3045,6 @@ <translation id="4548483925627140043">Сигнал жоқ.</translation> <translation id="4549791035683739768">Қауіпсіздік кілтіңізде саусақ іздері сақталмаған.</translation> <translation id="4551763574344810652">Қайтару үшін <ph name="MODIFIER_KEY_DESCRIPTION" /> пернелерін басыңыз.</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> желісі, сигнал деңгейі: <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Құрылғының тілін өзгерту үшін Chromebook құрылғысын өшіріп, қосуыңыз керек. <ph name="BEGIN_LINK_LEARN_MORE" />Толығырақ<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Сыртқы кеңейтім бар нұсқамен бірдей немесе онымен салыстырғанда төменірек нұсқа болып табылады.</translation> @@ -3407,7 +3399,6 @@ <translation id="4974733135013075877">Шығу және балалардан құлыптау</translation> <translation id="4976009197147810135">Тігінен бөлу</translation> <translation id="4977942889532008999">Кіру рұқсатын растау</translation> -<translation id="4978905460870207779">Сайттар Flash пайдалануға рұқсат сұрай алады.</translation> <translation id="4980805016576257426">Бұл кеңейтімде зиянды бағдарлама бар.</translation> <translation id="4981449534399733132">Барлық синхрондалған құрылғылардан және Google есептік жазбасынан браузерді пайдалану деректерін өшіру үшін, <ph name="BEGIN_LINK" />жүйеге кіріңіз<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Құрылғының бағдарламалық құралы</translation> @@ -4178,7 +4169,6 @@ <translation id="5906732635754427568">Бұл қолданбамен байланыстырылған деректер бұл құрылғыдан өшіріледі.</translation> <translation id="5908474332780919512">Есептік жазбаға кірген кезде, қолданбаны іске қосу</translation> <translation id="5908695239556627796">Тінтуірді айналдыру жылдамдығы</translation> -<translation id="5908769186679515905">Сайттарда Flash қолданбасының іске қосылуын бөгеу</translation> <translation id="5910363049092958439">Кескінді басқаша са&қтау…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> офлайн режимде.</translation> <translation id="5911533659001334206">Жылдам пернелерді көру құралы</translation> @@ -5828,7 +5818,6 @@ <translation id="7831491651892296503">Желіні конфигурациялауда қате болды</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Аяқталу уақыты</translation> -<translation id="783214144752121388">Сайттардың Flash-ті іске қосуына тыйым салу (ұсынылады)</translation> <translation id="7833720883933317473">Сақталған арнаулы сөздер осы жерге шығады</translation> <translation id="7835178595033117206">Бетбелгі өшірілген</translation> <translation id="7836850009646241041">Қауіпсіздік кілтін тағы түртіп көріңіз.</translation> @@ -6055,7 +6044,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Бұл файл шифрланған. Иесінен шифрдан шығаруын сұраңыз.}other{Бұл файлдардың кейбіреуі шифрланған. Иелерінен оларды шифрдан шығаруын сұраңыз.}}</translation> <translation id="808894953321890993">Кұпия сөзді өзгерту</translation> <translation id="8090234456044969073">Ең жиі қаралатын веб-сайттар тізімін оқу</translation> -<translation id="8092681102116274204">"*" алмастырғыш таңбалары бар параметрлерге бұдан былай қолдау көрсетілмейді. <ph name="BEGIN_LINK" />Бұл параметрлерді өзгерту<ph name="END_LINK" /> үшін кеңейтім әзірлеушісіне немесе әкімшіге хабарласыңыз.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> жауап бермей жатыр</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google Drive дискісіне сақтық көшірме жасаңыз. Деректерді кез келген уақытта қалпына келтіріп, құрылғыңызды ауыстыра аласыз. Сақтық көшірмеде қолданба туралы деректер де қамтылады.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Сақтық көшірмелер Google-ға жүктеп салынады және Google есептік жазбаңыздың құпия сөзі арқылы шифрланады.<ph name="END_PARAGRAPH2" /> @@ -6150,7 +6138,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> альбомдарын таңдау</translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> профилін жаңарту үшін, құпия сөзіңізді қайта енгізіңіз.</translation> <translation id="8203732864715032075">Телефонға келген хабарлар туралы осы компьютерде хабарландыру алу. <ph name="LINK_BEGIN" />Толығырақ ақпарат<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash бағдарламасына бөгеу (ұсынылады)</translation> <translation id="820568752112382238">Көп кіретін сайттар</translation> <translation id="8206745257863499010">Блюз</translation> <translation id="8206859287963243715">Ұялы</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index 71e866f4..7f1db5da 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">ឈប់</translation> <translation id="1272293450992660632">តម្លៃ PIN មិនត្រូវគ្នាទេ។</translation> <translation id="1272978324304772054">គណនីអ្នកប្រើនេះមិនមែនជាកម្មសិទ្ធិរបស់ដែន ដែលឧបករណ៍នេះបានចុះឈ្មោះទៅទេ។ ប្រសិនបើអ្នកចង់ចុះឈ្មោះទៅដែនផ្សេងទៀត អ្នកត្រូវឆ្លងកាតការសង្រ្គោះឧបករណ៍ជាមុនសិន។</translation> -<translation id="1274977772557788323">ការកំណត់ទំហំផ្ទុកទិន្នន័យ Adobe Flash Player</translation> <translation id="1274997165432133392">ខុកឃី និងទិន្នន័យគេហទំព័រដ៏ទៃទៀត</translation> <translation id="1275718070701477396">បានជ្រើសរើស</translation> <translation id="1276994519141842946">មិនអាចលុប <ph name="APP_NAME" /> បានទេ</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">ចំណាំ ប្រវត្តិ និងការកំណត់ផ្សេងទៀតរបស់អ្នកនឹងត្រូវបានធ្វើសមកម្មទៅគណនី Google របស់អ្នក។</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">បណ្តាញនៅផ្ទះ មិនមែនរ៉ូមីងទេ</translation> -<translation id="1315056510003830387">មិនអនុញ្ញាតឱ្យប្រើ Flash ទេ</translation> <translation id="1316136264406804862">កំពុងស្វែងរក...</translation> <translation id="1316495628809031177">សមកាលកម្មត្រូវបានផ្អាក</translation> <translation id="1317637799698924700">ឧបករណ៍ភ្ជាប់របស់អ្នកនឹងធ្វើប្រតិបត្តិការនៅក្នុងមុខងារដែលត្រូវគ្នាជាមួយ USB ប្រភេទ C ។</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC មិនស្គាល់ប្រភេទអ៊ីនគ្រីបទេ</translation> <translation id="1984417487208496350">គ្មានការការពារ (មិនណែនាំ)</translation> <translation id="1987317783729300807">គណនី</translation> -<translation id="1988494864246143197">ជាធម្មតា គេហទំព័រប្រើ Flash ដើម្បីចាក់សំឡេង វីដេអូ ឬលេងវីដេអូហ្គេម។ Flash Player នឹងលែងប្រើបានទៀតហើយ បន្ទាប់ពីខែធ្នូ ឆ្នាំ 2020។</translation> <translation id="1989112275319619282">រុករក</translation> <translation id="1990512225220753005">កុំបង្ហាញផ្លូវកាត់នៅលើទំព័រនេះ</translation> <translation id="1992397118740194946">មិនបានកំណត់</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">ការដាក់វិនដូ</translation> <translation id="2881076733170862447">នៅពេលអ្នកចុចកម្មវិធីបន្ថែម</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> នឹងចាប់ផ្តើមឡើងវិញ និងកំណត់ឡើងវិញក្នុងរយៈបន្តិចទៀត</translation> -<translation id="288387288628762616">អនុញ្ញាតឱ្យប្រើ Flash</translation> <translation id="2885378588091291677">កម្មវិធីគ្រប់គ្រងភារកិច្ច</translation> <translation id="2885729872133513017">មានបញ្ហាកើតឡើង នៅពេលឌិកូដការឆ្លើយតបរបស់ម៉ាស៊ីនមេ។</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">អ្នកបានចូលគណនីហើយ!</translation> <translation id="3428747202529429621">រក្សាសុវត្ថិភាពរបស់អ្នកនៅលើ Chrome និងអាចប្រើសម្រាប់កែលម្អសុវត្ថិភាពរបស់អ្នកនៅក្នុងកម្មវិធី Google ផ្សេងទៀត នៅពេលអ្នកចូលគណនី</translation> <translation id="3428800329481094896">កំពុងទាញយកសោ ssh ទម្រង់ផ្ទុក Linux</translation> +<translation id="3429271624041785769">ភាសារបស់ខ្លឹមសារបណ្ដាញ</translation> <translation id="3429275422858276529">ចំណាំទំព័រនេះដើម្បីងាយស្រួលក្នុងការរកវានៅពេលក្រោយ</translation> <translation id="3432227430032737297">លុបអ្វីដែលបានបង្ហាញចេញទាំងអស់</translation> <translation id="3432757130254800023">ផ្ញើសម្លេង និងវីដេអូទៅអេក្រង់នៅលើបណ្តាញមូលដ្ឋាន</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">នេះគឺជាព័ត៌មានទូទៅអំពីឧបករណ៍នេះ និងរបៀបប្រើប្រាស់ (ដូចជាកម្រិតថ្ម សកម្មភាពកម្មវិធី និងប្រព័ន្ធ ព្រមទាំងបញ្ហានានា)។ ទិន្នន័យនេះនឹងត្រូវបានប្រើប្រាស់ ដើម្បីកែលម្អ Android ហើយព័ត៌មានដែលបានប្រមូលមួយចំនួនក៏នឹងជួយឱ្យកម្មវិធី និងដៃគូ Google ដូចជាអ្នកអភិវឌ្ឍន៍ Android ធ្វើឱ្យកម្មវិធី និងផលិតផលរបស់ពួកគេប្រសើរជាងមុនផងដែរ។</translation> <translation id="3838085852053358637">មិនអាចផ្ទុកកម្មវិធីបន្ថែមបានទេ</translation> <translation id="3838486795898716504">ច្រើនទៀត <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">ទិន្នន័យខូកឃី និងគេហទំព័រផ្សេងទៀត និងកម្មវិធីជំនួយ</translation> <translation id="383891835335927981">គ្មានទំព័រដែលបានពង្រីក ឬបង្រួមទេ</translation> <translation id="3839509547554145593">បើកការបង្កើនល្បឿនរំកិលកណ្ដុរ</translation> <translation id="3839516600093027468">ទប់ស្កាត់មិនឱ្យ <ph name="HOST" /> មើលអង្គចងចាំជានិច្ច</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">កម្មវិធីគ្រប់គ្រងការទាញយក</translation> <translation id="3881478300875776315">បង្ហាញបន្ទាត់តិចជាងនេះ</translation> <translation id="3882165008614329320">វីដេអូដែលមានស្រាប់ពីកាមេរ៉ា ឬឯកសារ</translation> +<translation id="3884152383786131369">ខ្លឹមសារបណ្ដាញដែលមានជាច្រើនភាសា នឹងប្រើភាសាដែលអាចប្រើបានទីមួយនៅក្នុងបញ្ជីនេះ។ ចំណូលចិត្តទាំងនេះត្រូវបានធ្វើសមកាលកម្មជាមួយការកំណត់កម្មវិធីរុករកតាមអ៊ីនធឺណិតរបស់អ្នក។ <ph name="BEGIN_LINK_LEARN_MORE" />ស្វែងយល់បន្ថែម<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">សំណើរបស់អ្នកដើម្បីចូលទៅកាន់ទំព័រនេះត្រូវបានផ្ញើទៅ <ph name="NAME" /></translation> <translation id="3888550877729210209">កត់ត្រាចំណាំដោយប្រើ <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">បើក Chrome សមកាលកម្ម ដើម្បីប្រើ Wi-Fi Sync</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">ការកំណត់ការតំឡើងឧបករណ៍</translation> <translation id="4025039777635956441">បិទគេហទំព័រដែលបានជ្រើសរើស</translation> <translation id="4027804175521224372">(អ្នកកំពុងបាត់—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">ការកំណត់ Flash របស់អ្នកនឹងត្រូវបានរក្សាទុក រហូតទាល់តែអ្នកចាកចេញពី Chrome ។</translation> <translation id="4028467762035011525">បញ្ចូលវិធីសាស្ត្របញ្ចូល</translation> <translation id="4031179711345676612">បានអនុញ្ញាតឱ្យប្រើមីក្រូហ្វូន</translation> <translation id="4031527940632463547">បានទប់ស្កាត់ឧបករណ៍ចាប់សញ្ញា</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">កំណត់រចនាសម្ព័ន្ធ Kerberos</translation> <translation id="4235200303672858594">អេក្រង់ទាំងមូល</translation> <translation id="4235965441080806197">បោះបង់ការចូលគណនី</translation> -<translation id="4237773362828263530">មិនអាចប្រើការកំណត់ដែលមានតួអក្សរជំនួស "*" បានទៀតទេ។ សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក ដើម្បី<ph name="BEGIN_LINK" />ប្ដូរការកំណត់ទាំងនេះ<ph name="END_LINK" />។</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{អានផ្ទាំងនៅពេលក្រោយ}other{អានផ្ទាំងនៅពេលក្រោយ}}</translation> <translation id="4242145785130247982">មិនអាចប្រើវិញ្ញាបនបត្រកម្មវិធីភ្ញៀវច្រើនបានទេ</translation> <translation id="4242533952199664413">បើកការកំណត់</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">រកមិនឃើញរលកសញ្ញាទេ</translation> <translation id="4549791035683739768">គ្មានស្នាមម្រាមដៃត្រូវបានរក្សាទុកនៅលើសោសុវត្ថិភាពរបស់អ្នកទេ</translation> <translation id="4551763574344810652">ចុច <ph name="MODIFIER_KEY_DESCRIPTION" /> ដើម្បីត្រឡប់វិញ</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">បណ្ដាញ <ph name="NETWORK_TYPE" />, កម្លាំងរលកសញ្ញា <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">អ្នកត្រូវចាប់ផ្ដើម Chromebook របស់អ្នកឡើងវិញ ដើម្បីផ្លាស់ប្ដូរភាសារបស់ឧបករណ៍។ <ph name="BEGIN_LINK_LEARN_MORE" />ស្វែងយល់បន្ថែម<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">កម្មវិធីបន្ថែមខាងក្រៅស្ថិតនៅក្នុងកំណែដូចគ្នា ឬទាបជាងបើប្រៀបនឺងកំណែដែលមានស្រាប់។</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">ចាកចេញ ហើយចាក់សោក្មេង</translation> <translation id="4976009197147810135">បំបែកបញ្ឈរ</translation> <translation id="4977942889532008999">អះអាងការចូលប្រើ</translation> -<translation id="4978905460870207779">គេហទំព័រអាចស្នើសុំប្រើ Flash</translation> <translation id="4980805016576257426">ផ្នែកបន្ថែមនេះមានផ្ទុកមេរោគ</translation> <translation id="4981449534399733132">ដើម្បីសម្អាតទិន្នន័យរុករកចេញពីឧបករណ៍ដែលបានធ្វើសមកាលកម្មទាំងអស់របស់អ្នក និងគណនី Google របស់អ្នក <ph name="BEGIN_LINK" />សូមចូលគណនី<ph name="END_LINK" />។</translation> <translation id="4982236238228587209">កម្មវិធីឧបករណ៍</translation> @@ -4182,7 +4175,6 @@ <translation id="5906732635754427568">ទិន្នន័យដែលពាក់ព័ន្ធជាមួយកម្មវិធីនេះនឹងត្រូវបានលុបចេញពីឧបករណ៍នេះ។</translation> <translation id="5908474332780919512">ចាប់ផ្ដើមកម្មវិធី នៅពេលអ្នកចូល</translation> <translation id="5908695239556627796">ល្បឿនរំកិលកណ្តុរ</translation> -<translation id="5908769186679515905">រារាំងគេហទំព័រមិនឲ្យដំណើរការ Flash</translation> <translation id="5910363049092958439">រក្សាទុករូបភាពជា...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> គ្មានអ៊ីនធឺណិតទេ</translation> <translation id="5911533659001334206">កម្មវិធីមើលផ្លូវកាត់</translation> @@ -4366,6 +4358,7 @@ <translation id="6112727384379533756">បញ្ចូលសំបុត្រ</translation> <translation id="6112931163620622315">ពិនិត្យមើលទូរសព្ទរបស់អ្នក</translation> <translation id="6112952769866305444">កែសម្រួលបុគ្គល <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">កំណត់ម៉ាស៊ីនស្វែងរកលំនាំដើមរបស់អ្នកសម្រាប់កម្មវិធីរុករកតាមអ៊ីនធឺណិត Chrome និងកម្មវិធីចាប់ផ្ដើម <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">ដើម្បីប្រើ Smart Lock សូមប្ដូរទៅប្រើកម្រងព័ត៌មានអ្នកប្រើប្រាស់ចម្បងនៅលើទូរសព្ទរបស់អ្នក</translation> <translation id="6116921718742659598">ប្តូរការកំណត់ភាសា និងធាតុបញ្ចូល</translation> <translation id="6120205520491252677">ដៅទំព័រនេះដើម្បី ចាប់ផ្តើម អេក្រង់...</translation> @@ -5232,6 +5225,7 @@ <translation id="7140928199327930795">គ្មានឧបករណ៍ផ្សេងទៀតទេ។</translation> <translation id="7141105143012495934">បានបរាជ័យក្នុងការចូលពីព្រោះមិនអាចទាញយកព័ត៌មានលម្អិតគណនីរបស់អ្នកបានទេ។ សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក ឬព្យាយាមម្តងទៀត។</translation> <translation id="7143207342074048698">កំពុងភ្ជាប់...</translation> +<translation id="7143358760238281735">មិនមានកម្មវិធីទេ</translation> <translation id="7144878232160441200">ព្យាយាមម្តងទៀត</translation> <translation id="714876143603641390">ការតភ្ជាប់ Lan</translation> <translation id="7149893636342594995">24 ម៉ោងមុន</translation> @@ -5703,6 +5697,7 @@ <translation id="7707922173985738739">ប្រើទិន្នន័យទូរសព្ទចល័ត</translation> <translation id="7709152031285164251">បានបរាជ័យ - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&ខាស...</translation> +<translation id="7712739869553853093">ប្រអប់មើលការបោះពុម្ពសាកល្បង</translation> <translation id="7712836429117959503">កម្មវិធីបន្ថែមមិនស្គាល់ដែលមានលេខសម្គាល់ <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">បានអនុញ្ញាតខូគីពី <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">វិញ្ញាបនប័ត្រ</translation> @@ -5832,7 +5827,6 @@ <translation id="7831491651892296503">មានបញ្ហាក្នុងការកំណត់រចនាសម្ព័ន្ធបណ្តាញ</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">ពេលបញ្ចប់</translation> -<translation id="783214144752121388">ទប់ស្កាត់មិនឱ្យគេហទំព័រដំណើរការ Flash (បានណែនាំ)</translation> <translation id="7833720883933317473">ពាក្យផ្ទាល់ខ្លួនដែលបានរក្សាទុកនឹងបង្ហាញនៅទីនេះ</translation> <translation id="7835178595033117206">បានលុបចំណាំ</translation> <translation id="7836850009646241041">សាកល្បងប៉ះសោសុវត្ថិភាពរបស់អ្នកម្ដងទៀត</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ឯកសារនេះត្រូវបានអ៊ីនគ្រីប។ សូមស្នើឱ្យម្ចាស់ឯកសារនេះឱ្យធ្វើការឌិគ្រីប។}other{ឯកសារមួយចំនួនក្នុងចំណោមឯកសារទាំងនេះត្រូវបានអ៊ីនគ្រីប។ សូមស្នើឱ្យម្ចាស់ឯកសារទាំងនេះឱ្យធ្វើការឌិគ្រីប។}}</translation> <translation id="808894953321890993">ប្ដូរពាក្យសម្ងាត់</translation> <translation id="8090234456044969073">អានបញ្ជីគេហទំព័រដែលអ្នកទៅកាន់ញឹកញាប់បំផុត</translation> -<translation id="8092681102116274204">មិនអាចប្រើការកំណត់ដែលមានតួអក្សរជំនួស "*" បានទៀតទេ។ សូមទាក់ទងអ្នកអភិវឌ្ឍន៍កម្មវិធីបន្ថែម ឬអ្នកគ្រប់គ្រងរបស់អ្នក ដើម្បី<ph name="BEGIN_LINK" />ប្ដូរការកំណត់ទាំងនេះ<ph name="END_LINK" />។</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> មិនឆ្លើយតបទេ</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />បម្រុងទុកទៅ Google ថាស។ ងាយស្រួលក្នុងការស្ដារទិន្នន័យរបស់អ្នក ឬប្ដូរឧបករណ៍បានគ្រប់ពេល។ ការបម្រុងទុករបស់អ្នករួមបញ្ចូលទាំងទិន្នន័យកម្មវិធី។<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ការបម្រុងទុករបស់អ្នកត្រូវបានបង្ហោះទៅ Google និងអ៊ីនគ្រីបដោយប្រើពាក្យសម្ងាត់គណនី Google របស់អ្នក។<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">ជ្រើសរើសអាល់ប៊ុម <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">សូមបញ្ចូលពាក្យសម្ងាត់របស់អ្នកសារជាថ្មីដើម្បីធ្វើបច្ចុប្បន្នភាពប្រវត្តិរូប <ph name="DEVICE_TYPE" /> របស់អ្នក។</translation> <translation id="8203732864715032075">ផ្ញើការជូនដំណឹង និងលំនាំដើមទៅអ្នក ដើម្បីចងចាំកុំព្យូទ័រនេះសម្រាប់ Messages ។ <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">ទប់ស្កាត់ Flash (បានណែនាំ)</translation> <translation id="820568752112382238">គេហទំព័រដែលចូលមើលញឹកញាប់បំផុត</translation> <translation id="8206745257863499010">ប៊្លូស៊ី</translation> <translation id="8206859287963243715">ប្រព័ន្ធទូរស័ព្ទ</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index f36f7ce..e989bc9 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">ನಿಲ್ಲಿಸಿ</translation> <translation id="1272293450992660632">ಪಿನ್ ಮೌಲ್ಯಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ.</translation> <translation id="1272978324304772054">ಈ ಬಳಕೆದಾರನ ಖಾತೆಯು ಸಾಧನವು ದಾಖಲಾಗಿರುವ ಡೊಮೇನ್ಗೆ ಸಂಬಂಧಿಸಿಲ್ಲ. ನೀವು ವಿಭಿನ್ನ ಡೊಮೆನ್ ಅನ್ನು ದಾಖಲಿಸಲು ಬಯಸುವುದಾದರೆ ನೀವು ಮೊದಲು ಮರುಪ್ರಾಪ್ತಿಯ ಸಾಧನದ ಮೂಲಕ ಹೋಗುವ ಅವಶ್ಯಕತೆ ಇದೆ.</translation> -<translation id="1274977772557788323">Adobe Flash Player ಸಂಗ್ರಹಣೆ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="1274997165432133392">ಕುಕೀಗಳು ಮತ್ತು ಇತರ ಡೇಟಾ</translation> <translation id="1275718070701477396">ಆಯ್ಕೆ ಮಾಡಿದ</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">ನಿಮ್ಮ ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಇತಿಹಾಸ, ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ನಿಮ್ಮ Google ಖಾತೆಗೆ ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">ಹೋಮ್ ನೆಟ್ವರ್ಕ್, ರೋಮಿಂಗ್ ಇಲ್ಲ</translation> -<translation id="1315056510003830387">Flash ಬಳಸಲು ಈ ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation> <translation id="1316136264406804862">ಹುಡುಕಲಾಗುತ್ತಿದೆ...</translation> <translation id="1316495628809031177">ಸಿಂಕ್ ಅನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ</translation> <translation id="1317637799698924700">USB ಟೈಪ್-C ಗೆ ಹೊಂದಾಣಿಕೆಯಾಗುವ ಮೋಡ್ನಲ್ಲಿ ನಿಮ್ಮ ಡಾಕಿಂಗ್ ಸ್ಟೇಶನ್ ಕೆಲಸ ಮಾಡುತ್ತದೆ.</translation> @@ -879,7 +877,6 @@ <translation id="197989455406964291">KDC ಯು ಎನ್ಕ್ರಿಪ್ಶನ್ ಪ್ರಕಾರವನ್ನು ಬೆಂಬಲಿಸುತ್ತಿಲ್ಲ</translation> <translation id="1984417487208496350">ಸುರಕ್ಷತೆ ಇಲ್ಲ (ಇದನ್ನು ನಾವು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ)</translation> <translation id="1987317783729300807">ಖಾತೆಗಳು</translation> -<translation id="1988494864246143197">ಸೈಟ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ, ಆಡಿಯೊ, ವೀಡಿಯೊ ಅಥವಾ ವೀಡಿಯೊ ಗೇಮ್ಗಳನ್ನು ಪ್ಲೇ ಮಾಡಲು ಫ್ಲ್ಯಾಶ್ ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುತ್ತವೆ ಡಿಸೆಂಬರ್ 2020 ರ ಬಳಿಕ ಫ್ಲ್ಯಾಶ್ ಪ್ಲೇಯರ್ ಬೆಂಬಲಿತವಾಗಿರುವುದಿಲ್ಲ.</translation> <translation id="1989112275319619282">ಬ್ರೌಸ್ ಮಾಡಿ</translation> <translation id="1990512225220753005">ಈ ಪುಟದಲ್ಲಿ ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ತೋರಿಸಬೇಡಿ</translation> <translation id="1992397118740194946">ಹೊಂದಿಸಿಲ್ಲ</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">ವಿಂಡೋ ಪ್ಲೇಸ್ಮೆಂಟ್</translation> <translation id="2881076733170862447">ನೀವು ವಿಸ್ತರಣೆಯನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ಮರು ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಸ್ವಲ್ಪ ಸಮಯದಲ್ಲಿ ಮರು ಹೊಂದಿಸಲಾಗುತ್ತದೆ</translation> -<translation id="288387288628762616">Flash ಬಳಸಲು ಈ ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗಿದೆ</translation> <translation id="2885378588091291677">ಕಾರ್ಯ ನಿರ್ವಾಹಕ</translation> <translation id="2885729872133513017">ಸರ್ವರ್ನ ಉತ್ತರವನ್ನು ಡೀಕೋಡ್ ಮಾಡುವಾಗ ಸಮಸ್ಯೆ ಸಂಭವಿಸಿದೆ.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2465,7 +2461,6 @@ <translation id="383669374481694771">ಇದು, ಈ ಸಾಧನದ ಕುರಿತು ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ಬಳಸಲಾಗುತ್ತದೆ ಎಂಬ ಕುರಿತು ಸಾಮಾನ್ಯ ಮಾಹಿತಿಯಾಗಿದೆ (ಉದಾಹರಣೆಗೆ, ಬ್ಯಾಟರಿಯ ಮಟ್ಟ, ಸಿಸ್ಟಂ ಹಾಗೂ ಆ್ಯಪ್ ಚಟುವಟಿಕೆ, ಮತ್ತು ದೋಷಗಳು). Android ಅನ್ನು ಸುಧಾರಿಸಲು ಈ ಡೇಟಾವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಒಟ್ಟುಗೂಡಿಸಲಾದ ಕೆಲವೊಂದು ಮಾಹಿತಿಯು, Google ಆ್ಯಪ್ಗಳಿಗೆ ಮತ್ತು Android ಡೆವಲಪರ್ಗಳಂತಹ ಪಾಲುದಾರರಿಗೆ, ತಮ್ಮ ಆ್ಯಪ್ಗಳು ಹಾಗೂ ಉತ್ಪನ್ನಗಳನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.</translation> <translation id="3838085852053358637">ವಿಸ್ತರಣೆಯನ್ನು ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ</translation> <translation id="3838486795898716504">ಇನ್ನಷ್ಟು <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">ಕುಕೀಗಳು ಮತ್ತು ಇತರ ಸೈಟ್ ಹಾಗೂ ಪ್ಲಗಿನ್ ಡೇಟಾ</translation> <translation id="383891835335927981">ಯಾವುದೇ ಸೈಟ್ಗಳನ್ನು ಝೂಮ್ ಇನ್ ಅಥವಾ ಝೂಮ್ ಔಟ್ ಮಾಡಲಾಗಿಲ್ಲ</translation> <translation id="3839509547554145593">ಮೌಸ್ ಸ್ಕ್ರಾಲ್ ವೇಗವರ್ಧಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="3839516600093027468"><ph name="HOST" /> ಕ್ಲಿಪ್ಬೋರ್ಡ್ ನೋಡುವುದನ್ನು ಯಾವಾಗಲೂ ನಿರ್ಬಂಧಿಸಿ</translation> @@ -2639,7 +2634,6 @@ <translation id="4023146161712577481">ಸಾಧನದ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನಿರ್ಣಯಿಸಲಾಗುತ್ತಿದೆ.</translation> <translation id="4025039777635956441">ಆಯ್ಕೆ ಮಾಡಿದ ಸೈಟ್ ಅನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ</translation> <translation id="4027804175521224372">(ನೀವು ಕಾಣೆಯಾಗಿರುವಿರಿ —<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">ನೀವು Chrome ನಿಂದ ನಿರ್ಗಮಿಸುವವರೆಗೆ ನಿಮ್ಮ ಫ್ಲ್ಯಾಶ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಇರಿಸಲಾಗುತ್ತದೆ.</translation> <translation id="4028467762035011525">ಇನ್ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಸೇರಿಸಿ</translation> <translation id="4031179711345676612">ಮೈಕ್ರೊಫೋನ್ ಅನುಮತಿಸಲಾಗಿದೆ</translation> <translation id="4031527940632463547">ಸೆನ್ಸರ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation> @@ -2791,7 +2785,6 @@ <translation id="4232375817808480934">Kerberos ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation> <translation id="4235200303672858594">ಸಂಪೂರ್ಣ ಪರದೆ</translation> <translation id="4235965441080806197">ಸೈನ್ ಇನ್ ಮಾಡುವುದನ್ನು ರದ್ದುಮಾಡಿ</translation> -<translation id="4237773362828263530">"*" ವೈಲ್ಡ್ಕಾರ್ಡ್ಗಳನ್ನು ಹೊಂದಿರುವ ಸೆಟ್ಟಿಂಗ್ಗಳು ಇನ್ನು ಮುಂದೆ ಬೆಂಬಲಿತವಾಗಿರುವುದಿಲ್ಲ. <ph name="BEGIN_LINK" />ಈ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಲು<ph name="END_LINK" /> ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{ಟ್ಯಾಬ್ ಅನ್ನು ನಂತರ ಓದಿರಿ}one{ಟ್ಯಾಬ್ಗಳನ್ನು ನಂತರ ಓದಿರಿ}other{ಟ್ಯಾಬ್ಗಳನ್ನು ನಂತರ ಓದಿರಿ}}</translation> <translation id="4242145785130247982">ಬಹು ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ</translation> <translation id="4242533952199664413">ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೆರೆ</translation> @@ -3055,7 +3048,6 @@ <translation id="4548483925627140043">ಸಿಗ್ನಲ್ ಕಂಡುಬಂದಿಲ್ಲ</translation> <translation id="4549791035683739768">ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಯಲ್ಲಿ ಯಾವುದೇ ಫಿಂಗರ್ಪ್ರಿಂಟ್ಗಳನ್ನು ಸಂಗ್ರಹಣೆ ಮಾಡಿಲ್ಲ</translation> <translation id="4551763574344810652">ರದ್ದುಮಾಡಲು <ph name="MODIFIER_KEY_DESCRIPTION" /> ಅನ್ನು ಒತ್ತಿರಿ</translation> -<translation id="4552089082226364758">ಫ್ಲ್ಯಾಶ್</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> ನೆಟ್ವರ್ಕ್, ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">ಸಾಧನದ ಭಾಷೆ ಬದಲಾಯಿಸಲು ನಿಮ್ಮ Chromebook ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ. <ph name="BEGIN_LINK_LEARN_MORE" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">ಬಾಹ್ಯ ವಿಸ್ತರಣೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವುದಕ್ಕೆ ಹೋಲಿಸಿದರೆ ಅದೇ ಅಥವಾ ಕಡಿಮೆ ಆವೃತ್ತಿಯಲ್ಲಿದೆ</translation> @@ -3411,7 +3403,6 @@ <translation id="4974733135013075877">ನಿರ್ಗಮನ ಮತ್ತು ಚೈಲ್ಡ್ಲಾಕ್</translation> <translation id="4976009197147810135">ಲಂಬವಾಗಿ ವಿಭಜಿಸಿ</translation> <translation id="4977942889532008999">ಪ್ರವೇಶ ದೃಢೀಕರಿಸಿ</translation> -<translation id="4978905460870207779">ಸೈಟ್ಗಳು, ಫ್ಲ್ಯಾಶ್ ಅನ್ನು ಬಳಸಲು ಕೇಳಬಹುದು</translation> <translation id="4980805016576257426">ಈ ವಿಸ್ತರಣೆಯು ಮಾಲ್ವೇರ್ ಅನ್ನು ಹೊಂದಿದೆ.</translation> <translation id="4981449534399733132">ಸಿಂಕ್ ಮಾಡಿರುವ ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳು ಮತ್ತು ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲು, <ph name="BEGIN_LINK" />ಸೈನ್ ಇನ್<ph name="END_LINK" /> ಮಾಡಿ.</translation> <translation id="4982236238228587209">ಸಾಧನದ ಸಾಫ್ಟ್ವೇರ್</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">ಈ ಅಪ್ಲಿಕೇಶನ್ ಜೊತೆಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಡೇಟಾವನ್ನು ಈ ಸಾಧನದಿಂದ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ.</translation> <translation id="5908474332780919512">ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ ಆ್ಯಪ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ</translation> <translation id="5908695239556627796">ಮೌಸ್ ಸ್ಕ್ರಾಲ್ ವೇಗ</translation> -<translation id="5908769186679515905">ಫ್ಲ್ಯಾಷ್ ರನ್ ಮಾಡುವಿಕೆಯಿಂದ ಸೈಟ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation> <translation id="5910363049092958439">ಇದರಂತೆ ಇಮೇಜ್ ಉ&ಳಿಸಿ...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ಸಾಧನ ಆಫ್ಲೈನ್ನಲ್ಲಿದೆ</translation> <translation id="5911533659001334206">ಶಾರ್ಟ್ಕಟ್ ವೀಕ್ಷಕ</translation> @@ -5833,7 +5823,6 @@ <translation id="7831491651892296503">ನೆಟ್ವರ್ಕ್ ಕಾನ್ಫಿಗರ್ ಮಾಡುವಲ್ಲಿ ದೋಷ</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">ಮುಕ್ತಾಯದ ಸಮಯ</translation> -<translation id="783214144752121388">ಸೈಟ್ಗಳು, Flash ಅನ್ನು ರನ್ ಮಾಡದಂತೆ ನಿರ್ಬಂಧಿಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation> <translation id="7833720883933317473">ಉಳಿಸಲಾದ ಕಸ್ಟಮ್ ಪದಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ</translation> <translation id="7835178595033117206">ಬುಕ್ಮಾರ್ಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ</translation> <translation id="7836850009646241041">ನಿಮ್ಮ ಭದ್ರತೆ ಕೀಯನ್ನು ಪುನಃ ಸ್ಪರ್ಶಿಸಲು ಪ್ರಯತ್ನಿಸಿ</translation> @@ -6058,7 +6047,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ಈ ಫೈಲ್ ಅನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ. ಅದನ್ನು ಡಿಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಅದರ ಮಾಲೀಕರಿಗೆ ಕೇಳಿ.}one{ಈ ಫೈಲ್ಗಳಲ್ಲಿನ ಕೆಲವನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ. ಡಿಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಅವುಗಳ ಮಾಲೀಕರನ್ನು ಕೇಳಿ}other{ಈ ಫೈಲ್ಗಳಲ್ಲಿನ ಕೆಲವನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ. ಡಿಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಅವುಗಳ ಮಾಲೀಕರನ್ನು ಕೇಳಿ}}</translation> <translation id="808894953321890993">ಪಾಸ್ವರ್ಡ್ ಬದಲಿಸಿ</translation> <translation id="8090234456044969073">ನಿಮ್ಮ ಪದೇ ಪದೇ ಭೇಟಿ ನೀಡಿದ ವೆಬ್ಸೈಟ್ಗಳ ಪಟ್ಟಿಯನ್ನು ಓದಿ</translation> -<translation id="8092681102116274204">"*" ವೈಲ್ಡ್ಕಾರ್ಡ್ಗಳನ್ನು ಹೊಂದಿರುವ ಸೆಟ್ಟಿಂಗ್ಗಳು ಇನ್ನು ಮುಂದೆ ಬೆಂಬಲಿತವಾಗಿರುವುದಿಲ್ಲ. <ph name="BEGIN_LINK" />ಈ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಲು<ph name="END_LINK" /> ವಿಸ್ತರಣೆ ಡೆವಲಪರ್ ಅಥವಾ ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಿಲ್ಲ</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ಡ್ರೈವ್ಗೆ ಬ್ಯಾಕಪ್ ಮಾಡಿ. ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಮರುಸಂಗ್ರಹಿಸಿ ಅಥವಾ ಸಾಧನವನ್ನು ಬದಲಿಸಿ. ನಿಮ್ಮ ಬ್ಯಾಕಪ್, ಆ್ಯಪ್ ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ನಿಮ್ಮ ಬ್ಯಾಕಪ್ಗಳನ್ನು Google ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ Google ಖಾತೆ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಅವುಗಳನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗುತ್ತದೆ.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6141,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ಆಲ್ಬಮ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="8202160505685531999">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಪ್ರೊಫೈಲ್ ಅಪ್ಡೇಟ್ ಮಾಡಲು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಮರುನಮೂದಿಸಿ.</translation> <translation id="8203732864715032075">ನಿಮಗೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ ಮತ್ತು ಸಂದೇಶಗಳನ್ನು ನೆನಪಿನಲ್ಲಿಟ್ಟುಕೊಳ್ಳಲು ಈ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಪೂರ್ವನಿಯೋಜಿಸಲಾಗಿರುತ್ತದೆ.<ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಿ<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">ಫ್ಲ್ಯಾಶ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation> <translation id="820568752112382238">ಹೆಚ್ಚು ಭೇಟಿ ನೀಡಿರುವ ಸೈಟ್ಗಳು</translation> <translation id="8206745257863499010">ಬ್ಲೂಸಿ</translation> <translation id="8206859287963243715">ಸೆಲ್ಯುಲಾರ್</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index ee2f8b0e..a3057bde 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">중지</translation> <translation id="1272293450992660632">PIN 값이 일치하지 않습니다.</translation> <translation id="1272978324304772054">이 사용자 계정은 기기가 등록된 도메인에 속해 있지 않습니다. 다른 도메인에 등록하려면 먼저 기기 복구 절차를 거쳐야 합니다.</translation> -<translation id="1274977772557788323">Adobe Flash Player 저장용량 설정</translation> <translation id="1274997165432133392">쿠키 및 기타 사이트 데이터</translation> <translation id="1275718070701477396">선택됨</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> 앱을 제거할 수 없음</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">북마크, 방문 기록 및 기타 설정이 Google 계정에 동기화됩니다.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">홈 네트워크 로밍 안함</translation> -<translation id="1315056510003830387">플래시 사용이 허용되지 않음</translation> <translation id="1316136264406804862">검색 중...</translation> <translation id="1316495628809031177">동기화 일시중지됨</translation> <translation id="1317637799698924700">현재 도킹 스테이션은 USB 타입-C 호환 모드에서 작동합니다.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC가 암호화 유형을 지원하지 않습니다.</translation> <translation id="1984417487208496350">보호되지 않음(권장되지 않음)</translation> <translation id="1987317783729300807">계정</translation> -<translation id="1988494864246143197">사이트에서는 일반적으로 오디오, 동영상 재생 또는 비디오 게임 실행을 위해 플래시를 사용합니다. Flash Player는 2020년 12월 이후 더 이상 지원되지 않습니다.</translation> <translation id="1989112275319619282">찾아보기</translation> <translation id="1990512225220753005">이 페이지에 바로가기를 표시하지 않습니다.</translation> <translation id="1992397118740194946">설정 안됨</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">창 배치</translation> <translation id="2881076733170862447">확장 프로그램을 클릭할 경우</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" />이(가) 다시 시작되어 곧 재설정됩니다.</translation> -<translation id="288387288628762616">플래시 사용이 허용됨</translation> <translation id="2885378588091291677">작업 관리자</translation> <translation id="2885729872133513017">서버 응답을 디코딩하는 동안 문제가 발생했습니다.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">로그인되었습니다</translation> <translation id="3428747202529429621">로그인 상태일 때 Chrome에서 사용자를 보호하고 기타 Google 앱에서 사용자의 보안을 개선하는 데 사용될 수 있습니다.</translation> <translation id="3428800329481094896">Linux 컨테이너 SSH 키 가져오는 중</translation> +<translation id="3429271624041785769">웹 콘텐츠 언어</translation> <translation id="3429275422858276529">이 페이지를 북마크에 추가하여 나중에 쉽게 찾으세요.</translation> <translation id="3432227430032737297">표시된 항목 모두 삭제</translation> <translation id="3432757130254800023">로컬 네트워크의 디스플레이로 오디오 및 동영상 전송</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">기기 및 기기 사용 방식에 관한 일반적인 정보(배터리 수준, 시스템 및 앱 활동, 오류 등)입니다. 데이터는 Android를 개선하는 데 사용되며 일부 수집 정보는 Google 앱과 파트너(Android 개발자 등)가 앱 및 제품을 개선하는 데도 도움이 됩니다.</translation> <translation id="3838085852053358637">확장 프로그램을 로드하지 못함</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> 더보기</translation> -<translation id="3838543471119263078">쿠키, 기타 사이트 및 플러그인 데이터</translation> <translation id="383891835335927981">확대 또는 축소된 사이트가 없음</translation> <translation id="3839509547554145593">마우스 스크롤 가속 사용</translation> <translation id="3839516600093027468"><ph name="HOST" />에서 클립보드를 볼 수 없도록 항상 차단</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">다운로드 관리자</translation> <translation id="3881478300875776315">자막 접기</translation> <translation id="3882165008614329320">카메라 또는 파일의 기존 동영상</translation> +<translation id="3884152383786131369">여러 언어를 지원하는 웹 콘텐츠는 목록의 첫 번째 지원 언어를 사용합니다. 이러한 환경설정은 브라우저 설정과 동기화됩니다. <ph name="BEGIN_LINK_LEARN_MORE" />자세히 알아보기<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">사용자의 사이트 액세스 요청이 <ph name="NAME" />님에게 전송되었습니다.</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" />(으)로 메모 작성</translation> <translation id="3890064827463908288">Wi-Fi 동기화를 사용하려면 Chrome 동기화 사용 설정</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">기기 설정을 확인합니다.</translation> <translation id="4025039777635956441">선택한 사이트 음소거</translation> <translation id="4027804175521224372">(로그인하지 않음 - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Chrome을 종료할 때까지 Flash 설정이 유지됩니다.</translation> <translation id="4028467762035011525">입력 방법 추가</translation> <translation id="4031179711345676612">마이크 허용됨</translation> <translation id="4031527940632463547">센서 차단됨</translation> @@ -2789,7 +2785,6 @@ <translation id="4232375817808480934">Kerberos 설정</translation> <translation id="4235200303672858594">전체 화면</translation> <translation id="4235965441080806197">로그인 취소</translation> -<translation id="4237773362828263530">와일드 카드 '*'가 포함된 설정은 더 이상 지원되지 않습니다. <ph name="BEGIN_LINK" />이 설정을 변경<ph name="END_LINK" />하려면 관리자에게 문의하세요.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{탭 나중에 읽기}other{탭 나중에 읽기}}</translation> <translation id="4242145785130247982">여러 개의 클라이언트 인증서는 지원되지 않습니다.</translation> <translation id="4242533952199664413">설정 열기</translation> @@ -3053,7 +3048,6 @@ <translation id="4548483925627140043">신호를 찾을 수 없습니다.</translation> <translation id="4549791035683739768">보안 키에 저장된 지문이 없습니다.</translation> <translation id="4551763574344810652">실행취소하려면 <ph name="MODIFIER_KEY_DESCRIPTION" />을(를) 누르세요.</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> 네트워크, 신호 강도 <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">기기 언어를 변경하려면 Chromebook을 다시 시작해야 합니다. <ph name="BEGIN_LINK_LEARN_MORE" />자세히 알아보기<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">외부 확장 프로그램의 버전이 기존 프로그램과 동일하거나 낮습니다.</translation> @@ -3408,7 +3402,6 @@ <translation id="4974733135013075877">종료 및 자녀 보호 잠금</translation> <translation id="4976009197147810135">수직 분할</translation> <translation id="4977942889532008999">액세스 확인</translation> -<translation id="4978905460870207779">사이트에서 플래시 사용을 요청할 수 있음</translation> <translation id="4980805016576257426">확장 프로그램에 멀웨어가 포함되어 있습니다.</translation> <translation id="4981449534399733132">동기화된 모든 기기 및 Google 계정에서 인터넷 사용 기록을 삭제하려면 <ph name="BEGIN_LINK" />로그인<ph name="END_LINK" />하세요.</translation> <translation id="4982236238228587209">기기 소프트웨어</translation> @@ -4179,7 +4172,6 @@ <translation id="5906732635754427568">이 앱과 관련된 데이터가 이 기기에서 삭제됩니다.</translation> <translation id="5908474332780919512">로그인 시 앱 실행</translation> <translation id="5908695239556627796">마우스 스크롤 속도</translation> -<translation id="5908769186679515905">사이트에서 Flash를 실행하지 못하도록 차단</translation> <translation id="5910363049092958439">이미지를 다른 이름으로 저장(&V)...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> 기기가 오프라인 상태임</translation> <translation id="5911533659001334206">바로가기 뷰어</translation> @@ -4363,6 +4355,7 @@ <translation id="6112727384379533756">티켓 추가</translation> <translation id="6112931163620622315">휴대전화 확인</translation> <translation id="6112952769866305444">사용자 수정, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Chrome 브라우저 및 <ph name="DEVICE_TYPE" /> 런처에서 사용할 기본 검색엔진을 설정하세요.</translation> <translation id="6113942107547980621">Smart Lock을 사용하려면 휴대전화의 기본 사용자 프로필로 전환하세요.</translation> <translation id="6116921718742659598">언어 및 입력 설정 변경</translation> <translation id="6120205520491252677">이 페이지를 시작 화면에 고정...</translation> @@ -5229,6 +5222,7 @@ <translation id="7140928199327930795">다른 사용 가능한 기기가 없습니다.</translation> <translation id="7141105143012495934">계정 세부정보를 가져올 수 없어 로그인할 수 없습니다. 관리자에게 문의하거나 다시 시도해 주세요.</translation> <translation id="7143207342074048698">연결 중</translation> +<translation id="7143358760238281735">사용 가능한 앱 없음</translation> <translation id="7144878232160441200">다시 시도</translation> <translation id="714876143603641390">LAN 연결</translation> <translation id="7149893636342594995">지난 24시간</translation> @@ -5700,6 +5694,7 @@ <translation id="7707922173985738739">모바일 데이터 사용</translation> <translation id="7709152031285164251">실패 - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">전송(&C)...</translation> +<translation id="7712739869553853093">인쇄 미리보기 대화상자</translation> <translation id="7712836429117959503">ID가 <ph name="EXTENSION_ID" />인 알 수 없는 확장 프로그램</translation> <translation id="7714307061282548371"><ph name="DOMAIN" />의 쿠키를 허용함</translation> <translation id="7714464543167945231">인증서</translation> @@ -5829,7 +5824,6 @@ <translation id="7831491651892296503">네트워크를 설정하는 중에 오류가 발생했습니다</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">종료 시간</translation> -<translation id="783214144752121388">사이트의 Flash 실행 차단(권장)</translation> <translation id="7833720883933317473">저장한 맞춤 단어가 여기에 표시됩니다.</translation> <translation id="7835178595033117206">북마크가 삭제됨</translation> <translation id="7836850009646241041">보안 키 다시 터치해 보기</translation> @@ -6057,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{암호화된 파일입니다. 소유자에게 복호화를 요청하세요.}other{일부 파일이 암호화되어 있습니다. 소유자에게 복호화를 요청하세요.}}</translation> <translation id="808894953321890993">비밀번호 변경</translation> <translation id="8090234456044969073">가장 자주 방문한 웹사이트 목록 보기</translation> -<translation id="8092681102116274204">와일드 카드 '*'가 포함된 설정은 더 이상 지원되지 않습니다. <ph name="BEGIN_LINK" />이 설정을 변경<ph name="END_LINK" />하려면 확장 프로그램 개발자 또는 관리자에게 문의하세요.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" />이(가) 응답하지 않습니다</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google 드라이브에 백업합니다. 언제든지 간편하게 데이터를 복원하거나 다른 기기로 전환하세요. 백업에는 앱 데이터가 포함됩니다.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />백업 항목은 Google에 업로드되며 내 Google 계정 비밀번호를 사용하여 암호화됩니다.<ph name="END_PARAGRAPH2" /> @@ -6152,7 +6145,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> 앨범 선택</translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> 프로필을 업데이트하려면 비밀번호 다시 입력</translation> <translation id="8203732864715032075">알림을 보내고 메시지에서 이 컴퓨터를 기억하도록 기본값으로 설정합니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">플래시 차단(권장)</translation> <translation id="820568752112382238">자주 방문한 사이트</translation> <translation id="8206745257863499010">음악</translation> <translation id="8206859287963243715">휴대전화</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index 169553b..4b26a30 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Токтотуу</translation> <translation id="1272293450992660632">PIN коддор дал келген жок.</translation> <translation id="1272978324304772054">Бул колдонуучунун каттоо эсеби түзмөк катталган доменге таандык эмес. Башка доменге катталгыңыз келсе, адегенде түзмөктү калыбына келтирип алыңыз.</translation> -<translation id="1274977772557788323">Adobe Flash Player Сактагыч жөндөөлөрү</translation> <translation id="1274997165432133392">Кукилер жана башка сайт дайындары</translation> <translation id="1275718070701477396">Тандалган</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> чыгарылган жок</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Кыстармаларыңыз, таржымалыңыз жана башка жөндөөлөрүңүз Google Аккаунтуңуз менен шайкештештирилет.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Үй тармагы, роуминг жок</translation> -<translation id="1315056510003830387">Flash'ти колдоно албайт</translation> <translation id="1316136264406804862">Изделүүдө…</translation> <translation id="1316495628809031177">Шайкештирүү тындырылды</translation> <translation id="1317637799698924700">Док бекетиңиз C тибиндеги USB менен шайкеш режимде иштейт.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC шифрлөө түрүн колдоого албайт</translation> <translation id="1984417487208496350">Корголбойт (сунушталбайт)</translation> <translation id="1987317783729300807">Аккаунттар</translation> -<translation id="1988494864246143197">Сайттарда аудиолор, видеолор же видео оюндары адатта Flash аркылуу ойнотулат. 2020-жылдын декабрь айынан кийин Flash Player иштебей калат.</translation> <translation id="1989112275319619282">Серептөө</translation> <translation id="1990512225220753005">Ыкчам баскычтар бул бетте көрүнбөсүн</translation> <translation id="1992397118740194946">Коюлган эмес</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Терезени жайгаштыруу</translation> <translation id="2881076733170862447">Кеңейтүүнү чыкылдатканда</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> көз ачып жумгуча өчүрүлүп күйгүзүлүп, баштапкы абалга келтирилет</translation> -<translation id="288387288628762616">Flash'ти колдоно алат</translation> <translation id="2885378588091291677">Тапшырмаларды башкаргыч</translation> <translation id="2885729872133513017">Сервердин жообунун шифрин чечмелеп жатканда ката кетти.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Аккаунтка кирдиңиз!</translation> <translation id="3428747202529429621">Аккаунтуңузга киргенде Chrome'до жана башка Google колдонмолорунда коопсуздугуңузду коргоп турат</translation> <translation id="3428800329481094896">Linux контейнеринин SSH ачкычтары алынууда</translation> +<translation id="3429271624041785769">Веб мазмундун тилдери</translation> <translation id="3429275422858276529">Бул баракчаны кыстармаларга кошуп, кийинчерээк оңой эле таап алыңыз</translation> <translation id="3432227430032737297">Көрсөтүлгөндөрдүн баары алынсын</translation> <translation id="3432757130254800023">Жергиликтүү тармактагы дисплейлерге аудио жана видео жөнөтүү</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Бул жерде түзмөгүңүз жана анын колдонулушу (мисалы, батареянын деңгээли, тутум жана колдонмонун иштетилиши жана каталар) тууралуу жалпы маалымат берилген. Маалымат Android кызматтарын жакшыртууга жана айрым маалыматтар тобу Google колдонмолоруна жана Android'дин иштеп чыгуучулары сыяктуу өнөктөштөрүнө да колдонмолорун жана кызматтарын жакшыртууга жардам берет.</translation> <translation id="3838085852053358637">Кеңейтүү жүктөлбөй калды</translation> <translation id="3838486795898716504">Дагы <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Кукилер жана башка сайт, плагин дайындары</translation> <translation id="383891835335927981">Эч кандай сайттар чоңойтуп/кичирейтилген жок</translation> <translation id="3839509547554145593">Чычканды ылдамдаткычты иштетүү</translation> <translation id="3839516600093027468"><ph name="HOST" /> башкы түйүнүнө алмашуу буфери эч качан көрүнбөсүн</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Жүктөп алгыч</translation> <translation id="3881478300875776315">Азыраак көрсөтүү</translation> <translation id="3882165008614329320">Камерадагы же файлдагы учурдагы видео</translation> +<translation id="3884152383786131369">Бир нече тилде жеткиликтүү болгон вебдеги мазмун бул тизмедеги колдоого алынган биринчи тилди колдонот. Бул параметрлер серепчиңиздин жөндөөлөрү менен шайкештирилет. <ph name="BEGIN_LINK_LEARN_MORE" />Кеңири маалымат<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Бул сайтка кирүү өтүнүчүңүз <ph name="NAME" /> деген колдонуучуга жөнөтүлдү</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> колдонмосунда жазылууда</translation> <translation id="3890064827463908288">Wi-Fi Sync функциясын колдонуу үчүн Chrome шайкештирүүнү күйгүзүңүз</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Түзмөктүн конфигурациясы аныкталууда.</translation> <translation id="4025039777635956441">Тандалган сайттын үнүн басуу</translation> <translation id="4027804175521224372">(Төмөнкүдөн куру калып жатасыз—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Flash жөндөөлөрү Chrome'дон чыкканга чейин сакталат.</translation> <translation id="4028467762035011525">Киргизүү ыкмаларын кошуу</translation> <translation id="4031179711345676612">Микрофонду колдонууга уруксат берилди</translation> <translation id="4031527940632463547">Сенсорлорду колдонуу бөгөттөлгөн</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Kerberos’ту конфигурациялоо</translation> <translation id="4235200303672858594">Бүтүндөй экран</translation> <translation id="4235965441080806197">Аккаунтка кирүүнү жокко чыгаруу</translation> -<translation id="4237773362828263530">"*" деген атайын символдору бар жөндөөлөр мындан ары колдоого алынбайт. <ph name="BEGIN_LINK" />Бул жөндөөлөрдү өзгөртүү<ph name="END_LINK" /> үчүн, администраторуңузга кайрылыңыз.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Өтмөктү кийинчерээк окуу}other{Өтмөктөрдү кийинчерээк окуу}}</translation> <translation id="4242145785130247982">Бир нече кардарлардын сертификаттарын пайдалануу колдоого алынбайт</translation> <translation id="4242533952199664413">Жөндөөлөрдү ачуу</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Сигнал жок</translation> <translation id="4549791035683739768">Коопсуздук ачкычыңызда сакталган манжаларыңыздын издери жок</translation> <translation id="4551763574344810652">Артка кайтаруу үчүн "<ph name="MODIFIER_KEY_DESCRIPTION" />" баскычтарын басыңыз</translation> -<translation id="4552089082226364758">Жарк этме</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> тармагы, сигналдын күчү <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Түзмөктүн тилин өзгөртүү үчүн Chromebook түзмөгүңүздү өчүрүп күйгүзүңүз. <ph name="BEGIN_LINK_LEARN_MORE" />Кеңири маалымат<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Тышкы кеңейтүү учурдагыга окшош же версиясы эскирээк.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Чыгып, баладан коргоп коюу</translation> <translation id="4976009197147810135">Тигинен бөлүү</translation> <translation id="4977942889532008999">Жеткини ырастоо</translation> -<translation id="4978905460870207779">Сайттар Flash'ти сиздин уруксатыңыз менен колдонот</translation> <translation id="4980805016576257426">Бул кеңейтүүдө кесепеттүү программа бар.</translation> <translation id="4981449534399733132">Бардык шайкештирилген түзмөктөрүңүздөгү жана Google аккаунтуңуздагы серептөө дайындарын тазалоо үчүн <ph name="BEGIN_LINK" />аккаунтуңузга кириңиз<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Түзмөктөгү программа</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Бул колдонмого байланыштуу дайындар бул түзмөктөн өчүрүлөт.</translation> <translation id="5908474332780919512">Киргенде колдонмо ачылсын</translation> <translation id="5908695239556627796">Чычканды ылдамдаткыч</translation> -<translation id="5908769186679515905">Сайттарда Flash'ти иштетүү бөгөттөлсүн</translation> <translation id="5910363049092958439">Сүрөттү төмөнкүдөй сак&тоо…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> оффлайн режиминде</translation> <translation id="5911533659001334206">Тез баскычтарды карап чыгуу</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Билет кошуу</translation> <translation id="6112931163620622315">Телефонуңузду текшериңиз</translation> <translation id="6112952769866305444">Колдонуучуну алмаштыруу, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Chrome серепчиси менен <ph name="DEVICE_TYPE" /> Жүргүзгүчү үчүн демейки издөө каражатын жөндөңүз</translation> <translation id="6113942107547980621">Smart Lock'ту колдонуу үчүн телефонуңуздагы негизги колдонуучунун профилин которуштуруңуз</translation> <translation id="6116921718742659598">Тил жана текст киргизүү жөндөөлөрүн өзгөртүү</translation> <translation id="6120205520491252677">Бул бетти баштоо экранына кадап коюу…</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Жеткиликтүү башка түзмөк жок.</translation> <translation id="7141105143012495934">Аккаунтуңуздун чоо-жайы алынбай койгондуктан, аккаунтка кире албай калдыңыз. Администраторуңузга кайрылыңыз же кайталап көрүңүз.</translation> <translation id="7143207342074048698">Туташууда</translation> +<translation id="7143358760238281735">Колдонмолор жок</translation> <translation id="7144878232160441200">Дагы аракет кылып көрүү</translation> <translation id="714876143603641390">LAN байланышы</translation> <translation id="7149893636342594995">Акыркы 24 саат</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Мобилдик Интернетти колдонуу</translation> <translation id="7709152031285164251">Ишке ашкан жок – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Тышкы экранга чыгаруу…</translation> +<translation id="7712739869553853093">Басып чыгарууну алдын ала көрүү диалогу</translation> <translation id="7712836429117959503">Идентификатору <ph name="EXTENSION_ID" /> болгон белгисиз кеңейтүү</translation> <translation id="7714307061282548371"><ph name="DOMAIN" /> доменинин кукилерине уруксат берилди</translation> <translation id="7714464543167945231">Тастыктама</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Тармакты конфигурациялоо учурунда ката кетти</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Качан аяктайт</translation> -<translation id="783214144752121388">Сайттардын Flash'ти аткаруусун бөгөттөө (сунушталган)</translation> <translation id="7833720883933317473">Сакталган ыңгайлуу сөздөр бул жерде көрүнөт</translation> <translation id="7835178595033117206">Кыстарма өчүрүлдү</translation> <translation id="7836850009646241041">Коопсуздук ачкычына кайра тийип көрүңүз</translation> @@ -6058,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Бул файл шифрленген. Файлдын шифрин чечмелөөнү анын ээсинен сураныңыз.}other{Бул файлдардын айрымдары шифрленген. Алардын ээсинен файлдардын шифрин чечмелөөнү сураныңыз.}}</translation> <translation id="808894953321890993">Сызсөздү өзгөртүү</translation> <translation id="8090234456044969073">Көп каралган вебсайттарыңыздын тизмесин окуңуз</translation> -<translation id="8092681102116274204">"*" деген атайын символдору бар жөндөөлөр мындан ары колдоого алынбайт. <ph name="BEGIN_LINK" />Бул жөндөөлөрдү өзгөртүү<ph name="END_LINK" /> үчүн, кеңейтүүнү иштеп чыгуучуга же администраторуңузга кайрылыңыз.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> жооп бербей жатат</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Камдык көчүрмөнү Google Drive'га сактоо. Дайын-даректериңизди оңой эле калыбына келтирип, бир түзмөктөн экинчисине өткөрүүгө мүмкүнчүлүк берет. Көчүрмөдө колдонмо дайындары дагы сакталат.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Камдык көчүрмөлөр Google'га жүктөлүп берилип, Google аккаунтуңуздун сырсөзү менен шифрленет.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6146,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> альбомду тандоо</translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> профилиңизди жаңыртуу үчүн сырсөзүңүздү кайра киргизиңиз.</translation> <translation id="8203732864715032075">Телефондогу билдирүүлөр тууралуу билдирмелерди көрсөтүү. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash бөгөттөлсүн (сунушталат)</translation> <translation id="820568752112382238">Эң көп кирген сайттар</translation> <translation id="8206745257863499010">Блюз</translation> <translation id="8206859287963243715">Уюктук</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb index 672e2f4d..26cd5ef 100644 --- a/chrome/app/resources/generated_resources_lo.xtb +++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">ຢຸດ</translation> <translation id="1272293450992660632">ຄ່າ PIN ບໍ່ກົງກັນ.</translation> <translation id="1272978324304772054">ບັນຊີຜູ້ໃຊ້ບໍ່ເປັນຂອງໂດເມນທີ່ອຸປະກອນໄດ້ລົງທະບຽນໃສ່. ຖ້າທ່ານຕ້ອງການລົງທະບຽນເປັນໂດເມນອື່ນ ທ່ານຕ້ອງໄປຜ່ານການກູ້ຄືນອຸປະກອນກ່ອນ.</translation> -<translation id="1274977772557788323">ການຕັ້ງຄ່າບ່ອນເກັບຂໍ້ມູນ Adobe Flash Player</translation> <translation id="1274997165432133392">ສະແດງຄຸກກີ້ ແລະຂໍ້ມູນເວັບໄຊທ໌ອື່ນ...</translation> <translation id="1275718070701477396">ເລືອກແລ້ວ</translation> <translation id="1276994519141842946">ບໍ່ສາມາດຖອນຕິດຕັ້ງ <ph name="APP_NAME" /> ໄດ້</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">ບຸກມາກສ໌, ປະຫວັດ, ແລະການຕັ້ງຄ່າອື່ນໆຂອງທ່ານຈະຖືກຊິງຄ໌ໄປຫາບັນຊີ Google ຂອງທ່ານ.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">ເຄືອຂ່າຍພາຍໃນ, ບໍ່ໂຣມມິງ</translation> -<translation id="1315056510003830387">ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ Flash</translation> <translation id="1316136264406804862">ກຳລັງຊອກຫາ...</translation> <translation id="1316495628809031177">ຢຸດການຊິ້ງຂໍ້ມູນໄວ້ຊົ່ວຄາວ</translation> <translation id="1317637799698924700">ແທ່ນວາງສາກຂອງທ່ານຈະເຮັດວຽກໃນໂໝດທີ່ເຂົ້າກັນໄດ້ກັບ USB Type-C.</translation> @@ -876,7 +874,6 @@ <translation id="197989455406964291">KDC ບໍ່ຮອງຮັບປະເພດການເຂົ້າລະຫັດ</translation> <translation id="1984417487208496350">ບໍ່ມີການປົກປ້ອງ (ບໍ່ແນະນຳ)</translation> <translation id="1987317783729300807">ບັນຊີ</translation> -<translation id="1988494864246143197">ໂດຍປົກກະຕິເວັບໄຊຈະໃຊ້ Flash ເພື່ອຫຼິ້ນສຽງ, ວິດີໂອ ຫຼື ເກມວິດີໂອ. ລະບົບຈະບໍ່ຮອງຮັບ Flash Player ຫຼັງຈາກເດືອນທັນວາ 2020.</translation> <translation id="1989112275319619282">ເປີດເບິ່ງ</translation> <translation id="1990512225220753005">ຢ່າສະແດງທາງລັດໃນໜ້ານີ້</translation> <translation id="1992397118740194946">ບໍ່ໄດ້ຕັ້ງ</translation> @@ -1647,7 +1644,6 @@ <translation id="2880660355386638022">ຕຳແໜ່ງໜ້າຈໍ</translation> <translation id="2881076733170862447">ເມື່ອທ່ານຄລິກສ່ວນຂະຫຍາຍ</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ຈະປິດເປີດໃໝ່ ແລະຕັ້ງຄ່າຄືນໃໝ່ໄວໆນີ້</translation> -<translation id="288387288628762616">ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ Flash</translation> <translation id="2885378588091291677">ຕົວຈັດການໜ້າວຽກ</translation> <translation id="2885729872133513017">ເກີດບັນຫາຂຶ້ນໃນເວລາຖອດລະຫັດຄຳຕອບຂອງເຊີບເວີ.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2464,7 +2460,6 @@ <translation id="383669374481694771">ນີ້ແມ່ນຂໍ້ມູນທົ່ວໄປກ່ຽວກັບອຸປະກອນນີ້ ແລະ ມັນຖືກໃຊ້ແນວໃດ (ເຊັ່ນ: ລະດັບແບັດເຕີຣີ, ການເຄື່ອນໄຫວລະບົບ ແລະ ແອັບ, ຂໍ້ຜິດພາດຕ່າງໆ). ຂໍ້ມູນດັ່ງກ່າວຈະຖືກໃຊ້ເພື່ອປັບປຸງ Android ແລະ ບາງຂໍ້ມູນແບບຮວມກັນຈະຊ່ວຍໃຫ້ແອັບ ແລະ ຮຸ້ນສ່ວນຂອງ Google ເຊັ່ນ: ນັກພັດທະນາແອັບ Android ປັບປຸງແອັບ ແລະ ຜະລິດຕະພັນຂອງເຂົາເຈົ້າໃຫ້ດີຂຶ້ນໄດ້ນຳ.</translation> <translation id="3838085852053358637">ໂຫຼດສ່ວນຂະຫຍາຍບໍ່ສຳເລັດ</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> ເພີ່ມເຕີມ</translation> -<translation id="3838543471119263078">ຄຸກກີ້ ແລະເວັບໄຊທ໌ອື່ນ ແລະຂໍ້ມູນປລັກອິນ</translation> <translation id="383891835335927981">ບໍ່ມີການຕັ້ງຄ່າຊູມເຂົ້າ ຫຼື ຊູມອອກສຳລັບເວັບໄຊໃດ</translation> <translation id="3839509547554145593">ເປີດການນຳໃຊ້ການເລັ່ງຄວາມໄວການເລື່ອນເມົ້າ</translation> <translation id="3839516600093027468">ບລັອກບໍ່ໃຫ້ <ph name="HOST" /> ເຫັນຄລິບບອດທຸກເທື່ອ</translation> @@ -2639,7 +2634,6 @@ <translation id="4023146161712577481">ກໍາລັງກໍານົດຕັ້ງອຸປະກອນ.</translation> <translation id="4025039777635956441">ປິດສຽງເວັບໄຊທີ່ເລືອກ</translation> <translation id="4027804175521224372">(ທ່ານກໍາລັງພາດ—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">ການຕັ້ງຄ່າ Flash ຂອງທ່ານຈະຖືກຮັກສາໄວ້ຈົນກວ່າວ່າທ່ານອອກຈາກ Chrome.</translation> <translation id="4028467762035011525">ເພີ່ມວິທີການປ້ອນຂໍ້ມູນ</translation> <translation id="4031179711345676612">ອະນຸຍາດໄມໂຄຣໂຟນແລ້ວ</translation> <translation id="4031527940632463547">ບລັອກເຊັນເຊີແລ້ວ</translation> @@ -2791,7 +2785,6 @@ <translation id="4232375817808480934">ກຳນົດຄ່າ Kerberos</translation> <translation id="4235200303672858594">ທັງຫມົດຫນ້າຈໍ</translation> <translation id="4235965441080806197">ຍົກເລີກການເຂົ້າສູ່ລະບົບ</translation> -<translation id="4237773362828263530">ບໍ່ຮັບຮອງການຕັ້ງຄ່າດ້ວຍໂຕແທນ "*" ອີກຕໍ່ໄປ. ຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານເພື່ອ <ph name="BEGIN_LINK" />ປ່ຽນການຕັ້ງຄ່າເຫຼົ່ານີ້<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{ອ່ານແຖບໃນພາຍຫຼັງ}other{ອ່ານແຖບໃນພາຍຫຼັງ}}</translation> <translation id="4242145785130247982">ບໍ່ຮອງຮັບຫຼາຍໃບຮັບຮອງລູກຂ່າຍ</translation> <translation id="4242533952199664413">ເປີດການຕັ້ງຄ່າ</translation> @@ -3055,7 +3048,6 @@ <translation id="4548483925627140043">ບໍ່ພົບສັນຍານ</translation> <translation id="4549791035683739768">ກະແຈຄວາມປອດໄພຂອງທ່ານບໍ່ມີລາຍນິ້ວມືທີ່ເກັບຮັກສາໄວ້</translation> <translation id="4551763574344810652">ກົດ <ph name="MODIFIER_KEY_DESCRIPTION" /> ເພື່ອຍົກເລີກ</translation> -<translation id="4552089082226364758">ແຟລດ</translation> <translation id="4552759165874948005">ເຄືອຂ່າຍ <ph name="NETWORK_TYPE" />, ຄວາມແຮງສັນຍານ <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">ທ່ານຕ້ອງຣີສະຕາດ Chromebook ຂອງທ່ານເພື່ອປ່ຽນພາສາຂອງອຸປະກອນ. <ph name="BEGIN_LINK_LEARN_MORE" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">ສ່ວນຂະຫຍາຍທາງນອກເປັນລຸ້ນຄືກັນກັບ ຫຼືຕໍ່າກ່ວາ ເມື່ອປຽບທຽບກັບອັນທີ່ມີຢູ່ແລ້ວ.</translation> @@ -3410,7 +3402,6 @@ <translation id="4974733135013075877">ອອກ ແລະ ລັອກເດັກນ້ອຍ</translation> <translation id="4976009197147810135">ແຍກຕາມລວງຕັ້ງ</translation> <translation id="4977942889532008999">ຢືນຢັນການເຂົ້າຫາ</translation> -<translation id="4978905460870207779">ເວັບໄຊສາມາດຂໍໃຊ້ Flash ໄດ້</translation> <translation id="4980805016576257426">ສ່ວນຂະຫຍາຍນີ້ປະກອບມີມາລແວ.</translation> <translation id="4981449534399733132">ເພື່ອລຶບລ້າງຂໍ້ມູນການທ່ອງເວັບອອກຈາກອຸປະກອນທີ່ຊິ້ງຂໍ້ມູນຂອງທ່ານທັງໝົດ ແລະ ບັນຊີ Google ຂອງທ່ານ, ກະລຸນາ <ph name="BEGIN_LINK" />ເຂົ້າສູ່ລະບົບ<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">ຊອບແວອຸປະກອນ</translation> @@ -4181,7 +4172,6 @@ <translation id="5906732635754427568">ຂໍ້ມູນທີ່ເຊື່ອມໂຍງກັບແອັບນີ້ຈະຖືກລຶບອອກຈາກອຸປະກອນນີ້.</translation> <translation id="5908474332780919512">ເລີ່ມແອັບເມື່ອທ່ານເຂົ້າສູ່ລະບົບ</translation> <translation id="5908695239556627796">ຄວາມໄວການເລື່ອນເມົ້າ</translation> -<translation id="5908769186679515905">ບລັອກບໍ່ໃຫ້ເວັບໄຊເປີດໃຊ້ Flash</translation> <translation id="5910363049092958439">ບັນທຶກຮູບເປັນ...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ອອບລາຍຢູ່</translation> <translation id="5911533659001334206">ຕົວສະແດງທາງລັດ</translation> @@ -5833,7 +5823,6 @@ <translation id="7831491651892296503">ມີຄວາມຜິດພາດໃນການກຳນົດຄ່າເຄືອຂ່າຍ</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">ເວລາສິ້ນສຸດ</translation> -<translation id="783214144752121388">ບລັອກບໍ່ໃຫ້ເວັບໄຊເປີດ Flash (ແນະນຳ)</translation> <translation id="7833720883933317473">ຄຳສັບກຳນົດເອງທີ່ບັນທຶກໄວ້ຈະປາກົດຢູ່ບ່ອນນີ້</translation> <translation id="7835178595033117206">ລຶບບຸກມາກອອກແລ້ວ</translation> <translation id="7836850009646241041">ລອງແຕະກະແຈຄວາມປອດໄພຂອງທ່ານອີກຄັ້ງ</translation> @@ -6060,7 +6049,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ໄຟລ໌ນີ້ມີການເຂົ້າລະຫັດໄວ້. ຂໍໃຫ້ເຈົ້າຂອງມັນຖອດລະຫັດ.}other{ບາງໄຟລ໌ເຫຼົ່ານີ້ມີການເຂົ້າລະຫັດໄວ້. ຂໍໃຫ້ເຈົ້າຂອງພວກມັນຖອດລະຫັດ.}}</translation> <translation id="808894953321890993">ປ່ຽນລະຫັດຜ່ານ</translation> <translation id="8090234456044969073">ອ່ານລາຍຊື່ເວັບໄຊທ໌ທີ່ທ່ານເຂົ້າເບິ່ງເລື້ອຍທີ່ສຸດ</translation> -<translation id="8092681102116274204">ບໍ່ຮັບຮອງການຕັ້ງຄ່າດ້ວຍໂຕແທນ "*" ອີກຕໍ່ໄປ. ຕິດຕໍ່ຫາຜູ້ພັດທະນາສ່ວນຂະຫຍາຍ ຫຼື ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານເພື່ອ <ph name="BEGIN_LINK" />ປ່ຽນການຕັ້ງຄ່າເຫຼົ່ານີ້<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ບໍ່ຕອບສະໜອງ</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />ສຳຮອງຂໍ້ມູນໄວ້ໃນ Google Drive. ກູ້ຄືນຂໍ້ມູນຂອງທ່ານໄດ້ຢ່າງງ່າຍດາຍ ຫຼື ປ່ຽນອຸປະກອນໄດ້ທຸກເວລາ. ຂໍ້ມູນທີ່ສຳຮອງໄວ້ຂອງທ່ານຮວມເອົາຂໍ້ມູນແອັບ.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ຂໍ້ມູນທີ່ສຳຮອງໄວ້ຂອງທ່ານຖືກອັບໂຫຼດໄວ້ໃນ Google ແລະ ເຂົ້າລະຫັດໄວ້ໂດຍໃຊ້ລະຫັດຜ່ານບັນຊີ Google ຂອງທ່ານ.<ph name="END_PARAGRAPH2" /> @@ -6155,7 +6143,6 @@ <translation id="8201717382574620700">ເລືອກອະລະບໍ້າ <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">ະລຸນາໃສ່ລະຫັດຜ່ານຂອງທ່ານຄືນໃໝ່ ເພື່ອອັບເດດໂປຣໄຟລ໌ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ.</translation> <translation id="8203732864715032075">ສົ່ງການແຈ້ງເຕືອນໃຫ້ທ່ານ ແລະ ເຮັດໃຫ້ການຈື່ຄອມພິວເຕີນີ້ສຳລັບຂໍ້ຄວາມເປັນຄ່າເລີ່ມຕົ້ນ. <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">ບລັອກ Flash (ແນະນຳ)</translation> <translation id="820568752112382238">ເວັບໄຊທີ່ເຂົ້າເບິ່ງຫຼາຍທີ່ສຸດ</translation> <translation id="8206745257863499010">ບລູຊີ</translation> <translation id="8206859287963243715">ເຊວລູລາ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index fe8e79f5..d43391b 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Sustabdyti</translation> <translation id="1272293450992660632">PIN kodai nesutampa.</translation> <translation id="1272978324304772054">Ši naudotojo paskyra nepriklauso domenui, prie kurio priregistruotas įrenginys. Jei norite naudoti su kitu domenu, pirma turite atlikti įrenginio atkūrimo procedūrą.</translation> -<translation id="1274977772557788323">„Adobe Flash Player“ saugyklos nustatymai</translation> <translation id="1274997165432133392">Slapukai ir kiti svetainių duomenys</translation> <translation id="1275718070701477396">Pasirinkta</translation> <translation id="1276994519141842946">Nepavyko įdiegti programos „<ph name="APP_NAME" />“</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Žymės, istorija ir kiti nustatymai bus sinchronizuojami su „Google“ paskyra.</translation> <translation id="1314565355471455267">„Android“ VPN</translation> <translation id="131461803491198646">Namų tinklas, ne tarptinklinis ryšys</translation> -<translation id="1315056510003830387">Neleidžiama naudoti „Flash“</translation> <translation id="1316136264406804862">Ieškoma...</translation> <translation id="1316495628809031177">Sinchronizavimas pristabdytas</translation> <translation id="1317637799698924700">Jūsų doko stotis veiks su „Type-C“ USB suderinamu režimu.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC nepalaiko šifruotės tipo</translation> <translation id="1984417487208496350">Apsaugos nėra (nerekomenduojama)</translation> <translation id="1987317783729300807">Paskyros</translation> -<translation id="1988494864246143197">Paprastai svetainėse naudojama „Flash“ garso, vaizdo įrašams ar vaizdo žaidimams leisti. Nuo 2020 m. gruodžio „Flash Player“ nebebus palaikoma.</translation> <translation id="1989112275319619282">Naršyti</translation> <translation id="1990512225220753005">Nerodyti sparčiųjų klavišų šiame puslapyje</translation> <translation id="1992397118740194946">Nenustatyta</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Lango padėties nustatymas</translation> <translation id="2881076733170862447">Spustelėjus plėtinį</translation> <translation id="2882943222317434580">„<ph name="IDS_SHORT_PRODUCT_NAME" />“ bus iš karto paleista ir nustatyta iš naujo</translation> -<translation id="288387288628762616">Leidžiama naudoti „Flash“</translation> <translation id="2885378588091291677">Užduočių tvarkytuvė</translation> <translation id="2885729872133513017">Iššifruojant serverio atsaką įvyko klaida.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">Tai yra bendra informacija apie šį įrenginį ir jo naudojimą (pvz., akumuliatoriaus įkrovos lygį, sistemos ir programų veiklą bei klaidas). Duomenys bus naudojami siekiant patobulinti „Android“, o tam tikra sukaupta informacija taip pat padės „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams, pagerinti savo programas ir produktus.</translation> <translation id="3838085852053358637">Nepavyko įkelti plėtinio</translation> <translation id="3838486795898716504">Daugiau <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Slapukai ir kiti svetainių bei papildinių duomenys</translation> <translation id="383891835335927981">Nėra svetainių, kurių turinys priartintas arba atitolintas</translation> <translation id="3839509547554145593">Įgalinti slinkimo pele paspartinimą</translation> <translation id="3839516600093027468">Niekada neleisti <ph name="HOST" /> peržiūrėti iškarpinės</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Nustatoma įrenginio konfigūracija.</translation> <translation id="4025039777635956441">Nutildyti pasirinktą svetainę</translation> <translation id="4027804175521224372">(Praleidžiate – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">„Flash“ nustatymai bus taikomi, kol išeisite iš „Chrome“.</translation> <translation id="4028467762035011525">Pridėti įvesties metodų</translation> <translation id="4031179711345676612">Mikrofonas leidžiamas</translation> <translation id="4031527940632463547">Jutikliai užblokuoti</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Konfigūruoti „Kerberos“</translation> <translation id="4235200303672858594">Visas ekranas</translation> <translation id="4235965441080806197">Atšaukti prisijungimą</translation> -<translation id="4237773362828263530">Nustatymai su pakaitos simboliais „*“ nebepalaikomi. Norėdami <ph name="BEGIN_LINK" />pakeisti šiuos nustatymus<ph name="END_LINK" /> susisiekite su administratoriumi.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Skaityti skirtuką vėliau}one{Skaityti skirtukus vėliau}few{Skaityti skirtukus vėliau}many{Skaityti skirtukus vėliau}other{Skaityti skirtukus vėliau}}</translation> <translation id="4242145785130247982">Nepalaikomi keli klientų sertifikatai</translation> <translation id="4242533952199664413">Atidaryti nustatymus</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Signalas nerastas</translation> <translation id="4549791035683739768">Saugos rakte nėra išsaugota kontrolinių kodų</translation> <translation id="4551763574344810652">Paspauskite „<ph name="MODIFIER_KEY_DESCRIPTION" />“, kad anuliuotumėte</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Tinklas: <ph name="NETWORK_TYPE" />, signalo stipris <ph name="SIGNAL_STRENGTH" /> proc.</translation> <translation id="4553526521109675518">Turite iš naujo paleisti „Chromebook“, kad pakeistumėte įrenginio kalbą. <ph name="BEGIN_LINK_LEARN_MORE" />Sužinokite daugiau<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Išorinis plėtinys yra tos pačios arba senesnės versijos, palyginti su esama.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Išeiti ir užrakinti nuo vaikų</translation> <translation id="4976009197147810135">Vertikalus skaidymas</translation> <translation id="4977942889532008999">Patvirtinti prieigą</translation> -<translation id="4978905460870207779">Svetainėse gali būti prašoma naudoti „Flash“</translation> <translation id="4980805016576257426">Šiame plėtinyje yra kenkėjiškų programų.</translation> <translation id="4981449534399733132">Norėdami išvalyti naršymo duomenis iš sinchronizuotų įrenginių ir „Google“ paskyros, <ph name="BEGIN_LINK" />prisijunkite<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Įrenginio programinė įranga</translation> @@ -4184,7 +4175,6 @@ <translation id="5906732635754427568">Su šia programa susieti duomenys bus pašalinti iš šio įrenginio.</translation> <translation id="5908474332780919512">Paleisti programą, kai prisijungiate</translation> <translation id="5908695239556627796">Slinkimo pele sparta</translation> -<translation id="5908769186679515905">Užblokuoti svetaines, kad nebūtų galima vykdyti „Flash“</translation> <translation id="5910363049092958439">Iš&saugoti vaizdą kaip...</translation> <translation id="5910726859585389579">„<ph name="DEVICE_TYPE" />“ ryšys išjungtas</translation> <translation id="5911533659001334206">Sparčiųjų klavišų peržiūros programa</translation> @@ -5837,7 +5827,6 @@ <translation id="7831491651892296503">Klaida konfigūruojant tinklą</translation> <translation id="7831754656372780761">„<ph name="TAB_TITLE" />“ <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Pabaigos laikas</translation> -<translation id="783214144752121388">Blokuoti, kad svetainėse nebūtų vykdoma „Flash“ (rekomenduojama)</translation> <translation id="7833720883933317473">Išsaugoti tinkinti žodžiai bus rodomi čia</translation> <translation id="7835178595033117206">Žymė pašalinta</translation> <translation id="7836850009646241041">Pabandykite dar kartą paliesti saugos raktą</translation> @@ -6065,7 +6054,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Šis failas šifruotas. Paprašykite jo savininko iššifruoti.}one{Kai kurie iš šių failų šifruoti. Paprašykite jų savininko iššifruoti.}few{Kai kurie iš šių failų šifruoti. Paprašykite jų savininko iššifruoti.}many{Kai kurie iš šių failų šifruoti. Paprašykite jų savininko iššifruoti.}other{Kai kurie iš šių failų šifruoti. Paprašykite jų savininko iššifruoti.}}</translation> <translation id="808894953321890993">Keisti slaptažodį</translation> <translation id="8090234456044969073">Skaityti jūsų dažniausiai lankomų svetainių sąrašą</translation> -<translation id="8092681102116274204">Nustatymai su pakaitos simboliais „*“ nebepalaikomi. Norėdami <ph name="BEGIN_LINK" />pakeisti šiuos nustatymus<ph name="END_LINK" /> susisiekite su plėtinio kūrėju arba administratoriumi.</translation> <translation id="8093359998839330381">Papildinys „<ph name="PLUGIN_NAME" />“ neatsako</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Sukurkite atsarginę kopiją „Google“ diske. Lengvai bet kada atkurkite duomenis arba perjunkite įrenginį. Į atsarginę kopiją įtraukiami programų duomenys.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Atsarginės kopijos įkeliamos į sistemą „Google“ ir šifruojamos naudojant „Google“ paskyros slaptažodį.<ph name="END_PARAGRAPH2" /> @@ -6160,7 +6148,6 @@ <translation id="8201717382574620700">Pasirinkite „<ph name="TOPIC_SOURCE" />“ albumus</translation> <translation id="8202160505685531999">Iš naujo įveskite slaptažodį, kad galėtumėte atnaujinti „<ph name="DEVICE_TYPE" />“ profilį.</translation> <translation id="8203732864715032075">Siunčia pranešimus ir pagal numatytuosius nustatymus prisimena šį kompiuterį programoje „Messages“. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokuoti „Flash“ (rekomenduojama)</translation> <translation id="820568752112382238">Dažniausiai lankomos svetainės</translation> <translation id="8206745257863499010">Bliuzas</translation> <translation id="8206859287963243715">Mobilusis</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index 466ab12..6ef2728 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Apturēt</translation> <translation id="1272293450992660632">PIN vērtības nav vienādas.</translation> <translation id="1272978324304772054">Šis lietotāja konts nepieder domēnam, kurā ierīce ir reģistrēta. Ja vēlaties ierīci reģistrēt citā domēnā, vispirms ir jāveic ierīces atkopšana.</translation> -<translation id="1274977772557788323">Adobe Flash Player krātuves iestatījumi</translation> <translation id="1274997165432133392">Sīkfaili un citi vietņu dati</translation> <translation id="1275718070701477396">Atlasīta</translation> <translation id="1276994519141842946">Nevarēja instalēt lietotni <ph name="APP_NAME" />.</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Jūsu grāmatzīmes, vēsture un citi iestatījumi tiks sinhronizēti ar jūsu Google kontu</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Mājas tīkls bez viesabonēšanas</translation> -<translation id="1315056510003830387">Nedrīkst izmantot Flash</translation> <translation id="1316136264406804862">Notiek meklēšana...</translation> <translation id="1316495628809031177">Sinhronizācija ir apturēta</translation> <translation id="1317637799698924700">Jūsu dokstacija darbosies ar USB Type-C saderīgā režīmā.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC neatbalsta šifrējuma veidu</translation> <translation id="1984417487208496350">Bez aizsardzības (nav ieteicams)</translation> <translation id="1987317783729300807">Konti</translation> -<translation id="1988494864246143197">Parasti vietnēs programma Flash tiek izmantota, lai atskaņotu audio, videoklipus vai video spēles. Programma Flash Player vairs netiks atbalstīta no 2020. gada decembra.</translation> <translation id="1989112275319619282">Pārlūkot</translation> <translation id="1990512225220753005">Šajā lapā nerādīt saīsnes</translation> <translation id="1992397118740194946">Nav iestatīts</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Logu izvietošana</translation> <translation id="2881076733170862447">Kad noklikšķināt uz paplašinājuma</translation> <translation id="2882943222317434580">Pēc brīža <ph name="IDS_SHORT_PRODUCT_NAME" /> tiks restartēts un atiestatīts.</translation> -<translation id="288387288628762616">Drīkst izmantot Flash</translation> <translation id="2885378588091291677">Uzdevumu pārvaldnieks</translation> <translation id="2885729872133513017">Dekodējot servera atbildi, radās problēma.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Jūs esat pierakstījies!</translation> <translation id="3428747202529429621">Tiek nodrošināta jūsu aizsardzība pārlūkprogrammā Chrome. Šis režīms var tikt izmantots jūsu drošības uzlabošanai citās Google lietotnēs, kad esat pierakstījies.</translation> <translation id="3428800329481094896">Tiek iegūtas Linux konteinera SSH atslēgas</translation> +<translation id="3429271624041785769">Tīmekļa satura valodas</translation> <translation id="3429275422858276529">Saglabājiet šo lapu kā grāmatzīmi, lai vēlāk varētu to viegli atrast</translation> <translation id="3432227430032737297">Noņemt visu parādīto</translation> <translation id="3432757130254800023">Sūtīt audio un video saturu uz ekrāniem lokālajā tīklā</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Šī ir vispārīga informācija par šo ierīci un tās lietojumu (piemēram, par akumulatora uzlādes līmeni, sistēmas darbībām, lietotņu izmantojumu un kļūdām). Dati tiks izmantoti, lai uzlabotu Android darbību. Noteiktu apkopotu informāciju izmantos arī Google lietotņu izstrādātāji un partneri, piemēram, Android izstrādātāji, lai uzlabotu lietotnes un produktus.</translation> <translation id="3838085852053358637">Neizdevās ielādēt paplašinājumu</translation> <translation id="3838486795898716504">Citas lapas ar nosaukumu <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Sīkfaili un citi vietņu un spraudņu dati</translation> <translation id="383891835335927981">Nevienā vietnē nav veikta tālummaiņa.</translation> <translation id="3839509547554145593">Iespējot peles ritināšanas paātrinātāju</translation> <translation id="3839516600093027468">Vienmēr bloķēt starpliktuves satura rādīšanu vietnei <ph name="HOST" /></translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Lejupielāžu pārvaldnieks</translation> <translation id="3881478300875776315">Rādīt mazāk rindu</translation> <translation id="3882165008614329320">Esošs videoklips no kameras vai faila</translation> +<translation id="3884152383786131369">Tīmekļa saturam, kas ir pieejams vairākās valodās, tiks izmantota pirmā atbalstītā valoda no šī saraksta. Šīs preferences tiek sinhronizētas ar jūsu pārlūkprogrammas iestatījumiem. <ph name="BEGIN_LINK_LEARN_MORE" />Uzziniet vairāk<ph name="END_LINK_LEARN_MORE" />.</translation> <translation id="3886446263141354045">Pieprasījums piekļūt šai vietnei ir nosūtīts lietotājam <ph name="NAME" /></translation> <translation id="3888550877729210209">Piezīmju rakstīšana, izmantojot <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Lai izmantotu Wi-Fi sinhronizāciju, ieslēdziet Chrome sinhronizāciju</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Tiek noteikta ierīces konfigurācija.</translation> <translation id="4025039777635956441">Izslēgt skaņu atlasītajai vietnei</translation> <translation id="4027804175521224372">(Neesat pierakstījies — <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Flash iestatījumi tiks saglabāti, līdz aizvērsiet Chrome.</translation> <translation id="4028467762035011525">Pievienot ievades metodes</translation> <translation id="4031179711345676612">Mikrofona lietošana ir atļauta</translation> <translation id="4031527940632463547">Bloķēti sensori</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Kerberos konfigurēšana</translation> <translation id="4235200303672858594">Viss ekrāns</translation> <translation id="4235965441080806197">Atcelt pierakstīšanos</translation> -<translation id="4237773362828263530">Iestatījumi ar aizstājējzīmi “*” vairs netiek atbalstīti. Sazinieties ar administratoru, lai <ph name="BEGIN_LINK" />mainītu šos iestatījumus<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Lasīt cilni vēlāk}zero{Lasīt cilnes vēlāk}one{Lasīt cilnes vēlāk}other{Lasīt cilnes vēlāk}}</translation> <translation id="4242145785130247982">Vairāku klienta sertifikātu lietošana netiek atbalstīta</translation> <translation id="4242533952199664413">Atvērt iestatījumus</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Signāls nav atrasts</translation> <translation id="4549791035683739768">Jūsu drošības atslēgā nav saglabātu pirkstu nospiedumu</translation> <translation id="4551763574344810652">Lai atsauktu, nospiediet <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Tīkls: <ph name="NETWORK_TYPE" />, signāla stiprums: <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Lai mainītu ierīces valodu, jums ir jārestartē Chromebook dators. <ph name="BEGIN_LINK_LEARN_MORE" />Uzzināt vairāk<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Ārējā paplašinājuma versija ir tāda pati vai vecāka nekā pašreizējā paplašinājuma versija.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Iziet un bloķēt</translation> <translation id="4976009197147810135">Vertikāls dalījums</translation> <translation id="4977942889532008999">Piekļuves apstiprināšana</translation> -<translation id="4978905460870207779">Atļaut vietnēm pieprasīt atļauju izmantot programmu Flash</translation> <translation id="4980805016576257426">Šis paplašinājums satur ļaunprātīgu programmatūru.</translation> <translation id="4981449534399733132">Lai notīrītu pārlūkošanas datus no visām savām sinhronizētajām ierīcēm un Google konta, <ph name="BEGIN_LINK" />pierakstieties<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Ierīces programmatūra</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Ar šo lietotni saistītie dati tiks noņemti no šīs ierīces.</translation> <translation id="5908474332780919512">Palaist lietotni pierakstoties</translation> <translation id="5908695239556627796">Peles ritināšanas ātrums</translation> -<translation id="5908769186679515905">Bloķēt Flash aktivizēšanu vietnēs</translation> <translation id="5910363049092958439">Saglabāt attēlu &kā...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ir bezsaistē</translation> <translation id="5911533659001334206">Īsinājumtaustiņu skatīšana</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Pievienot biļeti</translation> <translation id="6112931163620622315">Pārbaudiet savu tālruni</translation> <translation id="6112952769866305444">Rediģēt personas informāciju: <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Iestatiet noklusējuma meklētājprogrammu pārlūkam Chrome un <ph name="DEVICE_TYPE" /> palaidējam.</translation> <translation id="6113942107547980621">Lai izmantotu Smart Lock, pārslēdzieties uz tālruņa primāro lietotāja profilu</translation> <translation id="6116921718742659598">Mainīt valodas un ievades iestatījumus</translation> <translation id="6120205520491252677">Piespraust šo lapu sākuma ekrānam...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Nav citu pieejamu ierīču.</translation> <translation id="7141105143012495934">Neizdevās pierakstīties, jo nevarēja izgūt konta informāciju. Lūdzu, sazinieties ar administratoru vai mēģiniet vēlreiz.</translation> <translation id="7143207342074048698">Notiek savienojuma izveide</translation> +<translation id="7143358760238281735">Nav pieejamu lietotņu</translation> <translation id="7144878232160441200">Mēģināt vēlreiz</translation> <translation id="714876143603641390">LAN savienojamība</translation> <translation id="7149893636342594995">Pēdējās 24 stundas</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Izmantot mobilos datus</translation> <translation id="7709152031285164251">Lejupielāde neizdevās. <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Apraide...</translation> +<translation id="7712739869553853093">Drukas priekšskatījuma dialoglodziņš</translation> <translation id="7712836429117959503">Nezināms paplašinājums ar ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Domēna <ph name="DOMAIN" /> sīkfaili ir atļauti.</translation> <translation id="7714464543167945231">Sertifikāts</translation> @@ -5830,7 +5825,6 @@ <translation id="7831491651892296503">Tīkla konfigurācijas kļūda</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Beigu laiks</translation> -<translation id="783214144752121388">Bloķēt Flash aktivizēšanu vietnēs (ieteicams)</translation> <translation id="7833720883933317473">Šeit tiks parādīti saglabātie pielāgotie vārdi.</translation> <translation id="7835178595033117206">Grāmatzīme ir noņemta</translation> <translation id="7836850009646241041">Vēlreiz pieskarieties drošības atslēgai.</translation> @@ -6058,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Šis fails ir šifrēts. Lūdziet faila īpašniekam to atšifrēt.}zero{Daži no šiem failiem ir šifrēti. Lūdziet failu īpašniekam tos atšifrēt.}one{Daži no šiem failiem ir šifrēti. Lūdziet failu īpašniekam tos atšifrēt.}other{Daži no šiem failiem ir šifrēti. Lūdziet failu īpašniekam tos atšifrēt.}}</translation> <translation id="808894953321890993">Mainīt paroli</translation> <translation id="8090234456044969073">Lasīt jūsu visbiežāk apmeklēto vietņu sarakstu</translation> -<translation id="8092681102116274204">Iestatījumi ar aizstājējzīmi “*” vairs netiek atbalstīti. Sazinieties ar paplašinājuma izstrādātāju vai administratoru, lai <ph name="BEGIN_LINK" />mainītu šos iestatījumus<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> nereaģē.</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Dublējiet Google diskā. Ērti atjaunojiet datus vai nomainiet ierīci jebkurā brīdī. Dublējumā ir ietverti arī lietotņu dati.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Jūsu dublējumi tiek augšupielādēti Google serveros un šifrēti, izmantojot jūsu Google konta paroli.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6146,6 @@ <translation id="8201717382574620700">Atlasīt <ph name="TOPIC_SOURCE" /> albumus</translation> <translation id="8202160505685531999">Lai atjauninātu savu <ph name="DEVICE_TYPE" /> profilu, lūdzu, atkārtoti ievadiet paroli.</translation> <translation id="8203732864715032075">Jums tiks sūtīti paziņojumi, un pēc noklusējuma šis dators tiks iestatīts īsziņu saņemšanai. <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation> -<translation id="8205561625497621211">Bloķēt programmu Flash (ieteicams)</translation> <translation id="820568752112382238">Biežāk apmeklētās vietnes</translation> <translation id="8206745257863499010">Blūzs</translation> <translation id="8206859287963243715">Mobilais tālrunis</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index 7e4cda7..1df6f7c 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Запри</translation> <translation id="1272293450992660632">PIN-вредностите не се совпаѓаат.</translation> <translation id="1272978324304772054">Корисничката сметка не му припаѓа на доменот за кој е запишан овој уред. Доколку сакате да го запишете на друг домен, потребно е прво да ја поминете обновата на уредот.</translation> -<translation id="1274977772557788323">Поставки за складирање на Adobe Flash Player</translation> <translation id="1274997165432133392">Колачиња и други податоци за локација</translation> <translation id="1275718070701477396">Избран</translation> <translation id="1276994519141842946">Не може да се деинсталира <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Вашите обележувачи, историја и други поставки ќе се синхронизираат со вашата сметка на Google.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Домашна мрежа, не е во роаминг</translation> -<translation id="1315056510003830387">Не им е дозволено да ја користат Flash</translation> <translation id="1316136264406804862">Се пребарува…</translation> <translation id="1316495628809031177">Синхронизацијата е паузирана</translation> <translation id="1317637799698924700">Станицата за полнење ќе работи во компатибилен режим на USB-адаптер од типот C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC не го поддржува типот шифрирање</translation> <translation id="1984417487208496350">Без заштита (не се препорачува)</translation> <translation id="1987317783729300807">Сметки</translation> -<translation id="1988494864246143197">Сајтовите обично користат Flash за да пуштат аудио, видео или видеоигри. Flash Player веќе нема да се поддржува по истекот на декември 2020 г.</translation> <translation id="1989112275319619282">Прелистувај</translation> <translation id="1990512225220753005">Не прикажувај кратенки на страницава</translation> <translation id="1992397118740194946">Не е поставено</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Поставување прозорец</translation> <translation id="2881076733170862447">Кога ќе кликнете на екстензијата</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ќе се рестартира и ресетира моментално</translation> -<translation id="288387288628762616">Дозволено им е да ја користат Flash</translation> <translation id="2885378588091291677">Управник со задачи</translation> <translation id="2885729872133513017">Настана проблем при декодирање на одговорот на серверот.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Најавени сте.</translation> <translation id="3428747202529429621">Ја чува вашата безбедност на Chrome и може да се користи за да ја подобри безбедноста на други апликации на Google кога сте најавени</translation> <translation id="3428800329481094896">Се преземаат SHH-клучевите за контејнерот за Linux</translation> +<translation id="3429271624041785769">Јазици за содржини од интернет</translation> <translation id="3429275422858276529">Обележете ја страницава за полесно да ја најдете подоцна</translation> <translation id="3432227430032737297">Отстрани ги сите прикажани</translation> <translation id="3432757130254800023">Испратете аудио и видео на екрани на локалната мрежа</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Ова се општи податоци за уредов и неговото користење (како нивото на батеријата, активноста на системот и апликациите и грешките). Податоците ќе се користат за подобрување на Android, а некои збирни податоци ќе им помогнат на апликациите и партнерите на Google, како што се програмерите на Android, да ги подобрат нивните апликации и производи.</translation> <translation id="3838085852053358637">Не можеше да се вчита екстензијата</translation> <translation id="3838486795898716504">Повеќе <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Колачиња и други податоци од локација и од приклучок</translation> <translation id="383891835335927981">Ниеден сајт не е зумиран ниту одзумиран</translation> <translation id="3839509547554145593">Овозможи забрзување на лизгањето на глувчето</translation> <translation id="3839516600093027468">Секогаш блокирај го пристапот на <ph name="HOST" /> за гледање на привремената меморија</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Управник со преземања</translation> <translation id="3881478300875776315">Прикажи помалку редови</translation> <translation id="3882165008614329320">Постојно видео од камера или датотека</translation> +<translation id="3884152383786131369">Содржините од интернет што се достапни на повеќе јазици ќе го користат првиот поддржан јазик од списоков. Поставкиве се синхронизираат со поставките за прелистувачот. <ph name="BEGIN_LINK_LEARN_MORE" />Дознајте повеќе<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Вашето барање за пристап на сајтов е испратено на <ph name="NAME" />.</translation> <translation id="3888550877729210209">Прибележување со <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Вклучете „Синхронизација на Chrome“ за да користите „Синхронизирање на Wi-Fi“</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Се утврдува конфигурацијата на уредот.</translation> <translation id="4025039777635956441">Исклучи звук на избраниот сајт</translation> <translation id="4027804175521224372">(Го пропуштате – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Вашите поставки за Flash ќе се чуваат додека не го напуштите Chrome.</translation> <translation id="4028467762035011525">Додајте методи за внесување</translation> <translation id="4031179711345676612">Микрофон е дозволен</translation> <translation id="4031527940632463547">Сензорите се блокирани</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Конфигурирајте го Kerberos</translation> <translation id="4235200303672858594">Целиот екран</translation> <translation id="4235965441080806197">Откажи најавување</translation> -<translation id="4237773362828263530">Поставките со џокери „*“ веќе не се поддржани. Контактирајте со администраторот за да ги <ph name="BEGIN_LINK" />измените поставкиве<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Прочитајте ја картичката подоцна}one{Прочитајте ги картичките подоцна}other{Прочитајте ги картичките подоцна}}</translation> <translation id="4242145785130247982">Не се поддржани повеќе клиентски сертификати</translation> <translation id="4242533952199664413">Отвори ги поставките</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Не е најден сигнал</translation> <translation id="4549791035683739768">Вашиот безбедносен клуч нема складирани отпечатоци</translation> <translation id="4551763574344810652">Притиснете <ph name="MODIFIER_KEY_DESCRIPTION" /> за да се врати</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Мрежа со <ph name="NETWORK_TYPE" />, јачина на сигнал <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Треба да го рестартирате вашиот Chromebook за да го промените јазикот на уредот. <ph name="BEGIN_LINK_LEARN_MORE" />Дознајте повеќе<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Надворешната наставка е иста или пониска верзија споредена со постоечката.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Излези и заклучи за деца</translation> <translation id="4976009197147810135">Подели вертикално</translation> <translation id="4977942889532008999">Потврди пристап</translation> -<translation id="4978905460870207779">Сајтовите може да прашуваат дали да користат Flash</translation> <translation id="4980805016576257426">Екстензијата содржи злонамерен софтвер.</translation> <translation id="4981449534399733132">За да ги избришете податоците од прелистувањето од сите ваши синхронизирани уреди и од сметката на Google, <ph name="BEGIN_LINK" />најавете се<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Софтвер на уредот</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Податоците поврзани со оваа апликација ќе бидат отстранети од уредов.</translation> <translation id="5908474332780919512">Стартувај ја апликацијата кога ќе се најавам</translation> <translation id="5908695239556627796">Брзина на лизгање на глувчето</translation> -<translation id="5908769186679515905">Блокирајте страниците да пуштаат Flash</translation> <translation id="5910363049092958439">Сни&ми слика како…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> е офлајн</translation> <translation id="5911533659001334206">Прикажувач на кратенки</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Додајте билет</translation> <translation id="6112931163620622315">Проверете го телефонот</translation> <translation id="6112952769866305444">Измени го лицето, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Поставете го стандардниот пребарувач за прелистувачот Chrome и стартерот на <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">За да користите Smart Lock, префрлете се на примарниот кориснички профил на телефонот</translation> <translation id="6116921718742659598">Промени поставки за јазик и внесување...</translation> <translation id="6120205520491252677">Прикачи ја оваа страница на Почетен екран...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Нема други достапни уреди.</translation> <translation id="7141105143012495934">Најавувањето не успеа бидејќи не можеа да се вчитаат деталите за вашата сметка. Контактирајте со администраторот или обидете се повторно.</translation> <translation id="7143207342074048698">Се поврзува</translation> +<translation id="7143358760238281735">Нема апликации</translation> <translation id="7144878232160441200">Обиди се повторно</translation> <translation id="714876143603641390">LAN-поврзливост</translation> <translation id="7149893636342594995">Изминатите 24 часа</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Ќе користи мобилен интернет</translation> <translation id="7709152031285164251">Не успеа - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Cast…</translation> +<translation id="7712739869553853093">Дијалог за преглед пред печатење</translation> <translation id="7712836429117959503">Непозната екстензија со ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Дозволени се колачиња од <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">Сертификат</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Грешка при конфигурирање на мрежата</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Време на завршување</translation> -<translation id="783214144752121388">Блокирајте го извршувањето на Flash на сајтовите (препорачано)</translation> <translation id="7833720883933317473">Зачуваните приспособени зборови ќе се појават тука</translation> <translation id="7835178595033117206">Обележувачот е отстранет</translation> <translation id="7836850009646241041">Допрете го безбедносниот клуч пак</translation> @@ -6058,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Датотекава е шифрирана. Побарајте од сопственикот да ја дешифрира.}one{Некои од датотекиве се шифрирани. Побарајте од сопственикот да ги дешифрира.}other{Некои од датотекиве се шифрирани. Побарајте од сопственикот да ги дешифрира.}}</translation> <translation id="808894953321890993">Промени лозинка</translation> <translation id="8090234456044969073">Прочитај листа со најчесто посетувани веб-локации</translation> -<translation id="8092681102116274204">Поставките со џокери „*“ веќе не се поддржани. Контактирајте со програмерот на екстензијата или вашиот администратор за да ги <ph name="BEGIN_LINK" />измените поставкиве<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> не реагира</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Направете бекап на Google Drive. Лесно враќајте ги податоците или менувајте ги уредите во секое време. Бекапот опфаќа податоци за апликациите.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Вашиот бекап се прикачува во Google и се шифрира со помош на лозинката за вашата сметка на Google.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6146,6 @@ <translation id="8201717382574620700">Изберете албуми од <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Повторно внесете ја лозинката за да го ажурирате профилот на <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Ви испраќа известувања и стандардни вредности за запомнување на компјутеров за Messages. <ph name="LINK_BEGIN" />Дознајте повеќе<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Блокирај ја Flash (се препорачува)</translation> <translation id="820568752112382238">Најпосетувани веб-сајтови</translation> <translation id="8206745257863499010">Блузист</translation> <translation id="8206859287963243715">Мобилен</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index de6be62..9de0278 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">നിര്ത്തുക</translation> <translation id="1272293450992660632">പിൻ മൂല്യങ്ങൾ പൊരുത്തപ്പെടുന്നില്ല.</translation> <translation id="1272978324304772054">ഈ ഉപയോക്തൃ അക്കൗണ്ട്, ഉപകരണം ചേർത്തിരിക്കുന്ന ഡൊമെയ്നിന്റെ ഭാഗമല്ല. നിങ്ങൾക്ക് മറ്റൊരു ഡൊമെയ്ൻ ചേർക്കണമെങ്കിൽ, ആദ്യം ഉപകരണം വീണ്ടെടുക്കുന്നതിലേക്ക് പോകേണ്ടതുണ്ട്.</translation> -<translation id="1274977772557788323">Adobe Flash Player സ്റ്റോറേജ് ക്രമീകരണം</translation> <translation id="1274997165432133392">കുക്കികളും മറ്റ് സൈറ്റ് ഡാറ്റയും</translation> <translation id="1275718070701477396">തിരഞ്ഞെടുത്തു</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> അൺഇൻസ്റ്റാൾ ചെയ്യാനായില്ല.</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ, ചരിത്രം, മറ്റ് ക്രമീകരണങ്ങൾ എന്നിവ Google അക്കൗണ്ടുമായി സമന്വയിപ്പിക്കും.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">ഹോം നെറ്റ്വര്ക്ക്, റോമിംഗ് അല്ല</translation> -<translation id="1315056510003830387">Flash ഉപയോഗിക്കാൻ അനുവാദമില്ല</translation> <translation id="1316136264406804862">തിരയുന്നു...</translation> <translation id="1316495628809031177">സമന്വയം താൽക്കാലികമായി നിർത്തി</translation> <translation id="1317637799698924700">USB Type-C അനുയോജ്യതാ മോഡിൽ നിങ്ങളുടെ ഡോക്കിംഗ് സ്റ്റേഷൻ പ്രവർത്തിക്കും.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">എൻക്രിപ്ഷൻ രീതി KDC പിന്തുണയ്ക്കുന്നില്ല</translation> <translation id="1984417487208496350">പരിരക്ഷയില്ല (ശുപാർശ ചെയ്യുന്നില്ല)</translation> <translation id="1987317783729300807">അക്കൗണ്ടുകൾ</translation> -<translation id="1988494864246143197">ഓഡിയോ, വീഡിയോ, അല്ലെങ്കിൽ വീഡിയോ ഗെയിമുകൾ എന്നിവ പ്ലേ ചെയ്യാൻ സൈറ്റുകൾ സാധാരണയായി Flash ഉപയോഗിക്കാറുണ്ട്. 2020 ഡിസംബറിന് ശേഷം Flash Player പിന്തുണയ്ക്കില്ല.</translation> <translation id="1989112275319619282">ബ്രൗസ് ചെയ്യുക</translation> <translation id="1990512225220753005">ഈ പേജിൽ കുറുക്കുവഴികൾ കാണിക്കരുത്</translation> <translation id="1992397118740194946">സജ്ജമാക്കിയിട്ടില്ല</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">വിൻഡോ പ്ലെയ്സ്മെന്റ്</translation> <translation id="2881076733170862447">നിങ്ങൾ വിപുലീകരണം ക്ലിക്ക് ചെയ്യുമ്പോൾ</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" />, തൽക്ഷണം റീസ്റ്റാർട്ട് ചെയ്ത് റീസെറ്റ് ചെയ്യും</translation> -<translation id="288387288628762616">Flash ഉപയോഗിക്കാൻ അനുവദിച്ചിരിക്കുന്നു</translation> <translation id="2885378588091291677">ടാസ്ക് മാനേജര്</translation> <translation id="2885729872133513017">സെർവറിന്റെ പ്രതികരണം ഡീകോഡ് ചെയ്യുമ്പോൾ ഒരു പ്രശ്നമുണ്ടായി.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2078,6 +2074,7 @@ <translation id="3428419049384081277">നിങ്ങൾ സൈൻ ഇൻ ചെയ്തു!</translation> <translation id="3428747202529429621">നിങ്ങൾ സൈൻ ഇൻ ആയിരിക്കുമ്പോൾ Chrome-ൽ നിങ്ങളെ സുരക്ഷിതരാക്കുകയും മറ്റ് Google ആപ്പുകളിൽ നിങ്ങളുടെ സുരക്ഷ മെച്ചപ്പെടുത്താനും ഉപയോഗിച്ചേക്കാം</translation> <translation id="3428800329481094896">Linux കണ്ടെയ്നർ ssh കീകൾ ലഭ്യമാക്കുന്നു</translation> +<translation id="3429271624041785769">വെബ് ഉള്ളടക്കം ലഭ്യമായ ഭാഷകൾ</translation> <translation id="3429275422858276529">പിന്നീട് ഈ പേജ് എളുപ്പത്തിൽ കണ്ടെത്താൻ ബുക്ക്മാർക്ക് ചെയ്യുക</translation> <translation id="3432227430032737297">ദൃശ്യമാക്കിയിരിക്കുന്നതെല്ലാം നീക്കംചെയ്യുക</translation> <translation id="3432757130254800023">പ്രാദേശിക നെറ്റ്വർക്കിലെ ഡിസ്പ്ലേകളിലേക്ക് ഓഡിയോയും വീഡിയോയും അയയ്ക്കുക</translation> @@ -2462,7 +2459,6 @@ <translation id="383669374481694771">നിങ്ങളുടെ ഉപകരണത്തെ കുറിച്ചും നിങ്ങൾ എങ്ങനെയത് ഉപയോഗിച്ചു എന്നതിനെ കുറിച്ചുമുള്ള പൊതുവായ വിവരങ്ങൾ (ബാറ്ററി നില, സിസ്റ്റം ആക്റ്റിവിറ്റി, ആപ്പ് ആക്റ്റിവിറ്റി, പിശകുകൾ എന്നിവ പോലെ) ആണിത്. Android മെച്ചപ്പെടുത്താൻ ഈ ഡാറ്റ ഉപയോഗിക്കപ്പെടും, സംഗ്രഹിച്ച ചില വിവരങ്ങൾ, Google ആപ്പുകളെയും Android ഡെവലപ്പർമാർ പോലുള്ള പങ്കാളികളെയും അവരുടെ ആപ്പുകളും ഉൽപ്പന്നങ്ങളും മെച്ചപ്പെടുത്താനും സഹായിക്കും.</translation> <translation id="3838085852053358637">വിപുലീകരണം ലോഡ് ചെയ്യാനായില്ല</translation> <translation id="3838486795898716504">കൂടുതൽ <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">കുക്കികളും മറ്റുള്ള സൈറ്റും പ്ലഗിൻ വിവരവും</translation> <translation id="383891835335927981">സൈറ്റുകളൊന്നും സൂം ഇൻ അല്ലെങ്കിൽ സൂം ഔട്ട് ചെയ്തിട്ടില്ല</translation> <translation id="3839509547554145593">മൗസ് സ്ക്രോള് ആക്സിലറേഷൻ പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="3839516600093027468">ക്ലിപ്പ്ബോർഡ് കാണുന്നതിൽ നിന്ന് എല്ലായ്പ്പോഴും <ph name="HOST" /> എന്നതിനെ ബ്ലോക്ക് ചെയ്യുക</translation> @@ -2504,6 +2500,7 @@ <translation id="3879748587602334249">ഡൗൺലോഡ് മാനേജർ</translation> <translation id="3881478300875776315">കുറച്ച് വരികൾ മാത്രം കാണിക്കുക</translation> <translation id="3882165008614329320">ക്യാമറയിൽ നിന്നോ ഫയലിൽ നിന്നോ ഉള്ള നിലവിലെ വീഡിയോ</translation> +<translation id="3884152383786131369">ഒന്നിലധികം ഭാഷകളിൽ ലഭ്യമായ വെബ് ഉള്ളടക്കം, ഈ ലിസ്റ്റിലുള്ള പിന്തുണയ്ക്കുന്ന ആദ്യത്തെ ഭാഷ ഉപയോഗിക്കും. ഈ മുൻഗണനകൾ നിങ്ങളുടെ ബ്രൗസർ ക്രമീകരണവുമായി സമന്വയിപ്പിക്കുന്നു. <ph name="BEGIN_LINK_LEARN_MORE" />കൂടുതലറിയുക<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045"><ph name="NAME" /> എന്നയാൾക്ക് ഈ സൈറ്റ് ആക്സസ് ചെയ്യാനുള്ള നിങ്ങളുടെ അഭ്യർത്ഥന അയച്ചു</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ഉപയോഗിച്ച് കുറിപ്പുകൾ എടുക്കുന്നു</translation> <translation id="3890064827463908288">വൈഫൈ സമന്വയം ഉപയോഗിക്കാൻ Chrome സമന്വയം ഓണാക്കുക</translation> @@ -2635,7 +2632,6 @@ <translation id="4023146161712577481">ഉപകരണ കോൺഫിഗറേഷൻ നിർണ്ണയിക്കുന്നു.</translation> <translation id="4025039777635956441">തിരഞ്ഞെടുത്ത സൈറ്റ് മ്യൂട്ട് ചെയ്യുക</translation> <translation id="4027804175521224372">(നിങ്ങൾ നഷ്പ്പെടുത്തി—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">നിങ്ങൾ Chrome അവസാനിപ്പിക്കുന്നതുവരെ നിങ്ങളുടെ ഫ്ലാഷ് ക്രമീകരണം സൂക്ഷിക്കും.</translation> <translation id="4028467762035011525">ഇന്പുട്ട് രീതികൾ ചേർക്കുക</translation> <translation id="4031179711345676612">മൈക്രോഫോൺ അനുവദനീയം</translation> <translation id="4031527940632463547">സെൻസറുകൾ ബ്ലോക്ക് ചെയ്തു</translation> @@ -2787,7 +2783,6 @@ <translation id="4232375817808480934">Kerberos കോൺഫിഗർ ചെയ്യുക</translation> <translation id="4235200303672858594">പൂർണ്ണ സ്ക്രീൻ</translation> <translation id="4235965441080806197">സൈൻ ഇൻ റദ്ദാക്കുക</translation> -<translation id="4237773362828263530">"*" വൈൽഡ്കാർഡുകളുള്ള ക്രമീകരണത്തിന് ഇനി പിന്തുണയില്ല. <ph name="BEGIN_LINK" />ഈ ക്രമീകരണം മാറ്റാൻ<ph name="END_LINK" /> നിങ്ങളുടെ അഡ്മിനെ ബന്ധപ്പെടുക.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{ടാബ് പിന്നീട് വായിക്കുക}other{ടാബുകൾ പിന്നീട് വായിക്കുക}}</translation> <translation id="4242145785130247982">ഒന്നിലധികം ക്ലയന്റ് സർട്ടിഫിക്കറ്റുകൾ പിന്തുണയ്ക്കുന്നില്ല</translation> <translation id="4242533952199664413">ക്രമീകരണം തുറക്കുക</translation> @@ -3051,7 +3046,6 @@ <translation id="4548483925627140043">സിഗ്നൽ കണ്ടെത്തിയില്ല</translation> <translation id="4549791035683739768">നിങ്ങളുടെ സുരക്ഷാ കീയിൽ സംരക്ഷിച്ച ഫിംഗർപ്രിന്റുകളൊന്നുമില്ല</translation> <translation id="4551763574344810652">പഴയപടിയാക്കാൻ <ph name="MODIFIER_KEY_DESCRIPTION" /> അമർത്തുക</translation> -<translation id="4552089082226364758">ഫ്ലാഷ്</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> നെറ്റ്വർക്ക്, സിഗ്നൽ ശക്തി <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">ഉപകരണത്തിന്റെ ഭാഷ മാറ്റാൻ, Chromebook റീസ്റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്. <ph name="BEGIN_LINK_LEARN_MORE" />കൂടുതലറിയുക<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">നിലവിലുള്ള ഒന്നുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ, ബാഹ്യ വിപുലീകരണത്തിന്റെ പതിപ്പ് സമാനമായതോ അതിന് മുമ്പുള്ളതോ ആണ്.</translation> @@ -3406,7 +3400,6 @@ <translation id="4974733135013075877">പുറത്തുകടക്കലും കുട്ടികൾക്കുള്ള ലോക്കും</translation> <translation id="4976009197147810135">ലംബമായി വിഭജിക്കുക</translation> <translation id="4977942889532008999">ആക്സസ് സ്ഥിരീകരിക്കുക</translation> -<translation id="4978905460870207779">Flash ഉപയോഗിക്കാൻ സൈറ്റുകൾക്ക് അനുവാദം ചോദിക്കാം</translation> <translation id="4980805016576257426">ഈ വിപുലീകരണത്തിൽ മാൽവേർ അടങ്ങിയിരിക്കുന്നു.</translation> <translation id="4981449534399733132">നിങ്ങളുടെ സമന്വയിപ്പിച്ച എല്ലാ ഉപകരണങ്ങളിൽ നിന്നും Google അക്കൗണ്ടിൽ നിന്നും ബ്രൗസിംഗ് ഡാറ്റ മായ്ക്കാൻ<ph name="BEGIN_LINK" />സൈൻ ഇൻ ചെയ്യുക<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">ഉപകരണത്തിലെ സോഫ്റ്റ്വെയർ</translation> @@ -4178,7 +4171,6 @@ <translation id="5906732635754427568">ഈ ആപ്പുമായി ബന്ധപ്പെട്ട വിവരങ്ങൾ ഈ ഉപകരണത്തിൽ നിന്ന് നീക്കംചെയ്യപ്പെടും.</translation> <translation id="5908474332780919512">നിങ്ങൾ സൈൻ ഇൻ ചെയ്യുമ്പോൾ ആപ്പ് ആരംഭിക്കുക</translation> <translation id="5908695239556627796">മൗസ് സ്ക്രോള് ചെയ്യൽ വേഗത</translation> -<translation id="5908769186679515905">Flash റൺ ചെയ്യുന്നതിൽ നിന്ന് സൈറ്റുകളെ തടയുക</translation> <translation id="5910363049092958439">ചിത്രം ഇതായി സം&രക്ഷിക്കുക...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ഓഫ്ലൈൻ ആണ്</translation> <translation id="5911533659001334206">ഷോട്ട്കട്ട് വ്യൂവർ</translation> @@ -4363,6 +4355,7 @@ <translation id="6112727384379533756">ഒരു ടിക്കറ്റ് ചേർക്കുക</translation> <translation id="6112931163620622315">നിങ്ങളുടെ ഫോൺ പരിശോധിക്കുക</translation> <translation id="6112952769866305444"><ph name="USERNAME" /> എന്നയാളിന്റെ <ph name="PROFILE_NAME" /> പ്രൊഫൈൽ എഡിറ്റുചെയ്യുക</translation> +<translation id="6113434369102685411">Chrome ബ്രൗസറിനും <ph name="DEVICE_TYPE" /> ലോഞ്ചറിനും നിങ്ങളുടെ ഡിഫോൾട്ട് തിരയൽ യന്ത്രം സജ്ജീകരിക്കുക</translation> <translation id="6113942107547980621">Smart Lock ഉപയോഗിക്കാൻ നിങ്ങളുടെ ഫോണിലെ പ്രാഥമിക ഉപയോക്തൃ പ്രൊഫൈലിലേക്ക് സ്വിച്ച് ചെയ്യുക</translation> <translation id="6116921718742659598">ഭാഷയും ഇൻപുട്ട് ക്രമീകരണങ്ങളും മാറ്റുക</translation> <translation id="6120205520491252677">ഈ പേജ് ആരംഭ സ്ക്രീനിലേക്ക് പിൻ ചെയ്യുക...</translation> @@ -5229,6 +5222,7 @@ <translation id="7140928199327930795">ലഭ്യമായ മറ്റ് ഉപകരണങ്ങളൊന്നുമില്ല.</translation> <translation id="7141105143012495934">നിങ്ങളുടെ അക്കൗണ്ട് വിശദാംശങ്ങൾ വീണ്ടെടുക്കാനാവാത്തതിനാൽ സൈൻ ഇൻ ചെയ്യുന്നത് പരാജയപ്പെട്ടു. നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക അല്ലെങ്കിൽ വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="7143207342074048698">കണക്റ്റിംഗ്</translation> +<translation id="7143358760238281735">ആപ്പുകളൊന്നും ലഭ്യമല്ല</translation> <translation id="7144878232160441200">വീണ്ടും ശ്രമിക്കുക</translation> <translation id="714876143603641390">LAN കണക്റ്റിവിറ്റി</translation> <translation id="7149893636342594995">അവസാന 24 മണിക്കൂർ</translation> @@ -5700,6 +5694,7 @@ <translation id="7707922173985738739">മൊബൈൽ ഡാറ്റ ഉപയോഗിക്കുക</translation> <translation id="7709152031285164251">പരാജയപ്പെട്ടു - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&കാസ്റ്റുചെയ്യുക...</translation> +<translation id="7712739869553853093">പ്രിവ്യു ഡയലോഗ് അച്ചടിക്കുക</translation> <translation id="7712836429117959503"><ph name="EXTENSION_ID" /> ഐഡിയുള്ള അജ്ഞാത വിപുലീകരണം</translation> <translation id="7714307061282548371"><ph name="DOMAIN" /> ഡൊമെയ്നിൽ നിന്നുള്ള കുക്കികളെ അനുവദിച്ചു</translation> <translation id="7714464543167945231">സര്ട്ടിഫിക്കറ്റ്</translation> @@ -5829,7 +5824,6 @@ <translation id="7831491651892296503">നെറ്റ്വര്ക്ക് കോണ്ഫിഗര് ചെയ്യുന്നതിൽ പിശക്</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">അവസാനിക്കുന്ന സമയം</translation> -<translation id="783214144752121388">Flash റൺ ചെയ്യുന്നതിൽ നിന്ന് സൈറ്റുകളെ ബ്ലോക്ക് ചെയ്യുക (ശുപാർശ ചെയ്യുന്നത്)</translation> <translation id="7833720883933317473">സംരക്ഷിച്ച ഇഷ്ടാനുസൃത പദങ്ങൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="7835178595033117206">ബുക്ക്മാര്ക്ക് നീക്കം ചെയ്തു</translation> <translation id="7836850009646241041">നിങ്ങളുടെ സുരക്ഷാ കീയിൽ വീണ്ടും സ്പർശിച്ച് ശ്രമിക്കുക</translation> @@ -6057,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ഈ ഫയൽ എൻക്രിപ്റ്റ് ചെയ്തതാണ്. ഡീക്രിപ്റ്റ് ചെയ്യാൻ അതിന്റെ ഉടമയോട് ആവശ്യപ്പെടുക.}other{ഈ ഫയലുകളിൽ ചിലത് എൻക്രിപ്റ്റ് ചെയ്തതാണ്. ഡീക്രിപ്റ്റ് ചെയ്യാൻ അവയുടെ ഉടമയോട് ആവശ്യപ്പെടുക.}}</translation> <translation id="808894953321890993">പാസ്വേഡ് മാറ്റുക</translation> <translation id="8090234456044969073">നിങ്ങൾ ഏറ്റവും കൂടുതൽ സന്ദർശിച്ച വെബ്സൈറ്റുകളുടെ ലിസ്റ്റ് വായിക്കുക.</translation> -<translation id="8092681102116274204">"*" വൈൽഡ്കാർഡുകളുള്ള ക്രമീകരണത്തിന് ഇനി പിന്തുണയില്ല. <ph name="BEGIN_LINK" />ഈ ക്രമീകരണം മാറ്റാൻ<ph name="END_LINK" /> വിപുലീകരണ ഡെവലപ്പറുമായോ നിങ്ങളുടെ അഡ്മിനുമായോ ബന്ധപ്പെടുക.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> പ്രതികരിക്കുന്നില്ല</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ഡ്രൈവിലേക്ക് ബാക്കപ്പ് ചെയ്യുക. എളുപ്പത്തിൽ നിങ്ങളുടെ ഡാറ്റ പുന:സ്ഥാപിക്കുകയോ ഏതുസമയത്തും ഉപകരണം മാറുകയോ ചെയ്യുക. ബാക്കപ്പിൽ ആപ്പ് ഡാറ്റയും ഉൾപ്പെടുന്നു.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />നിങ്ങളുടെ ബാക്കപ്പുകൾ Google-ലേക്ക് അപ്ലോഡ് ചെയ്ത്, Google അക്കൗണ്ട് പാസ്വേഡ് ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്യും.<ph name="END_PARAGRAPH2" /> @@ -6152,7 +6145,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ആൽബങ്ങൾ തിരഞ്ഞെടുക്കുക</translation> <translation id="8202160505685531999">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> പ്രൊഫൈൽ അപ്ഡേറ്റ് ചെയ്യാൻ പാസ്വേഡ് വീണ്ടും നൽകുക.</translation> <translation id="8203732864715032075">നിങ്ങള്ക്ക് അറിയിപ്പുകള് അയയ്ക്കുന്നു, സന്ദേശങ്ങള്ക്കായി ഈ കമ്പ്യൂട്ടറിനെ ഡിഫോള്ട്ടായി ഒാർമ്മിപ്പിക്കുകയും ചെയ്യുന്നു. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash ബ്ലോക്ക് ചെയ്യുക (നിർദ്ദേശിക്കുന്നത്)</translation> <translation id="820568752112382238">ഏറ്റവും കൂടുതൽ സന്ദർശിച്ച സൈറ്റുകൾ</translation> <translation id="8206745257863499010">ബ്ലൂസി</translation> <translation id="8206859287963243715">സെല്ലുലാര്</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index 5f5a667..aff9d30 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Зогс</translation> <translation id="1272293450992660632">ПИН кодын утга таарахгүй байна.</translation> <translation id="1272978324304772054">Энэ хэрэглэгчийн бүртгэл нь төхөөрөмжийн нэгдэн орсон домэйнд харьяалагдахгүй байна. Хэрэв та өөр домэйнд нэгдэн орох хүсэлтэй байгаа бол эхлээд төхөөрөмжөө сэргээх хэрэгтэй.</translation> -<translation id="1274977772557788323">Adobe Flash Player сангийн тохиргоо</translation> <translation id="1274997165432133392">Cookies болон бусад цахим хуудсын мэдээлэл</translation> <translation id="1275718070701477396">Сонгогдсон</translation> <translation id="1276994519141842946"><ph name="APP_NAME" />-г суулгаж чадсангүй</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Таны хайлтын жагсаалт, түүх болон бусад тохиргоонуудыг таны Google Account руу шууд sync хийнэ.</translation> <translation id="1314565355471455267">Андройд VPN</translation> <translation id="131461803491198646">Үндсэн сүлжээ, роуминг биш</translation> -<translation id="1315056510003830387">Flash ашиглахыг зөвшөөрөөгүй</translation> <translation id="1316136264406804862">Хайж байна...</translation> <translation id="1316495628809031177">Синк хийхийг түр зогсоосон</translation> <translation id="1317637799698924700">Таны холбогч станц USB C-Төрлийн тохирох горимд ажиллана.</translation> @@ -874,7 +872,6 @@ <translation id="197989455406964291">KDC нь шифрлэлтийн төрлийг дэмждэггүй</translation> <translation id="1984417487208496350">Хамгаалалт байхгүй (зөвлөдөггүй)</translation> <translation id="1987317783729300807">Хаяг</translation> -<translation id="1988494864246143197">Сайтууд ихэвчлэн аудио, видео эсвэл видео тоглоомыг тоглуулахын тулд Flash-г ашигладаг. Flash Player-г 2020 оны 12 дугаар сараас хойш ашиглах боломжгүй болно.</translation> <translation id="1989112275319619282">Хөтлөх</translation> <translation id="1990512225220753005">Энэ хуудсан дээр товчлолыг бүү үзүүл</translation> <translation id="1992397118740194946">Суугдаагүй</translation> @@ -1644,7 +1641,6 @@ <translation id="2880660355386638022">Цонх байршуулалт</translation> <translation id="2881076733170862447">Та өргөтгөл гэснийг товших үед</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> дахин эхлэх бөгөөд хоромхон зуур л тохируулагдана.</translation> -<translation id="288387288628762616">Flash ашиглахыг зөвшөөрсөн</translation> <translation id="2885378588091291677">Асуудлын менежер</translation> <translation id="2885729872133513017">Серверийн хариу үйлдлийн кодыг тайлахад асуудал гарлаа.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2461,7 +2457,6 @@ <translation id="383669374481694771">Энэ нь уг төхөөрөмжийн болон түүнийг хэрхэн ашигладаг тухай (батарейн түвшин, систем болон аппын үйл ажиллагаа, алдаа зэрэг) ерөнхий мэдээлэл юм. Өгөгдлийг Android-г сайжруулах зорилгоор ашиглах бөгөөд хуримтлуулсан зарим мэдээлэл нь Google-н аппууд болон Android хөгжүүлэгч зэрэг түншүүдэд апп болон бүтээгдэхүүнээ сайжруулахад нь мөн тусална.</translation> <translation id="3838085852053358637">Өргөтгөлийг ачаалж чадсангүй</translation> <translation id="3838486795898716504">Илүү их <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies ба бусад сайтын болон нэмэлт өргөтгөлийн мэдээлэл</translation> <translation id="383891835335927981">Томруулж, жижигрүүлсэн сайт алга</translation> <translation id="3839509547554145593">Хулганын гүйлгэлтийн хурдасгуурыг идэвхжүүлэх</translation> <translation id="3839516600093027468"><ph name="HOST" />-г түр санах ой харахыг тогтмол хориглох</translation> @@ -2635,7 +2630,6 @@ <translation id="4023146161712577481">Төхөөрөмжийн тохиргоог тодорхойлж байна.</translation> <translation id="4025039777635956441">Сонгосон сайтын дууг хаах</translation> <translation id="4027804175521224372">(<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />-Та үүнийг орхисон байна)</translation> -<translation id="4027951648498485763">Chrome-с гарах хүртэл таны анивчих тохиргоог хэвээр үлдээх болно.</translation> <translation id="4028467762035011525">Оруулах арга нэмэх</translation> <translation id="4031179711345676612">Микрофоныг зөвшөөрсөн</translation> <translation id="4031527940632463547">Мэдрэгчийг хориглосон</translation> @@ -2787,7 +2781,6 @@ <translation id="4232375817808480934">Kerberos-г тохируулах</translation> <translation id="4235200303672858594">Дэлгэцийг томоор харах</translation> <translation id="4235965441080806197">Нэвтрэхийг цуцлах</translation> -<translation id="4237773362828263530">"*" төлөөлөх тэмдэгтэй тохиргоог дэмжихээ больсон. <ph name="BEGIN_LINK" />Эдгээр тохиргоог өөрчлөх<ph name="END_LINK" />-ийн тулд администратортайгаа холбогдоно уу.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Табыг дараа унших}other{Табуудыг дараа Унших}}</translation> <translation id="4242145785130247982">Олон клиентийн гэрчилгээг дэмждэггүй</translation> <translation id="4242533952199664413">Нээлттэй тохиргоо</translation> @@ -3051,7 +3044,6 @@ <translation id="4548483925627140043">Дохио илэрсэнгүй</translation> <translation id="4549791035683739768">Таны аюулгүй байдлын түлхүүр дээр хадгалсан хурууны хээ байхгүй байна</translation> <translation id="4551763574344810652">Болихын тулд <ph name="MODIFIER_KEY_DESCRIPTION" />-г дарна уу</translation> -<translation id="4552089082226364758">Гэрэл</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> сүлжээ, дохионы хүч <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Та төхөөрөмжийн хэлийг өөрчлөхийн тулд Chromebook-ээ дахин эхлүүлэх шаардлагатай. <ph name="BEGIN_LINK_LEARN_MORE" />Нэмэлт мэдээлэл авах<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Энэ программын гадаад өргөтгөл одоогийн хувилбартай адилхан эсвэл хуучин байна.</translation> @@ -3406,7 +3398,6 @@ <translation id="4974733135013075877">Гараад хүүхэд хүрэхээс сэргийлж цоожлох</translation> <translation id="4976009197147810135">Босоо чиглэлд хуваах</translation> <translation id="4977942889532008999">Нэвтрэлтийг баталгаажуулах</translation> -<translation id="4978905460870207779">Сайтууд Flash ашиглахыг хүсэх боломжтой</translation> <translation id="4980805016576257426">Энэ өргөтгөл нь хортой код агуулсан байна.</translation> <translation id="4981449534399733132">Хөтчийн өгөгдлийг синк хийсэн бүх төхөөрөмж болон Google Бүртгэлээсээ устгахын тулд <ph name="BEGIN_LINK" />нэвтэрнэ үү<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Төхөөрөмжийн программ хангамж</translation> @@ -4178,7 +4169,6 @@ <translation id="5906732635754427568">Энэ апп-тай холбоотой өгөгдлийг төхөөрөмжөөс устгах болно.</translation> <translation id="5908474332780919512">Нэвтрэх үедээ аппыг эхлүүлэх</translation> <translation id="5908695239556627796">Хулганын гүйлгэлтийн хурд</translation> -<translation id="5908769186679515905">Сайтыг Flash ажиллуулах тохиргоог блоклох</translation> <translation id="5910363049092958439">Зургийг өөр өргөтгөлтэйгээр хадгалах...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> офлайн байна</translation> <translation id="5911533659001334206">Товчлол харагч</translation> @@ -5829,7 +5819,6 @@ <translation id="7831491651892296503">Сүлжээг тохируулахад алдаа гарлаа</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Дуусах цаг</translation> -<translation id="783214144752121388">Сайтын Flash ажиллуулахыг блоклох (санал болгосон)</translation> <translation id="7833720883933317473">Тохируулсан үгс энд харагдана</translation> <translation id="7835178595033117206">Хавчуургыг устгасан</translation> <translation id="7836850009646241041">Аюулгүй байдлын түлхүүртээ дахин хүрээд үзнэ үү</translation> @@ -6055,7 +6044,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Энэ файлыг шифрлэсэн байна. Өмчлөгчөөс нь үүний кодыг тайлахыг хүснэ үү.}other{Эдгээр файлын заримыг нь шифрлэсэн байна. Өмчлөгчөөс нь эдгээрийн кодыг тайлахыг хүснэ үү.}}</translation> <translation id="808894953321890993">Нууц үгийг солих</translation> <translation id="8090234456044969073">Хамгийн их зочилсон веб сайтуудынхаа жагсаалтыг харах</translation> -<translation id="8092681102116274204">"*" төлөөлөх тэмдэгтэй тохиргоог дэмжихээ больсон. <ph name="BEGIN_LINK" />Эдгээр тохиргоог өөрчлөх<ph name="END_LINK" />-ийн тулд өргөтгөлийн хөгжүүлэгчтэй эсвэл администратортайгаа холбогдоно уу.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> хариу өгөхгүй байна</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google Драйвт нөөцлөх. Өгөгдлөө хялбархнаар сэргээж эсвэл төхөөрөмжийг хүссэн үедээ сэлгээрэй. Таны нөөцлөлтөд аппын өгөгдөл багтдаг.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Таны нөөцлөлтийг Google-д байршуулдаг бөгөөд таны Google Бүртгэлийн нууц үгийг ашиглан шифрлэдэг.<ph name="END_PARAGRAPH2" /> @@ -6149,7 +6137,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> цомгуудыг сонгоно уу</translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" />-ын профайлаа шинэчлэхийн тулд нууц үгээ дахин оруулна уу.</translation> <translation id="8203732864715032075">Энэ компьютерийг Мессежэд санахын тулд танд мэдэгдэл болон өгөгдмөлийг илгээнэ. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash-г блоклоно (санал болгосон)</translation> <translation id="820568752112382238">Хамгийн их зочилсон сайт</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">Үүрэн холбоо</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index c7ffadc..6c96d5a 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">थांबा</translation> <translation id="1272293450992660632">पिन मूल्ये जुळत नाहीत.</translation> <translation id="1272978324304772054">हे वापरकर्ता खाते ज्यावर डिव्हाइसने नोंदणी केली आहे त्या डोमेनशी संबंधित नाही. तुम्ही एखादे वेगळ्या डोमेनची नोंदणी करू इच्छित असल्यास, तुम्हाला प्रथम डिव्हाइस पुनर्प्राप्तीद्वारा जाणे आवश्यक आहे.</translation> -<translation id="1274977772557788323">Adobe Flash Player स्टोरेज सेटिंग्ज</translation> <translation id="1274997165432133392">कुकीज आणि इतर साइट डेटा</translation> <translation id="1275718070701477396">निवडलेले</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> अनइंस्टॉल करता आले नाही</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">तुमचे बुकमार्क, इतिहास आणि इतर सेटिंग्ज आपल्या Google खात्यामध्ये संकालित केल्या जातील.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">घरगुती नेटवर्क, रोमिंग नाही</translation> -<translation id="1315056510003830387">फ्लॅश वापरण्याची अनुमती नाही</translation> <translation id="1316136264406804862">शोधत आहे...</translation> <translation id="1316495628809031177">सिंक थांबवले आहे</translation> <translation id="1317637799698924700">तुमचे डॉकिंग स्टेशन हे USB केबल कंपॅटिबिल मोडमध्ये काम करेल.</translation> @@ -448,6 +446,7 @@ <translation id="1509281256533087115">USB द्वारे कोणतेही <ph name="DEVICE_NAME_AND_VENDOR" /> ॲक्सेस करा</translation> <translation id="1509960214886564027">अनेक साइटवरील वैशिष्ट्यांमध्ये खंड पडू शकतो</translation> <translation id="1510238584712386396">लाँचर</translation> +<translation id="151070646350206700">साइट तुम्हाला सूचना पाठवण्याची विनंती करून तुमच्या कामामध्ये व्यत्यय आणू शकत नाहीत</translation> <translation id="1510785804673676069">तुम्ही प्रॉक्सी सर्व्हर वापरत असल्यास, तुमची प्रॉक्सी सेटिंग्ज तपासा किंवा प्रॉक्सी सर्व्हर कार्य करत असल्याचे तपासण्यासाठी तुमच्या नेटवर्क ॲडमिनिस्ट्रेटरशी संपर्क साधा. तुमचा प्रॉक्सी सर्व्हर वापरण्यावर तुमचा विश्वास नसल्यास, @@ -876,7 +875,6 @@ <translation id="197989455406964291">KDC एंक्रिप्शन प्रकाराला सपोर्ट करत नाही</translation> <translation id="1984417487208496350">संरक्षण नाही (शिफारस केली जात नाही)</translation> <translation id="1987317783729300807">खाती</translation> -<translation id="1988494864246143197">ऑडिओ, व्हिडिओ किंवा व्हिडिओ गेम प्ले करण्यासाठी साइट सामान्यपणे Flash वापरतात. डिसेंबर २०२० नंतर Flash Player ला सपोर्ट केले जाणार नाही.</translation> <translation id="1989112275319619282">ब्राउझ करा</translation> <translation id="1990512225220753005">या पेजवर शॉर्टकट दाखवू नका</translation> <translation id="1992397118740194946">सेट नाही</translation> @@ -933,6 +931,7 @@ <translation id="205560151218727633">Google साहाय्यक लोगो</translation> <translation id="2058456167109518507">डिव्हाइस आढळले</translation> <translation id="2059913712424898428">टाइमझोन</translation> +<translation id="2060375639911876205">eSIM प्रोफाइल काढून टाका</translation> <translation id="2065405795449409761">स्वयंचलित चाचणी सॉफ्टवेअरने Chrome नियंत्रित केले जात आहे.</translation> <translation id="2071393345806050157">स्थानिक लॉग फाइल नाही.</translation> <translation id="2073148037220830746">{NUM_EXTENSIONS,plural, =1{एक्स्टेंशन इंस्टॉल करण्यासाठी क्लिक करा}other{ही एक्स्टेंशन इंस्टॉल करण्यासाठी क्लिक करा}}</translation> @@ -1646,7 +1645,6 @@ <translation id="2880660355386638022">विंडो स्थान नियोजन</translation> <translation id="2881076733170862447">तुम्ही एक्स्टेंशनवर क्लिक करता तेव्हा</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> रीस्टार्ट होईल आणि क्षणभरात रीसेट होईल</translation> -<translation id="288387288628762616">फ्लॅश वापरण्याची अनुमती आहे</translation> <translation id="2885378588091291677">टास्क मॅनेजर</translation> <translation id="2885729872133513017">सर्व्हर प्रतिसाद डीकोड करताना समस्या आली.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2462,7 +2460,6 @@ <translation id="383669374481694771">हे डिव्हाइस आणि ते कसे वापरले जाते याबद्दल ही सर्वसाधारण माहिती आहे (जसे की, बॅटरी पातळी, सिस्टम आणि ॲप ॲक्टिव्हिटी व एरर). डेटा Android मध्ये सुधारणा करण्यासाठी वापरला जाईल आणि काही एकत्रित केलेली माहिती Google ॲप्स आणि Android डेव्हलपरसारख्या भागीदारांनादेखील त्यांची ॲप्स आणि उत्पादने आणखी चांगली बनवण्यात मदत करेल.</translation> <translation id="3838085852053358637">एक्स्टेंशन लोड करण्यात अयशस्वी झाले</translation> <translation id="3838486795898716504">अधिक <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">कुकीज आणि इतर साइट आणि प्लग-इन डेटा</translation> <translation id="383891835335927981">कोणत्याही साइटसाठी झूम वाढविले किंवा कमी केलेले नाही</translation> <translation id="3839509547554145593">माउस स्क्रोल अॅक्सिलरेशन सुरू करा</translation> <translation id="3839516600093027468"><ph name="HOST" /> ला क्लिपबोर्ड पाहण्यापासून नेहमी ब्लॉक करा</translation> @@ -2636,7 +2633,6 @@ <translation id="4023146161712577481">डिव्हाइस कॉंफिगरेशन निर्धारित करत आहे.</translation> <translation id="4025039777635956441">निवडलेली साइट म्यूट करा</translation> <translation id="4027804175521224372">(तुम्ही गमावत आहात - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">तुम्ही Chrome बंद करेपर्यंत तुमच्या फ्लॅश सेटिंग्ज ठेवल्या जातील.</translation> <translation id="4028467762035011525">इनपुट पद्धती जोडा</translation> <translation id="4031179711345676612">मायक्रोफोनला अनुमती आहे</translation> <translation id="4031527940632463547">सेन्सर ब्लॉक केले गेले आहेत</translation> @@ -2725,6 +2721,7 @@ <translation id="4131410914670010031">कृष्ण धवल</translation> <translation id="413193092008917129">नेटवर्क निदान दिनक्रम</translation> <translation id="4132183752438206707">Google Play Store वर अॅप्स शोधा</translation> +<translation id="4132364317545104286">eSIM प्रोफाइलचे नाव बदला</translation> <translation id="4133076602192971179">तुमचा पासवर्ड बदलण्यासाठी अॅप उघडा</translation> <translation id="4136203100490971508">सूर्योदयाच्या वेळी रात्रीचा प्रकाश आपोआप बंद होईल</translation> <translation id="41365691917097717">सुरू ठेवल्याने Android अॅप्स तयार करण्यासाठी आणि त्यांची चाचणी घेण्यासाठी ADB डीबगिंग सुरू केले जाईल. लक्षात घ्या की, ही कृती Google ने पडताळणी न केलेली Android ॲप्स इंस्टॉल करू देते आणि बंद करण्यासाठी फॅक्टरी रीसेटची आवश्यकता आहे.</translation> @@ -2785,7 +2782,6 @@ <translation id="4232375817808480934">Kerberos कॉंफिगर करा</translation> <translation id="4235200303672858594">संपूर्ण स्क्रीन</translation> <translation id="4235965441080806197">साइन इन रद्द करा</translation> -<translation id="4237773362828263530">"*" वाइल्डकार्ड असलेल्या सेटिंग्जना यापुढे सपोर्ट नाही. <ph name="BEGIN_LINK" />ही सेटिंग्ज बदलण्यासाठी<ph name="END_LINK" /> तुमच्या अॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{नंतर रीड करण्याचा टॅब}other{नंतर रीड करण्याचे टॅब}}</translation> <translation id="4242145785130247982">एकाहून अधिक क्लायंट सर्टिफिकेटना सपोर्ट करत नाही</translation> <translation id="4242533952199664413">सेटिंग्ज उघडा</translation> @@ -3049,7 +3045,6 @@ <translation id="4548483925627140043">सिग्नल मिळाला नाही</translation> <translation id="4549791035683739768">तुमच्या सिक्युरिटी कीवर कोणतीही फिंगरप्रिंट स्टोअर केलेली नाहीत</translation> <translation id="4551763574344810652">पहिल्यासारखे करण्यासाठी <ph name="MODIFIER_KEY_DESCRIPTION" /> दाबा</translation> -<translation id="4552089082226364758">फ्लॅश</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> नेटवर्क, सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">डिव्हाइसची भाषा बदलण्यासाठी तुम्हाला तुमचे Chromebook रीस्टार्ट करावे लागेल. <ph name="BEGIN_LINK_LEARN_MORE" />अधिक जाणून घ्या<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">बाह्य एक्स्टेंशन अस्तित्वात असलेल्याच्या तुलनेत समान किंवा कमी आवृत्तीवर आहे.</translation> @@ -3238,6 +3233,7 @@ <translation id="4778644898150334464">दुसरा पासवर्ड वापरा</translation> <translation id="4779083564647765204">झूम</translation> <translation id="4779136857077979611">ओनिगिरी</translation> +<translation id="4779766576531456629">eSIM मोबाइल नेटवर्कचे नाव बदला</translation> <translation id="4780321648949301421">पेज या फॉरमॅटमध्ये सेव्ह करा...</translation> <translation id="4785719467058219317">तुम्ही या वेबसाइटवर नोंदणीकृत नसलेली सिक्युरिटी की वापरत आहात</translation> <translation id="4788092183367008521">कृपया तुमचे नेटवर्क कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.</translation> @@ -3403,7 +3399,6 @@ <translation id="4974733135013075877">बाहेर पडा आणि चाइल्डलॉक करा</translation> <translation id="4976009197147810135">उभे विभाजित करा</translation> <translation id="4977942889532008999">ॲक्सेस निश्चित करा</translation> -<translation id="4978905460870207779">साइट Flash वापरण्यासाठी विचारू शकतात</translation> <translation id="4980805016576257426">या एक्स्टेंशनमध्ये मालवेअर आहे.</translation> <translation id="4981449534399733132">तुमच्या सिंक केलेल्या सर्व डिव्हाइसमधून आणि तुमच्या Google खात्यामधून ब्राउझ केलेला डेटा साफ करण्यासाठी, <ph name="BEGIN_LINK" />साइन इन करा<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">डिव्हाइसचे सॉफ्टवेअर</translation> @@ -3681,6 +3676,7 @@ <translation id="5324780743567488672">तुमचे स्थान वापरून स्वयंचलितपणे टाइम झोन सेट करा</translation> <translation id="5327248766486351172">नाव</translation> <translation id="5327570636534774768">हे डिव्हाइस वेगळ्या डोमेनकडून व्यवस्थापनासाठी मार्क केले गेले आहे. डेमो मोड सेट करण्याआधी त्या डोमेनवरून त्याचे अधिकार काढून घ्या.</translation> +<translation id="5327912693242073631">सूचनांची आवश्यकता असलेली वैशिष्ट्ये काम करणार नाहीत</translation> <translation id="532943162177641444">तुम्ही या डिव्हाइसने वापरू शकत असलेले मोबाइल हॉटस्पॉट सेट अप करण्यासाठी तुमच्या <ph name="PHONE_NAME" />वरील सूचनेवर टॅप करा.</translation> <translation id="5329858601952122676">&हटवा</translation> <translation id="5331069282670671859">तुमच्याकडे या श्रेणीतील कोणतीही प्रमाणपत्रे नाहीत</translation> @@ -3732,6 +3728,7 @@ <translation id="5390112241331447203">फीडबॅक अहवालामध्ये पाठवलेल्या system_logs.txt फाइलचा समावेश करा.</translation> <translation id="5390677308841849479">गडद लाल आणि नारिंगी</translation> <translation id="5390743329570580756">यासाठी पाठवा</translation> +<translation id="5392192690789334093">सूचना पाठवण्याची अनुमती आहे</translation> <translation id="5397794290049113714">तुम्ही</translation> <translation id="5398497406011404839">लपवलेले बुकमार्क</translation> <translation id="5398572795982417028">निषिद्ध पृष्ठ संदर्भ, मर्यादा <ph name="MAXIMUM_PAGE" /> आहे</translation> @@ -4034,6 +4031,7 @@ <translation id="5739235828260127894">पडताळणीसाठी वाट पाहत आहे. <ph name="LINK_BEGIN" />अधिक जाणून घ्या.<ph name="LINK_END" /></translation> <translation id="5739458112391494395">खूप मोठा</translation> <translation id="5740328398383587084">Nearby सह शेअरिंग</translation> +<translation id="5740820643029013514">व्यत्यय न आणणारे मेसेजिंग (शिफारस केलेले)</translation> <translation id="574104302965107104">डिस्प्ले मिररिंग</translation> <translation id="574209121243317957">पिच</translation> <translation id="5746169159649715125">पीडीएफ म्हणून सेव्ह करा</translation> @@ -4171,7 +4169,6 @@ <translation id="5906732635754427568">या डिव्हाइस वरून या ॲपसह संबद्ध असलेला डेटा काढला जाईल.</translation> <translation id="5908474332780919512">तुम्ही साइन इन केल्यानंतर अॅप सुरू करा</translation> <translation id="5908695239556627796">माउस स्क्रोल वेग</translation> -<translation id="5908769186679515905">साइटला फ्लॅश चालवण्यापासून अवरोधित करा</translation> <translation id="5910363049092958439">म्हणून इमेज ज&तन करा...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ऑफलाइन आहे</translation> <translation id="5911533659001334206">शॉर्टकट दर्शक</translation> @@ -4254,6 +4251,7 @@ <translation id="6002210667729577411">गट नवीन विंडोवर हलवा</translation> <translation id="6002452033851752583">तुमच्या Google खाते वरून पासवर्ड हटवला गेला</translation> <translation id="6002458620803359783">प्राधान्य दिलेली व्हॉइस</translation> +<translation id="6003143259071779217">eSIM मोबाइल नेटवर्क काढून टाका</translation> <translation id="6006484371116297560">क्लासिक</translation> <translation id="6007240208646052708">तुमच्या भाषेमध्ये व्हॉइस शोध उपलब्ध नाही.</translation> <translation id="6009781704028455063">बिल्ट-इन सेन्सर</translation> @@ -4522,6 +4520,7 @@ <translation id="6308937455967653460">या फॉरमॅटमध्ये लिंक सेव्ह करा...</translation> <translation id="6309443618838462258">तुमचा अॅडमिनिस्ट्रेटर या इनपुट पद्धतीला अनुमती देत नाही</translation> <translation id="6309510305002439352">मायक्रोफोन बंद केला आहे</translation> +<translation id="6310472381159916879">प्रोफाइल काढून टाका</translation> <translation id="6311220991371174222">तुमचे प्रोफाइल उघडताना काहीतरी चूक झाल्याने Chrome प्रारंभ करू शकत नाही. Chrome रीस्टार्ट करून पहा.</translation> <translation id="6312403991423642364">अज्ञात नेटवर्क एरर</translation> <translation id="6312567056350025599">{NUM_DAYS,plural, =1{सुरक्षा तपासणी एका दिवसापूर्वी रन केली गेली}other{सुरक्षा तपासणी {NUM_DAYS} दिवसांपूर्वी रन केली गेली}}</translation> @@ -4711,6 +4710,7 @@ <translation id="6532663472409656417">एंटरप्राइझची नोंदणी केली</translation> <translation id="6535331821390304775">या प्रकारच्या लिंक संबंधित अॅपमध्ये उघडण्याची <ph name="ORIGIN" /> ला नेहमी अनुमती द्या</translation> <translation id="6537613839935722475">नावामध्ये अक्षरे, अंक आणि हायफन (-) वापरू शकता</translation> +<translation id="6537880577641744343">कमांडर</translation> <translation id="6538635548667167211">सध्याचे डेटा वापर सेटिंग हे डेटा असे आहे</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />टीप:<ph name="END_BOLD" /> डेटाचे संकलन कामप्रदर्शन कमी करू शकत असल्यामुळे, तुम्ही काय करत आहात हे केवळ तुम्हाला माहिती असल्यास किंवा असे करण्यास तुम्हाला सांगितले गेले असल्यास सुरू करा.</translation> <translation id="6541638731489116978">या साइटला तुमचे मोशन सेन्सर अॅक्सेस करण्यापासून ब्लॉक केले आहे.</translation> @@ -5817,7 +5817,6 @@ <translation id="7831491651892296503">नेटवर्क कॉंफिगर करताना एरर आली</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">संपण्याची वेळ</translation> -<translation id="783214144752121388">साइटना फ्लॅश रन करण्यापासून ब्लॉक करा (शिफारस केलेले)</translation> <translation id="7833720883933317473">सेव्ह केलेले कस्टम शब्द येथे दिसून येतील</translation> <translation id="7835178595033117206">बुकमार्क काढून टाकले</translation> <translation id="7836850009646241041">तुमच्या सिक्युरिटी कीला पुन्हा स्पर्श करून पाहा</translation> @@ -5840,6 +5839,7 @@ <translation id="7855678561139483478">टॅब नवीन विंडोवर हलवा</translation> <translation id="7857117644404132472">एक्सेप्शन जोडा</translation> <translation id="7857949311770343000">तुम्ही अपेक्षा करत होता ते हे नवीन पृष्ठ आहे?</translation> +<translation id="7858328180167661092"><ph name="APP_NAME" /> (Windows)</translation> <translation id="785948723952233770">डिसेंबरनंतर या पर्यायाला सपोर्ट केला जाणार नाही. तुमच्या ॲडमिनशी संपर्क साधा.</translation> <translation id="786073089922909430">सेवा: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="7861215335140947162">&डाउनलोड</translation> @@ -6044,7 +6044,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ही फाइल एंक्रिप्ट केलेली आहे. तिच्या मालकाला ती डिक्रिप्ट करण्यास सांगा.}other{यांपैकी काही फाइल एंक्रिप्ट केलेल्या आहेत. त्यांच्या मालकाला त्या डिक्रिप्ट करण्यास सांगा.}}</translation> <translation id="808894953321890993">पासवर्ड बदला</translation> <translation id="8090234456044969073">आपल्या सर्वाधिक वारंवार भेट दिलेल्या वेबसाइटची सूची वाचा</translation> -<translation id="8092681102116274204">"*" वाइल्डकार्ड असलेल्या सेटिंग्जना यापुढे सपोर्ट नाही. <ph name="BEGIN_LINK" />ही सेटिंग्ज बदलण्यासाठी<ph name="END_LINK" /> एक्स्टेंशन डेव्हलपर किंवा तुमच्या अॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> प्रतिसाद देत नाही</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ड्राइव्ह मध्ये बॅकअप घ्या. तुमचा डेटा कधीही सहजपणे रिस्टोअर करा किंवा डिव्हाइस बदला. तुमच्या बॅकअपमध्ये अॅप डेटाचा समावेश आहे.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />तुमचे बॅकअप Google वर अपलोड केले आहेत आणि ते तुमचा Google खाते पासवर्ड वापरून एंक्रिप्ट केले आहेत.<ph name="END_PARAGRAPH2" /> @@ -6139,7 +6138,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> अल्बम निवडा</translation> <translation id="8202160505685531999">कृपया तुमचे <ph name="DEVICE_TYPE" /> प्रोफाइल अपडेट करण्यासाठी तुमचा पासवर्ड पुन्हा एंटर करा.</translation> <translation id="8203732864715032075">Messages साठी हा कॉंप्युटर डीफॉल्ट म्हणून लक्षात ठेवण्याकरता तुम्हाला सूचना पाठवेल. <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash ब्लॉक करा (शिफारस केलेले)</translation> <translation id="820568752112382238">सर्वाधिक भेट दिलेल्या साइट</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">सेल्यूलर</translation> @@ -6162,6 +6160,7 @@ <translation id="8236917170563564587">त्याऐवजी हा टॅब शेअर करा</translation> <translation id="8237647586961940482">गडद गुलाबी आणि लाल</translation> <translation id="8239032431519548577">एंटरप्राइझ नोंदणी पूर्ण झाली</translation> +<translation id="8239932336306009582">सूचना पाठवण्याची अनुमती नाही</translation> <translation id="8241040075392580210">Shady</translation> <translation id="8241806945692107836">डिव्हाइस कॉंफिगरेशन निर्धारित करत आहे...</translation> <translation id="8241868517363889229">तुमचे बुकमार्क वाचा आणि बदला</translation> @@ -6291,6 +6290,7 @@ <translation id="8386091599636877289">धोरण सापडले नाही.</translation> <translation id="8386903983509584791">स्कॅन पूर्ण झाले</translation> <translation id="8387361103813440603">तुमचे स्थान पाहण्याची अनुमती नाही</translation> +<translation id="8389264703141926739">सूचना ब्लॉक करा</translation> <translation id="8389416080014625855">या पेज साठी QR कोड तयार करा</translation> <translation id="8389492867173948260">तुम्ही भेट देता त्या वेबसाइटवरील तुमचा सर्व डेटा वाचण्यासाठी आणि बदलण्यासाठी या एक्स्टेंशनला अनुमती द्या:</translation> <translation id="8390449457866780408">सर्व्हर अनुपलब्ध.</translation> @@ -6500,6 +6500,7 @@ <translation id="8645354835496065562">सेन्सर ॲक्सेस देणे सुरू ठेवा</translation> <translation id="8645920082661222035">धोकादायक घटना घडण्याआधी त्यांचे पूर्वानुमान करते आणि त्यांबद्दल तुम्हाला चेतावणी देते</translation> <translation id="8646209145740351125">सिंक बंद करा</translation> +<translation id="864637694230589560">तुम्हाला ठळक बातम्या किंवा चॅट मेसेजविषयी कळवण्यासाठी साइट सहसा सूचना पाठवते</translation> <translation id="8647834505253004544">वैध वेब पत्ता नाही</translation> <translation id="8648252583955599667"><ph name="GET_HELP_LINK" /> किंवा <ph name="RE_SCAN_LINK" /></translation> <translation id="8648408795949963811">रात्रीच्या प्रकाशाचे रंगाचे तापमान</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 55136cb..81c471d 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Berhenti</translation> <translation id="1272293450992660632">Nilai PIN tidak sepadan.</translation> <translation id="1272978324304772054">Akaun pengguna ini tidak tergolong dalam domain tempat peranti anda didaftarkan. Jika anda ingin mendaftar untuk domain yang berbeza, anda perlu melalui pemulihan peranti terlebih dahulu.</translation> -<translation id="1274977772557788323">Tetapan Storan Adobe Flash Player</translation> <translation id="1274997165432133392">Kuki dan data tapak yang lain</translation> <translation id="1275718070701477396">Dipilih</translation> <translation id="1276994519141842946">Tidak dapat menyahpasang <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Penanda halaman, sejarah dan tetapan anda yang lain akan disegerakkan ke Akaun Google anda.</translation> <translation id="1314565355471455267">VPN Android</translation> <translation id="131461803491198646">Rangkaian utama, bukan perayauan</translation> -<translation id="1315056510003830387">Tidak dibenarkan untuk menggunakan Flash</translation> <translation id="1316136264406804862">Mencari...</translation> <translation id="1316495628809031177">Penyegerakan dijeda</translation> <translation id="1317637799698924700">Stesen dok anda akan beroperasi dalam mod serasi USB Jenis-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC tidak menyokong jenis penyulitan</translation> <translation id="1984417487208496350">Tiada perlindungan (tidak disyorkan)</translation> <translation id="1987317783729300807">Akaun</translation> -<translation id="1988494864246143197">Tapak biasanya menggunakan Flash untuk memainkan audio, video atau permainan video. Flash Player tidak akan disokong lagi selepas bulan Disember 2020.</translation> <translation id="1989112275319619282">Semak Imbas</translation> <translation id="1990512225220753005">Jangan paparkan pintasan pada halaman ini</translation> <translation id="1992397118740194946">Tidak ditetapkan</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Peletakan tetingkap</translation> <translation id="2881076733170862447">Apabila Anda Mengklik Sambungan</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> akan dimulakan semula dan ditetapkan semula buat sementara waktu</translation> -<translation id="288387288628762616">Dibenarkan untuk menggunakan Flash</translation> <translation id="2885378588091291677">Pengurus Tugas</translation> <translation id="2885729872133513017">Masalah telah berlaku semasa menyahkod respons pelayan.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Anda sudah log masuk!</translation> <translation id="3428747202529429621">Memastikan anda selamat pada Chrome dan mungkin digunakan untuk meningkatkan keselamatan anda dalam apl Google yang lain apabila anda log masuk</translation> <translation id="3428800329481094896">Mengambil kunci ssh bekas Linux</translation> +<translation id="3429271624041785769">Bahasa kandungan web</translation> <translation id="3429275422858276529">Tandai halaman ini agar mudah dicari kemudian</translation> <translation id="3432227430032737297">Alih Keluar Semua Yang Ditunjukkan</translation> <translation id="3432757130254800023">Hantar audio dan video untuk disiarkan pada rangkaian tempatan</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Ini merupakan maklumat umum tentang peranti ini dan cara anda menggunakan peranti ini (seperti aras bateri, aktiviti sistem dan apl serta ralat). Data ini akan digunakan untuk menambah baik Android dan sesetengah maklumat teragregat juga dapat membantu apl Google dan rakan kongsi, seperti pembangun Android, memperbaik apl dan produk mereka.</translation> <translation id="3838085852053358637">Gagal memuatkan sambungan</translation> <translation id="3838486795898716504">Lagi <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Kuki, data tapak lain dan data pemalam</translation> <translation id="383891835335927981">Tiada tapak yang telah dizum masuk atau keluar</translation> <translation id="3839509547554145593">Dayakan pemecutan penatalan tetikus</translation> <translation id="3839516600093027468">Sentiasa sekat <ph name="HOST" /> daripada melihat papan keratan</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Pengurus muat turun</translation> <translation id="3881478300875776315">Tunjukkan kurang baris</translation> <translation id="3882165008614329320">Video sedia ada daripada kamera atau fail</translation> +<translation id="3884152383786131369">Kandungan web yang tersedia dalam berbilang bahasa akan menggunakan bahasa pertama yang disokong daripada senarai ini. Pilihan ini disegerakkan dengan tetapan penyemak imbas anda. <ph name="BEGIN_LINK_LEARN_MORE" />Ketahui lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Permintaan anda untuk mengakses tapak ini telah dihantar kepada <ph name="NAME" />.</translation> <translation id="3888550877729210209">Mencatat nota dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Hidupkan Penyegerakan Chrome untuk menggunakan Penyegerakan Wi-Fi</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Menentukan konfigurasi peranti.</translation> <translation id="4025039777635956441">Redam Tapak yang Dipilih</translation> <translation id="4027804175521224372">(Anda kehilangan—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Tetapan Flash anda akan dikekalkan sehinggalah anda keluar daripada Chrome.</translation> <translation id="4028467762035011525">Tambah kaedah masukan</translation> <translation id="4031179711345676612">Mikrofon dibenarkan</translation> <translation id="4031527940632463547">Penderia disekat</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Konfigurasikan Kerberos</translation> <translation id="4235200303672858594">Keseluruhan skrin</translation> <translation id="4235965441080806197">Batalkan log masuk</translation> -<translation id="4237773362828263530">Tetapan dengan kad bebas "*" sudah tidak disokong. Hubungi pentadbir anda untuk <ph name="BEGIN_LINK" />mengubah tetapan ini<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Baca Tab Kemudian}other{Baca Tab Kemudian}}</translation> <translation id="4242145785130247982">Sijil pelanggan berbilang tidak disokong</translation> <translation id="4242533952199664413">Buka tetapan</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Isyarat tidak ditemukan</translation> <translation id="4549791035683739768">Kunci keselamatan anda tidak menyimpan cap jari.</translation> <translation id="4551763574344810652">Tekan <ph name="MODIFIER_KEY_DESCRIPTION" /> untuk buat asal</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Rangkaian <ph name="NETWORK_TYPE" />, kekuatan isyarat <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Anda perlu memulakan semula Chromebook anda untuk menukar bahasa peranti. <ph name="BEGIN_LINK_LEARN_MORE" />Ketahui lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Sambungan luar ialah versi yang sama atau lebih rendah berbanding yang sedia ada.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Keluar dan kunci kanak-kanak</translation> <translation id="4976009197147810135">Pisah menegak</translation> <translation id="4977942889532008999">Sahkan Akses</translation> -<translation id="4978905460870207779">Tapak boleh meminta untuk menggunakan Flash</translation> <translation id="4980805016576257426">Sambungan ini mengandungi perisian hasad.</translation> <translation id="4981449534399733132">Untuk mengosongkan data semakan imbas daripada semua peranti tersegerak dan Akaun Google anda, <ph name="BEGIN_LINK" />log masuk<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Perisian peranti</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Data yang berkaitan dengan apl ini akan dialih keluar daripada peranti ini.</translation> <translation id="5908474332780919512">Mulakan Apl Apabila Anda Log Masuk</translation> <translation id="5908695239556627796">Kelajuan penatalan tetikus</translation> -<translation id="5908769186679515905">Sekat tapak daripada menjalankan Flash</translation> <translation id="5910363049092958439">Si&mpan Imej Sebagai...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> di luar talian</translation> <translation id="5911533659001334206">Paparan pintasan</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Tambahkan tiket</translation> <translation id="6112931163620622315">Semak telefon anda</translation> <translation id="6112952769866305444">Edit orang, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Tetapkan enjin carian lalai anda untuk penyemak imbas Chrome dan Pelancar <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Untuk menggunakan Smart Lock, beralih kepada profil pengguna utama pada telefon anda</translation> <translation id="6116921718742659598">Tukar tetapan bahasa dan input</translation> <translation id="6120205520491252677">Pin halaman ini pada skrin Mula...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Tiada peranti lain tersedia.</translation> <translation id="7141105143012495934">Log masuk gagal kerana butiran akaun anda tidak boleh didapatkan semula. Sila hubungi pentadbir anda atau cuba lagi.</translation> <translation id="7143207342074048698">Menyambung</translation> +<translation id="7143358760238281735">Tiada apl tersedia</translation> <translation id="7144878232160441200">Cuba semula</translation> <translation id="714876143603641390">Kesambungan LAN</translation> <translation id="7149893636342594995">24 jam yang lalu</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Gunakan data mudah alih</translation> <translation id="7709152031285164251">Gagal - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Cast...</translation> +<translation id="7712739869553853093">Dialog pratonton cetakan</translation> <translation id="7712836429117959503">Sambungan tidak diketahui dengan ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Kuki daripada <ph name="DOMAIN" /> dibenarkan</translation> <translation id="7714464543167945231">Sijil</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Ralat mengkonfigurasi rangkaian</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Masa tamat</translation> -<translation id="783214144752121388">Sekat tapak daripada menjalankan Flash (disyorkan)</translation> <translation id="7833720883933317473">Perkataan tersuai yang disimpan akan kelihatan di sini</translation> <translation id="7835178595033117206">Penanda halaman dialih keluar</translation> <translation id="7836850009646241041">Cuba sentuh kunci keselamatan anda sekali lagi</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Fail ini disulitkan. Minta pemilik menyahsulitkan fail ini.}other{Sesetengah fail ini disulitkan. Minta pemilik menyahsulitkan fail ini.}}</translation> <translation id="808894953321890993">Tukar kata laluan</translation> <translation id="8090234456044969073">Baca senarai laman web yang paling kerap anda lawati</translation> -<translation id="8092681102116274204">Tetapan dengan kad bebas "*" sudah tidak disokong. Hubungi pembangun sambungan atau pentadbir anda untuk <ph name="BEGIN_LINK" />menukar tetapan ini<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> tidak bertindak balas</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Sandarkan ke Google Drive. Pulihkan data anda atau tukar peranti anda dengan mudah pada bila-bila masa. Sandaran anda merangkumi data apl.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Sandaran anda dimuat naik ke Google dan disulitkan dengan menggunakan kata laluan Akaun Google anda.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">Pilih album <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Sila masukkan semula kata laluan untuk mengemaskinikan profil <ph name="DEVICE_TYPE" /> anda.</translation> <translation id="8203732864715032075">Hantar pemberitahuan kepada anda dan tetapkan mengingati komputer ini untuk Messages sebagai pilihan lalai. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Sekat Flash (disyorkan)</translation> <translation id="820568752112382238">Tapak yang paling kerap dilawati</translation> <translation id="8206745257863499010">Sayu</translation> <translation id="8206859287963243715">Selular</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index a493b06..7b3458a 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">ရပ်ရန်</translation> <translation id="1272293450992660632">ပင်နံပါတ် အချက်အလက်မတူညီပါ။</translation> <translation id="1272978324304772054">စက်ပစ္စည်းမှ စာရင်းသွင်းထားသည့် ဒိုမိန်းသို့ ဤအသုံးပြုသူ အကောင့်သည် သက်ဆိုင်မှု မရှိပါ။ အကယ်၍ သင်အခြားဒိုမိန်းသို့ စာရင်းပေးသွင်းလိုလျှင် စက်ပစ္စည်းရှာဖွေမှုသို့ ဦးစွာ ဖြတ်သွားရမည်။</translation> -<translation id="1274977772557788323">Adobe Flash Player သိုလှောင်ခန်းဆက်တင်များ</translation> <translation id="1274997165432133392">ကူကီးနှင့် အခြား ဆိုက်ဒ် အချက်အလက်များ</translation> <translation id="1275718070701477396">ရွေးထား</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> ကို ဖယ်ရှား၍မရပါ</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">သင်၏ စာညှပ်များ၊ မှတ်တမ်းနှင့် အခြား ဆက်တင်များကို သင်၏ Google အကောင့်သို့ စင့်က် လုပ်ပေးမည်။</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">ပင်မ ကွန်ရက်၊ ရိုမင်း မဟုတ်ပါ</translation> -<translation id="1315056510003830387">'ဖလက်ရှ်' သုံးရန် ခွင့်ပြုမထားပါ</translation> <translation id="1316136264406804862">ရှာဖွေနေသည်...</translation> <translation id="1316495628809031177">စင့်ခ်လုပ်ခြင်းကို ခေတ္တရပ်ထားသည်</translation> <translation id="1317637799698924700">သင်၏ အထိုင်စက်ကို USB Type-C ကိုက်ညီမှုမုဒ်တွင်သာ အသုံးပြုနိုင်ပါမည်။</translation> @@ -879,7 +877,6 @@ <translation id="197989455406964291">KDC က အသွင်ဝှက်သည့် ပုံစံကို မပံ့ပိုးပါ</translation> <translation id="1984417487208496350">ကာကွယ်မှုမရှိပါ (အကြံပြုမထားပါ)</translation> <translation id="1987317783729300807">အကောင့်များ</translation> -<translation id="1988494864246143197">အသံ၊ ဗီဒီယို (သို့) ဗီဒီယိုဂိမ်းများ ဖွင့်ရန် ဝဘ်ဆိုက်များက Flash ကို အသုံးပြုလေ့ရှိသည်။ Flash Player ကို ၂၀၂၀ ဒီဇင်ဘာ နောက်ပိုင်းတွင် ပံ့ပိုးတော့မည်မဟုတ်ပါ။</translation> <translation id="1989112275319619282">ကြည့်ရန်</translation> <translation id="1990512225220753005">ဖြတ်လမ်းလင့်ခ်များကို ဤစာမျက်နှာတွင် မပြပါနှင့်</translation> <translation id="1992397118740194946">မသတ်မှတ်ရသေး</translation> @@ -1650,7 +1647,6 @@ <translation id="2880660355386638022">ဝင်းဒိုး နေရာချထားမှု</translation> <translation id="2881076733170862447">နောက်ဆက်တွဲကို သင်နှိပ်သည့်အခါ</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> သည် အချိန်တိုအတွင်း ပြန်လည်အစပြုကာ ပြန်လည်သတ်မှတ်မည်ဖြစ်၏</translation> -<translation id="288387288628762616">'ဖလက်ရှ်' သုံးရန် ခွင့်ပြုထားသည်</translation> <translation id="2885378588091291677">အလုပ် မန်နေဂျာ</translation> <translation id="2885729872133513017">ဆာဗာတုံ့ပြန်ချက်ကို ကုဒ်ဖြေရာတွင် အမှားအယွင်းရှိနေသည်။</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2082,6 +2078,7 @@ <translation id="3428419049384081277">သင်လက်မှတ်ထိုးဝင်ပြီးပါပြီ</translation> <translation id="3428747202529429621">Chrome တွင် ဘေးကင်းစေပြီး သင်လက်မှတ်ထိုးဝင်သည့်အခါ အခြား Google အက်ပ်များတွင် သင့်လုံခြုံရေး ပိုကောင်းမွန်စေရန် အသုံးပြုနိုင်သည်</translation> <translation id="3428800329481094896">Linux ကွန်တိန်နာ ssh သော့များ ရယူနေသည်</translation> +<translation id="3429271624041785769">ဝဘ်အကြောင်းအရာ ဘာသာစကားများ</translation> <translation id="3429275422858276529">နောင်တွင် အလွယ်တကူပြန်ရှာနိုင်ရန် ဤစာမျက်နှာ၏လိပ်စာကို မှတ်ထားပါ</translation> <translation id="3432227430032737297">ပြသထားသည်များအားလုံးကို ဖယ်ရှားရန်</translation> <translation id="3432757130254800023">အသံ နှင့် ဗီဒီယိုများကို ဒေသခံ ကွန်ရက်များပေါ်က မျက်နှာပြင်များသို့ ပို့ပါ</translation> @@ -2466,7 +2463,6 @@ <translation id="383669374481694771">ဤသည်မှာ ဤစက်၏ ယေဘုယျအချက်အလက်နှင့် ၎င်းကို မည်သို့အသုံးပြုကြောင်း အချက်အလက်များဖြစ်သည် (ဥပမာ ဘက်ထရီပမာဏ၊ စနစ်နှင့် အက်ပ်လုပ်ဆောင်ချက်နှင့် အမှားအယွင်းများ)။ ဤဒေတာများကို Android ပိုမိုကောင်းမွန်လာစေရန်အတွက် အသုံးပြုသွားမည်ဖြစ်ပြီး အချို့သော စုစည်းထားသည့်အချက်အလက်များသည်လည်း Android ဆော့ဖ်ဝဲအင်ဂျင်နီယာကဲ့သို့သော Google အက်ပ်နှင့် ပါတနာများအား ၎င်းတို့၏ အက်ပ်နှင့် ထုတ်ကုန်များ ပိုမိုကောင်းမွန်လာစေရန် အတွက်လည်း အထောက်အကူဖြစ်စေပါသည်။</translation> <translation id="3838085852053358637">နောက်ဆက်တွဲကို ဖွင့်ရာတွင် မအောင်မြင်ပါ</translation> <translation id="3838486795898716504">နောက်ထပ် <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">ကွတ်ကီးများနှင့် အခြားဆိုက်နှင့် ပလတ်အင်ဒေတာ</translation> <translation id="383891835335927981">မည်သည့်ဝဘ်ဆိုက်ကိုမျှ ဇူးမ် ချဲ့ခြင်း သို့မဟုတ် ချုံ့ခြင်း ပြုလုပ်မထားပါ</translation> <translation id="3839509547554145593">မောက်စ်လှိမ့်သည့် အရှိန်မြှင့်စနစ် ဖွင့်ရန်</translation> <translation id="3839516600093027468">ကလစ်ဘုတ်အား ကြည့်ရှုခွင့်ကို <ph name="HOST" /> အတွက် အမြဲပိတ်ရန်</translation> @@ -2508,6 +2504,7 @@ <translation id="3879748587602334249">ဒေါင်းလုဒ်မန်နေဂျာ</translation> <translation id="3881478300875776315">စာကြောင်းလျှော့၍ပြရန်</translation> <translation id="3882165008614329320">ကင်မရာ သို့မဟုတ် ဖိုင်မှ လက်ရှိဗီဒီယို</translation> +<translation id="3884152383786131369">ဘာသာစကားအမျိုးမျိုး အသုံးပြုနိုင်သော ဝဘ်အကြောင်းအရာများက ဤစာရင်းထဲမှ ပထမဆုံးပံ့ပိုးထားသော ဘာသာစကားကို အသုံးပြုပါမည်။ ဤသတ်မှတ်ချက်များကို သင့်ဘရောင်ဇာဆက်တင်များနှင့် စင့်ခ်လုပ်ထားသည်။ <ph name="BEGIN_LINK_LEARN_MORE" />ပိုမိုလေ့လာရန်<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">ဤဆိုက်အား အသုံးပြုရန် သင့်တောင်းဆိုချက်ကို <ph name="NAME" /> သို့ ပို့လိုက်ပါပြီ</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ဖြင့် မှတ်စုရေးခြင်း</translation> <translation id="3890064827463908288">'Wi-Fi စင့်ခ်' အသုံးပြုရန် 'Chrome စင့်ခ်' ဖွင့်ပါ</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">ကိရိယာ၏ စီစဉ် ဖွဲ့စည်းမှုကို စူးစမ်းနေ</translation> <translation id="4025039777635956441">ရွေးထားသောဝဘ်ဆိုက် ဖျောက်ထားရန်</translation> <translation id="4027804175521224372">(သင် လက်လွှတ်သွားသည်များ—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">သင်၏ Flash ဆက်တင်များကို Chrome မှ မထွက်မချင်း သိမ်းဆည်းထားမည်။</translation> <translation id="4028467762035011525">လက်ကွက်များ ထည့်ရန်</translation> <translation id="4031179711345676612">မိုက်ခရိုဖုန်းကို သုံးခွင့်ပြုထားသည်</translation> <translation id="4031527940632463547">အာရုံခံကိရိယာကို ပိတ်ထားသည်</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Kerberos ကို စီစဉ်သတ်မှတ်ပါ</translation> <translation id="4235200303672858594">မျက်နှာပြင် တစ်ခုလုံး</translation> <translation id="4235965441080806197">လက်မှတ်ထိုးဝင်ခြင်းကို ပယ်ဖျက်ရန်</translation> -<translation id="4237773362828263530">"*" အစားထိုး အထူးအက္ခရာများ ပါဝင်သော ဆက်တင်များကို မပံ့ပိုးတော့ပါ။ <ph name="BEGIN_LINK" />ဤဆက်တင်များကို ပြောင်းရန်<ph name="END_LINK" /> သင်၏ စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{နောက်မှဖတ်ရန် တဘ်}other{နောက်မှဖတ်ရန် တဘ်များ}}</translation> <translation id="4242145785130247982">ကလိုင်းယင့် အသိအမှတ်ပြုလက်မှတ် အများအပြားကို ပံ့ပိုးမပေးပါ</translation> <translation id="4242533952199664413">ဆက်တင်များကို ဖွင့်ရန်</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">လိုင်းဆွဲအား ရှာမတွေ့ပါ</translation> <translation id="4549791035683739768">သင့်လုံခြုံရေးကီးတွင် လက်ဗွေရာများ သိမ်းမထားပါ</translation> <translation id="4551763574344810652">တစ်ဆင့်နောက်ပြန်ရန် <ph name="MODIFIER_KEY_DESCRIPTION" /> ကို နှိပ်ပါ</translation> -<translation id="4552089082226364758">ဖလက်ရှ်</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> ကွန်ရက်၊ လိုင်းဆွဲအား <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">စက်၏ဘာသာစကားပြောင်းရန် သင်၏ Chromebook ကို ပြန်စရပါမည်။ <ph name="BEGIN_LINK_LEARN_MORE" />ပိုမိုလေ့လာရန်<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">ပြင်ပတိုးချဲ့လိုင်းသည် လက်ရှိတစ်ခုနှင့် နှိုင်းယှဉ်ပါက အတူတူ သို့မဟုတ် ပိုမိုနိမ့်သော ဗားရှင်းတွင် ဖြစ်၏။</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">ထွက်လိုက်ရန် နှင့် ကလေးသော့ပိတ်ရန်</translation> <translation id="4976009197147810135">ဒေါင်လိုက် ခွဲရန်</translation> <translation id="4977942889532008999">အသုံးပြုရန် အတည်ပြုသည်</translation> -<translation id="4978905460870207779">Flash သုံးရန် ဝဘ်ဆိုက်များက ခွင့်တောင်းနိုင်သည်</translation> <translation id="4980805016576257426">ဤနောက်ဆက်တွဲတွင် အန္တရာယ်ရှိသည့်ဆော့ဖ်ဝဲ ပါဝင်ပါသည်။</translation> <translation id="4981449534399733132">ဖွင့်ကြည့်ထားသည့်မှတ်တမ်းဒေတာများကို သင်စင့်ခ်လုပ်ထားသော စက်အားလုံးနှင့် သင့် Google အကောင့်မှ ရှင်းထုတ်ရန် <ph name="BEGIN_LINK" />လက်မှတ်ထိုးဝင်ပါ<ph name="END_LINK" />။</translation> <translation id="4982236238228587209">စက်၏ဆော့ဖ်ဝဲ</translation> @@ -4182,7 +4175,6 @@ <translation id="5906732635754427568">ဤအက်ပ်နှင့်ဆက်စပ်သည့် ဒေတာကို ဤစက်ပစ္စည်းထဲမှ ဖယ်ရှားပါမည်။</translation> <translation id="5908474332780919512">သင်လက်မှတ်ထိုးဝင်သောအခါ အက်ပ်စတင်ရန်</translation> <translation id="5908695239556627796">မောက်စ်လှိမ့်သည့် မြန်နှုန်း</translation> -<translation id="5908769186679515905">ဆိုက်များအား Flash ကို ဖွင့်ခြင်းမှ ပိတ်ဆို့ပါ</translation> <translation id="5910363049092958439">ပုံ&ကို အဖြစ် သိမ်းရန်...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> က အော့ဖ်လိုင်းဖြစ်နေသည်</translation> <translation id="5911533659001334206">ဖြတ်လမ်းလင့်ခ် ကြည့်ရှုကိရိယာ</translation> @@ -4364,6 +4356,7 @@ <translation id="6112727384379533756">လက်မှတ်တစ်ခု ထည့်ရန်</translation> <translation id="6112931163620622315">သင့်ဖုန်းကို စစ်ဆေးပါ</translation> <translation id="6112952769866305444">လူ၊ <ph name="PROFILE_NAME" />၊ <ph name="USERNAME" /> ကို ပြင်ဆင်ရန်</translation> +<translation id="6113434369102685411">Chrome ဘရောင်ဇာနှင့် <ph name="DEVICE_TYPE" /> Launcher အတွက် မူရင်းရှာဖွေရေး အင်ဂျင် သတ်မှတ်နိုင်သည်</translation> <translation id="6113942107547980621">Smart Lock ကို အသုံးပြုရန် သင့်ဖုန်းပေါ်တွင် ပင်မအသုံးပြုသူပရိုဖိုင်သို့ ပြောင်းပါ</translation> <translation id="6116921718742659598">ဘာသာစကား နှင့် ရိုက်သွင်းရေး ဆက်တင်များကို ပြောင်းလဲရန်</translation> <translation id="6120205520491252677">မျက်နှာပြင်ကို စတင်ရန် ဒီစာမျက်နှာကို ပင်ထိုးထားရန်...</translation> @@ -5229,6 +5222,7 @@ <translation id="7140928199327930795">အခြား ကိရိယာများ မရှိ။</translation> <translation id="7141105143012495934">သင့်အကောင့်အသေးစိတ်များအား ထုတ်ယူ၍မရသောကြောင့် လက်မှတ်ထိုးဝင်ရောက်မှု မအောင်မြင်ပါ။ ကျေးဇူးပြု၍ သင့်ကြီးကြပ်သူကို ဆက်သွယ်ပါ သို့မဟုတ် နောက်တစ်ကြိမ်ကြိုးစားပါ။</translation> <translation id="7143207342074048698">ချိတ်ဆက်နေသည်</translation> +<translation id="7143358760238281735">မည်သည့်အက်ပ်မျှ မရှိပါ</translation> <translation id="7144878232160441200">ထပ်စမ်းရန်</translation> <translation id="714876143603641390">Lan ချိတ်ဆက်မှု</translation> <translation id="7149893636342594995">ပြီးခဲ့သည့် ၂၄ နာရီ</translation> @@ -5700,6 +5694,7 @@ <translation id="7707922173985738739">မိုဘိုင်းဒေတာကို သုံးရန်</translation> <translation id="7709152031285164251">မအောင်မြင်ခဲ့- <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&ကာစ်...</translation> +<translation id="7712739869553853093">ပုံနှိပ်ထုတ်ယူမှု အစမ်းကြည့်ရှုခြင်း ဒိုင်ယာလော့ခ်</translation> <translation id="7712836429117959503">ID <ph name="EXTENSION_ID" /> နှင့် အမည်မသိ နောက်ဆက်တွဲ</translation> <translation id="7714307061282548371"><ph name="DOMAIN" /> ထံမှ ကွတ်ကီးများကို ခွင့်ပြုထားသည်</translation> <translation id="7714464543167945231">လက်မှတ်</translation> @@ -5829,7 +5824,6 @@ <translation id="7831491651892296503">ကွန်ရက်စီစဉ်သတ်မှတ်ရာတွင် အမှားအယွင်းရှိပါသည်</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /><ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">ပြီးဆုံးချိန်</translation> -<translation id="783214144752121388">ဝဘ်ဆိုက်များတွင် ဖလက်ရှ်ကို ပိတ်ပါ (အကြံပြုထားသည်)</translation> <translation id="7833720883933317473">သိမ်းဆည်းထားသော စိတ်ကြိုက်စကားလုံးများကို ဤနေရာတွင် တွေ့ရပါမည်</translation> <translation id="7835178595033117206">ဝဘ်လိပ်စာကို ဖယ်ရှားလိုက်ပါပြီ</translation> <translation id="7836850009646241041">သင့်လုံခြုံရေးကီးကို ထပ်ထိကြည့်ပါ</translation> @@ -6056,7 +6050,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ဤဖိုင်ကို အသွင်ဝှက်ထားသည်။ ၎င်း၏ပိုင်ရှင်ကို ကုဒ်ဖော်ခိုင်းပါ။}other{ဤဖိုင်များအနက် အချို့ကို အသွင်ဝှက်ထားသည်။ ၎င်းတို့၏ပိုင်ရှင်ကို ကုဒ်ဖော်ခိုင်းပါ။}}</translation> <translation id="808894953321890993">စကားဝှက် ပြောင်းရန်</translation> <translation id="8090234456044969073">သင် အများဆုံး မကြာခဏ သွားလေ့ရှိသော ဝက်ဆိုက်များ စာရင်းအား ဖတ်ရန်</translation> -<translation id="8092681102116274204">"*" အစားထိုး အထူးအက္ခရာများ ပါဝင်သော ဆက်တင်များကို မပံ့ပိုးတော့ပါ။ <ph name="BEGIN_LINK" />ဤဆက်တင်များကိုပြောင်းရန်<ph name="END_LINK" /> နောက်ဆက်တွဲဆော့ဖ်ဝဲအင်ဂျင်နီယာ သို့မဟုတ် သင်၏စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> သည် တုံ့ပြန်မှုမရှိပါ</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google Drive သို့ အရန်သိမ်းပါ။ သင့်ဒေတာများကို ပြန်ယူခြင်း (သို့) စက်ပစ္စည်းပြောင်းခြင်းတို့ အချိန်မရွေး လွယ်ကူစွာပြုလုပ်နိုင်သည်။ သင့်အရန်တွင် အက်ပ်ဒေတာများ ပါဝင်သည်။<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />သင်၏ Google အကောင့်စကားဝှက် အသုံးပြု၍ ၎င်းတို့ကို Google သို့ အပ်လုဒ်လုပ်ပြီး အသွင်ဝှက်ထားပါသည်။<ph name="END_PARAGRAPH2" /> @@ -6151,7 +6144,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> အယ်လ်ဘမ်များ ရွေးရန်</translation> <translation id="8202160505685531999">သင့် <ph name="DEVICE_TYPE" /> ကိုယ်ရေးအကျဉ်းကို အသစ်မွမ်းမံရန် ကျေးဇူးပြု၍ သင့်စကားဝှက်ကို ပြန်လည်ရိုက်ထည့်ပါ။</translation> <translation id="8203732864715032075">သတိပေးချက်များကို သင့်ထံ ပို့ပြီး Messages အတွက် ဤကွန်ပျူတာကို ပုံသေမှတ်ထားပေးသည်။ <ph name="LINK_BEGIN" />ပိုမို လေ့လာရန်<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash ပိတ်ထားရန် (အကြံပြုထားသည်)</translation> <translation id="820568752112382238">အများဆုံး ဝင်ကြည့်ထားသော ဝဘ်ဆိုက်များ</translation> <translation id="8206745257863499010">အပြာရောင်ဂီတသင်္ကေတ</translation> <translation id="8206859287963243715">ဆဲလ်လူလာ</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index 2c4594d..67047ec 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -242,7 +242,6 @@ <translation id="1272079795634619415">रोक्नुहोस्</translation> <translation id="1272293450992660632">PIN का मानहरू मिल्दैनन्।</translation> <translation id="1272978324304772054">यो प्रयोगकर्ता खाता साधन भर्ना भएको डोमेनमा पर्दैन । यदि तपाईं फरक डोमेनमा भर्ना हुन चाहनुहुन्छ भने, तपाईं पहिले डिभाइस रिकभरीमार्फत जानुपर्छ ।</translation> -<translation id="1274977772557788323">Adobe Flash Player को भण्डारण सम्बन्धी सेटिङहरू</translation> <translation id="1274997165432133392">कुकीहरू र अन्य साइट लगत</translation> <translation id="1275718070701477396">चयन गरिएको</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> अनइन्स्टल गर्न सकिएन</translation> @@ -276,7 +275,6 @@ <translation id="1313705515580255288">तपाइँका पृष्ठमञ्जूषाहरू, इतिहास, र अन्य सेटिङहरू तपाइँको Google खातामा समक्रमण गरिनेछन्।</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">गृह सञ्जाल, रोम गरिरहेको छैन</translation> -<translation id="1315056510003830387">Flash प्रयोग गर्ने अनुमति नदिइएका साइटहरू</translation> <translation id="1316136264406804862">खोज्दै...</translation> <translation id="1316495628809031177">सिंक पज गरिएको छ</translation> <translation id="1317637799698924700">तपाईंको डकिङ स्टेसन USB Type-C सँग मिल्दो मोडमा काम गर्ने छ।</translation> @@ -446,6 +444,7 @@ <translation id="1509281256533087115">USB मार्फत कुनै पनि <ph name="DEVICE_NAME_AND_VENDOR" /> पहुँच गर्नुहोस्</translation> <translation id="1509960214886564027">कयौँ साइटका सुविधाहरूले काम नगर्न सक्छन्</translation> <translation id="1510238584712386396">लन्चर</translation> +<translation id="151070646350206700">साइटहरूले सूचना पठाउने अनुमति मागेर तपाईंलाई बाधा पुर्याउन सक्दैनन्</translation> <translation id="1510785804673676069">यदि तपाइँले एक प्रोक्सी सर्भर प्रयोग गर्दै हुनुहुन्छ भने, तपाइँको प्रोक्सी सेटिङहरू जाँच्नुहोस् वा तपाइँको सञ्जाल प्रशासकलाई प्रोक्सी सर्भरले काम गरिरहेको छ की छैन भनेर जाँच्न सम्पर्क गर्नुहोस्। यदि तपाइँ, तपाइँले प्रोक्सी सर्भर प्रयोग गर्नुहुन्न भनेर विश्वास @@ -873,7 +872,6 @@ <translation id="197989455406964291">KDC ले इन्क्रिप्सनको यो प्रकारलाई समर्थन गर्दैन</translation> <translation id="1984417487208496350">सुरक्षारहित मोड (सिफारिस गरिँदैन)</translation> <translation id="1987317783729300807">खाताहरू</translation> -<translation id="1988494864246143197">साइटहरूले अडियो, भिडियो वा भिडियो गेमहरू प्ले गर्न सामान्यतया Flash प्रयोग गर्छन्। सन् २०२० को डिसेम्बरपछि Flash Player प्रयोग गर्न मिल्ने छैन।</translation> <translation id="1989112275319619282">ब्राउज गर्नुहोस्</translation> <translation id="1990512225220753005">यस पृष्ठमा सर्टकटहरू नदेखाउनुहोस्</translation> <translation id="1992397118740194946">सेट गरिएको छैन</translation> @@ -930,6 +928,7 @@ <translation id="205560151218727633">Google सहायकको लोगो</translation> <translation id="2058456167109518507">यन्त्र पत्ता लाग्यो</translation> <translation id="2059913712424898428">समय क्षेत्र</translation> +<translation id="2060375639911876205">eSIM प्रोफाइल हटाउनुहोस्</translation> <translation id="2065405795449409761">Chrome लाई स्वचालित परीक्षण सफ्टवेयरद्वारा नियन्त्रण गरिँदै छ।</translation> <translation id="2071393345806050157">कुनैपनि स्थानीय लग फाइल छैन।</translation> <translation id="2073148037220830746">{NUM_EXTENSIONS,plural, =1{एक्स्टेन्सन स्थापना गर्न क्लिक गर्नुहोस्}other{एक्स्टेन्सनहरू स्थापना गर्न क्लिक गर्नुहोस्}}</translation> @@ -1643,7 +1642,6 @@ <translation id="2880660355386638022">विन्डो रहने स्थान</translation> <translation id="2881076733170862447">तपाईंले विस्तारमा क्लिक गर्दा</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> रिस्टार्ट हुनेछ र क्षण भरमा रिसेट गर्दछ</translation> -<translation id="288387288628762616">Flash प्रयोग गर्ने अनुमति दिइएका साइटहरू</translation> <translation id="2885378588091291677">कार्य व्यवस्थापक</translation> <translation id="2885729872133513017">सर्भरको जवाफ डिकोडिङ गर्ने क्रममा कुनै समस्या भयो।</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2460,7 +2458,6 @@ <translation id="383669374481694771">यो जानकारी यो यन्त्र र यसलाई प्रयोग गरिने तरिकासम्बन्धी सामान्य जानकारी (जस्तै ब्याट्रीको स्तर, प्रणाली तथा एपका गतिविधि र त्रुटिहरू) हो। यो डेटा Android यन्त्रहरूमा सुधार ल्याउनका लागि प्रयोग गरिने छ र केही समग्र जानकारीले Google का एप र Android का विकासकर्ताहरूलगायत यसका साझेदारहरूलाई आफ्ना एप र उत्पादनहरू अझ राम्रो बनाउन पनि मद्दत गर्ने छ।</translation> <translation id="3838085852053358637">विस्तार लोड गर्न सकिएन</translation> <translation id="3838486795898716504">थप <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">कुकीहरू र अन्य साइट तथा प्लगइन डेटा</translation> <translation id="383891835335927981">कुनै पनि साइटलाई जुम इन वा जुम आउट गरिएको छैन</translation> <translation id="3839509547554145593">माउस स्क्रोल हुने गति बढाउने सुविधा सक्षम पार्नुहोस्</translation> <translation id="3839516600093027468"><ph name="HOST" /> लाई क्लिपबोर्ड हेर्न सधैँ रोक लगाउनुहोस्</translation> @@ -2633,7 +2630,6 @@ <translation id="4023146161712577481">यन्त्र कन्फिगुरेसन निर्धारण।</translation> <translation id="4025039777635956441">चयन गरिएको साइट म्युट गर्नुहोस्</translation> <translation id="4027804175521224372">(तपाईंले—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" /> छुटाउनुभएको छ)</translation> -<translation id="4027951648498485763">तपाईंले Chrome नछोडुन्जेल तपाईंको फ्ल्यासका सेटिङहरू राखिने छन्।</translation> <translation id="4028467762035011525">इनपुट विधिहरू थप्नुहोस्</translation> <translation id="4031179711345676612">माइक्रोफोन प्रयोग गर्ने अनुमति छ</translation> <translation id="4031527940632463547">सेन्सरहरूमा रोक लगाइयो</translation> @@ -2724,6 +2720,7 @@ <translation id="4131410914670010031">कालो र सेतो</translation> <translation id="413193092008917129">नेटवर्कको निदानसम्बन्धी रुटिनहरू</translation> <translation id="4132183752438206707">Google Play स्टोरमा गई एपहरू खोज्नुहोस्</translation> +<translation id="4132364317545104286">eSIM प्रोफाइलको नाम बदल्नुहोस्</translation> <translation id="4133076602192971179">आफ्नो पासवर्ड बदल्न उक्त एप खोल्नुहोस्</translation> <translation id="4136203100490971508">रात्रि प्रकाश सूर्योदयको बेला स्वतः निष्क्रिय हुने छ</translation> <translation id="41365691917097717">जारी राख्नुले Android एपहरू सिर्जना गर्न र तिनको परीक्षण गर्ने प्रयोजनका लागि ADB डिबग प्रक्रिया सक्षम पार्ने छ। यस कारबाहीले Google ले प्रमाणीकरण नगरेका Android एपहरू स्थापना गर्ने अनुमति दिन्छ र यसलाई असक्षम पार्न फ्याक्ट्री रिसेट गर्नु पर्ने हुन्छ भन्ने कुरामा ध्यान दिनुहोस्।</translation> @@ -2784,7 +2781,6 @@ <translation id="4232375817808480934">Kerberos कन्फिगर गर्नुहोस्</translation> <translation id="4235200303672858594">सम्पूर्ण स्क्रिन</translation> <translation id="4235965441080806197">साइन इन रद्द गर्नुहोस्</translation> -<translation id="4237773362828263530">"*" वाइल्डकार्ड भएका सेटिङले अब उप्रान्त काम गर्दैनन्। <ph name="BEGIN_LINK" />यी सेटिङ परिवर्तन गर्न<ph name="END_LINK" /> तपाईंका एड्मिनलाई सम्पर्क गर्नुहोस्।</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{ट्याब पछि पढ्नुहोस्}other{ट्याबहरू पछि पढ्नुहोस्}}</translation> <translation id="4242145785130247982">एकभन्दा बढी क्लाइन्टका प्रमाणपत्रहरू समर्थित छैनन्</translation> <translation id="4242533952199664413">सेटिङहरू खोल्नुहोस्</translation> @@ -3048,7 +3044,6 @@ <translation id="4548483925627140043">सिग्नल फेला परेन</translation> <translation id="4549791035683739768">तपाईंको सुरक्षा साँचोमा कुनै पनि फिंगरप्रिन्ट भण्डारण गरिएको छैन</translation> <translation id="4551763574344810652">अन्डू गर्न <ph name="MODIFIER_KEY_DESCRIPTION" /> थिच्नुहोस्</translation> -<translation id="4552089082226364758">फ्ल्यास</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> नेटवर्क, सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">तपाईंले आफ्नो Chromebook को भाषा परिवर्तन यसलाई रिस्टार्ट गर्नु पर्ने हुन्छ। <ph name="BEGIN_LINK_LEARN_MORE" />थप जान्नुहोस्<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">अवस्थित संस्करणसँग तुलना गर्दा बाह्य विस्तार समान वा तल्लो संस्करणमा छ।</translation> @@ -3237,6 +3232,7 @@ <translation id="4778644898150334464">अर्को पासवर्ड प्रयोग गर्नुहोस्</translation> <translation id="4779083564647765204">जुम</translation> <translation id="4779136857077979611">ओनिगिरी</translation> +<translation id="4779766576531456629">eSIM मोबाइल नेटवर्कको नाम बदल्नुहोस्</translation> <translation id="4780321648949301421">पृष्ठलाई निम्न रूपमा बचत गर्नुहोस्...</translation> <translation id="4785719467058219317">तपाईं यस वेबसाइटमा दर्ता नगरिएको सुरक्षा साँचो प्रयोग गर्दै हुनुहुन्छ</translation> <translation id="4788092183367008521">कृपया आफ्नो इन्टरनेटको जाँच गरी फेरि प्रयास गर्नुहोस्।</translation> @@ -3402,7 +3398,6 @@ <translation id="4974733135013075877">निस्कनुहोस् र childlock गर्नुहोस्</translation> <translation id="4976009197147810135">ठाडो रूपमा विभाजन गर्नुहोस्</translation> <translation id="4977942889532008999">पहुँच यकिन गर्नुहोस्</translation> -<translation id="4978905460870207779">साइटहरूले Flash प्रयोग गर्ने अनुमति माग्न सक्छन्</translation> <translation id="4980805016576257426">यस विस्तारमा मालवेयर छ।</translation> <translation id="4981449534399733132">तपाईंका सिंक गरिएका सबै यन्त्र र Google खाताबाट ब्राउजिङ डेटा खाली गर्न <ph name="BEGIN_LINK" />साइन इन गर्नुहोस्<ph name="END_LINK" />।</translation> <translation id="4982236238228587209">यन्त्रमा इन्स्टल गरिएको सफ्टवेयर</translation> @@ -3680,6 +3675,7 @@ <translation id="5324780743567488672">तपाईँको स्थान प्रयोग गरेर समय क्षेत्र सेट गर्नुहोस्</translation> <translation id="5327248766486351172">नाम</translation> <translation id="5327570636534774768">यो यन्त्रलाई अर्कै डोमेनद्वारा व्यवस्थापन गरिने भनी चिन्ह लगाइएको छ। डेमो मोड सेटअप गर्नुअघि यसलाई उक्त डोमेनबाट हटाउनुहोस्।</translation> +<translation id="5327912693242073631">जुन सुविधा चल्न सूचना पठाइनु पर्ने हुन्छ ती सुविधाले काम गर्ने छैनन्</translation> <translation id="532943162177641444">यो यन्त्रले प्रयोग गर्न सक्ने मोबाइल हटस्पट सेटअप गर्न तपाईंको <ph name="PHONE_NAME" /> मा रहेको सूचनामा ट्याप गर्नुहोस्।</translation> <translation id="5329858601952122676">&मेट्नुहोस्</translation> <translation id="5331069282670671859">तपाईंसँग यो कोटिको कुनै पनि प्रमाणपत्र छैन</translation> @@ -3731,6 +3727,7 @@ <translation id="5390112241331447203">फिडब्याक रिपोर्टमा संलग्न गरी पठाइएका system_logs.txt फाइल समावेश गरियोस्।</translation> <translation id="5390677308841849479">गाढा रातो र सुन्तले</translation> <translation id="5390743329570580756">निम्न कार्यका लागि पठाउनुहोस्</translation> +<translation id="5392192690789334093">सूचना पठाउने अनुमति दिइएका साइटहरू</translation> <translation id="5397794290049113714">तपाइँ</translation> <translation id="5398497406011404839">लुकाइएका बुकमार्कहरू</translation> <translation id="5398572795982417028">सीमा बाहिरको पृष्ठ सन्दर्भ, सीमा <ph name="MAXIMUM_PAGE" /> हो</translation> @@ -4033,6 +4030,7 @@ <translation id="5739235828260127894">पुष्टिका लागि प्रतीक्षा गर्दै। <ph name="LINK_BEGIN" />थप जान्नुहोस्।<ph name="LINK_END" /></translation> <translation id="5739458112391494395">धेरै ठुलो</translation> <translation id="5740328398383587084">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा</translation> +<translation id="5740820643029013514">सुटुक्क सन्देश पठाउने सुविधा प्रयोग गर्नुहोस् (सिफारिस गरिएको)</translation> <translation id="574104302965107104">डिस्प्ले मिररिङ</translation> <translation id="574209121243317957">पिच</translation> <translation id="5746169159649715125">पीडीएपको रूपमा बचत गर्नुहोस्</translation> @@ -4170,7 +4168,6 @@ <translation id="5906732635754427568">यस यन्त्रबाट यस एपसँग सम्बन्धित डेटा हटाइने छ।</translation> <translation id="5908474332780919512">मैले साइन इन गर्दा यो एप खोलियोस्</translation> <translation id="5908695239556627796">माउस स्क्रोल हुने गति</translation> -<translation id="5908769186679515905">साइटहरूलाई फ्ल्यास चलाउनबाट रोक लगाउनुहोस्</translation> <translation id="5910363049092958439">यस रूपमा छविलाई बच&त गर्नुहोस्...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> अफलाइन छ</translation> <translation id="5911533659001334206">सर्टकटको दर्शक</translation> @@ -4251,6 +4248,7 @@ <translation id="6002210667729577411">समूहलाई सारेर नयाँ विन्डोमा लैजानुहोस्</translation> <translation id="6002452033851752583">तपाईंको Google खातामा सुरक्षित गरिएको पासवर्ड मेटाइयो</translation> <translation id="6002458620803359783">रुचाइएका आवाजहरू</translation> +<translation id="6003143259071779217">मोबाइल नेटवर्कको eSIM प्रोफाइल हटाउनुहोस्</translation> <translation id="6006484371116297560">क्लासिक</translation> <translation id="6007240208646052708">तपाईंको भाषामा आवाजमार्फत खोजी गर्ने सुविधा उपलब्ध छैन।</translation> <translation id="6009781704028455063">अन्तर्निर्मित सेन्सर</translation> @@ -4519,6 +4517,7 @@ <translation id="6308937455967653460">लि&ङ्कलाई यसको रूपमा बचत गर्नुहोस्...</translation> <translation id="6309443618838462258">तपाईंका एड्मिन यो इनपुट विधि प्रयोग गर्ने अनुमति दिनुहुन्न</translation> <translation id="6309510305002439352">माइक्रोफोन निष्क्रिय पारियो</translation> +<translation id="6310472381159916879">प्रोफाइल हटाउनुहोस्</translation> <translation id="6311220991371174222">तपाईँको प्रोफाइल खोल्दा केही गडबड भएको हुनाले Chrome लाई सुरु गर्न सकिँदैन। Chrome लाई पुनः सुरु गर्ने प्रयास गर्नुहोस्।</translation> <translation id="6312403991423642364">अज्ञात सञ्जाल त्रुटि</translation> <translation id="6312567056350025599">{NUM_DAYS,plural, =1{१ दिनअघि सुरक्षा जाँच गरिएको थियो}other{{NUM_DAYS} दिनअघि सुरक्षा जाँच गरिएको थियो}}</translation> @@ -4708,6 +4707,7 @@ <translation id="6532663472409656417">इन्टरप्राइजमा दर्ता गरिएको</translation> <translation id="6535331821390304775"><ph name="ORIGIN" /> लाई यस किसिमका लिंकहरू सधैँ सम्बद्ध अनुप्रयोगमा खोल्न दिइयोस्</translation> <translation id="6537613839935722475">यन्त्रको नाम राख्दा अक्षर, अङ्क र हाइफन चिन्ह (-) प्रयोग गर्न मिल्छ</translation> +<translation id="6537880577641744343">Commander</translation> <translation id="6538635548667167211">हाल डेटा प्रयोगसम्बन्धी सेटिङअन्तर्गत 'मोबाइल डेटा' नामक विकल्प चयन गरिएको छ</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />नोट:<ph name="END_BOLD" /> तपाइँले के गरिरहनुभएको छ भनेर थाहा छ भने वा तपाइँलाई त्यसो गर्न अनुरोध गरिएको छ भने मात्रै सक्षम गर्नुहोस्, किनभने लगत सङ्कलन गर्नाले प्रस्तुतीकरण घटाउन सक्छ।</translation> <translation id="6541638731489116978">यो साइटलाई तपाईंको चालसम्बन्धी सेन्सरहरूको पहुँच राख्नबाट रोक लगाइएको छ।</translation> @@ -5816,7 +5816,6 @@ <translation id="7831491651892296503">नेटवर्क कन्फिगर गर्दा त्रुटि भयो</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">समापन हुने समय</translation> -<translation id="783214144752121388">साइटहरूलाई फ्ल्यास प्रयोग गर्न नदिनुहोस् (सिफारिस गरिएको)</translation> <translation id="7833720883933317473">सुरक्षित गरिएका आफू अनुकूलका शब्दहरू यहाँ देखापर्ने छन्</translation> <translation id="7835178595033117206">पुस्तक चिन्ह हटाइयो</translation> <translation id="7836850009646241041">आफ्नो सुरक्षा साँचो फेरि छोई हेर्नुहोस्</translation> @@ -5839,6 +5838,7 @@ <translation id="7855678561139483478">ट्याब नयाँ विन्डोमा सार्नुहोस्</translation> <translation id="7857117644404132472">अपवाद थप्नुहोस्</translation> <translation id="7857949311770343000">के यो नै तपाईंले अपेक्षा गर्नुभएको नयाँ ट्याब पृष्ठ हो?</translation> +<translation id="7858328180167661092"><ph name="APP_NAME" /> (Windows)</translation> <translation id="785948723952233770">यो विकल्प डिसेम्बरपछि उपलब्ध हुने छैन। आफ्ना एड्मिनसँग सम्पर्क गर्नुहोस्।</translation> <translation id="786073089922909430">सेवा: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="7861215335140947162">&डाउनलोडहरू</translation> @@ -6042,7 +6042,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{यो फाइल इन्क्रिप्ट गरिएको छ। यसका मालिकलाई डिक्रिप्ट गर्न लगाउनुहोस्।}other{यीमध्ये केही फाइलहरू इन्क्रिप्ट गरिएका छन्। यिनका मालिकलाई डिक्रिप्ट गर्न लगाउनुहोस्।}}</translation> <translation id="808894953321890993">पासवर्ड परिवर्तन गर्नुहोस्</translation> <translation id="8090234456044969073">तपाइँको सबैभन्दा धेरै भ्रमण गरिएका वेबसाइटहरूको सूची पढ्नुहोस्</translation> -<translation id="8092681102116274204">"*" वाइल्डकार्ड भएका सेटिङले अब उप्रान्त काम गर्दैनन्। <ph name="BEGIN_LINK" />यी सेटिङ परिवर्तन<ph name="END_LINK" /> गर्न यो एक्स्टेन्सनका विकासकर्ता वा आफ्ना एड्मिनलाई सम्पर्क गर्नुहोस्।</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ले प्रतिक्रिया जनाइरहेको छैन</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ड्राइभमा ब्याकअप गर्नुहोस्। जुनसुकै बेला सजिलैसँग आफ्नो डेटा पुनर्स्थापना गर्नुहोस् वा यन्त्र बदल्नुहोस्। तपाईंको ब्याकअपमा एपको डेटा समावेश हुन्छ।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />तपाईंका ब्याकअपहरू Google मा अपलोड गरी तपाईंको Google खाताको पासवर्ड प्रयोग गरेर इन्क्रिप्ट गरिन्छन्।<ph name="END_PARAGRAPH2" /> @@ -6137,7 +6136,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> का एल्बमहरू चयन गर्नुहोस्</translation> <translation id="8202160505685531999">कृपया तपाईँको <ph name="DEVICE_TYPE" /> प्रोफाइल अद्यावधिक गर्न तपाईँको पासवर्ड पुनः प्रविष्टि गर्नुहोस्।</translation> <translation id="8203732864715032075">सूचनाहरू प्राप्त गर्न यो कम्प्युटरको प्रयोग गर्नुका साथै यसलाई सन्देश प्रवाह गर्ने पूर्वनिर्धारित कम्प्युटरका रूपमा सेट गर्नुहोस्।<ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash ब्लक गर्नुहोस् (सिफारिस गरिएको)</translation> <translation id="820568752112382238">सबैभन्दा बढी हेरिएका साइटहरू</translation> <translation id="8206745257863499010">ब्लुजी</translation> <translation id="8206859287963243715">सेल्युलर</translation> @@ -6160,6 +6158,7 @@ <translation id="8236917170563564587">बरु यो ट्याब सेयर गर्नुहोस्</translation> <translation id="8237647586961940482">गाढा गुलाबी र रातो</translation> <translation id="8239032431519548577">इन्टरप्राइज दर्ता गर्ने काम पूरा भयो</translation> +<translation id="8239932336306009582">सूचना पठाउने अनुमति नदिइएका साइटहरू</translation> <translation id="8241040075392580210">छहारिलो</translation> <translation id="8241806945692107836">यन्त्र कन्फिगुरेसन निर्धारन गर्दै...</translation> <translation id="8241868517363889229">आफ्ना बुकमार्कहरूलाई पढेर परिवर्तन गर्नुहोस्</translation> @@ -6289,6 +6288,7 @@ <translation id="8386091599636877289">नीति फेला परेन।</translation> <translation id="8386903983509584791">स्क्यान कार्य पूरा भयो</translation> <translation id="8387361103813440603">तपाईंको स्थान हेर्ने अनुमति नदिइएका साइटहरू</translation> +<translation id="8389264703141926739">सूचनाहरू ब्लक गर्नुहोस्</translation> <translation id="8389416080014625855">यो पृष्ठको लागि QR कोड सिर्जना गर्नुहोस्</translation> <translation id="8389492867173948260">यो विस्तारलाई तपाईं जाने वेबसाइटहरूको तपाईंका सबै डेटा पढ्न र परिवर्तन गर्न दिनुहोस्।</translation> <translation id="8390449457866780408">सर्भर उपलब्ध छैन।</translation> @@ -6498,6 +6498,7 @@ <translation id="8645354835496065562">सेन्सरलाई पहुँच राख्ने अनुमति दिन जारी राख्नुहोस्</translation> <translation id="8645920082661222035">जोखिमपूर्ण घटनाहरू घट्नुअघि नै तिनको पूर्वानुमान गर्छ र तपाईंलाई त्यसबारे चेतावनी दिन्छ</translation> <translation id="8646209145740351125">सिंक गर्ने सुविधा असक्षम पार्नुहोस्</translation> +<translation id="864637694230589560">साइटहरूले सामान्यतया सनसनीपूर्ण समाचार वा च्याट सन्देशका बारेमा तपाईंलाई जानकारी गराउन सूचना पठाउँछन्</translation> <translation id="8647834505253004544">मान्य वेब ठेगाना होइन</translation> <translation id="8648252583955599667"><ph name="GET_HELP_LINK" /> वा <ph name="RE_SCAN_LINK" /></translation> <translation id="8648408795949963811">रात्रि प्रकाशको रङको तापक्रम</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index 45ceef6..67f54de 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Stop</translation> <translation id="1272293450992660632">Pincodewaarden komen niet overeen.</translation> <translation id="1272978324304772054">Dit gebruikersaccount hoort niet bij het domein waarbij het apparaat is geregistreerd. Als je het apparaat wilt registreren bij een ander domein, moet je eerst apparaatherstel uitvoeren.</translation> -<translation id="1274977772557788323">Opslaginstellingen voor Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies en andere sitegegevens</translation> <translation id="1275718070701477396">Geselecteerd</translation> <translation id="1276994519141842946">Kan <ph name="APP_NAME" /> niet verwijderen</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Je bookmarks, geschiedenis en andere instellingen worden gesynchroniseerd met je Google-account</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Thuisnetwerk zonder roaming</translation> -<translation id="1315056510003830387">Geen toestemming om Flash te gebruiken</translation> <translation id="1316136264406804862">Zoeken...</translation> <translation id="1316495628809031177">Synchronisatie is onderbroken</translation> <translation id="1317637799698924700">Je dockingstation werkt in de voor USB Type-C-geschikte modus.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC ondersteunt versleutelingstype niet</translation> <translation id="1984417487208496350">Geen beveiliging (niet aanbevolen)</translation> <translation id="1987317783729300807">Accounts</translation> -<translation id="1988494864246143197">Sites gebruiken normaal gesproken Flash om audio, video of videogames af te spelen. Flash Player wordt na december 2020 niet meer ondersteund.</translation> <translation id="1989112275319619282">Browsen</translation> <translation id="1990512225220753005">Geen snelkoppelingen op deze pagina weergeven</translation> <translation id="1992397118740194946">Niet ingesteld</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Vensterplaatsing</translation> <translation id="2881076733170862447">Wanneer je op de extensie klikt</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> wordt zo meteen opnieuw gestart en opnieuw ingesteld.</translation> -<translation id="288387288628762616">Toestemming om Flash te gebruiken</translation> <translation id="2885378588091291677">Taakbeheer</translation> <translation id="2885729872133513017">Er is een probleem opgetreden bij het decoderen van de serverreactie.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">Dit is algemene informatie over dit apparaat en hoe je het gebruikt (zoals batterijniveau, systeem- en app-activiteit en fouten). De gegevens worden gebruikt om Android te verbeteren voor iedereen. Daarnaast helpen bepaalde verzamelde gegevens Google-apps en -partners, zoals Android-ontwikkelaars, bij de verbetering van hun apps en producten.</translation> <translation id="3838085852053358637">Kan extensie niet laden</translation> <translation id="3838486795898716504">Meer <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies en andere site- en plug-ingegevens</translation> <translation id="383891835335927981">Er zijn geen sites in- of uitgezoomd</translation> <translation id="3839509547554145593">Scrollversnelling voor muis inschakelen</translation> <translation id="3839516600093027468"><ph name="HOST" /> altijd blokkeren voor het klembord</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Apparaatconfiguratie bepalen.</translation> <translation id="4025039777635956441">Geluid van geselecteerde site dempen</translation> <translation id="4027804175521224372">(Dit kan handiger: <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Je Flash-instellingen blijven behouden totdat je Chrome afsluit.</translation> <translation id="4028467762035011525">Invoermethoden toevoegen</translation> <translation id="4031179711345676612">Microfoon toegestaan</translation> <translation id="4031527940632463547">Sensoren geblokkeerd</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Kerberos configureren</translation> <translation id="4235200303672858594">Volledig scherm</translation> <translation id="4235965441080806197">Inloggen annuleren</translation> -<translation id="4237773362828263530">Instellingen met het jokerteken '*' worden niet meer ondersteund. Neem contact op met je beheerder om <ph name="BEGIN_LINK" />deze instellingen te wijzigen<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Tabblad later lezen}other{Tabbladen later lezen}}</translation> <translation id="4242145785130247982">Meerdere clientcertificaten worden niet ondersteund</translation> <translation id="4242533952199664413">Instellingen openen</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Signaal niet gevonden</translation> <translation id="4549791035683739768">Je beveiligingssleutel heeft geen opgeslagen vingerafdrukken</translation> <translation id="4551763574344810652">Druk op <ph name="MODIFIER_KEY_DESCRIPTION" /> om dit ongedaan te maken</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Netwerk: <ph name="NETWORK_TYPE" />, signaalsterkte: <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Je moet je Chromebook opnieuw opstarten om de taal van het apparaat te wijzigen. <ph name="BEGIN_LINK_LEARN_MORE" />Meer informatie<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Externe uitbreiding heeft dezelfde of een lagere versie dan de bestaande.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Afsluiten en kinderslot</translation> <translation id="4976009197147810135">Verticaal splitsen</translation> <translation id="4977942889532008999">Toegang bevestigen</translation> -<translation id="4978905460870207779">Sites kunnen vragen of ze Flash mogen gebruiken</translation> <translation id="4980805016576257426">Deze extensie bevat malware.</translation> <translation id="4981449534399733132">Als je browsergegevens wilt wissen van al je gesynchroniseerde apparaten en je Google-account, <ph name="BEGIN_LINK" />log je in<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Apparaatsoftware</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">Gegevens die zijn gekoppeld aan deze app, worden verwijderd van dit apparaat.</translation> <translation id="5908474332780919512">App starten als je inlogt</translation> <translation id="5908695239556627796">Scrollsnelheid voor muis</translation> -<translation id="5908769186679515905">Niet toestaan dat sites Flash uitvoeren</translation> <translation id="5910363049092958439">Af&beelding opslaan als...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> is offline</translation> <translation id="5911533659001334206">Sneltoetsenviewer</translation> @@ -5835,7 +5825,6 @@ <translation id="7831491651892296503">Fout bij configureren van netwerk</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Eindtijd</translation> -<translation id="783214144752121388">Sites geen toestemming geven Flash uit te voeren (aanbevolen)</translation> <translation id="7833720883933317473">Opgeslagen aangepaste woorden worden hier weergegeven</translation> <translation id="7835178595033117206">Bookmark verwijderd</translation> <translation id="7836850009646241041">Raak je beveiligingssleutel opnieuw aan</translation> @@ -6063,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Dit bestand is versleuteld. Vraag de eigenaar om het te ontsleutelen.}other{Sommige van deze bestanden zijn versleuteld. Vraag de eigenaar om deze te ontsleutelen.}}</translation> <translation id="808894953321890993">Wachtwoord wijzigen</translation> <translation id="8090234456044969073">Een lijst weergeven van je meest bezochte websites</translation> -<translation id="8092681102116274204">Instellingen met het jokerteken '*' worden niet meer ondersteund. Neem contact op met de ontwikkelaar van de extensie of je beheerder om <ph name="BEGIN_LINK" />deze instellingen te wijzigen<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> reageert niet</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Een back-up maken in Google Drive. Gemakkelijk je gegevens herstellen of op elk gewenst moment van apparaat wisselen. Je back-up omvat app-gegevens.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Je back-ups worden geüpload naar Google en versleuteld met het wachtwoord van je Google-account.<ph name="END_PARAGRAPH2" /> @@ -6158,7 +6146,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" />-albums selecteren</translation> <translation id="8202160505685531999">Geef je wachtwoord opnieuw op om je <ph name="DEVICE_TYPE" />-profiel te updaten.</translation> <translation id="8203732864715032075">je meldingen te sturen en deze computer standaard te gebruiken voor Berichten. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash blokkeren (aanbevolen)</translation> <translation id="820568752112382238">Meest bezochte sites</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">Mobiel</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index a9faff2..4caf3b9 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Stopp</translation> <translation id="1272293450992660632">PIN-kodene er ikke like.</translation> <translation id="1272978324304772054">Denne brukerkontoen tilhører ikke domenet som enheten er registrert for. Hvis du vil registrere deg for et annet domene, må du først gå gjennom enhetsgjenoppretting.</translation> -<translation id="1274977772557788323">Lagringsinnstillinger for Adobe Flash Player</translation> <translation id="1274997165432133392">Informasjonskapsler og andre nettstedsdata</translation> <translation id="1275718070701477396">Valgt</translation> <translation id="1276994519141842946">Kunne ikke avinstallere <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Bokmerkene, loggen og andre innstillinger synkroniseres til Google-kontoen din.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Hjemmenettverk, datastreifing ikke aktivert</translation> -<translation id="1315056510003830387">Nettsteder som ikke har lov til å bruke Flash</translation> <translation id="1316136264406804862">Søker …</translation> <translation id="1316495628809031177">Synkroniseringen er satt på pause</translation> <translation id="1317637799698924700">Dokkingstasjonen kjører i USB-C-kompatibel modus.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC støtter ikke krypteringstypen</translation> <translation id="1984417487208496350">Ingen beskyttelse (anbefales ikke)</translation> <translation id="1987317783729300807">Kontoer</translation> -<translation id="1988494864246143197">Nettsteder bruker vanligvis Flash til å spille av lyd eller video eller kjøre spill. Etter desember 2020 støttes ikke Flash Player lenger.</translation> <translation id="1989112275319619282">Bla gjennom</translation> <translation id="1990512225220753005">Ikke vis snarveier på denne siden</translation> <translation id="1992397118740194946">Ikke angitt</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">Vindusplassering</translation> <translation id="2881076733170862447">Når du klikker på utvidelsen</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> startes på nytt og tilbakestilles øyeblikkelig</translation> -<translation id="288387288628762616">Nettsteder som har lov til å bruke Flash</translation> <translation id="2885378588091291677">Oppgavebehandling</translation> <translation id="2885729872133513017">Det oppsto et problem ved dekoding av tjenerrespons.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2463,7 +2459,6 @@ <translation id="383669374481694771">Dette er generell informasjon om denne enheten og hvordan den brukes (for eksempel batterinivå, system- og appaktivitet og feil). Dataene brukes til å gjøre Android bedre, og noen aggregerte data hjelper også Google-apper og -partnere, for eksempel Android-utviklere, med å gjøre apper og produkter bedre.</translation> <translation id="3838085852053358637">Kunne ikke laste inn utvidelsen</translation> <translation id="3838486795898716504">Mer av <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Informasjonskapsler og andre nettsteds- og programtilleggsdata</translation> <translation id="383891835335927981">Det er ikke zoomet inn eller ut på noen nettsteder</translation> <translation id="3839509547554145593">Slå på rulleakselerering for musen</translation> <translation id="3839516600093027468">Blokkér alltid <ph name="HOST" /> fra å se utklippstavlen</translation> @@ -2636,7 +2631,6 @@ <translation id="4023146161712577481">Fastslår enhetskonfigurasjonen.</translation> <translation id="4025039777635956441">Kutt lyden for det valgte nettstedet</translation> <translation id="4027804175521224372">(Du går glipp av ting – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Flash-innstillingene dine er aktive inntil du avslutter Chrome.</translation> <translation id="4028467762035011525">Legg til inndatametoder</translation> <translation id="4031179711345676612">Mikrofonen er tillatt</translation> <translation id="4031527940632463547">Sensorene er blokkerte</translation> @@ -2788,7 +2782,6 @@ <translation id="4232375817808480934">Konfigurer Kerberos</translation> <translation id="4235200303672858594">Hele skjermen</translation> <translation id="4235965441080806197">Avbryt påloggingen</translation> -<translation id="4237773362828263530">Innstillinger med «*» som jokertegn støttes ikke lenger. Kontakt administratoren din for å <ph name="BEGIN_LINK" />endre disse innstillingene<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Les fanen senere}other{Les fanene senere}}</translation> <translation id="4242145785130247982">Flere klientsertifikater støttes ikke</translation> <translation id="4242533952199664413">Åpne innstillingene</translation> @@ -3052,7 +3045,6 @@ <translation id="4548483925627140043">Fant ikke noe signal</translation> <translation id="4549791035683739768">Det er ikke lagret noen fingeravtrykk på sikkerhetsnøkkelen</translation> <translation id="4551763574344810652">Trykk på <ph name="MODIFIER_KEY_DESCRIPTION" /> for å angre</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" />-nettverk – signalstyrke <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Du må starte Chromebooken på nytt for å bytte enhetsspråket. <ph name="BEGIN_LINK_LEARN_MORE" />Finn ut mer<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Den eksterne utvidelsen har samme eller lavere versjonsnummer som den eksisterende utvidelsen.</translation> @@ -3407,7 +3399,6 @@ <translation id="4974733135013075877">Avslutt og barnelås</translation> <translation id="4976009197147810135">Del vertikalt</translation> <translation id="4977942889532008999">Bekreft tilgangen</translation> -<translation id="4978905460870207779">Nettsteder kan be om å få bruke Flash</translation> <translation id="4980805016576257426">Denne utvidelsen inneholder skadelig programvare.</translation> <translation id="4981449534399733132">For å slette nettleserdata på alle synkroniserte enheter og Google-kontoen din må du <ph name="BEGIN_LINK" />logge på<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Enhetsprogramvare</translation> @@ -4178,7 +4169,6 @@ <translation id="5906732635754427568">Data som er tilknyttet denne appen, fjernes fra denne enheten.</translation> <translation id="5908474332780919512">Start appen når du logger på</translation> <translation id="5908695239556627796">Rullehastighet for musen</translation> -<translation id="5908769186679515905">Blokkér nettsteder fra å kjøre Flash</translation> <translation id="5910363049092958439">Lagre &bildet som</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> er uten nett</translation> <translation id="5911533659001334206">Snarveivisning</translation> @@ -5831,7 +5821,6 @@ <translation id="7831491651892296503">En feil oppsto under konfigureringen av nettverket</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Sluttid</translation> -<translation id="783214144752121388">Blokkér nettsteder fra å kjøre Flash (anbefales)</translation> <translation id="7833720883933317473">Lagrede egendefinerte ord vises her</translation> <translation id="7835178595033117206">Bokmerket er fjernet</translation> <translation id="7836850009646241041">Prøv å trykke på sikkerhetsnøkkelen igjen</translation> @@ -6059,7 +6048,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Denne filen er kryptert. Spør eieren om å dekryptere den.}other{Noen av disse filene er krypterte. Spør eieren om å dekryptere dem.}}</translation> <translation id="808894953321890993">Endre passord</translation> <translation id="8090234456044969073">lese en liste over nettstedene du besøker mest</translation> -<translation id="8092681102116274204">Innstillinger med «*» som jokertegn støttes ikke lenger. Ta kontakt med utvikleren av utvidelsen eller administratoren din for å <ph name="BEGIN_LINK" />endre disse innstillingene<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> svarer ikke</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Sikkerhetskopiér til Google Disk. Gjenopprett dataene dine eller bytt enhet når som helst – helt enkelt. Sikkerhetskopier inkluderer appdata.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Sikkerhetskopiene dine lastes opp til Google og krypteres med passordet for Google-kontoen din.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6142,6 @@ <translation id="8201717382574620700">Velg <ph name="TOPIC_SOURCE" />-album</translation> <translation id="8202160505685531999">Legg inn passordet på nytt for å oppdatere <ph name="DEVICE_TYPE" />-profilen din.</translation> <translation id="8203732864715032075">sende deg varsler og huske denne datamaskinen som standard for Messages (<ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" />)</translation> -<translation id="8205561625497621211">Blokkér Flash (anbefales)</translation> <translation id="820568752112382238">Mest besøkte nettsteder</translation> <translation id="8206745257863499010">Plystre</translation> <translation id="8206859287963243715">Mobil</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index ca89936..2219a21 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -243,7 +243,6 @@ <translation id="1272079795634619415">ବନ୍ଦ କରନ୍ତୁ</translation> <translation id="1272293450992660632">PIN ମୂଲ୍ୟଗୁଡ଼ିକ ମେଳ ହେଉନାହିଁ।</translation> <translation id="1272978324304772054">ଏହି ଉପଯୋଗକର୍ତ୍ତା ସେହି ଡୋମେନ୍ରୁ ସମ୍ବନ୍ଧିତ ନୁହେଁ ଯେଉଁଥିରେ ଡିଭାଇସ୍ ନାମାଙ୍କିତ ଅଛି। ଯଦି ଆପଣ ଡିଭାଇସ୍କୁ ଏକ ଅଲଗା ଡୋମେନ୍ରେ ନାମାଙ୍କିତ କରିବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ ଆପଣଙ୍କୁ ପ୍ରଥମେ ଡିଭାଇସ୍ ପୁନରୁଦ୍ଧାର ପ୍ରକ୍ରିୟା ମଧ୍ୟଦେଇ ଯିବାକୁ ହେବ।</translation> -<translation id="1274977772557788323">Adobe Flash ପ୍ଲେୟାର୍ ଷ୍ଟୋରେଜ୍ ସେଟିଂସ୍</translation> <translation id="1274997165432133392">କୁକୀ ଏବଂ ଅନ୍ୟ ସାଇଟ୍ ଡାଟା</translation> <translation id="1275718070701477396">ଚୟନ କରାଯାଇଛି</translation> <translation id="1276994519141842946"><ph name="APP_NAME" />କୁ ଅନଇନଷ୍ଟଲ୍ କରାଯାଇପାରିଲା ନାହିଁ</translation> @@ -277,7 +276,6 @@ <translation id="1313705515580255288">ଆପଣଙ୍କର ବୁକ୍ମାର୍କ, ଇତିବୃତ୍ତି, ପାସ୍ୱର୍ଡ ଏବଂ ଅନ୍ୟାନ୍ୟ ସେଟିଂସ୍ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସିଙ୍କ୍ କରିଦିଆଯିବ।</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">ହୋମ୍ ନେଟ୍ୱର୍କ, ରୋମିଂ ନୁହେଁ</translation> -<translation id="1315056510003830387">ଫ୍ଲାସ୍ ବ୍ୟବହାର କରିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation> <translation id="1316136264406804862">ସନ୍ଧାନ କରୁଛି…</translation> <translation id="1316495628809031177">ସିଙ୍କ୍ ବିରତ ଅଛି</translation> <translation id="1317637799698924700">USB ପ୍ରକାର-C ସୁସଙ୍ଗତ ମୋଡ୍ରେ ଆପଣଙ୍କର ଡକିଂ ଷ୍ଟେସନ୍ କାର୍ଯ୍ୟ କରିବ।</translation> @@ -872,7 +870,6 @@ <translation id="197989455406964291">KDC, ଏନକ୍ରିପସନ୍ର ପ୍ରକାର ସମର୍ଥନ କରେ ନାହିଁ</translation> <translation id="1984417487208496350">କୌଣସି ସୁରକ୍ଷା ନାହିଁ (ସୁପାରିଶ କରାଯାଇ ନାହିଁ)</translation> <translation id="1987317783729300807">ଆକାଉଣ୍ଟ</translation> -<translation id="1988494864246143197">ଅଡିଓ, ଭିଡିଓ କିମ୍ବା ଭିଡିଓ ଗେମଗୁଡ଼ିକୁ ଚଲାଇବା ପାଇଁ ସାଇଟଗୁଡ଼ିକ ସାଧାରଣତଃ Flash ବ୍ୟବହାର କରିଥାଏ। ଡିସେମ୍ବର 2020 ପରେ Flash Player ଆଉ ସମର୍ଥିତ ହେବ ନାହିଁ।</translation> <translation id="1989112275319619282">ବ୍ରାଉଜ୍ କରନ୍ତୁ</translation> <translation id="1990512225220753005">ଏହି ପୃଷ୍ଠାରେ ସର୍ଟକଟ୍ଗୁଡ଼ିକ ଦେଖାନ୍ତୁ ନାହିଁ</translation> <translation id="1992397118740194946">ସେଟ୍ ହୋଇନାହିଁ</translation> @@ -1642,7 +1639,6 @@ <translation id="2880660355386638022">ୱିଣ୍ଡୋ ପ୍ଲେସମେଣ୍ଟ</translation> <translation id="2881076733170862447">ଆପଣ ଯେତେବେଳେ ଏକ୍ସଟେନ୍ସନ୍କୁ କ୍ଲିକ୍ କରିବେ</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> କ୍ଷଣସ୍ଥାୟୀ ଭାବରେ ରିଷ୍ଟାର୍ଟ ଏବଂ ରିସେଟ୍ ହେବ</translation> -<translation id="288387288628762616">ଫ୍ଲାସ୍ ବ୍ୟବହାର କରିବାକୁ ଅନୁମତି ଦିଆଯାଇଛି</translation> <translation id="2885378588091291677">ଟାସ୍କ ପରିଚାଳକ</translation> <translation id="2885729872133513017">ସର୍ଭର୍ ପ୍ରତିକ୍ରିୟାକୁ ଡିକୋଡ୍କରିବା ସମୟରେ ଏକ ସମସ୍ୟା ହୋଇଛି।</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2074,6 +2070,7 @@ <translation id="3428419049384081277">ଆପଣ ସାଇନ୍ ଇନ୍ କରିଛନ୍ତି!</translation> <translation id="3428747202529429621">ଯେତେବେଳେ ଆପଣ ସାଇନ୍ ଇନ୍ କରନ୍ତି ଏହା ଆପଣଙ୍କୁ Chromeରେ ସୁରକ୍ଷିତ ରଖେ ଏବଂ ଅନ୍ୟ Google ଆପଗୁଡ଼ିକରେ ଆପଣଙ୍କ ସୁରକ୍ଷାକୁ ଉନ୍ନତ କରିବା ପାଇଁ ବ୍ୟବହାର କରାଯାଇପାରେ</translation> <translation id="3428800329481094896">Linux କଣ୍ଟେନରର ssh କୀଗୁଡ଼ିକ ଫେଚ୍ କରାଯାଉଛି</translation> +<translation id="3429271624041785769">ୱେବ୍ ବିଷୟବସ୍ତୁ ଉପଲବ୍ଧ ଥିବା ଭାଷାଗୁଡ଼ିକ</translation> <translation id="3429275422858276529">ଏହାକୁ ପରେ ସହଜରେ ଖୋଜିବା ପାଇଁ ଏହି ପୃଷ୍ଠାକୁ ବୁକ୍ମାର୍କ କରନ୍ତୁ</translation> <translation id="3432227430032737297">ସମସ୍ତ ପ୍ରଦର୍ଶନକୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation> <translation id="3432757130254800023">ସ୍ଥାନୀୟ ନେଟ୍ୱର୍କରେ ପ୍ରଦର୍ଶନ କରିବା ପାଇଁ ଅଡିଓ ଏବଂ ଭିଡିଓ ପଠାନ୍ତୁ</translation> @@ -2458,7 +2455,6 @@ <translation id="383669374481694771">ଏହି ଡିଭାଇସ୍ ଓ ଏହାକୁ କିପରି ବ୍ୟବହାର କରାଯାଇଛି (ଯେପରି ବ୍ୟାଟେରୀ ସ୍ତର, ସିଷ୍ଟମ୍ ଓ ଆପ୍ କାର୍ଯ୍ୟକଳାପ ଏବଂ ତ୍ରୁଟିଗୁଡ଼ିକ) ସେ ବିଷୟରେ ଏହା ସାଧାରଣ ସୂଚନା ଅଟେ। Androidକୁ ଉନ୍ନତ କରିବା ପାଇଁ ଏହି ଡାଟାକୁ ବ୍ୟବହାର କରାଯିବ ଏବଂ କିଛି ଏକତ୍ରିତ ସୂଚନା Google ଆପ୍ ଏବଂ Android ଡେଭଲପର୍ ପରି ଏହାର ପାର୍ଟନରଗୁଡ଼ିକୁ ମଧ୍ୟ ସେଗୁଡ଼ିକର ଆପ୍ ଓ ପ୍ରଡକ୍ଟଗୁଡ଼ିକ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରିବ।</translation> <translation id="3838085852053358637">ଏକ୍ସଟେନ୍ସନ୍ ଲୋଡ୍ କରିହେଲା ନାହିଁ</translation> <translation id="3838486795898716504">ଅଧିକ <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">କୁକୀ ଓ ଅନ୍ୟାନ୍ୟ ସାଇଟ୍ ଏବଂ ପ୍ଲଗଇନ୍ ଡାଟା</translation> <translation id="383891835335927981">କୌଣସି ସାଇଟ୍କୁ ଜୁମ୍ ଇନ୍ ବା ଆଉଟ୍ କରାଯାଇନାହିଁ</translation> <translation id="3839509547554145593">ମାଉସ୍ ସ୍କ୍ରଲ୍ ଆକ୍ସିଲିରେସନ୍ ସକ୍ଷମ କରନ୍ତୁ</translation> <translation id="3839516600093027468">କ୍ଲିପ୍ବୋର୍ଡ ଦେଖିବାରୁ ସର୍ବଦା <ph name="HOST" />କୁ ବ୍ଲକ୍ କରନ୍ତୁ</translation> @@ -2500,6 +2496,7 @@ <translation id="3879748587602334249">ଡାଉନ୍ଲୋଡ୍ ପରିଚାଳକ</translation> <translation id="3881478300875776315">କମ୍ ଲାଇନ୍ ଦେଖାନ୍ତୁ</translation> <translation id="3882165008614329320">କ୍ୟାମେରା କିମ୍ବା ଫାଇଲ୍ରେ ପୂର୍ବରୁ ଥିବା ଭିଡିଓ</translation> +<translation id="3884152383786131369">ଏକାଧିକ ଭାଷାରେ ଉପଲବ୍ଧ ୱେବ୍ ବିଷୟବସ୍ତୁ ଏହି ତାଲିକାରୁ ପ୍ରଥମ ସମର୍ଥିତ ଭାଷାକୁ ବ୍ୟବହାର କରିବ। ଆପଣଙ୍କ ବ୍ରାଉଜର୍ ସେଟିଂସ୍ ସହିତ ଏହି ପସନ୍ଦଗୁଡ଼ିକୁ ସିଙ୍କ୍ କରାଯାଇଛି। <ph name="BEGIN_LINK_LEARN_MORE" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">ଏହି ସାଇଟ୍କୁ ଆକ୍ସେସ୍ କରିବାକୁ ଆପଣଙ୍କର ଅନୁରୋଧ <ph name="NAME" />ଙ୍କୁ ପଠାଯାଇଛି</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" />ରୁ ନୋଟ୍ ନେବା</translation> <translation id="3890064827463908288">ୱାଇ-ଫାଇ ସିଙ୍କ୍ ବ୍ୟବହାର କରିବାକୁ Chrome ସିଙ୍କ୍ ଚାଲୁ କରନ୍ତୁ</translation> @@ -2631,7 +2628,6 @@ <translation id="4023146161712577481">ଡିଭାଇସ୍ କନଫିଗ୍ରେସନ୍ ନିର୍ଦ୍ଧାରଣ କରାଯାଉଛି।</translation> <translation id="4025039777635956441">ଚୟନ କରାଯାଇଥିବା ସାଇଟ୍ ମ୍ୟୁଟ୍ କରନ୍ତୁ</translation> <translation id="4027804175521224372">(ଏହାକୁ ଆପଣ ଛାଡ଼ୁଛନ୍ତି—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">ଆପଣ Chrome ନ ଛାଡ଼ିବା ପର୍ଯ୍ୟନ୍ତ ଆପଣଙ୍କର ଫ୍ଲାଶ୍ ସେଟିଂସ୍ ରଖାଯିବ।</translation> <translation id="4028467762035011525">ଇନପୁଟ୍ ପଦ୍ଧତିଗୁଡ଼ିକୁ ଯୋଗ କରନ୍ତୁ</translation> <translation id="4031179711345676612">ମାଇକ୍ରୋଫୋନ୍କୁ ଅନୁମତି ଦିଆଯାଇଛି</translation> <translation id="4031527940632463547">ସେନ୍ସର୍ ଅବରୋଧ କରାଯାଇଛି</translation> @@ -2783,7 +2779,6 @@ <translation id="4232375817808480934">Kerberos କନ୍ଫିଗର୍ କରନ୍ତୁ</translation> <translation id="4235200303672858594">ସମଗ୍ର ସ୍କ୍ରିନ୍</translation> <translation id="4235965441080806197">ସାଇନ୍ ଇନ୍ ବାତିଲ୍ କରନ୍ତୁ</translation> -<translation id="4237773362828263530">"*" ୱାଇଲ୍ଡକାର୍ଡଗୁଡ଼ିକ ଥିବା ସେଟିଂସ୍ ଆଉ ସମର୍ଥିତ ନୁହେଁ। <ph name="BEGIN_LINK" />ଏହି ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ<ph name="END_LINK" /> କରିବାକୁ ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{'ପରେ ପଢ଼ିବା' ଟାବ୍}other{'ପରେ ପଢ଼ିବା' ଟାବଗୁଡ଼ିକ}}</translation> <translation id="4242145785130247982">ଏକାଧିକ କ୍ଲାଏଣ୍ଟ ସାର୍ଟିଫିକେଟ୍ ସମର୍ଥନ କରେ ନାହିଁ</translation> <translation id="4242533952199664413">ସେଟିଂସ୍ ଖୋଲନ୍ତୁ</translation> @@ -3047,7 +3042,6 @@ <translation id="4548483925627140043">ସିଗନାଲ୍ ମିଳିଲା ନାହିଁ</translation> <translation id="4549791035683739768">ଆପଣଙ୍କର ସୁରକ୍ଷା କୀରେ କୌଣସି ଟିପଚିହ୍ନ ଷ୍ଟୋର୍ କରାଯାଇନାହିଁ</translation> <translation id="4551763574344810652">ପୂର୍ବବତ୍ କରିବା ପାଇଁ <ph name="MODIFIER_KEY_DESCRIPTION" /> ଦବାନ୍ତୁ</translation> -<translation id="4552089082226364758">ଫ୍ଲାସ୍</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> ନେଟ୍ୱାର୍କ, ସିଗ୍ନାଲ୍ର କ୍ଷମତା <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">ଡିଭାଇସର ଭାଷା ବଦଳାଇବା ପାଇଁ ଆପଣଙ୍କୁ ଆପଣଙ୍କ Chromebook ରିଷ୍ଟାର୍ଟ କରିବାକୁ ହେବ। <ph name="BEGIN_LINK_LEARN_MORE" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">ବାହ୍ୟ ସମ୍ପ୍ରସାରଣ ବିଦ୍ୟମାନ ଥିବା ସଂସ୍କରଣ ତୁଳନାରେ ସମାନ କିମ୍ବା ନିମ୍ନତର ସଂସ୍କରଣରେ ଅଛି।</translation> @@ -3402,7 +3396,6 @@ <translation id="4974733135013075877">ପ୍ରସ୍ଥାନ ଏବଂ ଚାଇଲ୍ଡଲକ୍</translation> <translation id="4976009197147810135">ଭର୍ଟିକାଲ୍ ଭାବରେ ଭାଗ କରନ୍ତୁ</translation> <translation id="4977942889532008999">ଆକ୍ସେସ୍ ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation> -<translation id="4978905460870207779">ସାଇଟଗୁଡ଼ିକ Flash ବ୍ୟବହାର କରିବାକୁ ପଚାରିପାରିବ</translation> <translation id="4980805016576257426">ଏହି ଏକ୍ସଟେନ୍ସନ୍ରେ ମାଲ୍ୱେର୍ ଅଛି।</translation> <translation id="4981449534399733132">ସିଙ୍କ୍ ହୋଇଥିବା ଆପଣଙ୍କର ସମସ୍ତ ଡିଭାଇସ୍ ଏବଂ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରୁ ବ୍ରାଉଜିଂ ଡାଟା ଖାଲି କରିବାକୁ, <ph name="BEGIN_LINK" />ସାଇନ୍ ଇନ୍ କରନ୍ତୁ<ph name="END_LINK" />।</translation> <translation id="4982236238228587209">ଡିଭାଇସ୍ ସଫ୍ଟୱେୟାର</translation> @@ -4173,7 +4166,6 @@ <translation id="5906732635754427568">ଏହି ଡିଭାଇସ୍ରୁ ଏହି ଆପ୍ ସମ୍ବନ୍ଧିତ ଡାଟା କାଢ଼ିଦିଆଯିବ।</translation> <translation id="5908474332780919512">ଆପଣ ସାଇନ୍ ଇନ୍ କରି ଆପ୍ ଆରମ୍ଭ କରନ୍ତୁ</translation> <translation id="5908695239556627796">ମାଉସ୍ ସ୍କ୍ରଲ୍ ବେଗ</translation> -<translation id="5908769186679515905">ଫ୍ଲାସ୍ ଚଲାଇବାରୁ ସାଇଟ୍ଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରନ୍ତୁ</translation> <translation id="5910363049092958439">ଛବି ଏପରି ଭାବେ &ସେଭ୍ କରନ୍ତୁ...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ଅଫଲାଇନ୍ ଅଛି</translation> <translation id="5911533659001334206">ସର୍ଟ୍କର୍ଟ ଭ୍ୟୁଅର୍</translation> @@ -4357,6 +4349,7 @@ <translation id="6112727384379533756">ଏକ ଟିକେଟ୍ ଯୋଗ କରନ୍ତୁ</translation> <translation id="6112931163620622315">ଆପଣଙ୍କର ଫୋନ୍ ଦେଖନ୍ତୁ</translation> <translation id="6112952769866305444">ବ୍ୟକ୍ତିର, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /> ଏଡ଼ିଟ୍ କରନ୍ତୁ</translation> +<translation id="6113434369102685411">Chrome ବ୍ରାଉଜର୍ ଏବଂ <ph name="DEVICE_TYPE" /> ଲଞ୍ଚର୍ ପାଇଁ ଆପଣଙ୍କ ଡିଫଲ୍ଟ ସନ୍ଧାନ ଇଞ୍ଜିନ୍ ସେଟ୍ କରନ୍ତୁ</translation> <translation id="6113942107547980621">ସ୍ମାର୍ଟ ଲକ୍ ବ୍ୟବହାର କରିବାକୁ, ଆପଣଙ୍କ ଫୋନ୍ରେ ପ୍ରାଥମିକ ଉପଯୋଗକର୍ତ୍ତା ପ୍ରୋଫାଇଲ୍କୁ ସ୍ୱିଚ୍ କରନ୍ତୁ</translation> <translation id="6116921718742659598">ଭାଷା ଓ ଇନ୍ପୁଟ୍ ସେଟିଂସ୍ ବଦଳାନ୍ତୁ</translation> <translation id="6120205520491252677">ସ୍କ୍ରିନ୍ ଆରମ୍ଭ କରିବା ପାଇଁ ଏହି ପୃଷ୍ଠାକୁ ପିନ୍ କରନ୍ତୁ...</translation> @@ -5225,6 +5218,7 @@ <translation id="7140928199327930795">କୌଣସି ଅନ୍ୟ ଉପଲବ୍ଧ ଡିଭାଇସ୍ ନାହିଁ।</translation> <translation id="7141105143012495934">ଆପଣଙ୍କର ଆକାଉଣ୍ଟ ବିବରଣୀ ପୁନରୁଦ୍ଧାର ହୋଇନଥିବାରୁ ସାଇନ୍ ଇନ୍ ବିଫଳ ହୋଇଛି। ଦୟାକରି ଆପଣଙ୍କ ବ୍ୟବସ୍ଥାପକଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ ବା ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="7143207342074048698">ସଂଯୋଗ କରୁଛି</translation> +<translation id="7143358760238281735">କୌଣସି ଆପ୍ ଉପଲବ୍ଧ ନାହିଁ</translation> <translation id="7144878232160441200">ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ</translation> <translation id="714876143603641390">LAN ସଂଯୋଗ</translation> <translation id="7149893636342594995">ଶେଷ 24 ଘଣ୍ଟା</translation> @@ -5696,6 +5690,7 @@ <translation id="7707922173985738739">ମୋବାଇଲ୍ ଡାଟା ବ୍ୟବହାର କରନ୍ତୁ।</translation> <translation id="7709152031285164251">ବିଫଳ ହେଲା - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&କାଷ୍ଟ...</translation> +<translation id="7712739869553853093">ପ୍ରିଣ୍ଟ ପ୍ରିଭ୍ୟୁ ଡାଏଲଗ୍</translation> <translation id="7712836429117959503"><ph name="EXTENSION_ID" /> ID ଥିବା ଅଜଣା ଏକ୍ସଟେନ୍ସନ୍</translation> <translation id="7714307061282548371"><ph name="DOMAIN" />ରୁ କୁକୀଗୁଡ଼ିକର ଅନୁମତି ଅଛି</translation> <translation id="7714464543167945231">ସାର୍ଟିଫିକେଟ୍</translation> @@ -5825,7 +5820,6 @@ <translation id="7831491651892296503">ନେଟ୍ୱର୍କ କନ୍ଫିଗର୍ କରିବା ସମୟରେ ତ୍ରୁଟି ହୋଇଛି</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">ସମାପ୍ତ ସମୟ</translation> -<translation id="783214144752121388">ସାଇଟ୍ଗୁଡ଼ିକୁ ଫ୍ଲାସ୍ ଚଲାଇବା ବ୍ଲକ୍ କରନ୍ତୁ</translation> <translation id="7833720883933317473">ସେଭ୍ ହୋଇଥିବା କଷ୍ଟମ୍ ଶବ୍ଦ ଏଠାରେ ଦେଖାଯିବ</translation> <translation id="7835178595033117206">ବୁକ୍ମାର୍କକୁ କଢ଼ାଯାଇଛି</translation> <translation id="7836850009646241041">ଆପଣଙ୍କର ସୁରକ୍ଷା କୀ'କୁ ପୁଣି ସ୍ପର୍ଶ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ</translation> @@ -6051,7 +6045,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ଏହି ଫାଇଲଟି ଏନକ୍ରିପ୍ଟ କରାଯାଇଛି। ଏହାର ମାଲିକଙ୍କୁ ଡିକ୍ରିପ୍ଟ କରିବାକୁ କୁହନ୍ତୁ।}other{ଏହି ଫାଇଲଗୁଡ଼ିକ ମଧ୍ୟରୁ କିଛି ଫାଇଲ୍ ଏନକ୍ରିପ୍ଟ କରାଯାଇଛି। ସେଗୁଡ଼ିକର ମାଲିକଙ୍କୁ ଡିକ୍ରିପ୍ଟ କରିବାକୁ କୁହନ୍ତୁ।}}</translation> <translation id="808894953321890993">ପାସ୍ୱାର୍ଡ ବଦଳାନ୍ତୁ</translation> <translation id="8090234456044969073">ଆପଣ ସବୁଠାରୁ ଅଧିକ ଥର ଯାଉଥିବା ୱେବ୍ସାଇଟ୍ଗୁଡ଼ିକର ଗୋଟିଏ ତାଲିକା ପଢ଼ନ୍ତୁ</translation> -<translation id="8092681102116274204">"*" ୱାଇଲ୍ଡକାର୍ଡଗୁଡ଼ିକ ଥିବା ସେଟିଂସ୍ ଆଉ ସମର୍ଥିତ ନୁହେଁ। <ph name="BEGIN_LINK" />ଏହି ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ<ph name="END_LINK" /> କରିବାକୁ ଏକ୍ସଟେନସନ୍ ଡେଭଲପର୍ କିମ୍ବା ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ପ୍ରତିକ୍ରିୟା ଦେଉନାହିଁ</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ଡ୍ରାଇଭ୍ରେ ବ୍ୟାକ୍ଅପ୍ ନିଅନ୍ତୁ। ଯେକୌଣସି ସମୟରେ ସହଜରେ ନିଜର ଡାଟା ପୁନଃସ୍ଥାପନ କରନ୍ତୁ କିମ୍ୱା ଡିଭାଇସ୍ ସ୍ୱିଚ୍ କରନ୍ତୁ। ଆପଣଙ୍କର ବ୍ୟାକ୍ଅପ୍ରେ ଆପ୍ ଡାଟା ସାମିଲ୍ ଅଛି।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ଆପଣଙ୍କର ବ୍ୟାକ୍ଅପ୍ଗୁଡ଼ିକ Googleରେ ଅପ୍ଲୋଡ୍ କରାଯାଇଛି ଏବଂ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟ ପାସ୍ୱର୍ଡ ବ୍ୟବହାର କରି ଏନ୍କ୍ରାଇପ୍ଟ କରାଯାଇଛି।<ph name="END_PARAGRAPH2" /> @@ -6145,7 +6138,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ଆଲବମ୍ ଚୟନ କରନ୍ତୁ</translation> <translation id="8202160505685531999">ଦୟାକରି ଆପଣଙ୍କ <ph name="DEVICE_TYPE" /> ପ୍ରୋଫାଇଲ୍ ଅପ୍ଡେଟ୍ କରିବା ପାଇଁ ଆପଣଙ୍କର ପାସ୍ୱର୍ଡ ପୁଣି ଲେଖନ୍ତୁ।</translation> <translation id="8203732864715032075">ମେସେଜ୍ ପାଇଁ ଏହି କମ୍ପ୍ୟୁଟର୍ ଡିଫଲ୍ଟ ଅଟେ, ତାହା ମନେରଖିବାକୁ ଆପଣଙ୍କୁ ବିଜ୍ଞପ୍ତି ପଠାଏ। <ph name="LINK_BEGIN" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flashକୁ ବ୍ଲକ୍ କରନ୍ତୁ (ସୁପାରିଶ କରାଯାଇଛି)</translation> <translation id="820568752112382238">ଅଧିକ ଦେଖାଯାଇଥିବା ସାଇଟ୍ଗୁଡ଼ିକ</translation> <translation id="8206745257863499010">ବ୍ଲୁସୀ</translation> <translation id="8206859287963243715">ସେଲ୍ୟୁଲାର୍</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index 5422181..bec0451 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">ਰੋਕੋ</translation> <translation id="1272293450992660632">ਪਿੰਨ ਮੁੱਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ।</translation> <translation id="1272978324304772054">ਇਹ ਵਰਤੋਂਕਾਰ ਖਾਤਾ ਉਸ ਡੋਮੇਨ ਨਾਲ ਸੰਬੰਧਿਤ ਨਹੀਂ ਹੈ ਜਿਸ ਨਾਲ ਡੀਵਾਈਸ ਦਰਜ ਕੀਤਾ ਗਿਆ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਵੱਖ ਡੋਮੇਨ ਦਰਜ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਡੀਵਾਈਸ ਰਿਕਵਰੀ 'ਤੇ ਜਾਣ ਦੀ ਲੋੜ ਹੈ।</translation> -<translation id="1274977772557788323">Adobe ਫਲੈਸ਼ ਪਲੇਅਰ ਸਟੋਰੇਜ ਸੈਟਿੰਗਾਂ</translation> <translation id="1274997165432133392">ਕੁਕੀਜ਼ ਅਤੇ ਹੋਰ ਸਾਈਟ ਡਾਟਾ</translation> <translation id="1275718070701477396">ਚੁਣਿਆ ਗਿਆ</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> ਨੂੰ ਅਣਸਥਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">ਤੁਹਾਡੇ ਬੁੱਕਮਾਰਕ, ਇਤਿਹਾਸ ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਨੂੰ ਤੁਹਾਡੇ Google ਖਾਤੇ 'ਤੇ ਸਿੰਕ ਕੀਤਾ ਜਾਵੇਗਾ।</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">ਘਰੇਲੂ ਨੈੱਟਵਰਕ, ਰੋਮਿੰਗ ਨਹੀਂ</translation> -<translation id="1315056510003830387">Flash ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ</translation> <translation id="1316136264406804862">ਖੋਜ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ...</translation> <translation id="1316495628809031177">ਸਮਕਾਲੀਕਰਨ ਰੋਕਿਆ ਗਿਆ</translation> <translation id="1317637799698924700">ਤੁਹਾਡਾ ਡੌਕਿੰਗ ਸਟੇਸ਼ਨ USB ਪ੍ਰਕਾਰ-C ਅਨੁਰੂਪਤਾ ਮੋਡ ਵਿੱਚ ਕੰਮ ਕਰੇਗਾ।</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC ਵਿੱਚ ਇਨਕ੍ਰਿਪਸ਼ਨ ਕਿਸਮ ਦੀ ਸੁਵਿਧਾ ਨਹੀਂ ਹੈ</translation> <translation id="1984417487208496350">ਕੋਈ ਸੁਰੱਖਿਆ ਨਹੀਂ (ਇਸਦੀ ਸਿਫ਼ਾਰਸ਼ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ)</translation> <translation id="1987317783729300807">ਖਾਤੇ</translation> -<translation id="1988494864246143197">ਸਾਈਟਾਂ ਆਮ ਤੌਰ 'ਤੇ ਆਡੀਓ, ਵੀਡੀਓ ਜਾਂ ਵੀਡੀਓ ਗੇਮਾਂ ਚਲਾਉਣ ਲਈ Flash ਨੂੰ ਵਰਤਦੀਆਂ ਹਨ। ਦਸੰਬਰ 2020 ਤੋਂ ਬਾਅਦ Flash Player ਦੀ ਸੁਵਿਧਾ ਨਹੀਂ ਦਿੱਤੀ ਜਾਵੇਗੀ।</translation> <translation id="1989112275319619282">ਬ੍ਰਾਊਜ਼ ਕਰੋ</translation> <translation id="1990512225220753005">ਇਸ ਪੰਨੇ 'ਤੇ ਸ਼ਾਰਟਕੱਟ ਨਾ ਦਿਖਾਓ</translation> <translation id="1992397118740194946">ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">ਵਿੰਡੋ ਪਲੇਸਮੈਂਟ</translation> <translation id="2881076733170862447">ਜਦੋਂ ਤੁਸੀਂ ਐਕਸਟੈਂਸ਼ਨ 'ਤੇ ਕਲਿੱਕ ਕਰਦੇ ਹੋ</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ਰੀਸਟਾਰਟ ਹੋਵੇਗਾ ਅਤੇ ਅਸਥਾਈ ਤੌਰ ਤੇ ਰੀਸੈਟ ਕਰੇਗਾ।</translation> -<translation id="288387288628762616">Flash ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਹੈ</translation> <translation id="2885378588091291677">ਕੰਮ ਪ੍ਰਬੰਧਕ</translation> <translation id="2885729872133513017">ਸਰਵਰ ਦੇ ਜਵਾਬ ਨੂੰ ਡੀਕੋਡ ਕਰਨ ਵੇਲੇ ਕੋਈ ਸਮੱਸਿਆ ਆਈ।</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2463,7 +2459,6 @@ <translation id="383669374481694771">ਇਹ ਇਸ ਡੀਵਾਈਸ ਅਤੇ ਇਸਦੀ ਵਰਤੋਂ ਬਾਰੇ ਆਮ ਜਾਣਕਾਰੀ ਹੈ (ਜਿਵੇਂ ਕਿ ਬੈਟਰੀ ਪੱਧਰ, ਸਿਸਟਮ ਅਤੇ ਐਪ ਸਰਗਰਮੀ, ਅਤੇ ਗੜਬੜੀਆਂ)। ਡਾਟਾ Android ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਵੇਗਾ ਅਤੇ ਕੁਝ ਏਕੀਕ੍ਰਿਤ ਜਾਣਕਾਰੀ Google ਐਪਾਂ ਅਤੇ ਪਾਰਟਨਰਾਂ, ਜਿਵੇਂ ਕਿ Android ਵਿਕਾਸਕਾਰਾਂ ਦੀਆਂ ਐਪਾਂ ਅਤੇ ਉਤਪਾਦਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਵੀ ਉਹਨਾਂ ਦੀ ਮਦਦ ਕਰੇਗੀ।</translation> <translation id="3838085852053358637">ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਲੋਡ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ</translation> <translation id="3838486795898716504">ਹੋਰ <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">ਕੁਕੀਜ਼ ਅਤੇ ਸਾਈਟ ਤੇ ਪਲੱਗਇਨ ਸੰਬੰਧੀ ਹੋਰ ਡਾਟਾ</translation> <translation id="383891835335927981">ਕੋਈ ਵੀ ਸਾਈਟਾਂ ਜ਼ੂਮ ਇਨ ਜਾਂ ਆਊਟ ਨਹੀਂ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ</translation> <translation id="3839509547554145593">ਮਾਊਸ ਸਕ੍ਰੋਲ ਐਕਸੈੱਲਰੇਸ਼ਨ ਚਾਲੂ ਕਰੋ</translation> <translation id="3839516600093027468"><ph name="HOST" /> ਨੂੰ ਕਲਿੱਪਬੋਰਡ ਦੇਖਣ ਤੋਂ ਹਮੇਸ਼ਾਂ ਬਲਾਕ ਕਰੋ</translation> @@ -2637,7 +2632,6 @@ <translation id="4023146161712577481">ਡੀਵਾਈਸ ਸੰਰੂਪਣ ਨਿਰਧਾਰਿਤ ਕਰ ਰਿਹਾ ਹੈ</translation> <translation id="4025039777635956441">ਚੁਣੀ ਗਈ ਸਾਈਟ ਨੂੰ ਮਿਊਟ ਕਰੋ</translation> <translation id="4027804175521224372">(ਤੁਸੀਂ ਇਹ ਛੱਡ ਰਹੇ ਹੋ—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">ਤੁਹਾਡੀਆਂ 'ਫਲੈਸ਼' ਸੈਟਿੰਗਾਂ ਨੂੰ ਉਦੋਂ ਤੱਕ ਰੱਖਿਆ ਜਾਵੇਗਾ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ Chrome ਨੂੰ ਛੱਡ ਨਹੀਂ ਦਿੰਦੇ।</translation> <translation id="4028467762035011525">ਇਨਪੁੱਟ ਵਿਧੀਆਂ ਸ਼ਾਮਲ ਕਰੋ</translation> <translation id="4031179711345676612">ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੱਤੀ ਗਈ</translation> <translation id="4031527940632463547">ਸੈਂਸਰ ਬਲਾਕ ਕੀਤੇ ਗਏ</translation> @@ -2789,7 +2783,6 @@ <translation id="4232375817808480934">Kerberos ਦਾ ਸੰਰੂਪਣ ਕਰੋ</translation> <translation id="4235200303672858594">ਸਮੁੱਚੀ ਸਕ੍ਰੀਨ</translation> <translation id="4235965441080806197">ਸਾਈਨ-ਇਨ ਰੱਦ ਕਰੋ</translation> -<translation id="4237773362828263530">"*" ਵਾਈਲਡ-ਕਾਰਡਾਂ ਵਾਲੀਆਂ ਸੈਟਿੰਗਾਂ ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹਨ। <ph name="BEGIN_LINK" />ਇਹਨਾਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲਣ<ph name="END_LINK" /> ਲਈ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{'ਬਾਅਦ ਵਿੱਚ ਪੜ੍ਹੋ' ਟੈਬ}one{'ਬਾਅਦ ਵਿੱਚ ਪੜ੍ਹੋ' ਟੈਬ}other{'ਬਾਅਦ ਵਿੱਚ ਪੜ੍ਹੋ' ਟੈਬਾਂ}}</translation> <translation id="4242145785130247982">ਇੱਕ ਤੋਂ ਵੱਧ ਕਲਾਇੰਟ ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ ਦੀ ਸੁਵਿਧਾ ਨਹੀਂ ਹੈ</translation> <translation id="4242533952199664413">ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ</translation> @@ -3053,7 +3046,6 @@ <translation id="4548483925627140043">ਸਿਗਨਲ ਨਹੀਂ ਮਿਲਿਆ</translation> <translation id="4549791035683739768">ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਵਿੱਚ ਕੋਈ ਵੀ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸਟੋਰ ਨਹੀਂ ਕੀਤਾ ਹੋਇਆ ਹੈ</translation> <translation id="4551763574344810652">ਅਣਕੀਤਾ ਕਰਨ ਲਈ <ph name="MODIFIER_KEY_DESCRIPTION" /> ਨੂੰ ਦਬਾਓ</translation> -<translation id="4552089082226364758">ਫਲੈਸ਼</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> ਨੈੱਟਵਰਕ, ਸਿਗਨਲ ਦੀ ਤੀਬਰਤਾ <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">ਤੁਹਾਨੂੰ ਡੀਵਾਈਸ ਦੀ ਭਾਸ਼ਾ ਬਦਲਣ ਲਈ Chromebook ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। <ph name="BEGIN_LINK_LEARN_MORE" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">ਬਾਹਰੀ ਐਕਸਟੈਂਸ਼ਨ ਮੌਜੂਦਾ ਜਾਂ ਘੱਟ ਵਰਜਨ ਦੀ ਹੈ।</translation> @@ -3408,7 +3400,6 @@ <translation id="4974733135013075877">ਬਾਹਰ ਜਾਓ ਅਤੇ ਚਾਈਲਡਲੌਕ</translation> <translation id="4976009197147810135">ਖੜ੍ਹਵੇਂ ਤੌਰ 'ਤੇ ਵੰਡੋ</translation> <translation id="4977942889532008999">ਪਹੁੰਚ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation> -<translation id="4978905460870207779">ਸਾਈਟਾਂ Flash ਨੂੰ ਵਰਤਣ ਲਈ ਪੁੱਛ ਸਕਦੀਆਂ ਹਨ</translation> <translation id="4980805016576257426">ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਵਿੱਚ ਮਾਲਵੇਅਰ ਸ਼ਾਮਲ ਹਨ।</translation> <translation id="4981449534399733132">ਤੁਹਾਡੇ ਸਾਰੇ ਸਮਕਾਲੀਕਿਰਤ ਡੀਵਾਈਸਾਂ ਅਤੇ ਤੁਹਾਡੇ 'Google ਖਾਤੇ' ਵਿੱਚੋਂ ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟਾ ਕਲੀਅਰ ਕਰਨ ਲਈ, <ph name="BEGIN_LINK" />ਸਾਈਨ-ਇਨ ਕਰੋ<ph name="END_LINK" />।</translation> <translation id="4982236238228587209">ਡੀਵਾਈਸ ਸਾਫ਼ਟਵੇਅਰ</translation> @@ -4179,7 +4170,6 @@ <translation id="5906732635754427568">ਇਸ ਐਪ ਨਾਲ ਸਬੰਧਿਤ ਡਾਟੇ ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।</translation> <translation id="5908474332780919512">ਸਾਈਨ-ਇਨ ਕਰਨ ਵੇਲੇ ਐਪ ਨੂੰ ਸ਼ੁਰੂ ਕਰੋ</translation> <translation id="5908695239556627796">ਮਾਊਸ ਸਕ੍ਰੋਲ ਗਤੀ</translation> -<translation id="5908769186679515905">ਸਾਈਟਾਂ ਨੂੰ Flash ਚਲਾਉਣ ਤੋਂ ਰੋਕੋ</translation> <translation id="5910363049092958439">ਦੇ ਤੌਰ ਤੇ ਚਿੱਤਰ ਰੱ&ਖਿਅਤ ਕਰੋ...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ਆਫ਼ਲਾਈਨ ਹੈ</translation> <translation id="5911533659001334206">ਸ਼ਾਰਟਕੱਟ ਵਿਊਅਰ</translation> @@ -5828,7 +5818,6 @@ <translation id="7831491651892296503">ਨੈੱਟਵਰਕ ਦਾ ਸੰਰੂਪਣ ਕਰਨ ਵਿੱਚ ਗੜਬੜ ਹੋਈ</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">ਸਮਾਪਤੀ ਸਮਾਂ</translation> -<translation id="783214144752121388">ਸਾਈਟਾਂ ਨੂੰ ਫਲੈਸ਼ ਚਲਾਉਣ ਤੋਂ ਬਲਾਕ ਕਰੋ (ਸਿਫ਼ਾਰਸ਼ੀ)</translation> <translation id="7833720883933317473">ਰੱਖਿਅਤ ਕੀਤੇ ਵਿਉਂਤਬੱਧ ਸ਼ਬਦ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੇ</translation> <translation id="7835178595033117206">ਬੁੱਕਮਾਰਕ ਹਟਾਇਆ ਗਿਆ</translation> <translation id="7836850009646241041">ਆਪਣੀ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਨੂੰ ਦੁਬਾਰਾ ਸਪਰਸ਼ ਕਰਕੇ ਦੇਖੋ</translation> @@ -6055,7 +6044,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ਇਹ ਫ਼ਾਈਲ ਇਨਕ੍ਰਿਪਟਡ ਹੈ। ਇਸਦੇ ਮਾਲਕ ਨੂੰ ਡਿਕ੍ਰਿਪਟ ਕਰਨ ਲਈ ਕਹੋ।}one{ਇਹ ਫ਼ਾਈਲ ਇਨਕ੍ਰਿਪਟਡ ਹੈ। ਇਸਦੇ ਮਾਲਕ ਨੂੰ ਡਿਕ੍ਰਿਪਟ ਕਰਨ ਲਈ ਕਹੋ।}other{ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੁਝ ਫ਼ਾਈਲਾਂ ਇਨਕ੍ਰਿਪਟਡ ਹਨ। ਇਹਨਾਂ ਦੇ ਮਾਲਕਾਂ ਨੂੰ ਡਿਕ੍ਰਿਪਟ ਕਰਨ ਲਈ ਕਹੋ।}}</translation> <translation id="808894953321890993">ਪਾਸਵਰਡ ਬਦਲੋ</translation> <translation id="8090234456044969073">ਤੁਹਾਡੀਆਂ ਸਭ ਤੋਂ ਵੱਧ ਵਾਰ ਵਿਜਿਟ ਕੀਤੀਆਂ ਵੈਬਸਾਈਟਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਪੜ੍ਹੋ</translation> -<translation id="8092681102116274204">"*" ਵਾਈਲਡ-ਕਾਰਡਾਂ ਵਾਲੀਆਂ ਸੈਟਿੰਗਾਂ ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹਨ। <ph name="BEGIN_LINK" />ਇਹਨਾਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲਣ<ph name="END_LINK" /> ਲਈ ਐਕਸਟੈਂਸ਼ਨ ਵਿਕਾਸਕਾਰ ਜਾਂ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ਪ੍ਰਤਿਕਿਰਿਆ ਨਹੀਂ ਦੇ ਰਿਹਾ ਹੈ</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />'Google ਡਰਾਈਵ' ਵਿੱਚ ਬੈਕਅੱਪ ਲਓ। ਕਿਸੇ ਵੇਲੇ ਵੀ ਅਸਾਨੀ ਨਾਲ ਆਪਣਾ ਡਾਟਾ ਮੁੜ-ਬਹਾਲ ਕਰੋ ਜਾਂ ਡੀਵਾਈਸਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰੋ। ਤੁਹਾਡੇ ਬੈਕਅੱਪ ਵਿੱਚ ਐਪ ਡਾਟਾ ਸ਼ਾਮਲ ਹੈ।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ਤੁਹਾਡੇ ਬੈਕਅੱਪ Google 'ਤੇ ਅੱਪਲੋਡ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਤੁਹਾਡੇ Google ਖਾਤੇ ਦੇ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਨਕ੍ਰਿਪਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।<ph name="END_PARAGRAPH2" /> @@ -6149,7 +6137,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ਐਲਬਮਾਂ ਚੁਣੋ</translation> <translation id="8202160505685531999">ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੀ <ph name="DEVICE_TYPE" /> ਪ੍ਰੋਫਾਈਲ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਆਪਣਾ ਪਾਸਵਰਡ ਮੁੜ-ਦਰਜ ਕਰੋ।</translation> <translation id="8203732864715032075">ਤੁਹਾਨੂੰ ਸੂਚਨਾਵਾਂ ਭੇਜਣੀਆਂ ਅਤੇ ਇਸ ਕੰਪਿਊਟਰ ਨੂੰ 'ਸੁਨੇਹਾ' ਲਈ ਯਾਦ ਰੱਖਣ 'ਤੇ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਕਰਨਾ। <ph name="LINK_BEGIN" />ਹੋਰ ਜਾਣੋ<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash ਨੂੰ ਬਲਾਕ ਕਰੋ (ਸਿਫ਼ਾਰਸ਼ੀ)</translation> <translation id="820568752112382238">ਸਭ ਤੋਂ ਵੱਧ ਦੇਖੀਆਂ ਗਈਆਂ ਸਾਈਟਾਂ</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">Cellular</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 6e557cf..9b4aa69 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Zatrzymaj</translation> <translation id="1272293450992660632">Kody PIN nie są zgodne.</translation> <translation id="1272978324304772054">To konto użytkownika nie należy do domeny, w której urządzenie jest zarejestrowane. Jeśli chcesz się zarejestrować w innej domenie, musisz najpierw przeprowadzić odzyskiwanie urządzenia.</translation> -<translation id="1274977772557788323">Ustawienia pamięci Adobe Flash Playera</translation> <translation id="1274997165432133392">Pliki cookie i inne dane witryn</translation> <translation id="1275718070701477396">Zaznaczone</translation> <translation id="1276994519141842946">Nie udało się odinstalować <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Zakładki, historia i ustawienia są synchronizowane z Twoim kontem Google.</translation> <translation id="1314565355471455267">VPN na Androida</translation> <translation id="131461803491198646">Sieć macierzysta, nie w roamingu</translation> -<translation id="1315056510003830387">Nie zezwolono na używanie Flasha</translation> <translation id="1316136264406804862">Trwa wyszukiwanie...</translation> <translation id="1316495628809031177">Synchronizacja została wstrzymana</translation> <translation id="1317637799698924700">Stacja dokująca będzie działać w trybie zgodności z USB typu C.</translation> @@ -874,7 +872,6 @@ <translation id="197989455406964291">KDC nie obsługuje tego typu szyfrowania</translation> <translation id="1984417487208496350">Brak ochrony (niezalecane)</translation> <translation id="1987317783729300807">Konta</translation> -<translation id="1988494864246143197">Strony zwykle używają Flasha do odtwarzania dźwięku i obrazu oraz uruchamiania gier. Z końcem grudnia 2020 roku Flash Player nie będzie już obsługiwany.</translation> <translation id="1989112275319619282">Przeglądaj</translation> <translation id="1990512225220753005">Nie wyświetlaj skrótów na tej stronie</translation> <translation id="1992397118740194946">Nie ustawiono</translation> @@ -1645,7 +1642,6 @@ <translation id="2880660355386638022">Rozmieszczenie okien</translation> <translation id="2881076733170862447">Gdy klikniesz rozszerzenie</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> za chwilę uruchomi się ponownie i zresetuje.</translation> -<translation id="288387288628762616">Zezwolono na używanie Flasha</translation> <translation id="2885378588091291677">Menedżer zadań</translation> <translation id="2885729872133513017">Podczas dekodowania odpowiedzi serwera wystąpił problem.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2462,7 +2458,6 @@ <translation id="383669374481694771">Są to ogólne informacje o tym urządzeniu i o jego używaniu (takie jak poziom naładowania baterii, aktywność w systemie i aplikacjach oraz błędy). Wykorzystamy je do ulepszania Androida. Niektóre informacje zbiorcze pomogą nam też udoskonalić aplikacje Google lub zostaną wykorzystane przez naszych partnerów, na przykład deweloperów aplikacji na Androida, do tworzenia lepszych aplikacji i produktów.</translation> <translation id="3838085852053358637">Nie udało się wczytać rozszerzenia</translation> <translation id="3838486795898716504">Więcej o <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Pliki cookie oraz inne dane witryn i wtyczek</translation> <translation id="383891835335927981">Żadna strona nie jest powiększana ani pomniejszana</translation> <translation id="3839509547554145593">Włącz szybkie przewijanie kółkiem myszy</translation> <translation id="3839516600093027468">Zawsze blokuj stronie <ph name="HOST" /> dostęp do schowka</translation> @@ -2637,7 +2632,6 @@ <translation id="4023146161712577481">Określanie konfiguracji urządzenia.</translation> <translation id="4025039777635956441">Wycisz wybraną stronę</translation> <translation id="4027804175521224372">(Nie wykorzystujesz wszystkich możliwości – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Ustawienia Flasha będą zachowane tylko do momentu zamknięcia Chrome.</translation> <translation id="4028467762035011525">Dodaj metody wprowadzania</translation> <translation id="4031179711345676612">Zezwolono na dostęp do mikrofonu</translation> <translation id="4031527940632463547">Zablokowano dostęp do czujników</translation> @@ -2789,7 +2783,6 @@ <translation id="4232375817808480934">Konfigurowanie Kerberos</translation> <translation id="4235200303672858594">Cały ekran</translation> <translation id="4235965441080806197">Anuluj logowanie</translation> -<translation id="4237773362828263530">Ustawienia zawierające symbol wieloznaczny „*” nie są już obsługiwane. Skontaktuj się z administratorem, by <ph name="BEGIN_LINK" />zmienić te ustawienia<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Przeczytaj tę kartę później}few{Przeczytaj te karty później}many{Przeczytaj te karty później}other{Przeczytaj te karty później}}</translation> <translation id="4242145785130247982">Funkcja nie obsługuje wielu certyfikatów klienta</translation> <translation id="4242533952199664413">Otwórz ustawienia</translation> @@ -3053,7 +3046,6 @@ <translation id="4548483925627140043">Nie znaleziono sygnału</translation> <translation id="4549791035683739768">Na kluczu bezpieczeństwa nie ma zapisanych żadnych odcisków palców</translation> <translation id="4551763574344810652">Naciśnij <ph name="MODIFIER_KEY_DESCRIPTION" />, by cofnąć</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Sieć <ph name="NETWORK_TYPE" />, siła sygnału <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Aby zmienić język, musisz ponownie uruchomić Chromebooka. <ph name="BEGIN_LINK_LEARN_MORE" />Więcej informacji<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Wersja rozszerzenia zewnętrznego jest starsza lub taka sama jak wersja obecna.</translation> @@ -3408,7 +3400,6 @@ <translation id="4974733135013075877">Wyjdź i aktywuj blokadę dostępu dla dzieci</translation> <translation id="4976009197147810135">Podziel pionowo</translation> <translation id="4977942889532008999">Potwierdź dostęp</translation> -<translation id="4978905460870207779">Strony mogą prosić o zgodę na używanie Flasha</translation> <translation id="4980805016576257426">To rozszerzenie zawiera złośliwe oprogramowanie.</translation> <translation id="4981449534399733132">Aby wyczyścić dane przeglądania ze wszystkich zsynchronizowanych urządzeń i z konta Google, <ph name="BEGIN_LINK" />zaloguj się<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Oprogramowanie urządzenia</translation> @@ -4179,7 +4170,6 @@ <translation id="5906732635754427568">Dane powiązane z tą aplikacją zostaną usunięte z urządzenia.</translation> <translation id="5908474332780919512">Uruchom aplikację po zalogowaniu</translation> <translation id="5908695239556627796">Szybkość przewijania kółkiem myszy</translation> -<translation id="5908769186679515905">Zablokuj uruchamianie Flasha na stronach</translation> <translation id="5910363049092958439">Zapisz gra&fikę jako...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> jest offline</translation> <translation id="5911533659001334206">Przeglądarka skrótów</translation> @@ -5832,7 +5822,6 @@ <translation id="7831491651892296503">Podczas konfigurowania sieci wystąpił błąd</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Godzina zakończenia</translation> -<translation id="783214144752121388">Zablokuj uruchamianie Flasha na stronach (zalecane)</translation> <translation id="7833720883933317473">Tutaj pojawią się zapisane słowa niestandardowe</translation> <translation id="7835178595033117206">Zakładka została usunięta</translation> <translation id="7836850009646241041">Jeszcze raz dotknij klucza bezpieczeństwa</translation> @@ -6060,7 +6049,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Ten plik jest zaszyfrowany. Poproś właściciela, by go odszyfrował.}few{Niektóre z tych plików są zaszyfrowane. Poproś właściciela, by je odszyfrował.}many{Niektóre z tych plików są zaszyfrowane. Poproś właściciela, by je odszyfrował.}other{Niektóre z tych plików są zaszyfrowane. Poproś właściciela, by je odszyfrował.}}</translation> <translation id="808894953321890993">Zmień hasło</translation> <translation id="8090234456044969073">Odczyt listy najczęściej odwiedzanych stron</translation> -<translation id="8092681102116274204">Ustawienia zawierające symbol wieloznaczny „*” nie są już obsługiwane. Aby <ph name="BEGIN_LINK" />zmienić te ustawienia<ph name="END_LINK" />, skontaktuj się z programistą rozszerzenia lub administratorem.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> nie odpowiada</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Zapisuj kopie zapasowe na Dysku Google, by móc łatwo i wygodnie przywrócić dane lub zmienić urządzenie. Kopie zapasowe zawierają dane aplikacji.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Kopie zapasowe są szyfrowane za pomocą hasła do Twojego konta Google i przesyłane do Google.<ph name="END_PARAGRAPH2" /> @@ -6155,7 +6143,6 @@ <translation id="8201717382574620700">Wybierz albumy z: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Wpisz hasło ponownie, by zaktualizować swój profil na urządzeniu <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Wysyła powiadomienia i sprawia, że ten komputer jest domyślnie używany do obsługi Wiadomości. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokuj Flasha (zalecane)</translation> <translation id="820568752112382238">Najczęściej odwiedzane strony</translation> <translation id="8206745257863499010">Bluesowy</translation> <translation id="8206859287963243715">Komórka</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 4c89662..9a80475b 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Parar</translation> <translation id="1272293450992660632">Os valores do PIN não correspondem.</translation> <translation id="1272978324304772054">Esta conta de usuário não pertence ao domínio no qual o dispositivo está inscrito. Para se inscrever em um domínio diferente, é preciso passar pela recuperação do dispositivo primeiro.</translation> -<translation id="1274977772557788323">Configurações de armazenamento do Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies e outros dados do site</translation> <translation id="1275718070701477396">Selecionado</translation> <translation id="1276994519141842946">Não foi possível desinstalar o app <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Seus favoritos, histórico e outras configurações serão sincronizados com sua Conta do Google.</translation> <translation id="1314565355471455267">VPN do Android</translation> <translation id="131461803491198646">Rede doméstica, não está em roaming</translation> -<translation id="1315056510003830387">Bloquear o uso do Flash</translation> <translation id="1316136264406804862">Pesquisando...</translation> <translation id="1316495628809031177">A sincronização está pausada</translation> <translation id="1317637799698924700">Sua base de encaixe funcionará no modo de compatibilidade com USB-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">O KDC não é compatível com esse tipo de criptografia</translation> <translation id="1984417487208496350">Sem proteção (não recomendado)</translation> <translation id="1987317783729300807">Contas</translation> -<translation id="1988494864246143197">Os sites geralmente usam Flash para reproduzir áudio, vídeo ou videogames. Não haverá mais compatibilidade com Flash Player a partir de dezembro de 2020.</translation> <translation id="1989112275319619282">Procurar</translation> <translation id="1990512225220753005">Não mostrar atalhos nesta página</translation> <translation id="1992397118740194946">Não definido</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Posicionamento de janelas</translation> <translation id="2881076733170862447">Quando você clicar na extensão</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> será reiniciado e redefinido temporariamente</translation> -<translation id="288387288628762616">Permitir o uso do Flash</translation> <translation id="2885378588091291677">Gerenciador de tarefas</translation> <translation id="2885729872133513017">Ocorreu um problema ao decodificar a resposta do servidor.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2082,6 +2078,7 @@ <translation id="3428419049384081277">Você está conectado</translation> <translation id="3428747202529429621">Protege você no Chrome e pode ser usado para melhorar a segurança em outros apps do Google quando sua conta está conectada</translation> <translation id="3428800329481094896">Buscando as chaves SSH do contêiner Linux</translation> +<translation id="3429271624041785769">Idiomas de conteúdo da Web</translation> <translation id="3429275422858276529">Adicionar esta página aos favoritos para encontrá-la mais facilmente depois</translation> <translation id="3432227430032737297">Remover todos os cookies mostrados</translation> <translation id="3432757130254800023">Enviar áudio e vídeo para telas na rede local</translation> @@ -2466,7 +2463,6 @@ <translation id="383669374481694771">Estas são informações gerais sobre este dispositivo e a forma como ele é usado, como nível da bateria, atividade de apps e do sistema e erros. Os dados serão usados para melhorar o Android, e algumas informações agregadas também ajudarão apps e parceiros do Google, como os desenvolvedores Android, a melhorar os apps e produtos deles.</translation> <translation id="3838085852053358637">Falha ao carregar extensão</translation> <translation id="3838486795898716504">Mais <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies e outros dados de site e plug-in</translation> <translation id="383891835335927981">Nenhum site teve o zoom aumentado ou diminuído</translation> <translation id="3839509547554145593">Ativar aceleração de rolagem do mouse</translation> <translation id="3839516600093027468">Sempre impedir que <ph name="HOST" /> veja a área de transferência</translation> @@ -2508,6 +2504,7 @@ <translation id="3879748587602334249">Gerenciador de downloads</translation> <translation id="3881478300875776315">Mostrar menos linhas</translation> <translation id="3882165008614329320">Vídeo existente de uma câmera ou de um arquivo</translation> +<translation id="3884152383786131369">Conteúdos da Web disponíveis em vários idiomas usarão o primeiro idioma compatível desta lista. Estas preferências são sincronizadas com as configurações do navegador. <ph name="BEGIN_LINK_LEARN_MORE" />Saiba mais<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Sua solicitação para acessar este site foi enviada para <ph name="NAME" /></translation> <translation id="3888550877729210209">Tomando notas com <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Ativar a Sincronização do Chrome para usar o recurso Sincronizar Wi-Fi</translation> @@ -2640,7 +2637,6 @@ <translation id="4023146161712577481">Determinando a configuração do dispositivo.</translation> <translation id="4025039777635956441">Desativar som do site selecionado</translation> <translation id="4027804175521224372">(Não perca - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Suas configurações de Flash ficarão salvas até que você saia do Chrome.</translation> <translation id="4028467762035011525">Adicionar métodos de entrada</translation> <translation id="4031179711345676612">Microfone permitido</translation> <translation id="4031527940632463547">Sensores bloqueados</translation> @@ -2792,7 +2788,6 @@ <translation id="4232375817808480934">Configurar o Kerberos</translation> <translation id="4235200303672858594">Tela cheia</translation> <translation id="4235965441080806197">Cancelar login</translation> -<translation id="4237773362828263530">Configurações com caracteres curinga "*" não são mais compatíveis. Entre em contato com seu administrador para <ph name="BEGIN_LINK" />mudar essas configurações<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Ler guia mais tarde}one{Ler guia mais tarde}other{Ler guias mais tarde}}</translation> <translation id="4242145785130247982">Múltiplos certificados de clientes não são aceitos.</translation> <translation id="4242533952199664413">Abrir configurações.</translation> @@ -3056,7 +3051,6 @@ <translation id="4548483925627140043">Sinal não encontrado</translation> <translation id="4549791035683739768">Sua chave de segurança não tem nenhuma impressão digital armazenada</translation> <translation id="4551763574344810652">Pressione <ph name="MODIFIER_KEY_DESCRIPTION" /> para desfazer</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Rede <ph name="NETWORK_TYPE" />, intensidade do sinal em <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Será necessário reiniciar o Chromebook para mudar o idioma do dispositivo. <ph name="BEGIN_LINK_LEARN_MORE" />Saiba mais<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">A extensão externa está na mesma versão ou em uma versão anterior à existente.</translation> @@ -3411,7 +3405,6 @@ <translation id="4974733135013075877">Sair e bloquear</translation> <translation id="4976009197147810135">Divisão vertical</translation> <translation id="4977942889532008999">Confirmar acesso</translation> -<translation id="4978905460870207779">Os sites podem pedir para usar Flash</translation> <translation id="4980805016576257426">Esta extensão contém malware.</translation> <translation id="4981449534399733132">Para limpar os dados de navegação de todos os dispositivos sincronizados e da sua Conta do Google, <ph name="BEGIN_LINK" />faça login<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Software do dispositivo</translation> @@ -4045,7 +4038,7 @@ <translation id="5739235828260127894">Aguardando verificação. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Muito grande</translation> <translation id="5740328398383587084">Compartilhar por proximidade</translation> -<translation id="5740820643029013514">Usar mensagens mais silenciosas (recomendado)</translation> +<translation id="5740820643029013514">Usar mensagens mais discretas (recomendado)</translation> <translation id="574104302965107104">Espelhamento da tela</translation> <translation id="574209121243317957">Tom da fala</translation> <translation id="5746169159649715125">Salvar como PDF</translation> @@ -4183,7 +4176,6 @@ <translation id="5906732635754427568">Os dados associados a este app serão removidos deste dispositivo.</translation> <translation id="5908474332780919512">Iniciar app ao fazer login</translation> <translation id="5908695239556627796">Velocidade de rolagem do mouse</translation> -<translation id="5908769186679515905">Impedir que sites executem Flash</translation> <translation id="5910363049092958439">Sal&var imagem como...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> está off-line</translation> <translation id="5911533659001334206">Visualizador de atalhos</translation> @@ -4367,6 +4359,7 @@ <translation id="6112727384379533756">Adicionar um tíquete</translation> <translation id="6112931163620622315">Verifique seu smartphone</translation> <translation id="6112952769866305444">Editar pessoa, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Defina seu mecanismo de pesquisa padrão para o navegador Chrome e o acesso rápido do <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Para usar o Smart Lock, acesse o perfil de usuário principal no smartphone</translation> <translation id="6116921718742659598">Alterar configurações de idioma e de entrada</translation> <translation id="6120205520491252677">Fixar esta página na tela inicial...</translation> @@ -5234,6 +5227,7 @@ <translation id="7140928199327930795">Nenhum outro dispositivo disponível.</translation> <translation id="7141105143012495934">O login falhou porque não foi possível recuperar detalhes da sua conta. Entre em contato com o administrador ou tente novamente.</translation> <translation id="7143207342074048698">Conectando</translation> +<translation id="7143358760238281735">Nenhum app disponível</translation> <translation id="7144878232160441200">Tentar novamente</translation> <translation id="714876143603641390">Conectividade LAN</translation> <translation id="7149893636342594995">Últimas 24 horas</translation> @@ -5705,6 +5699,7 @@ <translation id="7707922173985738739">Usar dados móveis</translation> <translation id="7709152031285164251">Falha - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Transmitir…</translation> +<translation id="7712739869553853093">Caixa de diálogo da visualização de impressão</translation> <translation id="7712836429117959503">Extensão desconhecida com o código <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Cookies de <ph name="DOMAIN" /> permitidos</translation> <translation id="7714464543167945231">Certificado</translation> @@ -5834,7 +5829,6 @@ <translation id="7831491651892296503">Erro ao configurar a rede</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Horário de término</translation> -<translation id="783214144752121388">Impedir que sites executem Flash (recomendado)</translation> <translation id="7833720883933317473">As palavras personalizadas salvas serão exibidas aqui</translation> <translation id="7835178595033117206">Favorito removido</translation> <translation id="7836850009646241041">Tente tocar na chave de segurança novamente</translation> @@ -6062,7 +6056,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{O arquivo está criptografado. Peça para o proprietário descriptografar.}one{O arquivo está criptografado. Peça para o proprietário descriptografar.}other{Alguns dos arquivos estão criptografados. Peça para o proprietário descriptografar.}}</translation> <translation id="808894953321890993">Alterar senha</translation> <translation id="8090234456044969073">Ler uma lista dos seus websites mais visitados</translation> -<translation id="8092681102116274204">Configurações com caracteres curinga "*" não são mais compatíveis. Entre em contato com o desenvolvedor da extensão ou com seu administrador para <ph name="BEGIN_LINK" />mudar essas configurações<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">O plug-in <ph name="PLUGIN_NAME" /> não está respondendo</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Fazer backup no Google Drive. Restaure seus dados com facilidade ou troque de dispositivo a qualquer momento. O backup inclui dados de apps.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Os backups são enviados ao Google e criptografados usando a senha da sua Conta do Google.<ph name="END_PARAGRAPH2" /> @@ -6157,7 +6150,6 @@ <translation id="8201717382574620700">Selecionar álbuns de <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Digite sua senha novamente para atualizar o perfil do <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Enviar notificações para você e lembrar por padrão deste computador para o app Mensagens. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Bloquear Flash (recomendado)</translation> <translation id="820568752112382238">Sites mais visitados</translation> <translation id="8206745257863499010">Chorinho</translation> <translation id="8206859287963243715">Celular</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index 9f7bb31..ec192d08 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Parar</translation> <translation id="1272293450992660632">Os valores de PIN não correspondem.</translation> <translation id="1272978324304772054">Esta conta de utilizador não pertence ao domínio no qual o dispositivo está inscrito. Se pretender inscrever-se num outro domínio, necessita de efetuar a recuperação do dispositivo em primeiro lugar.</translation> -<translation id="1274977772557788323">Definições de armazenamento do Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies e outros dados do site</translation> <translation id="1275718070701477396">Selecionado</translation> <translation id="1276994519141842946">Não foi possível instalar a app <ph name="APP_NAME" />.</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Os seus marcadores, o seu histórico e outras definições estão a ser sincronizados com a sua Conta Google.</translation> <translation id="1314565355471455267">VPN Android</translation> <translation id="131461803491198646">Rede doméstica, sem roaming</translation> -<translation id="1315056510003830387">Sem autorização para utilizar o Flash</translation> <translation id="1316136264406804862">A pesquisar...</translation> <translation id="1316495628809031177">A sincronização está em pausa.</translation> <translation id="1317637799698924700">A estação de ancoragem vai funcionar no modo compatível com USB tipo C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">O KDC não suporta o tipo de encriptação.</translation> <translation id="1984417487208496350">Sem proteção (não recomendado)</translation> <translation id="1987317783729300807">Contas</translation> -<translation id="1988494864246143197">Normalmente, os sites utilizam Flash para reproduzir áudio, vídeo ou videojogos. O leitor de Flash deixará de ser suportado depois de dezembro de 2020.</translation> <translation id="1989112275319619282">Procurar</translation> <translation id="1990512225220753005">Não mostre atalhos nesta página</translation> <translation id="1992397118740194946">Não definida</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">Posicionamento de janelas</translation> <translation id="2881076733170862447">Quando clica na extensão</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> é reiniciado e reposto momentaneamente</translation> -<translation id="288387288628762616">Com autorização para utilizar o Flash</translation> <translation id="2885378588091291677">Gestor de tarefas</translation> <translation id="2885729872133513017">Ocorreu um problema ao descodificar a resposta do servidor.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">Estas são informações gerais acerca deste dispositivo e da forma como o utiliza (como o nível da bateria, a atividade do sistema e de apps e erros). Os dados são utilizados para melhorar o Android e algumas informações agregadas também ajudarão as apps e os parceiros Google, como os programadores Android, a melhorar os respetivos produtos e apps.</translation> <translation id="3838085852053358637">Falha ao carregar a extensão</translation> <translation id="3838486795898716504">Mais <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies e outros dados de sites e plug-ins</translation> <translation id="383891835335927981">O zoom dos sites não foi aumentado nem diminuído</translation> <translation id="3839509547554145593">Ativar aceleração da deslocação do rato</translation> <translation id="3839516600093027468">Impedir sempre <ph name="HOST" /> de ver a área de transferência</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">A determinar a configuração do dispositivo.</translation> <translation id="4025039777635956441">Desativar o som do site selecionado</translation> <translation id="4027804175521224372">(Está a perder - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">As definições do Flash são mantidas até sair do Chrome.</translation> <translation id="4028467762035011525">Adicionar métodos de introdução</translation> <translation id="4031179711345676612">Microfone permitido</translation> <translation id="4031527940632463547">Sensores bloqueados</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Configure o Kerberos</translation> <translation id="4235200303672858594">Ecrã inteiro</translation> <translation id="4235965441080806197">Cancelar início de sessão</translation> -<translation id="4237773362828263530">As definições com carateres universais "*" já não são suportadas. Contacte o seu administrador para <ph name="BEGIN_LINK" />alterar estas definições<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Ler separador mais tarde}other{Ler separadores mais tarde}}</translation> <translation id="4242145785130247982">Não são suportados certificados de vários clientes.</translation> <translation id="4242533952199664413">Abrir definições</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Sinal não encontrado.</translation> <translation id="4549791035683739768">A sua chave de segurança não tem impressões digitais armazenadas.</translation> <translation id="4551763574344810652">Prima <ph name="MODIFIER_KEY_DESCRIPTION" /> para anular</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Rede <ph name="NETWORK_TYPE" />, intensidade do sinal <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Tem de reiniciar o seu Chromebook para alterar o idioma do dispositivo. <ph name="BEGIN_LINK_LEARN_MORE" />Saiba mais<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">A extensão externa tem a mesma versão ou uma versão inferior à existente.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Sair e bloqueio para crianças</translation> <translation id="4976009197147810135">Divisão vertical</translation> <translation id="4977942889532008999">Confirmar acesso</translation> -<translation id="4978905460870207779">Os sites podem solicitar a utilização de Flash</translation> <translation id="4980805016576257426">Esta extensão contém um software malicioso.</translation> <translation id="4981449534399733132">Para limpar os dados de navegação de todos os seus dispositivos sincronizados e da sua Conta Google, <ph name="BEGIN_LINK" />inicie a sessão<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Software do dispositivo</translation> @@ -4184,7 +4175,6 @@ <translation id="5906732635754427568">Os dados associados a esta aplicação serão removidos deste dispositivo.</translation> <translation id="5908474332780919512">Iniciar app quando inicia sessão</translation> <translation id="5908695239556627796">Velocidade de deslocação do rato</translation> -<translation id="5908769186679515905">Impedir que os sites executem o Flash</translation> <translation id="5910363049092958439">Guard&ar Imagem Como...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> está offline.</translation> <translation id="5911533659001334206">Visualizador de atalhos</translation> @@ -5837,7 +5827,6 @@ <translation id="7831491651892296503">Ocorreu um erro ao configurar a rede.</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Hora de fim</translation> -<translation id="783214144752121388">Impedir que os sites executem o Flash (recomendado)</translation> <translation id="7833720883933317473">As palavras personalizadas guardadas aparecem aqui</translation> <translation id="7835178595033117206">Marcador removido</translation> <translation id="7836850009646241041">Experimente tocar novamente na sua chave de segurança.</translation> @@ -6065,7 +6054,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Este ficheiro está encriptado. Peça ao proprietário para desencriptar.}other{Alguns destes ficheiros estão encriptados. Peça ao proprietário para desencriptar.}}</translation> <translation id="808894953321890993">Alterar palavra-passe</translation> <translation id="8090234456044969073">Ler uma lista dos Sites visitados com mais frequência</translation> -<translation id="8092681102116274204">As definições com carateres universais "*" já não são suportadas. Contacte o programador da extensão ou o seu administrador para <ph name="BEGIN_LINK" />alterar estas definições<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">O plug-in <ph name="PLUGIN_NAME" /> não está a responder.</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Faça uma cópia de segurança no Google Drive. Restaure os dados ou mude de dispositivo facilmente em qualquer altura. A cópia de segurança inclui dados de apps.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />As cópias de segurança são carregadas para a Google e encriptadas com a palavra-passe da sua Conta Google.<ph name="END_PARAGRAPH2" /> @@ -6159,7 +6147,6 @@ <translation id="8201717382574620700">Selecionar álbuns do <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Introduza a sua palavra-passe novamente para atualizar o perfil do <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Enviar-lhe notificações e memorizar este computador para a aplicação Mensagens como predefinição. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Bloquear Flash (recomendado)</translation> <translation id="820568752112382238">Sites mais visitados</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">Telemóvel</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index e1a7936d..c4a1e009 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Oprește</translation> <translation id="1272293450992660632">Valorile PIN nu se potrivesc.</translation> <translation id="1272978324304772054">Acest cont de utilizator nu aparține domeniului pe care este înscris dispozitivul. Dacă doriți să vă înscrieți pe un alt domeniu, trebuie să parcurgeți mai întâi procesul de recuperare a dispozitivului.</translation> -<translation id="1274977772557788323">Setări privind stocarea Adobe Flash Player</translation> <translation id="1274997165432133392">Cookie-urile și alte date privind site-urile</translation> <translation id="1275718070701477396">Selectat</translation> <translation id="1276994519141842946">Nu s-a putut dezinstala <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Marcajele, istoricul și alte setări vor fi sincronizate cu Contul Google</translation> <translation id="1314565355471455267">VPN Android</translation> <translation id="131461803491198646">Rețeaua de domiciliu, nu de roaming</translation> -<translation id="1315056510003830387">Nu au permisiunea de a folosi Flash</translation> <translation id="1316136264406804862">Se caută...</translation> <translation id="1316495628809031177">Sincronizarea este întreruptă</translation> <translation id="1317637799698924700">Stația de andocare va funcționa în modul compatibil cu USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC nu acceptă tipul de criptare</translation> <translation id="1984417487208496350">Fără protecție (nu este recomandat)</translation> <translation id="1987317783729300807">Conturi</translation> -<translation id="1988494864246143197">Site-urile folosesc de obicei Flash pentru a reda conținut audio, video sau jocuri video. Flash Player nu va mai fi acceptat după decembrie 2020.</translation> <translation id="1989112275319619282">Răsfoiește</translation> <translation id="1990512225220753005">Nu afișa comenzi rapide pe această pagină</translation> <translation id="1992397118740194946">Nu este setat</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Poziționarea ferestrelor</translation> <translation id="2881076733170862447">Când dai clic pe extensie</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> va reporni și se va reseta imediat</translation> -<translation id="288387288628762616">Au permisiunea de a folosi Flash</translation> <translation id="2885378588091291677">Manager de activități</translation> <translation id="2885729872133513017">A apărut o problemă la decodarea răspunsului serverului.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Te-ai conectat!</translation> <translation id="3428747202529429621">Te protejează în Chrome și poate fi folosită pentru a spori securitatea în alte aplicații Google dacă te-ai conectat</translation> <translation id="3428800329481094896">Se preiau cheile SSH din containerul Linux</translation> +<translation id="3429271624041785769">Limbile conținutului web</translation> <translation id="3429275422858276529">Marchează această pagină pentru a o găsi ușor mai târziu</translation> <translation id="3432227430032737297">Elimină-le pe cele afișate</translation> <translation id="3432757130254800023">Trimite conținut audio și video pe afișajele din rețeaua locală</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Acestea sunt informații generale despre dispozitiv și despre modul în care îl folosești (de exemplu, nivelul bateriei, activitatea pe sistem și în aplicații și erorile). Datele vor fi folosite pentru îmbunătățirea Android și unele informații cumulate vor ajuta aplicațiile și partenerii Google, cum ar fi dezvoltatorii Android, să își îmbunătățească aplicațiile și produsele.</translation> <translation id="3838085852053358637">Extensia nu s-a încărcat</translation> <translation id="3838486795898716504">Mai multe <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookie-urile și alte date privind site-ul și pluginul</translation> <translation id="383891835335927981">Nu s-a mărit sau micșorat niciun site</translation> <translation id="3839509547554145593">Activează accelerarea derulării mouse-ului</translation> <translation id="3839516600093027468">Blochează întotdeauna accesul <ph name="HOST" /> la clipboard</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Manager de descărcări</translation> <translation id="3881478300875776315">Afișează mai puține rânduri</translation> <translation id="3882165008614329320">Videoclip existent din camera foto sau din fișier</translation> +<translation id="3884152383786131369">Conținutul web care este disponibil în mai multe limbi va folosi prima limbă acceptată din această listă. Aceste preferințe se sincronizează cu setările browserului. <ph name="BEGIN_LINK_LEARN_MORE" />Află mai multe<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Solicitarea de a accesa acest site a fost trimisă către <ph name="NAME" /></translation> <translation id="3888550877729210209">Scriere de notițe cu <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Activează Sincronizarea Chrome pentru a folosi Sincronizarea Wi-Fi</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Se determină configurația dispozitivului.</translation> <translation id="4025039777635956441">Dezactivează sunetul pentru site-ul selectat</translation> <translation id="4027804175521224372">(Iată ce ratați – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Setările Flash vor fi păstrate până când ieși din Chrome.</translation> <translation id="4028467762035011525">Adaugă metode de introducere a textului</translation> <translation id="4031179711345676612">Microfonul este permis</translation> <translation id="4031527940632463547">Senzorii sunt blocați</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Configurează Kerberos</translation> <translation id="4235200303672858594">Întregul ecran</translation> <translation id="4235965441080806197">Anulează conectarea</translation> -<translation id="4237773362828263530">Setările cu metacaractere „*” nu mai sunt acceptate. Contactează administratorul pentru a <ph name="BEGIN_LINK" />modifica aceste setări<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Citește fila mai târziu}few{Citește filele mai târziu}other{Citește filele mai târziu}}</translation> <translation id="4242145785130247982">Nu se acceptă mai multe certificate de client</translation> <translation id="4242533952199664413">Deschide setările</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Nu s-a detectat semnal</translation> <translation id="4549791035683739768">Cheia de securitate nu are amprente stocate.</translation> <translation id="4551763574344810652">Apasă pe <ph name="MODIFIER_KEY_DESCRIPTION" /> pentru a anula</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Rețea <ph name="NETWORK_TYPE" />, puterea semnalului <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Trebuie să repornești Chromebookul pentru a schimba limba dispozitivului. <ph name="BEGIN_LINK_LEARN_MORE" />Află mai multe<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Extensia externă este în aceeași versiune sau într-o versiune inferioară celei existente.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Ieși și blochează</translation> <translation id="4976009197147810135">Împarte pe verticală</translation> <translation id="4977942889532008999">Confirmați accesul</translation> -<translation id="4978905460870207779">Site-urile pot solicita permisiunea de a folosi Flash</translation> <translation id="4980805016576257426">Această extensie conține programe malware.</translation> <translation id="4981449534399733132">Pentru a șterge datele de navigare de pe toate dispozitivele sincronizate și din Contul Google, <ph name="BEGIN_LINK" />conectează-te<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Software-ul de pe dispozitiv</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Datele asociate acestei aplicații vor fi eliminate de pe dispozitiv.</translation> <translation id="5908474332780919512">Pornește aplicația când te conectezi</translation> <translation id="5908695239556627796">Viteza de derulare a mouse-ului</translation> -<translation id="5908769186679515905">Nu permite site-urilor să ruleze Flash</translation> <translation id="5910363049092958439">Sal&vează imaginea ca...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> este offline</translation> <translation id="5911533659001334206">Vizualizatorul de comenzi rapide</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Adaugă un tichet</translation> <translation id="6112931163620622315">Verifică pe telefon</translation> <translation id="6112952769866305444">Editează persoana, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Setează motorul de căutare prestabilit pentru browserul Chrome și lansatorul pentru <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Pentru a folosi Smart Lock, comută la profilul de utilizator principal de pe telefon</translation> <translation id="6116921718742659598">Schimbați setările pentru limbă și introducere de text</translation> <translation id="6120205520491252677">Fixați această pagină pe ecranul de pornire...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Nu există alte dispozitive disponibile.</translation> <translation id="7141105143012495934">Nu s-a conectat, deoarece nu s-au putut prelua detaliile contului. Contactează administratorul sau încearcă din nou.</translation> <translation id="7143207342074048698">Se conectează</translation> +<translation id="7143358760238281735">Nicio aplicație disponibilă</translation> <translation id="7144878232160441200">Reîncearcă</translation> <translation id="714876143603641390">Conectivitatea prin LAN</translation> <translation id="7149893636342594995">Ultimele 24 de ore</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">va folosi datele mobile;</translation> <translation id="7709152031285164251">Nu a reușit – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Proiectează…</translation> +<translation id="7712739869553853093">Caseta de dialog pentru previzualizarea înainte de printare</translation> <translation id="7712836429117959503">Extensie necunoscută cu ID-ul <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Se permit cookie-urile de la <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">Certificat</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Eroare la configurarea rețelei</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Ora de încheiere</translation> -<translation id="783214144752121388">Împiedică site-urile să ruleze Flash (recomandat)</translation> <translation id="7833720883933317473">Cuvintele personalizate salvate vor fi afișate aici</translation> <translation id="7835178595033117206">Marcajul a fost eliminat</translation> <translation id="7836850009646241041">Atinge din nou cheia de securitate</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Fișierul este criptat. Solicită-i proprietarului să îl decripteze.}few{Unele dintre aceste fișiere sunt criptate. Solicită-i proprietarului să le decripteze.}other{Unele dintre aceste fișiere sunt criptate. Solicită-i proprietarului să le decripteze.}}</translation> <translation id="808894953321890993">Schimbă parola</translation> <translation id="8090234456044969073">Citește o listă a site-urilor vizitate cel mai frecvent</translation> -<translation id="8092681102116274204">Setările cu metacaractere „*” nu mai sunt acceptate. Contactează dezvoltatorul extensiei sau administratorul pentru a <ph name="BEGIN_LINK" />modifica aceste setări<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> nu răspunde</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Fă backup în Google Drive. Restabilește datele sau schimbă dispozitivul cu ușurință, în orice moment. Backupul include datele aplicațiilor.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Backupurile sunt încărcate pe serverele Google și sunt criptate folosind parola pentru Contul Google.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">Selectează albumele <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Reintrodu parola pentru a actualiza profilul <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Îți trimite notificări și are ca setare prestabilită reținerea acestui computer pentru Messages <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blochează Flash (recomandat)</translation> <translation id="820568752112382238">Cele mai accesate site-uri</translation> <translation id="8206745257863499010">Albăstrel</translation> <translation id="8206859287963243715">Celular</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index 29a51e9f..7549ac6 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Остановить</translation> <translation id="1272293450992660632">PIN-коды не совпадают.</translation> <translation id="1272978324304772054">Этот аккаунт не относится к домену, в котором зарегистрировано устройство. Чтобы зарегистрироваться в другом домене, сначала восстановите настройки устройства.</translation> -<translation id="1274977772557788323">Настройки хранилища Adobe Flash Player</translation> <translation id="1274997165432133392">Файлы cookie и другие данные сайтов</translation> <translation id="1275718070701477396">Выбрано</translation> <translation id="1276994519141842946">Не удалось удалить <ph name="APP_NAME" />.</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Ваши закладки, история просмотров и настройки синхронизируются с аккаунтом Google.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Домашняя сеть, без роуминга</translation> -<translation id="1315056510003830387">Запретить сайтам использовать Flash</translation> <translation id="1316136264406804862">Поиск...</translation> <translation id="1316495628809031177">Синхронизация приостановлена.</translation> <translation id="1317637799698924700">Док-станция будет работать в режиме совместимости с USB Type-C.</translation> @@ -877,7 +875,6 @@ <translation id="197989455406964291">Центр распространения ключей (KDC) не поддерживает такой тип шифрования.</translation> <translation id="1984417487208496350">Защита отключена (не рекомендуется)</translation> <translation id="1987317783729300807">Аккаунты</translation> -<translation id="1988494864246143197">Обычно сайты используют Flash, чтобы воспроизводить аудио- и видеоконтент или запускать видеоигры. Поддержка Flash Player будет прекращена в декабре 2020 года.</translation> <translation id="1989112275319619282">Выбрать</translation> <translation id="1990512225220753005">Не показывать ярлыки на этой странице</translation> <translation id="1992397118740194946">Не задано</translation> @@ -1647,7 +1644,6 @@ <translation id="2880660355386638022">Размещение окон</translation> <translation id="2881076733170862447">При нажатии на расширение</translation> <translation id="2882943222317434580">Сейчас будет выполнен перезапуск и сброс настроек <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> -<translation id="288387288628762616">Разрешить сайтам использовать Flash</translation> <translation id="2885378588091291677">Диспетчер задач</translation> <translation id="2885729872133513017">Не удалось расшифровать ответ сервера.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2079,6 +2075,7 @@ <translation id="3428419049384081277">Вы вошли в аккаунт</translation> <translation id="3428747202529429621">Защищает вас в браузере Chrome и может использоваться для повышения безопасности в других приложениях Google при входе в аккаунт</translation> <translation id="3428800329481094896">Получение SSH-ключей для контейнера Linux</translation> +<translation id="3429271624041785769">Языки веб-контента</translation> <translation id="3429275422858276529">Чтобы в будущем эту страницу было проще найти, добавьте ее в закладки</translation> <translation id="3432227430032737297">Удалить все показанные файлы cookie</translation> <translation id="3432757130254800023">Отправлять аудио и видео на устройства в локальной сети</translation> @@ -2463,7 +2460,6 @@ <translation id="383669374481694771">Мы будем получать общие сведения о работе устройства, например об уровне заряда батареи, ошибках и действиях в системе и приложениях. Они помогут нам усовершенствовать Android, а наши партнеры смогут использовать некоторые агрегированные данные, чтобы улучшать свои приложения и другие продукты.</translation> <translation id="3838085852053358637">Ошибка загрузки</translation> <translation id="3838486795898716504">Другие страницы с заголовком <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Файлы cookie, а также другие данные сайтов и плагинов</translation> <translation id="383891835335927981">Нет сайтов с измененным масштабом</translation> <translation id="3839509547554145593">Включить ускорение прокрутки мыши</translation> <translation id="3839516600093027468">Никогда не открывать сайту <ph name="HOST" /> доступ к буферу обмена</translation> @@ -2505,6 +2501,7 @@ <translation id="3879748587602334249">Диспетчер загрузки</translation> <translation id="3881478300875776315">Показать меньше строк</translation> <translation id="3882165008614329320">Видео с камеры или из файла</translation> +<translation id="3884152383786131369">Для веб-контента, доступного на нескольких языках, будет использоваться первый подходящий вариант из списка ниже. Эти настройки синхронизированы с настройками браузера. <ph name="BEGIN_LINK_LEARN_MORE" />Подробнее…<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Ваш запрос на доступ к сайту отправлен пользователю <ph name="NAME" /></translation> <translation id="3888550877729210209">Заметки в приложении "<ph name="LOCK_SCREEN_APP_NAME" />"</translation> <translation id="3890064827463908288">Чтобы использовать функцию "Синхронизация Wi-Fi", включите синхронизацию Chrome</translation> @@ -2637,7 +2634,6 @@ <translation id="4023146161712577481">Определение конфигурации устройства.</translation> <translation id="4025039777635956441">Отключить звук на выбранном сайте</translation> <translation id="4027804175521224372">(Не упустите возможность – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Когда вы закроете браузер, настройки Adobe Flash Player будут сброшены.</translation> <translation id="4028467762035011525">Добавить способы ввода</translation> <translation id="4031179711345676612">Доступ к микрофону разрешен</translation> <translation id="4031527940632463547">Использование датчиков запрещено</translation> @@ -2789,7 +2785,6 @@ <translation id="4232375817808480934">Настройка Kerberos</translation> <translation id="4235200303672858594">Полноэкранный режим</translation> <translation id="4235965441080806197">Отменить вход</translation> -<translation id="4237773362828263530">Подстановочный знак * в параметрах больше не поддерживается. Если вам нужно <ph name="BEGIN_LINK" />изменить эти параметры<ph name="END_LINK" />, свяжитесь со своим администратором.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Читать вкладку позже}one{Читать вкладки позже}few{Читать вкладки позже}many{Читать вкладки позже}other{Читать вкладки позже}}</translation> <translation id="4242145785130247982">Использование нескольких сертификатов клиента не поддерживается.</translation> <translation id="4242533952199664413">Открыть настройки</translation> @@ -3053,7 +3048,6 @@ <translation id="4548483925627140043">Отсутствует сигнал Wi-Fi.</translation> <translation id="4549791035683739768">На вашем электронном ключе нет сохраненных отпечатков пальцев.</translation> <translation id="4551763574344810652">Чтобы отменить действие, нажмите <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Сеть <ph name="NETWORK_TYPE" />, уровень сигнала – <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Чтобы изменить язык устройства, нужно перезапустить Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Подробнее…<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Внешнее расширение не новее существующего.</translation> @@ -3408,7 +3402,6 @@ <translation id="4974733135013075877">Выйти и заблокировать</translation> <translation id="4976009197147810135">Разделить по вертикали</translation> <translation id="4977942889532008999">Подтверждение доступа</translation> -<translation id="4978905460870207779">Разрешить сайтам отправлять запрос на использование Flash</translation> <translation id="4980805016576257426">Это расширение содержит вредоносное ПО.</translation> <translation id="4981449534399733132">Чтобы удалить данные о работе в браузере со всех синхронизированных устройств и из аккаунта Google, <ph name="BEGIN_LINK" />войдите в систему<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">ПО на устройстве</translation> @@ -4179,7 +4172,6 @@ <translation id="5906732635754427568">Данные, связанные с этим приложением, будут удалены с устройства.</translation> <translation id="5908474332780919512">Запускать при входе</translation> <translation id="5908695239556627796">Скорость прокрутки (для мыши)</translation> -<translation id="5908769186679515905">Блокировать Flash на сайтах</translation> <translation id="5910363049092958439">Сохранить изображение как...</translation> <translation id="5910726859585389579">Устройство <ph name="DEVICE_TYPE" /> не подключено к Интернету</translation> <translation id="5911533659001334206">Просмотр ярлыков</translation> @@ -4363,6 +4355,7 @@ <translation id="6112727384379533756">Добавить билет</translation> <translation id="6112931163620622315">Проверьте телефон</translation> <translation id="6112952769866305444">Изменить профиль пользователя <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Выберите поисковую систему по умолчанию для браузера Chrome и панели запуска на устройстве <ph name="DEVICE_TYPE" />.</translation> <translation id="6113942107547980621">Чтобы использовать Smart Lock, включите основной профиль</translation> <translation id="6116921718742659598">Изменение настроек языка и метода ввода</translation> <translation id="6120205520491252677">Прикрепить эту страницу к экрану запуска…</translation> @@ -5229,6 +5222,7 @@ <translation id="7140928199327930795">Нет других доступных устройств.</translation> <translation id="7141105143012495934">Ошибка входа: не удалось получить данные аккаунта. Обратитесь к администратору или повторите попытку.</translation> <translation id="7143207342074048698">Подключение</translation> +<translation id="7143358760238281735">Нет приложений.</translation> <translation id="7144878232160441200">Повторить</translation> <translation id="714876143603641390">Подключение к локальной сети</translation> <translation id="7149893636342594995">Последние 24 часа</translation> @@ -5700,6 +5694,7 @@ <translation id="7707922173985738739">Использовать мобильный Интернет</translation> <translation id="7709152031285164251">Ошибка: <ph name="INTERRUPT_REASON" />.</translation> <translation id="7710568461918838723">&Трансляция...</translation> +<translation id="7712739869553853093">Диалоговое окно предварительного просмотра при печати</translation> <translation id="7712836429117959503">Неизвестное расширение с идентификатором <ph name="EXTENSION_ID" />.</translation> <translation id="7714307061282548371">Файлы cookie с сайта <ph name="DOMAIN" /> разрешены</translation> <translation id="7714464543167945231">Сертификат</translation> @@ -5829,7 +5824,6 @@ <translation id="7831491651892296503">Ошибка при настройке сети</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Время окончания</translation> -<translation id="783214144752121388">Запретить сайтам запускать Flash (рекомендуется)</translation> <translation id="7833720883933317473">Здесь появятся сохраненные специальные слова</translation> <translation id="7835178595033117206">Закладка удалена</translation> <translation id="7836850009646241041">Прикоснитесь к сканеру отпечатков пальцев на электронном ключе ещё раз.</translation> @@ -6057,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Этот файл зашифрован. Попросите владельца его расшифровать.}one{Некоторые файлы зашифрованы. Попросите владельца их расшифровать.}few{Некоторые файлы зашифрованы. Попросите владельца их расшифровать.}many{Некоторые файлы зашифрованы. Попросите владельца их расшифровать.}other{Некоторые файлы зашифрованы. Попросите владельца их расшифровать.}}</translation> <translation id="808894953321890993">Сменить пароль</translation> <translation id="8090234456044969073">Список самых посещаемых сайтов</translation> -<translation id="8092681102116274204">Подстановочный знак * в параметрах больше не поддерживается. Если вам нужно <ph name="BEGIN_LINK" />изменить эти параметры<ph name="END_LINK" />, свяжитесь с разработчиком расширения или со своим администратором.</translation> <translation id="8093359998839330381">Плагин <ph name="PLUGIN_NAME" /> не отвечает</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Резервное копирование на Google Диск. Позволяет в любой момент восстановить данные (в том числе данные приложений) или перенести их на новое устройство.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Резервные копии загружаются в Google и шифруются с помощью пароля вашего аккаунта Google.<ph name="END_PARAGRAPH2" /> @@ -6151,7 +6144,6 @@ <translation id="8201717382574620700">Выбрать альбомы здесь: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Чтобы обновить профиль устройства <ph name="DEVICE_TYPE" />, введите пароль ещё раз</translation> <translation id="8203732864715032075">Показывать на этом компьютере уведомления о сообщениях, полученных на телефоне. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Блокировать Flash (рекомендуется)</translation> <translation id="820568752112382238">Часто открываемые сайты</translation> <translation id="8206745257863499010">Блюз</translation> <translation id="8206859287963243715">Сотовый</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb index a8beae46..a2f960a8 100644 --- a/chrome/app/resources/generated_resources_si.xtb +++ b/chrome/app/resources/generated_resources_si.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">නවතන්න</translation> <translation id="1272293450992660632">රහස් අංක අගයවල් නොගැළපෙති.</translation> <translation id="1272978324304772054">මෙම පරිශීලක ගිනුම උපාංගය බඳවාගෙන ඇති වසමට අයත් නොවේ. ඔබට වෙනත් වසමක් හා බැඳීමට අවශ්ය නම් ඔබට ප්රථමයෙන් උපාංග ප්රත්යාරම්භට යෑමට සිදුවේ.</translation> -<translation id="1274977772557788323">Adobe Flash Player ආචයන සැකසීම්</translation> <translation id="1274997165432133392">කුකී සහ වෙනත් අඩවි දත්ත</translation> <translation id="1275718070701477396">තෝරාගත්</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> අස්ථාපන කළ නොහැකි විය</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">ඔබේ පිටු සලකුණු, ඉතිහාසය, සහ අනෙකුත් පසුතල ඔබේ Google Account වෙත සමමු කෙරෙනු ඇත.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">නිවෙස් ජාලය, සංක්රමණයේ නොවේ</translation> -<translation id="1315056510003830387">සැණෙළිය භාවිත කිරීමට ඉඩ නොදේ</translation> <translation id="1316136264406804862">සොයමින්...</translation> <translation id="1316495628809031177">සමමුහුර්ත කිරීම විරාමය කරන ලදී</translation> <translation id="1317637799698924700">ඔබේ ඩොක් කිරීමේ ස්ථානය USB Type-C හට ගැළපෙන ප්රකාරයේ ක්රියා කරයි.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC සංකේතන වර්ගයට සහය නොදක්වයි</translation> <translation id="1984417487208496350">ආරක්ෂාවක් නැත (නිර්දේශ නොකෙරේ)</translation> <translation id="1987317783729300807">ගිණුම්</translation> -<translation id="1988494864246143197">අඩවි සාමාන්යයෙන් ඕඩියෝ, වීඩියෝ හෝ වීඩියෝ ක්රීඩා ධාවනය කිරීමට Flash භාවිත කරයි. 2020 දෙසැම්බර්වලට පසුව තවදුරටත් Flash Player සඳහා සහය දක්වනු නොලැබේ.</translation> <translation id="1989112275319619282">බ්රවුස් කරන්න</translation> <translation id="1990512225220753005">මෙම පිටුව මත කෙටිමං නොපෙන්වන්න</translation> <translation id="1992397118740194946">සකසා නොමැත</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">කවුළු තැබීම</translation> <translation id="2881076733170862447">ඔබ දිගුව ක්ලික් කළ විට</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> මොහොතකින් යළි සැකසී යළි ආරම්භ වනු ඇත</translation> -<translation id="288387288628762616">සැණෙළිය භාවිත කිරීමට ඉඩ දේ</translation> <translation id="2885378588091291677">කාර්ය කළමණාකරු</translation> <translation id="2885729872133513017">සේවාදායක ප්රතිචාරය විකේතන කරන විට ගැටලුවක් සිදු විය.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2463,7 +2459,6 @@ <translation id="383669374481694771">මේ (බැටරි මට්ටම, පද්ධති සහ යෙදුම් ක්රියාකාරකම්, සහ දෝෂ වැනි) මෙම උපාංගය සහ එය භාවිත කෙරෙන ආකාරය පිළිබඳ සාමාන්ය තොරතුරු වෙයි. Android වැඩි දියුණු කිරීමට දත්ත භාවිත කරන අතර සමහර රැස් කළ තොරතුරු Google යෙදුම් සහ Android සංවර්ධකයන් වැනි, හවුල්කරුවන්ට ඔවුන්ගේ යෙදුම් සහ නිෂ්පාදන වඩා යහපත් කිරීමට ද උදවු කරයි.</translation> <translation id="3838085852053358637">දිගුව පූරණය කිරීම අසාර්ථක විය</translation> <translation id="3838486795898716504">තව <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">කුකී සහ වෙනත් අඩවි සහ ප්ලගින දත්ත</translation> <translation id="383891835335927981">කිසිදු අඩවියක් විශාලනය හෝ කුඩා කර නැත</translation> <translation id="3839509547554145593">මූසික අනුචලන ත්වරණය සබල කරන්න</translation> <translation id="3839516600093027468"><ph name="HOST" /> පසුරු පුවරුව දැකීමෙන් සැමවිටම අවහිර කරන්න</translation> @@ -2639,7 +2634,6 @@ <translation id="4023146161712577481">උපාංගය වින්යාසකරණය තීරණය කරමින්.</translation> <translation id="4025039777635956441">තේරූ වෙබ් අඩවිය නිහඬ කරන්න</translation> <translation id="4027804175521224372">(ඔබට නොලැබේ—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">ඔබ Chrome වෙතින් ඉවත් වන තෙක් ඔබේ සැණෙළි සැකසුම් තබා ගනු ඇත.</translation> <translation id="4028467762035011525">ආදාන ක්රම එක් කරන්න</translation> <translation id="4031179711345676612">මයික්රෆෝනයට ඉඩ දෙන ලදී</translation> <translation id="4031527940632463547">සංවේදක අවහිරයි</translation> @@ -2791,7 +2785,6 @@ <translation id="4232375817808480934">Kerberos වින්යාස කරන්න</translation> <translation id="4235200303672858594">සමස්ථ තිරය</translation> <translation id="4235965441080806197">පිරීම අවලංගු කරන්න</translation> -<translation id="4237773362828263530">"*" ආදේශක සහිත සැකසීම් තවදුරටත් සහාය නොදක්වයි. <ph name="BEGIN_LINK" /> මෙම සැකසීම් වෙනස් කිරීමට<ph name="END_LINK" /> ඔබගේ පරිපාලක අමතන්න.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{පසුව කියවීමට ටැබය}one{පසුව කියවීමට ටැබ}other{පසුව කියවීමට ටැබ}}</translation> <translation id="4242145785130247982">බහුවිධ සේවාලාභී සහතිකවලට සහය නොදැක්වේ</translation> <translation id="4242533952199664413">සැකසීම් විවෘත කරන්න</translation> @@ -3055,7 +3048,6 @@ <translation id="4548483925627140043">සංඥාව හමු නොවීය</translation> <translation id="4549791035683739768">ඔබේ ආරක්ෂක යතුරට ගබඩ කළ ඇඟිලි සලකුණු නැත</translation> <translation id="4551763574344810652">අස් කිරීමට <ph name="MODIFIER_KEY_DESCRIPTION" /> ඔබන්න</translation> -<translation id="4552089082226364758">ෆ්ලෑෂ්</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> ජාලය, සංඥා ප්රබලතාව <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">උපාංග භාෂාව වෙනස් කිරීමට ඔබ ඔබේ Chromebook යළි ඇරඹීමට අවශ්යයි. <ph name="BEGIN_LINK_LEARN_MORE" />තවත් දැන ගන්න<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">පවතින දිගුවට සාපේක්ශව බාහිර දිගුව සමාන හෝ පහත අනුවාදනයකි.</translation> @@ -3410,7 +3402,6 @@ <translation id="4974733135013075877">ඉවත් වී ළමා අගුල යොදන්න</translation> <translation id="4976009197147810135">සිරස්ව වෙන් කරන්න</translation> <translation id="4977942889532008999">පිවිසුම තහවුරු කරන්න</translation> -<translation id="4978905460870207779">අඩවි Flash භාවිත කිරීමට ඉල්ලිය හැකිය</translation> <translation id="4980805016576257426">මෙම දිගුවේ අනිෂ්ට මෘදුකාංග අඩංගු වේ.</translation> <translation id="4981449534399733132">ඔබේ සියලුම සමමුහුර්ත කළ උපාංගවලින් සහ ඔබේ Google ගිණුමෙන් බ්රවුස් කිරීමේ දත්ත හිස් කිරීමට, <ph name="BEGIN_LINK" />පුරන්න<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">උපාංග මෘදුකාංගය</translation> @@ -4182,7 +4173,6 @@ <translation id="5906732635754427568">මෙම යෙදුම සමඟ සම්බන්ධ දත්ත මෙම උපාංගයෙන් ඉවත් කරනු ඇත.</translation> <translation id="5908474332780919512">ඔබ පිරූ විට යෙදුම ආරම්භ කරන්න</translation> <translation id="5908695239556627796">මූසික අනුචලන වේගය</translation> -<translation id="5908769186679515905">ෆ්ලෑෂ් ධාවනය වීමෙන් අඩවි අවහිර කරන්න</translation> <translation id="5910363049092958439">රූපය ලෙස සුරකින්න... (&v)</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> නොබැඳියි</translation> <translation id="5911533659001334206">කෙටිමං බලන්නා</translation> @@ -5832,7 +5822,6 @@ <translation id="7831491651892296503">ජාලය වින්යාස කිරීමේ දෝෂයකි</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">අවසන් වන වේලාව</translation> -<translation id="783214144752121388">වෙබ් අඩවිය Flash ධාවන කිරීම අවහිර කරන්න (නිර්දේශිතයි)</translation> <translation id="7833720883933317473">සුරැකි අභිරුචි වචන මෙහි දිස් වනු ඇත</translation> <translation id="7835178595033117206">පිටුසන ඉවත් කළා</translation> <translation id="7836850009646241041">ඔබේ ආරක්ෂක යතුර නැවත ස්පර්ශ කිරීමට උත්සාහ කරන්න</translation> @@ -6059,7 +6048,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{මෙම ගොනුව සංකේතිතයි. එහි හිමිකරුට විකේතන කිරිමට කියන්න.}one{මෙම ගොනුවලින් සමහරක් සංකේතිතයි. ඒවායේ හිමිකරුට විකේතන කිරිමට කියන්න.}other{මෙම ගොනුවලින් සමහරක් සංකේතිතයි. ඒවායේ හිමිකරුට විකේතන කිරිමට කියන්න.}}</translation> <translation id="808894953321890993">මුරපදය වෙනස් කරන්න</translation> <translation id="8090234456044969073">ඔබේ වඩා මෑත පිවිසි වෙබ් අඩවි ලැයිස්තුවක් කියවන්න</translation> -<translation id="8092681102116274204">"*" ආදේශක සහිත සැකසීම් තවදුරටත් සහාය නොදක්වයි. <ph name="BEGIN_LINK" /> මෙම සැකසීම් වෙනස් කිරීමට<ph name="END_LINK" /> දිගු සංවර්ධක හෝ ඔබගේ පරිපාලක අමතන්න.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ප්රතිචාර නොදක්වයි</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google Drive වෙත උපස්ථ කරන්න. ඔබේ දත්ත පහසුවෙන් ප්රතිසාධනය කරන්න හෝ ඕනෑම වේලාවක දී උපාංගය මාරු කරන්න. ඔබේ උපස්ථයේ යෙදුම් දත්ත ඇතුළත් වේ.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ඔබේ උපස්ථයන් Google වෙත උඩුගත කරන අතර ඔබේ Google ගිණුමේ මුරපදය භාවිතයෙන් ගුප්ත කේතනය කර ඇත.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6142,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ඇල්බම තෝරන්න</translation> <translation id="8202160505685531999">ඔබේ <ph name="DEVICE_TYPE" /> පැතිකඩ යාවත්කාලීන කිරීමට කරුණාකර ඔබේ මුරපදය යළි-ඇතුළු කරන්න.</translation> <translation id="8203732864715032075">පණිවුඩ සඳහා මෙම පරිගණකය මතක තබා ගැනීමට ඔබට දැනුම්දීම් සහ පෙරනිමි යවන්න. <ph name="LINK_BEGIN" />තවත් දැන ගන්න<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash අවහිර කරන්න (නිර්දේශිතයි)</translation> <translation id="820568752112382238">වැඩියෙන් පැමිණි වෙබ් අඩවි</translation> <translation id="8206745257863499010">බ්ලූසි</translation> <translation id="8206859287963243715">සෙලියුලර්</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index 924040b..c4efb89f 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Zastaviť</translation> <translation id="1272293450992660632">Kódy PIN sa nezhodujú.</translation> <translation id="1272978324304772054">Tento používateľský účet nepatrí do domény, do ktorej je zaregistrované toto zariadenie. Ak sa chcete zaregistrovať do inej domény, musíte najprv zariadenie obnoviť.</translation> -<translation id="1274977772557788323">Nastavenia úložiska aplikácie Adobe Flash Player</translation> <translation id="1274997165432133392">Súbory cookie a ďalšie dáta webov</translation> <translation id="1275718070701477396">Vybraté</translation> <translation id="1276994519141842946">Aplikáciu <ph name="APP_NAME" /> sa nepodarilo odinštalovať</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Vaše záložky, história a ďalšie nastavenia budú synchronizované s účtom Google.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Domáca sieť, bez roamingu</translation> -<translation id="1315056510003830387">Nemôže používať obsah Flash</translation> <translation id="1316136264406804862">Prebieha vyhľadávanie...</translation> <translation id="1316495628809031177">Synchronizácia je pozastavená</translation> <translation id="1317637799698924700">Dok bude fungovať v režime kompatibilnom s rozhraním USB typu C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC nepodporuje typ šifrovania</translation> <translation id="1984417487208496350">Bez ochrany (neodporúča sa)</translation> <translation id="1987317783729300807">Účty</translation> -<translation id="1988494864246143197">Weby zvyčajne pomocou obsahu Flash prehrávajú zvuk, video alebo videohry. V decembri 2020 bude ukončená podpora prehrávača Flash Player.</translation> <translation id="1989112275319619282">Prehliadať</translation> <translation id="1990512225220753005">Nezobrazovať skratky na tejto stránke</translation> <translation id="1992397118740194946">Nie je nastavené</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">Umiestnenie okna</translation> <translation id="2881076733170862447">Keď kliknete na rozšírenie</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> sa o chvíľu reštartuje a obnoví</translation> -<translation id="288387288628762616">Môže používať obsah Flash</translation> <translation id="2885378588091291677">Správca úloh</translation> <translation id="2885729872133513017">Pri dešifrovaní odpovede servera sa vyskytol problém.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2465,7 +2461,6 @@ <translation id="383669374481694771">Toto sú všeobecné informácie o tomto zariadení a jeho používaní (napríklad stav batérie, aktivita v systéme a aplikáciách a chyby). Údaje sa použijú na zlepšenie Androidu a niektoré súhrnné informácie pomôžu tiež aplikáciám Google a partnerom (napríklad vývojárom pre Android) zlepšiť svoje aplikácie a produkty.</translation> <translation id="3838085852053358637">Načítanie rozšírenia zlyhalo</translation> <translation id="3838486795898716504">Ďalšie <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Súbory cookie a ďalšie dáta webov a doplnkov</translation> <translation id="383891835335927981">Žiadne weby neboli priblížené ani oddialené</translation> <translation id="3839509547554145593">Povoliť zrýchlenie pri posúvaní myšou</translation> <translation id="3839516600093027468">Webu <ph name="HOST" /> vždy blokovať zobrazenie schránky</translation> @@ -2640,7 +2635,6 @@ <translation id="4023146161712577481">Určovanie konfigurácie zariadenia</translation> <translation id="4025039777635956441">Ignorovať vybraný web</translation> <translation id="4027804175521224372">(Chýbate nám — <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Vaše nastavenia doplnku Flash sa ponechajú, dokým neukončíte Chrome.</translation> <translation id="4028467762035011525">Pridať metódy vstupu</translation> <translation id="4031179711345676612">Mikrofón je povolený</translation> <translation id="4031527940632463547">Senzory sú blokované</translation> @@ -2792,7 +2786,6 @@ <translation id="4232375817808480934">Konfigurácia protokolu Kerberos</translation> <translation id="4235200303672858594">Celá obrazovka</translation> <translation id="4235965441080806197">Zrušiť prihlasovanie</translation> -<translation id="4237773362828263530">Nastavenia so zástupnými znakmi „*“ už nie sú podporované. Ak ich <ph name="BEGIN_LINK" />chcete zmeniť<ph name="END_LINK" />, kontaktujte správcu.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Prečítať kartu neskôr}few{Prečítať karty neskôr}many{Prečítať karty neskôr}other{Prečítať karty neskôr}}</translation> <translation id="4242145785130247982">Nie je podporovaných viacero certifikátov klienta</translation> <translation id="4242533952199664413">Otvoriť nastavenia</translation> @@ -3056,7 +3049,6 @@ <translation id="4548483925627140043">Signál sa nenašiel</translation> <translation id="4549791035683739768">V bezpečnostnom kľúči nie sú uložené žiadne odtlačky prstov</translation> <translation id="4551763574344810652">Stlačením skratky <ph name="MODIFIER_KEY_DESCRIPTION" /> vrátite akciu späť</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Sieť: <ph name="NETWORK_TYPE" />. Sila signálu: <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Ak chcete zmeniť jazyk zariadenia, musíte svoj Chromebook reštartovať. <ph name="BEGIN_LINK_LEARN_MORE" />Ďalšie informácie<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Verzia externého rozšírenia je rovnaká alebo nižšia ako existujúca verzia</translation> @@ -3411,7 +3403,6 @@ <translation id="4974733135013075877">Ukončiť a aktivovať detskú zámku</translation> <translation id="4976009197147810135">Rozdeliť zvislo</translation> <translation id="4977942889532008999">Potvrdenie prístupu</translation> -<translation id="4978905460870207779">Weby môžu žiadať o použitie obsahu Flash</translation> <translation id="4980805016576257426">Toto rozšírenie obsahuje malvér.</translation> <translation id="4981449534399733132">Ak chcete vymazať dáta prehliadania zo všetkých synchronizovaných zariadení a účtu Google, <ph name="BEGIN_LINK" />prihláste sa<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Softvér zariadenia</translation> @@ -4182,7 +4173,6 @@ <translation id="5906732635754427568">Dáta priradené k danej aplikácii budú odstránené z tohto zariadenia.</translation> <translation id="5908474332780919512">Spustiť aplikáciu pri prihlásení</translation> <translation id="5908695239556627796">Rýchlosť posúvania myšou</translation> -<translation id="5908769186679515905">Zakázať webom spúšťať Flash</translation> <translation id="5910363049092958439">Uložiť &obrázok ako...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> je offline</translation> <translation id="5911533659001334206">Zobrazovač skratiek</translation> @@ -5835,7 +5825,6 @@ <translation id="7831491651892296503">Chyba pri konfigurácii siete</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Čas ukončenia</translation> -<translation id="783214144752121388">Zakázať webom spúšťať Flash (odporúčané)</translation> <translation id="7833720883933317473">Tu sa zobrazia uložené vlastné slová</translation> <translation id="7835178595033117206">Záložka bola odstránená</translation> <translation id="7836850009646241041">Skúste znova klepnúť na svoj bezpečnostný kľúč</translation> @@ -6063,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Tento súbor je šifrovaný. Požiadajte vlastníka, aby ho dešifroval.}few{Niektoré tieto súbory sú šifrované. Požiadajte vlastníka, aby ich dešifroval.}many{Niektoré tieto súbory sú šifrované. Požiadajte vlastníka, aby ich dešifroval.}other{Niektoré tieto súbory sú šifrované. Požiadajte vlastníka, aby ich dešifroval.}}</translation> <translation id="808894953321890993">Zmeniť heslo</translation> <translation id="8090234456044969073">Čítať zoznam najčastejšie navštevovaných webov</translation> -<translation id="8092681102116274204">Nastavenia so zástupnými znakmi „*“ už nie sú podporované. Kontaktujte vývojára rozšírenia alebo správcu a <ph name="BEGIN_LINK" />tieto nastavenia zmeňte<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> nereaguje</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Zálohujte na Disk Google. Jednoducho kedykoľvek obnovte svoje dáta alebo prejdite na iné zariadenie. Záloha obsahuje dáta aplikácií.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Zálohy sa nahrajú do Googlu a zašifrujú pomocou vášho hesla účtu Google.<ph name="END_PARAGRAPH2" /> @@ -6157,7 +6145,6 @@ <translation id="8201717382574620700">Vybrať albumy zo zdroja <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Zadajte znova svoje heslo a aktualizujte tak profil zariadenia <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Odosiela upozornenia a predvolene si zapamätá tento počítač pre Správy. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokovať obsah Flash (odporúčané)</translation> <translation id="820568752112382238">Najviac navštevované stránky</translation> <translation id="8206745257863499010">Bluesový</translation> <translation id="8206859287963243715">Mobilné</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 6967e80e..847382f 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Ustavi</translation> <translation id="1272293450992660632">Vrednosti PIN se ne ujemajo.</translation> <translation id="1272978324304772054">Uporabniški račun ne sodi v domeno, v katero je včlanjena naprava. Če se želite včlaniti v drugo domeno, morate najprej obnoviti napravo.</translation> -<translation id="1274977772557788323">Nastavitve shranjevanja za Adobe Flash Player</translation> <translation id="1274997165432133392">Piškotki in drugi podatki spletnega mesta</translation> <translation id="1275718070701477396">Izbrano</translation> <translation id="1276994519141842946">Aplikacije <ph name="APP_NAME" /> ni bilo mogoče odmestiti</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Vaši zaznamki, zgodovina in druge nastavitve bodo sinhronizirani z Google Računom.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Domače omrežje, brez gostovanja</translation> -<translation id="1315056510003830387">Ni dovoljena uporaba Flasha</translation> <translation id="1316136264406804862">Iskanje ...</translation> <translation id="1316495628809031177">Sinhronizacija je zaustavljena</translation> <translation id="1317637799698924700">Priklopna postaja deluje v načinu, združljivem z USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC ne podpira vrste šifriranja</translation> <translation id="1984417487208496350">Brez zaščite (ni priporočljivo)</translation> <translation id="1987317783729300807">Računi</translation> -<translation id="1988494864246143197">Spletna mesta običajno uporabljajo Flash za predvajanje zvoka, videa ali videoiger. Flash Player po decembru 2020 ne bo več podprt.</translation> <translation id="1989112275319619282">Brskanje</translation> <translation id="1990512225220753005">Ne prikaži bližnjic na tej strani</translation> <translation id="1992397118740194946">Ni nastavljeno</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Postavitev oken</translation> <translation id="2881076733170862447">Ko kliknete razširitev</translation> <translation id="2882943222317434580">Izdelek <ph name="IDS_SHORT_PRODUCT_NAME" /> se bo v kratkem znova zagnal in ponastavil</translation> -<translation id="288387288628762616">Dovoljena je uporaba Flasha</translation> <translation id="2885378588091291677">Upravitelj opravil</translation> <translation id="2885729872133513017">Pri dekodiranju odziva strežnika je prišlo do težave.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Prijavljeni ste.</translation> <translation id="3428747202529429621">Skrbi za vašo varnost v Chromu in ga je mogoče uporabiti za okrepitev varnosti v drugih Googlovih aplikacijah, ko ste prijavljeni.</translation> <translation id="3428800329481094896">Pridobivanje ključev ssh vsebnika za Linux</translation> +<translation id="3429271624041785769">Jeziki za spletno vsebino</translation> <translation id="3429275422858276529">Dodajte to stran med zaznamke, da jo boste pozneje hitreje našli</translation> <translation id="3432227430032737297">Odstrani vse prikazane</translation> <translation id="3432757130254800023">Pošiljanje zvoka in videa zaslonom v lokalnem omrežju</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Gre za splošne podatke o tej napravi in njeni uporabi, kot so raven napolnjenosti baterije, dejavnost sistema in aplikacije ter napake. Ti podatki bodo uporabljeni za izboljšanje sistema Android. Nekateri združeni podatki bodo pomagali tudi Googlovim aplikacijam in partnerjem, na primer razvijalcem za Android, izboljšati aplikacije in izdelke.</translation> <translation id="3838085852053358637">Ni bilo mogoče naložiti razširitve</translation> <translation id="3838486795898716504">Več <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Piškotki in drugi podatki spletnih mest in vtičnikov</translation> <translation id="383891835335927981">Nobeno spletno mesto ni povečano ali pomanjšano</translation> <translation id="3839509547554145593">Omogoči pospeševalnik drsenja z miško</translation> <translation id="3839516600093027468">Vedno prepreči naslovu <ph name="HOST" /> ogled odložišča</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Upravitelj prenosov</translation> <translation id="3881478300875776315">Pokaži manj vrstic</translation> <translation id="3882165008614329320">Obstoječi videoposnetek iz fotoaparata ali datoteke</translation> +<translation id="3884152383786131369">Za spletno vsebino, ki je na voljo v več jezikih, bo uporabljen prvi podprti jezik s tega seznama. Te nastavitve se sinhronizirajo z nastavitvami brskalnika. <ph name="BEGIN_LINK_LEARN_MORE" />Več o tem<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Vaša zahteva za dostop do tega mesta je poslana uporabniku <ph name="NAME" /></translation> <translation id="3888550877729210209">Ustvarjanje zapiskov z aplikacijo <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Vklopite sinhronizacijo za Chrome, če želite uporabljati sinhronizacijo poverilnic za Wi-Fi</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Ugotavljanje konfiguracije naprave.</translation> <translation id="4025039777635956441">Izklopi zvok na izbranem spletnem mestu</translation> <translation id="4027804175521224372">(Zamujate dogajanje – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Vaše nastavitve za Flash bodo shranjene, dokler ne zaprete Chroma.</translation> <translation id="4028467762035011525">Dodaj načine vnosa</translation> <translation id="4031179711345676612">Mikrofon je dovoljen</translation> <translation id="4031527940632463547">Tipala so blokirana</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Konfiguriranje storitve Kerberos</translation> <translation id="4235200303672858594">Celoten zaslon</translation> <translation id="4235965441080806197">Prekliči prijavo</translation> -<translation id="4237773362828263530">Nastavitve z nadomestnimi znaki »*« niso več podprte. Če želite <ph name="BEGIN_LINK" />spremeniti te nastavitve<ph name="END_LINK" />, se obrnite na skrbnika.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Branje zavihka pozneje}one{Branje zavihkov pozneje}two{Branje zavihkov pozneje}few{Branje zavihkov pozneje}other{Branje zavihkov pozneje}}</translation> <translation id="4242145785130247982">Več potrdil odjemalca ni podprtih</translation> <translation id="4242533952199664413">Odpri nastavitve</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Signal ni bil najden</translation> <translation id="4549791035683739768">Varnostni ključ nima shranjenih prstnih odtisov</translation> <translation id="4551763574344810652">Pritisnite <ph name="MODIFIER_KEY_DESCRIPTION" /> za razveljavitev</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Omrežje <ph name="NETWORK_TYPE" />, moč signala je <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Če želite spremeniti jezik naprave, morate znova zagnati Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Več o tem<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Zunanja razširitev je iste ali starejše različice kot trenutna.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Izhod in zaklepanje pred otroki</translation> <translation id="4976009197147810135">Razdeli navpično</translation> <translation id="4977942889532008999">Potrditev dostopa</translation> -<translation id="4978905460870207779">Spletna mesta lahko zahtevajo uporabo vtičnika Flash</translation> <translation id="4980805016576257426">Ta razširitev vsebuje zlonamerno programsko opremo.</translation> <translation id="4981449534399733132">Če želite izbrisati podatke brskanja iz vseh sinhroniziranih naprav in Google Računa, <ph name="BEGIN_LINK" />se prijavite<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Programska oprema naprave</translation> @@ -4183,7 +4176,6 @@ <translation id="5906732635754427568">Podatki, povezani s to aplikacijo, bodo odstranjeni iz te naprave.</translation> <translation id="5908474332780919512">Zaženi aplikacijo ob prijavi</translation> <translation id="5908695239556627796">Hitrost drsenja z miško</translation> -<translation id="5908769186679515905">Mestom prepreči izvajanje Flasha</translation> <translation id="5910363049092958439">Sh&rani sliko kot ...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> nima vzpostavljene povezave</translation> <translation id="5911533659001334206">Pregledovalnik bližnjic</translation> @@ -4367,6 +4359,7 @@ <translation id="6112727384379533756">Dodaj kartonček</translation> <translation id="6112931163620622315">Preverite telefon</translation> <translation id="6112952769866305444">Urejanje osebe, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Nastavite privzeti iskalnik za brskalnik Chrome in zaganjalnik naprave <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Če želite uporabljati Smart Lock, v telefonu preklopite na primarni uporabniški profil</translation> <translation id="6116921718742659598">Spreminjanje nastavitev jezika in vnosa</translation> <translation id="6120205520491252677">Pripnite to stran na začetni zaslon ...</translation> @@ -5233,6 +5226,7 @@ <translation id="7140928199327930795">Ni drugih razpoložljivih naprav.</translation> <translation id="7141105143012495934">Prijava ni uspela, ker ni bilo mogoče pridobiti podrobnosti o računu. Obrnite se na skrbnika in poskusite znova.</translation> <translation id="7143207342074048698">Povezovanje</translation> +<translation id="7143358760238281735">Ni aplikacij</translation> <translation id="7144878232160441200">Poskusi ponovno</translation> <translation id="714876143603641390">Povezava z omrežjem LAN</translation> <translation id="7149893636342594995">Zadnjih 24 ur</translation> @@ -5704,6 +5698,7 @@ <translation id="7707922173985738739">Uporaba prenosa podatkov v mobilnem omrežju</translation> <translation id="7709152031285164251">Ni uspelo – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Predvajanje ...</translation> +<translation id="7712739869553853093">Pogovorno okno za predogled tiskanja</translation> <translation id="7712836429117959503">Neznana razširitev z ID-jem <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Piškotki s spletnega mesta <ph name="DOMAIN" /> so dovoljeni</translation> <translation id="7714464543167945231">Potrdilo</translation> @@ -5833,7 +5828,6 @@ <translation id="7831491651892296503">Napaka pri konfiguriranju omrežja</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Končni čas</translation> -<translation id="783214144752121388">Mestom prepreči izvajanje Flasha (priporočeno)</translation> <translation id="7833720883933317473">Shranjene besede po meri bodo prikazane tukaj</translation> <translation id="7835178595033117206">Zaznamek je bil odstranjen</translation> <translation id="7836850009646241041">Poskusite se znova dotakniti varnostnega ključa</translation> @@ -6061,7 +6055,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Ta datoteka je šifrirana. Lastnika datoteke prosite, da jo dešifrira.}one{Nekatere te datoteke so šifrirane. Lastnika teh datotek prosite, da jih dešifrira.}two{Nekatere te datoteke so šifrirane. Lastnika teh datotek prosite, da jih dešifrira.}few{Nekatere te datoteke so šifrirane. Lastnika teh datotek prosite, da jih dešifrira.}other{Nekatere te datoteke so šifrirane. Lastnika teh datotek prosite, da jih dešifrira.}}</translation> <translation id="808894953321890993">Sprememba gesla</translation> <translation id="8090234456044969073">Preberite seznam spletnih mest, ki jih najpogosteje obiskujete</translation> -<translation id="8092681102116274204">Nastavitve z nadomestnimi znaki »*« niso več podprte. Obrnite se na razvijalca razširitev ali skrbnika, če želite <ph name="BEGIN_LINK" />spremeniti te nastavitve<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">Vtičnik <ph name="PLUGIN_NAME" /> se ne odziva</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Varnostno kopiranje v Google Drive. Po želji lahko preprosto obnovite podatke ali napravo zamenjate z drugo. Varnostne kopije vključujejo podatke aplikacij.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Varnostne kopije so naložene v Google in šifrirane z geslom za vaš račun Google.<ph name="END_PARAGRAPH2" /> @@ -6156,7 +6149,6 @@ <translation id="8201717382574620700">Izbira albumov <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Znova vnesite geslo, če želite posodobiti profil v napravi <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Pošlje vam obvestila in si privzeto zapomni ta računalnik za Sporočila. <ph name="LINK_BEGIN" />Več o tem<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokiranje vtičnika Flash (priporočeno)</translation> <translation id="820568752112382238">Najbolj obiskana spletna mesta</translation> <translation id="8206745257863499010">Glasbenik</translation> <translation id="8206859287963243715">Prenosni</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index 32eaa71..f713932 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Ndalo</translation> <translation id="1272293450992660632">Vlerat e kodit PIN nuk përputhen.</translation> <translation id="1272978324304772054">Kjo llogari përdoruesi nuk i përket domenit me të cilin është regjistruar kjo pajisje. Nëse do të regjistrohesh në një domen tjetër, së pari duhet të kontrollosh rikuperimin e pajisjes.</translation> -<translation id="1274977772557788323">Cilësimet e ruajtjes së Adobe Flash Player</translation> <translation id="1274997165432133392">Kukit dhe të dhënat e tjera të sajtit</translation> <translation id="1275718070701477396">Përzgjedhur</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> nuk mund të çinstalohej</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Faqeshënuesit e tu, historiku dhe cilësime të tjera do të sinkronizohen në llogarinë tënde të Google.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Rrjeti vendor, jo në roaming</translation> -<translation id="1315056510003830387">Nuk lejohen të përdorin Flash</translation> <translation id="1316136264406804862">Po kërkon...</translation> <translation id="1316495628809031177">Sinkronizimi është vendosur në pauzë</translation> <translation id="1317637799698924700">Stacioni yt do të funksionojë në modalitetin e pajtueshëm me USB të tipit C.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC nuk mbështet llojin e enkriptimit</translation> <translation id="1984417487208496350">Asnjë mbrojtje (nuk rekomandohet)</translation> <translation id="1987317783729300807">Llogaritë</translation> -<translation id="1988494864246143197">Sajtet përdorin zakonisht Flash për të luajtur audio, video ose videolojëra Flash Player nuk do të mbështetet më pas dhjetorit 2020.</translation> <translation id="1989112275319619282">Shfleto</translation> <translation id="1990512225220753005">Mos shfaq shkurtore në këtë faqe</translation> <translation id="1992397118740194946">Nuk është caktuar</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">Vendosja e dritareve</translation> <translation id="2881076733170862447">Kur klikon te shtesa</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> do të rifillojë dhe rivendoset pas pak</translation> -<translation id="288387288628762616">Lejohen të përdorin Flash</translation> <translation id="2885378588091291677">Menaxheri i detyrave</translation> <translation id="2885729872133513017">Ndodhi një problem gjatë deshifrimit të përgjigjes së serverit.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2078,6 +2074,7 @@ <translation id="3428419049384081277">Je i identifikuar!</translation> <translation id="3428747202529429621">Të mban të sigurt në Chrome dhe mund të përdoret për të përmirësuar sigurinë tënde në aplikacionet e tjera të Google kur je i identifikuar</translation> <translation id="3428800329481094896">Po merr çelësat SSH të kontejnerit të Linux</translation> +<translation id="3429271624041785769">Gjuhët e përmbajtjes së uebit</translation> <translation id="3429275422858276529">Shënoje këtë faqe për ta gjetur me lehtësi më vonë</translation> <translation id="3432227430032737297">Hiqi të gjitha të shfaqurat</translation> <translation id="3432757130254800023">Dërgo audion dhe videon tek ekranet në rrjetin lokal</translation> @@ -2462,7 +2459,6 @@ <translation id="383669374481694771">Këto janë informacione të përgjithshme për këtë pajisje dhe se si përdoret (si p.sh. niveli i baterisë, aktiviteti i sistemit dhe aplikacioneve dhe gabimet). Të dhënat do të përdoren për të përmirësuar Android dhe disa informacione të përmbledhura do t'i ndihmojnë po ashtu aplikacionet dhe partnerët e Google, si p.sh. zhvilluesit e Android, që të përmirësojnë aplikacionet dhe produktet e tyre.</translation> <translation id="3838085852053358637">Dështoi në ngarkimin e shtesës</translation> <translation id="3838486795898716504">Më shumë <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Kukit, faqet e tjera dhe të dhënat e përbërësve shtesë</translation> <translation id="383891835335927981">Asnjë sajt nuk është zmadhuar apo zvogëluar</translation> <translation id="3839509547554145593">Aktivizo përshpejtimin e lëvizjes së miut</translation> <translation id="3839516600093027468">Blloko gjithmonë <ph name="HOST" /> që të mos shikojë kujtesën e fragmenteve</translation> @@ -2504,6 +2500,7 @@ <translation id="3879748587602334249">Menaxheri i shkarkimeve</translation> <translation id="3881478300875776315">Shfaq më pak rreshta</translation> <translation id="3882165008614329320">Video ekzistuese nga kamera ose skedari</translation> +<translation id="3884152383786131369">Përmbajtja e uebit që ofrohet në shumë gjuhë do të përdorë gjuhën e parë të mbështetur nga kjo listë. Këto preferenca sinkronizohen me cilësimet e shfletuesit tënd. <ph name="BEGIN_LINK_LEARN_MORE" />Mëso më shumë<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Kërkesa jote për qasje te ky sajt është dërguar te <ph name="NAME" />.</translation> <translation id="3888550877729210209">Marrja e shënimeve me <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Aktivizo "Sinkronizimin e Chrome" për të përdorur "Sinkronizimin e Wi-Fi"</translation> @@ -2636,7 +2633,6 @@ <translation id="4023146161712577481">Po përcakton konfigurimin e pajisjes.</translation> <translation id="4025039777635956441">Çaktivizo zërin e sajtit të zgjedhur</translation> <translation id="4027804175521224372">(Ja se çfarë po humb—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Cilësimet e tua për Flash do të ruhen derisa të mbyllësh Chrome.</translation> <translation id="4028467762035011525">Shto mënyrat e hyrjes</translation> <translation id="4031179711345676612">Mikrofoni lejohet</translation> <translation id="4031527940632463547">Sensorët u bllokuan</translation> @@ -2788,7 +2784,6 @@ <translation id="4232375817808480934">Konfiguro Kerberos</translation> <translation id="4235200303672858594">Ekrani i plotë</translation> <translation id="4235965441080806197">Anulo identifikimin</translation> -<translation id="4237773362828263530">Cilësimet me simbolet e ndryshoreve "*" nuk mbështeten më. Kontakto me administratorin tënd <ph name="BEGIN_LINK" />për t'i ndryshuar këto cilësime<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{skedë për t'u lexuar më vonë}other{skeda për t'u lexuar më vonë}}</translation> <translation id="4242145785130247982">Nuk mbështeten shumë certifikata të klientëve</translation> <translation id="4242533952199664413">Hap cilësimet</translation> @@ -3052,7 +3047,6 @@ <translation id="4548483925627140043">Sinjali nuk u gjet</translation> <translation id="4549791035683739768">Çelësi yt i sigurisë nuk ka gjurmë gishtash të ruajtura</translation> <translation id="4551763574344810652">Shtyp <ph name="MODIFIER_KEY_DESCRIPTION" /> për ta zhbërë</translation> -<translation id="4552089082226364758">Blici</translation> <translation id="4552759165874948005">Rrjeti <ph name="NETWORK_TYPE" />, fuqia e sinjalit <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Duhet të rinisësh pajisjen tënde Chromebook për të ndryshuar gjuhën e pajisjes. <ph name="BEGIN_LINK_LEARN_MORE" />Mëso më shumë<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Shtesa e jashtme është në të njëjtin version ose më të ulët në krahasim me ekzistuesin.</translation> @@ -3407,7 +3401,6 @@ <translation id="4974733135013075877">Dil dhe kyçe për fëmijët</translation> <translation id="4976009197147810135">Vertikal i ndarë</translation> <translation id="4977942889532008999">Konfirmo qasjen</translation> -<translation id="4978905460870207779">Sajtet mund të kërkojnë të përdorin Flash</translation> <translation id="4980805016576257426">Kjo shtesë përmban një softuer keqdashës.</translation> <translation id="4981449534399733132">Për të pastruar të dhënat e shfletimit nga të gjitha pajisjet e tua të sinkronizuara dhe nga "Llogaria e Google", <ph name="BEGIN_LINK" />identifikohu<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Softueri i pajisjes</translation> @@ -4178,7 +4171,6 @@ <translation id="5906732635754427568">Të dhënat e lidhura me këtë aplikacion do të hiqen nga kjo pajisje.</translation> <translation id="5908474332780919512">Nis aplikacionin kur identifikohesh</translation> <translation id="5908695239556627796">Shpejtësia e lëvizjes së miut</translation> -<translation id="5908769186679515905">Blloko sajtet që të mos ekzekutojnë Flash</translation> <translation id="5910363049092958439">Ru&aje imazhin si...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> është jashtë linje</translation> <translation id="5911533659001334206">Shikuesi i shkurtoreve</translation> @@ -4362,6 +4354,7 @@ <translation id="6112727384379533756">Shto një biletë</translation> <translation id="6112931163620622315">Kontrollo telefonin</translation> <translation id="6112952769866305444">Redakto personin, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Cakto motorin tënd të parazgjedhur të kërkimit për shfletuesin e Chrome dhe nisësin e <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Për të përdorur Smart Lock, kalo te profili parësor i përdoruesit në telefonin tënd</translation> <translation id="6116921718742659598">Ndrysho cilësimet e gjuhës dhe të hyrjes</translation> <translation id="6120205520491252677">Gozhdoje këtë faqe tek ekrani i Nisjes...</translation> @@ -5228,6 +5221,7 @@ <translation id="7140928199327930795">Nuk ka pajisje të tjera të ofrueshme.</translation> <translation id="7141105143012495934">Identifikimi dështoi pasi detajet e llogarisë tënde nuk mund të verifikoheshin. Kontakto me administratorin ose provo përsëri.</translation> <translation id="7143207342074048698">Po lidhet</translation> +<translation id="7143358760238281735">Nuk ofrohet asnjë aplikacion</translation> <translation id="7144878232160441200">Provo sërish</translation> <translation id="714876143603641390">Lidhshmëria e LAN-it</translation> <translation id="7149893636342594995">24 orët e fundit</translation> @@ -5699,6 +5693,7 @@ <translation id="7707922173985738739">Përdor të dhënat celulare</translation> <translation id="7709152031285164251">Dështoi - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">dhe Transmeto...</translation> +<translation id="7712739869553853093">Dialogu i pamjes paraprake të printimit</translation> <translation id="7712836429117959503">Prapashtesë e panjohur me ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Kukit nga <ph name="DOMAIN" /> u lejuan</translation> <translation id="7714464543167945231">Certifikata</translation> @@ -5827,7 +5822,6 @@ <translation id="7831491651892296503">Gabim gjatë konfigurimit të rrjetit</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Koha e përfundimit</translation> -<translation id="783214144752121388">Bllokoju faqeve ekzekutimin e Flash (rekomandohet)</translation> <translation id="7833720883933317473">Fjalët e personalizuara të ruajtura do të shfaqen këtu</translation> <translation id="7835178595033117206">Faqeshënuesi u hoq</translation> <translation id="7836850009646241041">Provo të prekësh çelësin tënd të sigurisë përsëri</translation> @@ -6054,7 +6048,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Ky skedar është i enkriptuar. Kërkoji zotëruesit ta deshifrojë.}other{Disa prej këtyre skedarëve janë të enkriptuar. Kërkoji zotëruesit të tyre t'i deshifrojë.}}</translation> <translation id="808894953321890993">Ndrysho fjalëkalimin</translation> <translation id="8090234456044969073">Lexo një listë të faqeve të vizituara më shpesh</translation> -<translation id="8092681102116274204">Cilësimet me simbolet e ndryshoreve "*" nuk mbështeten më. Kontakto me zhvilluesin e shtesës ose me administratorin tënd <ph name="BEGIN_LINK" />për t'i ndryshuar këto cilësime<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> nuk po reagon</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Rezervo në "Diskun e Google". Restauro me lehtësi të dhënat e tua ose ndërro pajisjen në çdo kohë. Rezervimi yt përfshin të dhënat e aplikacioneve.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Rezervimet ngarkohen në Google dhe enkriptohen duke përdorur fjalëkalimin e "Llogarisë sate të Google".<ph name="END_PARAGRAPH2" /> @@ -6149,7 +6142,6 @@ <translation id="8201717382574620700">Zgjidh albumet e "<ph name="TOPIC_SOURCE" />"</translation> <translation id="8202160505685531999">Fut përsëri fjalëkalimin për të përditësuar profilin e pajisjes <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Të dërgon njoftime dhe kthen parazgjedhjen për të kujtuar këtë kompjuter për "Mesazhet". <ph name="LINK_BEGIN" />Mëso më shumë<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blloko Flash (rekomandohet)</translation> <translation id="820568752112382238">Sajtet më të vizituara</translation> <translation id="8206745257863499010">Bluzi</translation> <translation id="8206859287963243715">Rrjeti celular</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index 4970acc..e0b0be8 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Zaustavi</translation> <translation id="1272293450992660632">PIN-ovi se ne podudaraju.</translation> <translation id="1272978324304772054">Ovaj korisnički nalog ne pripada domenu na kom je uređaj registrovan. Ako želite da se registrujete na drugom domenu, prvo morate da obavite oporavak uređaja.</translation> -<translation id="1274977772557788323">Podešavanja Adobe Flash Player memorijskog prostora</translation> <translation id="1274997165432133392">Kolačići i drugi podaci o sajtovima</translation> <translation id="1275718070701477396">Izabrano</translation> <translation id="1276994519141842946">Deinstaliranje aplikacije <ph name="APP_NAME" /> nije uspelo</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Obeleživači, istorija i druga podešavanja se sinhronizuju sa Google nalogom.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Matična mreža, nije u romingu</translation> -<translation id="1315056510003830387">Nije im dozvoljeno da koriste Flash</translation> <translation id="1316136264406804862">Pretraživanje...</translation> <translation id="1316495628809031177">Sinhronizacija je pauzirana</translation> <translation id="1317637799698924700">Bazna stanica će raditi u režimu kompatibilnom sa USB-om tipa C.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC ne podržava tip šifrovanja</translation> <translation id="1984417487208496350">Bez zaštite (ne preporučuje se)</translation> <translation id="1987317783729300807">Nalozi</translation> -<translation id="1988494864246143197">Sajtovi obično koriste Flash za puštanje zvuka, video snimaka ili video igara. Flash Player više neće biti podržan od decembra 2020.</translation> <translation id="1989112275319619282">Pregledaj</translation> <translation id="1990512225220753005">Ne prikazujte prečice na ovoj stranici</translation> <translation id="1992397118740194946">Nije podešeno</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">Postavljanje prozora</translation> <translation id="2881076733170862447">Kada kliknete na dodatak</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> će se odmah ponovo pokrenuti i resetovati</translation> -<translation id="288387288628762616">Dozvoljeno im je da koriste Flash</translation> <translation id="2885378588091291677">Menadžer zadataka</translation> <translation id="2885729872133513017">Došlo je do problema pri dekodiranju odgovora servera.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2463,7 +2459,6 @@ <translation id="383669374481694771">Ovo su opšte informacije o ovom uređaju i načinu na koji se koristi (poput nivoa napunjenosti baterije, aktivnosti sistema i aplikacija i grešaka). Podaci će se koristiti za poboljšanje Android-a, a neke objedinjene informacije će pomoći i Google aplikacijama i partnerima, kao što su Android programeri, da poboljšaju svoje aplikacije i proizvode.</translation> <translation id="3838085852053358637">Učitavanje dodatka nije uspelo</translation> <translation id="3838486795898716504">Još stranica <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Kolačići i drugi podaci o sajtovima i dodatnim komponentama</translation> <translation id="383891835335927981">Nijedan sajt nije uvećan ni umanjen</translation> <translation id="3839509547554145593">Omogući ubrzanje pomeranja mišem</translation> <translation id="3839516600093027468">Uvek blokiraj uvid u privremenu memoriju stranici <ph name="HOST" /></translation> @@ -2638,7 +2633,6 @@ <translation id="4023146161712577481">Utvrđivanje konfiguracije uređaja.</translation> <translation id="4025039777635956441">Isključi zvuk izabranog sajta</translation> <translation id="4027804175521224372">(Propuštate – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Zadržaće se podešavanja Flash-a dok ne zatvorite Chrome.</translation> <translation id="4028467762035011525">Dodaj metode unosa</translation> <translation id="4031179711345676612">Mikrofon je dozvoljen</translation> <translation id="4031527940632463547">Pristup senzorima je blokiran</translation> @@ -2790,7 +2784,6 @@ <translation id="4232375817808480934">Konfigurišite Kerberos</translation> <translation id="4235200303672858594">Ceo ekran</translation> <translation id="4235965441080806197">Otkaži prijavljivanje</translation> -<translation id="4237773362828263530">Podešavanja sa džokerskim znakom „*“ više nisu podržana. Obratite se administratoru da biste <ph name="BEGIN_LINK" />promenili ova podešavanja<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Čitajte karticu kasnije}one{Čitajte kartice kasnije}few{Čitajte kartice kasnije}other{Čitajte kartice kasnije}}</translation> <translation id="4242145785130247982">Nije podržano više sertifikata klijenta</translation> <translation id="4242533952199664413">Otvori podešavanja</translation> @@ -3054,7 +3047,6 @@ <translation id="4548483925627140043">Signal nije pronađen</translation> <translation id="4549791035683739768">Na bezbednosnom ključu nema sačuvanih otisaka prstiju</translation> <translation id="4551763574344810652">Pritisnite <ph name="MODIFIER_KEY_DESCRIPTION" /> da biste opozvali</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Mreža <ph name="NETWORK_TYPE" />, jačina signala <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Morate da restartujete Chromebook da biste promenili jezik uređaja. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Verzija spoljnog dodatka je ista ili starija od postojećeg.</translation> @@ -3409,7 +3401,6 @@ <translation id="4974733135013075877">Izađi i zaključaj za decu</translation> <translation id="4976009197147810135">Podeli vertikalno</translation> <translation id="4977942889532008999">Potvrdite pristup</translation> -<translation id="4978905460870207779">Sajtovi mogu da traže da koriste Flash</translation> <translation id="4980805016576257426">Ovaj dodatak sadrži malver.</translation> <translation id="4981449534399733132">Da biste obrisali podatke pregledanja sa svih sinhronizovanih uređaja i sa Google naloga, <ph name="BEGIN_LINK" />prijavite se<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Softver uređaja</translation> @@ -4181,7 +4172,6 @@ <translation id="5906732635754427568">Podaci povezani sa ovom aplikacijom će biti uklonjeni sa ovog uređaja.</translation> <translation id="5908474332780919512">Pokreni aplikaciju kada se prijavim</translation> <translation id="5908695239556627796">Brzina pomeranja mišem</translation> -<translation id="5908769186679515905">Blokiraj sajtove da ne bi pokretali Flash</translation> <translation id="5910363049092958439">Sa&čuvaj sliku kao...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> je oflajn</translation> <translation id="5911533659001334206">Prikazivač prečica</translation> @@ -5834,7 +5824,6 @@ <translation id="7831491651892296503">Greška pri konfiguraciji mreže</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Vreme završetka</translation> -<translation id="783214144752121388">Ne dozvoljavaj sajtovima da pokreću Flash (preporučeno)</translation> <translation id="7833720883933317473">Sačuvane prilagođene reči će se pojaviti ovde</translation> <translation id="7835178595033117206">Obeleživač je uklonjen</translation> <translation id="7836850009646241041">Ponovo dodirnite bezbednosni ključ</translation> @@ -6062,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Ova datoteka je šifrovana. Zatražite od vlasnika da je dešifruje.}one{Neke od ovih datoteka su šifrovane. Zatražite od vlasnika da ih dešifruje.}few{Neke od ovih datoteka su šifrovane. Zatražite od vlasnika da ih dešifruje.}other{Neke od ovih datoteka su šifrovane. Zatražite od vlasnika da ih dešifruje.}}</translation> <translation id="808894953321890993">Promeni lozinku</translation> <translation id="8090234456044969073">Čitanje liste najčešće posećivanih veb-sajtova</translation> -<translation id="8092681102116274204">Podešavanja sa džokerskim znakom „*“ više nisu podržana. Obratite se programeru dodatka ili administratoru da biste <ph name="BEGIN_LINK" />promenili ova podešavanja<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">Dodatna komponenta <ph name="PLUGIN_NAME" /> ne reaguje</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Pravite rezervne kopije na Google disku. Lako vraćajte podatke ili menjajte uređaje u bilo kom trenutku. Rezervna kopija sadrži podatke aplikacija.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Rezervne kopije se otpremaju na Google i šifruju pomoću lozinke za Google nalog.<ph name="END_PARAGRAPH2" /> @@ -6157,7 +6145,6 @@ <translation id="8201717382574620700">Izaberite albume: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Unesite ponovo lozinku da biste ažurirali profil za <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Šalje vam obaveštenja i podrazumevano je podešavanje za pamćenje SMS-ova na ovom računaru. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blokiraj Flash (preporučuje se)</translation> <translation id="820568752112382238">Najposećeniji sajtovi</translation> <translation id="8206745257863499010">Bluzi</translation> <translation id="8206859287963243715">Mobilni uređaj</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 9cb4409..40efbb1 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Заустави</translation> <translation id="1272293450992660632">PIN-ови се не подударају.</translation> <translation id="1272978324304772054">Овај кориснички налог не припада домену на ком је уређај регистрован. Ако желите да се региструјете на другом домену, прво морате да обавите опоравак уређаја.</translation> -<translation id="1274977772557788323">Подешавања Adobe Flash Player меморијског простора</translation> <translation id="1274997165432133392">Колачићи и други подаци о сајтовима</translation> <translation id="1275718070701477396">Изабрано</translation> <translation id="1276994519141842946">Деинсталирање апликације <ph name="APP_NAME" /> није успело</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Обележивачи, историја и друга подешавања се синхронизују са Google налогом.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Матична мрежа, није у ромингу</translation> -<translation id="1315056510003830387">Није им дозвољено да користе Flash</translation> <translation id="1316136264406804862">Претраживање...</translation> <translation id="1316495628809031177">Синхронизација је паузирана</translation> <translation id="1317637799698924700">Базна станица ће радити у режиму компатибилном са USB-ом типа C.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC не подржава тип шифровања</translation> <translation id="1984417487208496350">Без заштите (не препоручује се)</translation> <translation id="1987317783729300807">Налози</translation> -<translation id="1988494864246143197">Сајтови обично користе Flash за пуштање звука, видео снимака или видео игара. Flash Player више неће бити подржан од децембра 2020.</translation> <translation id="1989112275319619282">Прегледај</translation> <translation id="1990512225220753005">Не приказујте пречице на овој страници</translation> <translation id="1992397118740194946">Није подешено</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">Постављање прозора</translation> <translation id="2881076733170862447">Када кликнете на додатак</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ће се одмах поново покренути и ресетовати</translation> -<translation id="288387288628762616">Дозвољено им је да користе Flash</translation> <translation id="2885378588091291677">Менаџер задатака</translation> <translation id="2885729872133513017">Дошло је до проблема при декодирању одговора сервера.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2463,7 +2459,6 @@ <translation id="383669374481694771">Ово су опште информације о овом уређају и начину на који се користи (попут нивоа напуњености батерије, активности система и апликација и грешака). Подаци ће се користити за побољшање Android-а, а неке обједињене информације ће помоћи и Google апликацијама и партнерима, као што су Android програмери, да побољшају своје апликације и производе.</translation> <translation id="3838085852053358637">Учитавање додатка није успело</translation> <translation id="3838486795898716504">Још страница <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Колачићи и други подаци о сајтовима и додатним компонентама</translation> <translation id="383891835335927981">Ниједан сајт није увећан ни умањен</translation> <translation id="3839509547554145593">Омогући убрзање померања мишем</translation> <translation id="3839516600093027468">Увек блокирај увид у привремену меморију страници <ph name="HOST" /></translation> @@ -2638,7 +2633,6 @@ <translation id="4023146161712577481">Утврђивање конфигурације уређаја.</translation> <translation id="4025039777635956441">Искључи звук изабраног сајта</translation> <translation id="4027804175521224372">(Пропуштате – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Задржаће се подешавања Flash-а док не затворите Chrome.</translation> <translation id="4028467762035011525">Додај методе уноса</translation> <translation id="4031179711345676612">Микрофон је дозвољен</translation> <translation id="4031527940632463547">Приступ сензорима је блокиран</translation> @@ -2790,7 +2784,6 @@ <translation id="4232375817808480934">Конфигуришите Kerberos</translation> <translation id="4235200303672858594">Цео екран</translation> <translation id="4235965441080806197">Откажи пријављивање</translation> -<translation id="4237773362828263530">Подешавања са џокерским знаком „*“ више нису подржана. Обратите се администратору да бисте <ph name="BEGIN_LINK" />променили ова подешавања<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Читајте картицу касније}one{Читајте картице касније}few{Читајте картице касније}other{Читајте картице касније}}</translation> <translation id="4242145785130247982">Није подржано више сертификата клијента</translation> <translation id="4242533952199664413">Отвори подешавања</translation> @@ -3054,7 +3047,6 @@ <translation id="4548483925627140043">Сигнал није пронађен</translation> <translation id="4549791035683739768">На безбедносном кључу нема сачуваних отисака прстију</translation> <translation id="4551763574344810652">Притисните <ph name="MODIFIER_KEY_DESCRIPTION" /> да бисте опозвали</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Мрежа <ph name="NETWORK_TYPE" />, јачина сигнала <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Морате да рестартујете Chromebook да бисте променили језик уређаја. <ph name="BEGIN_LINK_LEARN_MORE" />Сазнајте више<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Верзија спољног додатка је иста или старија од постојећег.</translation> @@ -3409,7 +3401,6 @@ <translation id="4974733135013075877">Изађи и закључај за децу</translation> <translation id="4976009197147810135">Подели вертикално</translation> <translation id="4977942889532008999">Потврдите приступ</translation> -<translation id="4978905460870207779">Сајтови могу да траже да користе Flash</translation> <translation id="4980805016576257426">Овај додатак садржи малвер.</translation> <translation id="4981449534399733132">Да бисте обрисали податке прегледања са свих синхронизованих уређаја и са Google налога, <ph name="BEGIN_LINK" />пријавите се<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Софтвер уређаја</translation> @@ -4181,7 +4172,6 @@ <translation id="5906732635754427568">Подаци повезани са овом апликацијом ће бити уклоњени са овог уређаја.</translation> <translation id="5908474332780919512">Покрени апликацију када се пријавим</translation> <translation id="5908695239556627796">Брзина померања мишем</translation> -<translation id="5908769186679515905">Блокирај сајтове да не би покретали Flash</translation> <translation id="5910363049092958439">Са&чувај слику као...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> је офлајн</translation> <translation id="5911533659001334206">Приказивач пречица</translation> @@ -5834,7 +5824,6 @@ <translation id="7831491651892296503">Грешка при конфигурацији мреже</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Време завршетка</translation> -<translation id="783214144752121388">Не дозвољавај сајтовима да покрећу Flash (препоручено)</translation> <translation id="7833720883933317473">Сачуване прилагођене речи ће се појавити овде</translation> <translation id="7835178595033117206">Обележивач је уклоњен</translation> <translation id="7836850009646241041">Поново додирните безбедносни кључ</translation> @@ -6062,7 +6051,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Ова датотека је шифрована. Затражите од власника да је дешифрује.}one{Неке од ових датотека су шифроване. Затражите од власника да их дешифрује.}few{Неке од ових датотека су шифроване. Затражите од власника да их дешифрује.}other{Неке од ових датотека су шифроване. Затражите од власника да их дешифрује.}}</translation> <translation id="808894953321890993">Промени лозинку</translation> <translation id="8090234456044969073">Читање листе најчешће посећиваних веб-сајтова</translation> -<translation id="8092681102116274204">Подешавања са џокерским знаком „*“ више нису подржана. Обратите се програмеру додатка или администратору да бисте <ph name="BEGIN_LINK" />променили ова подешавања<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">Додатна компонента <ph name="PLUGIN_NAME" /> не реагује</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Правите резервне копије на Google диску. Лако враћајте податке или мењајте уређаје у било ком тренутку. Резервна копија садржи податке апликација.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Резервне копије се отпремају на Google и шифрују помоћу лозинке за Google налог.<ph name="END_PARAGRAPH2" /> @@ -6157,7 +6145,6 @@ <translation id="8201717382574620700">Изаберите албуме: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Унесите поново лозинку да бисте ажурирали профил за <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Шаље вам обавештења и подразумевано је подешавање за памћење SMS-ова на овом рачунару. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Блокирај Flash (препоручује се)</translation> <translation id="820568752112382238">Најпосећенији сајтови</translation> <translation id="8206745257863499010">Блузи</translation> <translation id="8206859287963243715">Мобилни уређај</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index c3f47bc..a571d68 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Stopp</translation> <translation id="1272293450992660632">Pinkoderna matchar inte.</translation> <translation id="1272978324304772054">Det här användarkontot hör inte till den domän som enheten är registrerad för. Om du vill registrera enheten för en annan domän måste du återställa den först.</translation> -<translation id="1274977772557788323">Lagringsinställningar för Adobe Flash Player</translation> <translation id="1274997165432133392">Cookies och annan webbplatsdata</translation> <translation id="1275718070701477396">Markerad</translation> <translation id="1276994519141842946">Det gick inte att avinstallera <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Bokmärken, historik och andra inställningar synkroniseras till ditt Google-konto.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Hemnätverk, ingen roaming</translation> -<translation id="1315056510003830387">Får inte använda Flash</translation> <translation id="1316136264406804862">Söker ...</translation> <translation id="1316495628809031177">Synkroniseringen har pausats</translation> <translation id="1317637799698924700">Dockningsstationen körs i kompatibilitetsläge med USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC har inte stöd för krypteringstypen</translation> <translation id="1984417487208496350">Inget skydd (rekommenderas inte)</translation> <translation id="1987317783729300807">Konton</translation> -<translation id="1988494864246143197">Flash brukar användas för ljud- och videouppspelning eller videospel på webbplatser. Stödet för Flash Player upphör i slutet av december 2020.</translation> <translation id="1989112275319619282">Bläddra</translation> <translation id="1990512225220753005">Visa inte genvägar på den här sidan</translation> <translation id="1992397118740194946">Inte angett</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Fönsterplacering</translation> <translation id="2881076733170862447">När du klickar på tillägget</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> startar om och återställs tillfälligt</translation> -<translation id="288387288628762616">Får använda Flash</translation> <translation id="2885378588091291677">Aktivitetshanteraren</translation> <translation id="2885729872133513017">Ett problem uppstod när serversvaret skulle avkodas.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Du är inloggad!</translation> <translation id="3428747202529429621">Skyddar dig i Chrome och kan användas för förbättrad säkerhet i andra Google-appar där du är inloggad</translation> <translation id="3428800329481094896">Linux-behållarens SSH-nycklar hämtas</translation> +<translation id="3429271624041785769">Språk för webbinnehåll</translation> <translation id="3429275422858276529">Lägg till ett bokmärke för den här sidan så att du enkelt kan hitta tillbaka till den</translation> <translation id="3432227430032737297">Ta bort alla som visas</translation> <translation id="3432757130254800023">Skicka ljud och bild till skärmar i det lokala nätverket</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Detta är allmän information om enheten och hur den används (till exempel batterinivå, system- och appaktivitet samt fel). Med hjälp av dessa uppgifter kan vi förbättra Android och vissa samlade uppgifter kan även hjälpa Googles appar och Googles partner, till exempel Android-utvecklare, att förbättra sina appar och produkter.</translation> <translation id="3838085852053358637">Det gick inte att läsa in tillägget</translation> <translation id="3838486795898716504">Mer <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookies och andra webbplats- och plugindata</translation> <translation id="383891835335927981">Inga webbplatser har zoomats in eller ut</translation> <translation id="3839509547554145593">Aktivera scrollningsacceleration för musen</translation> <translation id="3839516600093027468">Blockera alltid tillgången till Urklipp för <ph name="HOST" /></translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Nedladdningshanterare</translation> <translation id="3881478300875776315">Visa färre rader</translation> <translation id="3882165008614329320">Befintlig video från kamera eller fil</translation> +<translation id="3884152383786131369">Det första språk som stöds i den här listan kommer att användas för webbinnehåll som är tillgängligt på flera språk. Dessa inställningar synkroniseras med inställningarna för webbläsaren. <ph name="BEGIN_LINK_LEARN_MORE" />Läs mer<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Din begäran om att få tillgång till denna webbplats har skickats till <ph name="NAME" /></translation> <translation id="3888550877729210209">Anteckna med <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Aktivera Chrome Sync om du vill använda Wi-Fi-synkronisering</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Kontrollerar enhetskonfiguration.</translation> <translation id="4025039777635956441">Stäng av ljudet för den valda webbplatsen</translation> <translation id="4027804175521224372">(Du går miste om att <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Flash-inställningarna sparas tills du avslutar Chrome.</translation> <translation id="4028467762035011525">Lägg till inmatningsmetoder</translation> <translation id="4031179711345676612">Mikrofon är tillåten</translation> <translation id="4031527940632463547">Användning av sensorer har blockerats</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Konfigurera Kerberos</translation> <translation id="4235200303672858594">Helskärm</translation> <translation id="4235965441080806197">Avbryt inloggningen</translation> -<translation id="4237773362828263530">Inställningar med * som jokertecken stöds inte längre. Kontakta administratören och be honom eller henne att <ph name="BEGIN_LINK" />ändra inställningarna<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Läs fliken senare}other{Läs flikarna senare}}</translation> <translation id="4242145785130247982">Flera klientcertifikat stöds inte</translation> <translation id="4242533952199664413">Öppna Inställningar</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Ingen signal hittades</translation> <translation id="4549791035683739768">Det finns inga sparade fingeravtryck på säkerhetsnyckeln.</translation> <translation id="4551763574344810652">Tryck på <ph name="MODIFIER_KEY_DESCRIPTION" /> för att ångra</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Nätverkstyp: <ph name="NETWORK_TYPE" />, signalstyrka <ph name="SIGNAL_STRENGTH" /> %</translation> <translation id="4553526521109675518">Om du vill byta språk på Chromebook måste du starta om enheten. <ph name="BEGIN_LINK_LEARN_MORE" />Läs mer<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Det externa tillägget har samma eller lägre version än det som redan finns.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Stäng och aktivera barnspärr</translation> <translation id="4976009197147810135">Dela lodrätt</translation> <translation id="4977942889532008999">Bekräfta åtkomst</translation> -<translation id="4978905460870207779">Webbplatser får begära tillstånd att använda Flash</translation> <translation id="4980805016576257426">Tillägget innehåller skadlig programvara.</translation> <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Logga in<ph name="END_LINK" /> om du vill rensa webbinformation från alla synkroniserade enheter och ditt Google-konto.</translation> <translation id="4982236238228587209">Enhetens programvara</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Data kopplad till den här appen tas bort från enheten.</translation> <translation id="5908474332780919512">Starta appen när du loggar in</translation> <translation id="5908695239556627796">Scrollningshastighet för musen</translation> -<translation id="5908769186679515905">Blockera webbplatser från att köra Flash</translation> <translation id="5910363049092958439">S&para bild som...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> är offline</translation> <translation id="5911533659001334206">Kortkommandovisare</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Lägg till en biljett</translation> <translation id="6112931163620622315">Kontrollera mobilen</translation> <translation id="6112952769866305444">Redigera personen <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Ställ in standardsökmotor för webbläsaren Chrome och översikten på <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Du måste byta till den primära användarprofilen på telefonen om du vill använda Smart Lock</translation> <translation id="6116921718742659598">Ändra språk- och inmatningsinställningar</translation> <translation id="6120205520491252677">Fäst den här sidan på startskärmen ...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Det finns inga andra tillgängliga enheter.</translation> <translation id="7141105143012495934">Inloggningen misslyckades eftersom det inte gick att hämta dina kontouppgifter. Kontakta administratören eller försök igen.</translation> <translation id="7143207342074048698">Ansluter</translation> +<translation id="7143358760238281735">Det finns inga appar</translation> <translation id="7144878232160441200">Försök igen</translation> <translation id="714876143603641390">LAN-anslutningar</translation> <translation id="7149893636342594995">Senaste 24 timmarna</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Mobildata används</translation> <translation id="7709152031285164251">Misslyckades – <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Casta …</translation> +<translation id="7712739869553853093">Dialogruta för förhandsgranskning av utskrift</translation> <translation id="7712836429117959503">Okänt tillägg med id <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Cookies från <ph name="DOMAIN" /> tillåts</translation> <translation id="7714464543167945231">Certifikat</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Fel i nätverkskonfigurationen</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Sluttid</translation> -<translation id="783214144752121388">Blockera webbplatser från att köra Flash (rekommenderas)</translation> <translation id="7833720883933317473">Sparade anpassade ord visas här</translation> <translation id="7835178595033117206">Bokmärket har tagits bort</translation> <translation id="7836850009646241041">Testa att trycka på säkerhetsnyckeln igen</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Den här filen är krypterad. Be ägaren att dekryptera den.}other{Några av de här filerna är krypterade. Be ägaren att dekryptera dem.}}</translation> <translation id="808894953321890993">Ändra lösenord</translation> <translation id="8090234456044969073">Läsa en lista över de webbplatser du besöker oftast</translation> -<translation id="8092681102116274204">Inställningar med * som jokertecken stöds inte längre. Kontakta den som har utvecklat tillägget eller administratören och be honom eller henne att <ph name="BEGIN_LINK" />ändra inställningarna<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> svarar inte</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Säkerhetskopiera till Google Drive. Återställ enkelt data eller byt enhet när som helst. Säkerhetskopian innehåller appdata.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Säkerhetskopiorna krypteras med hjälp av Google-kontots lösenord och laddas upp på Google.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">Välj album i <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Ange lösenordet på nytt om du vill uppdatera din profil på <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Skicka aviseringar till dig och komma ihåg den här datorn som standard för Messages. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Blockera Flash (rekommenderas)</translation> <translation id="820568752112382238">Mest besökta webbplatser</translation> <translation id="8206745257863499010">Bluesig</translation> <translation id="8206859287963243715">Mobil</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 7aaf237..8207c534 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Simamisha</translation> <translation id="1272293450992660632">Nambari za PIN hazilingani.</translation> <translation id="1272978324304772054">Akaunti hii ya mtumiaji siyo ya kikoa ambacho kifaa kimesajiliwa. Ikiwa unataka kujisajili kwenye kikoa tofauti unahitaji kuenda katika ufufuaji wa kifaa kwanza.</translation> -<translation id="1274977772557788323">Mipangilio ya Hifadhi ya Adobe Flash Player</translation> <translation id="1274997165432133392">Vidakuzi na data ya tovuti nyingine</translation> <translation id="1275718070701477396">Imechaguliwa</translation> <translation id="1276994519141842946">Imeshindwa kuondoa <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Alamisho, historia, na mipangilio yako mingine itasawazishwa na Akaunti yako ya Google.</translation> <translation id="1314565355471455267">VPN ya Android</translation> <translation id="131461803491198646">Uko katika mtandao wako wa kawaida</translation> -<translation id="1315056510003830387">Zisizoruhusiwa kutumia Flash</translation> <translation id="1316136264406804862">Inatafuta...</translation> <translation id="1316495628809031177">Imesitisha Usawazishaji</translation> <translation id="1317637799698924700">Sehemu ya kituo chako itatumia hali inayooana na USB Aina ya C.</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC haitumii aina ya usimbaji fiche</translation> <translation id="1984417487208496350">Hamna ulinzi (haipendekezwi)</translation> <translation id="1987317783729300807">Akaunti</translation> -<translation id="1988494864246143197">Tovuti hutumia Flash kucheza sauti, video au michezo ya video. Flash Player haitatumika tena baada ya Desemba 2020.</translation> <translation id="1989112275319619282">Vinjari</translation> <translation id="1990512225220753005">Usionyeshe njia za mkato kwenye ukurasa huu</translation> <translation id="1992397118740194946">Haijawekwa</translation> @@ -1646,7 +1643,6 @@ <translation id="2880660355386638022">Kuonyesha dirisha</translation> <translation id="2881076733170862447">Unapobofya Kiendelezi</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> itazima na kuwasha tena na kuweka upya kwa muda mfupi</translation> -<translation id="288387288628762616">Zinazoruhusiwa kutumia Flash</translation> <translation id="2885378588091291677">Kidhibiti cha Shughuli</translation> <translation id="2885729872133513017">Tatizo limetokea wakati wa kusimbua majibu ya seva.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2078,6 +2074,7 @@ <translation id="3428419049384081277">Umeingia katika akaunti!</translation> <translation id="3428747202529429621">Hulinda usalama wako kwenye Chrome na inaweza kutumiwa kuboresha usalama wako kwenye programu nyingine za Google ukiwa umeingia katika akaunti</translation> <translation id="3428800329481094896">Inatafuta misimbo ya ssh ya metadata ya Linux</translation> +<translation id="3429271624041785769">Lugha za maudhui ya wavuti</translation> <translation id="3429275422858276529">Alamisha ukurasa huu ili uupate kwa urahisi baadaye</translation> <translation id="3432227430032737297">Futa Vidakuzi Vyote Vilivyoonyeshwa</translation> <translation id="3432757130254800023">Tuma sauti na video za kuonyesha kwenye mtandao wa ndani</translation> @@ -2462,7 +2459,6 @@ <translation id="383669374481694771">Haya ni maelezo ya jumla kuhusu kifaa hiki na jinsi kinavyotumika (kama vile hitilafu, kiwango cha chaji ya betri, shughuli za programu na mfumo). Data itatumika kuboresha Android na baadhi ya maelezo yanayojumlishwa yatasaidia pia programu na washirika wa Google, kama vile wasanidi programu za Android, kuboresha programu na bidhaa zao.</translation> <translation id="3838085852053358637">Haijafaulu kupakia kiendelezi</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> zaidi</translation> -<translation id="3838543471119263078">Vidakuzi na data nyingine ya tovuti na programu jalizi</translation> <translation id="383891835335927981">Hakuna tovuti zilizovutwa karibu wala kusogezwa mbali</translation> <translation id="3839509547554145593">Ruhusu hali ya kuongeza kasi ya kusogeza kipanya</translation> <translation id="3839516600093027468">Zuia <ph name="HOST" /> kila wakati ili isione ubao wa kunakili</translation> @@ -2504,6 +2500,7 @@ <translation id="3879748587602334249">Kidhibiti cha vipakuliwa</translation> <translation id="3881478300875776315">Onyesha mistari michache</translation> <translation id="3882165008614329320">Video iliyopo kutoka kwenye kamera au faili</translation> +<translation id="3884152383786131369">Maudhui ya wavuti yanayopatikana katika lugha nyingi yatatumia lugha ya kwanza inayoweza kutumika kwenye orodha hii. Mapendeleo haya husawazishwa na mipangilio ya kivinjari chako. <ph name="BEGIN_LINK_LEARN_MORE" />Pata maelezo zaidi<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Ombi lako la kufikia tovuti hii limetumwa kwa <ph name="NAME" /></translation> <translation id="3888550877729210209">Madokezo yanachukuliwa na <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Washa kipengele cha Usawazishaji wa Chrome ili uweze kutumia kipengele cha Usawazishaji Wi-Fi</translation> @@ -2636,7 +2633,6 @@ <translation id="4023146161712577481">Inaamua usanidi wa kifaa.</translation> <translation id="4025039777635956441">Zima Sauti ya Tovuti Iliyochaguliwa</translation> <translation id="4027804175521224372">(Unakosekana—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Mipangilio yako ya Flash haitaondolewa hadi utakapofunga Chrome.</translation> <translation id="4028467762035011525">Ongeza mbinu ya kuingiza data</translation> <translation id="4031179711345676612">Maikrofoni imeruhusiwa</translation> <translation id="4031527940632463547">Imezuia vitambuzi</translation> @@ -2786,7 +2782,6 @@ <translation id="4232375817808480934">Weka Mipangilio ya Kerberos</translation> <translation id="4235200303672858594">Skrini Nzima</translation> <translation id="4235965441080806197">Ghairi kuingia katika akaunti</translation> -<translation id="4237773362828263530">Mipangilio yenye herufi wakilishi za "*" haitumiki tena. Wasiliana na msimamizi wako ili <ph name="BEGIN_LINK" />ubadilishe mipangilio hii<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Soma Kichupo Baadaye}other{Soma Vichupo Baadaye}}</translation> <translation id="4242145785130247982">Vyeti vingi vya kiteja havitumiki</translation> <translation id="4242533952199664413">Fungua mipangilio</translation> @@ -3050,7 +3045,6 @@ <translation id="4548483925627140043">Mawimbi ya WiFi hayapatikani</translation> <translation id="4549791035683739768">Ufunguo wako wa usalama hauna alama zozote za kidole zilizohifadhiwa</translation> <translation id="4551763574344810652">Bofya <ph name="MODIFIER_KEY_DESCRIPTION" /> ili utendue</translation> -<translation id="4552089082226364758">Mmweko</translation> <translation id="4552759165874948005">Mtandao wa <ph name="NETWORK_TYPE" />, uthabiti wa mtandao <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Unahitaji kuzima kisha uwashe Chromebook yako ili ubadilishe lugha inayotumika kwenye kifaa. <ph name="BEGIN_LINK_LEARN_MORE" />Pata maelezo zaidi<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Kiendelezi cha nje ni sawa na au toleo la chini likilinganishwa na toleo lililopo.</translation> @@ -3405,7 +3399,6 @@ <translation id="4974733135013075877">Toka kwenye wasifu wa sasa</translation> <translation id="4976009197147810135">Gawanya wima</translation> <translation id="4977942889532008999">Thibitisha Idhini ya kufikia</translation> -<translation id="4978905460870207779">Tovuti zinaweza kuomba ruhusa ya kutumia Flash</translation> <translation id="4980805016576257426">Kiendelezi kina programu hasidi.</translation> <translation id="4981449534399733132">Ili ufute data ya kuvinjari kwenye vifaa vyako vyote vilivyosawazishwa na Akaunti yako ya Google, <ph name="BEGIN_LINK" />ingia katika akaunti<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Programu ya kifaa</translation> @@ -4176,7 +4169,6 @@ <translation id="5906732635754427568">Data inayohusishwa na programu hii itaondolewa kwenye kifaa hiki.</translation> <translation id="5908474332780919512">Fungua Programu Unapoingia Katika Akaunti</translation> <translation id="5908695239556627796">Kasi ya kusogeza kipanya</translation> -<translation id="5908769186679515905">Zuia tovuti kutumia Flash</translation> <translation id="5910363049092958439">&Hifadhi Picha Kama...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> iko nje ya mtandao</translation> <translation id="5911533659001334206">Kitazamaji cha njia ya mkato</translation> @@ -4360,6 +4352,7 @@ <translation id="6112727384379533756">Weka tiketi</translation> <translation id="6112931163620622315">Angalia simu yako</translation> <translation id="6112952769866305444">Badilisha wasifu, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Weka mtambo wako chaguomsingi wa kutafuta kwenye kivinjari cha Chrome na Kifungua Programu cha <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Ili utumie Smart Lock, badilisha wasifu wa mtumiaji wa msingi kwenye simu yako</translation> <translation id="6116921718742659598">Badilisha mipangilio ya lugha na uingizaji</translation> <translation id="6120205520491252677">Bana ukurasa huu kwenye skirini ya Kuanza...</translation> @@ -5226,6 +5219,7 @@ <translation id="7140928199327930795">Hakuna vifaa vingine vinapatikana.</translation> <translation id="7141105143012495934">Haikufaulu kuingia katika akaunti kwa sababu maelezo ya akaunti yako hayakupatikana. Tafadhali wasiliana na msimamizi wako au jaribu tena.</translation> <translation id="7143207342074048698">Inaunganisha</translation> +<translation id="7143358760238281735">Hamna programu</translation> <translation id="7144878232160441200">Jaribu tena</translation> <translation id="714876143603641390">Muunganisho wa LAN</translation> <translation id="7149893636342594995">Saa 24 zilizopita</translation> @@ -5697,6 +5691,7 @@ <translation id="7707922173985738739">Tumia data ya mtandao wa simu</translation> <translation id="7709152031285164251">Imeshindwa - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Tuma...</translation> +<translation id="7712739869553853093">Kidirisha cha onyesho la kukagua kabla ya kuchapisha</translation> <translation id="7712836429117959503">Kiendelezi kisichojulikana chenye kitambulisho <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Vidakuzi kutoka <ph name="DOMAIN" /> vinaruhusiwa</translation> <translation id="7714464543167945231">Cheti</translation> @@ -5828,7 +5823,6 @@ <translation id="7831491651892296503">Hitilafu imetokea wakati wa kuweka mipangilio ya mtandao</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Wakati wa kuisha</translation> -<translation id="783214144752121388">Zuia tovuti zisitumie Mweko (inapendekezwa)</translation> <translation id="7833720883933317473">Manenosiri maalum yaliyohifadhiwa yataonekana hapa</translation> <translation id="7835178595033117206">Alamisho imeondolewa</translation> <translation id="7836850009646241041">Jaribu kugusa ufunguo wa usalama tena</translation> @@ -6056,7 +6050,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Faili hii imesimbwa kwa njia fiche. Mwombe mmiliki aisimbue.}other{Baadhi ya faili hizi zimesimbwa. Mwombe mmiliki azisimbue.}}</translation> <translation id="808894953321890993">Badilisha nenosiri</translation> <translation id="8090234456044969073">Soma orodha ya tovuti zako unazotembelea mara nyingi</translation> -<translation id="8092681102116274204">Mipangilio yenye herufi wakilishi za "*" haitumiki tena. Wasiliana na msanidi wa kiendelezi au msimamizi wako ili <ph name="BEGIN_LINK" />ubadilishe mipangilio hii<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> haifanyi kazi</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Weka nakala kwenye Hifadhi ya Google. Rejesha data yako au ubadilishe vifaa kwa urahisi wakati wowote. Nakala unazohifadhi zinajumuisha data ya programu.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Nakala unazohifadhi zinapakiwa kwenye Google na kusimbwa kwa kutumia nenosiri la Akaunti yako ya Google.<ph name="END_PARAGRAPH2" /> @@ -6151,7 +6144,6 @@ <translation id="8201717382574620700">Chagua albamu za <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Tafadhali andika tena nenosiri lako ili usasishe wasifu wako kwenye <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Kukutumia arifa na mipangilio chaguomsingi ili ukumbuke kompyuta hii kwa ajili ya Ujumbe. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Zuia Flash (inapendekezwa)</translation> <translation id="820568752112382238">Tovuti zilizotembelewa zaidi</translation> <translation id="8206745257863499010">Kimuziki</translation> <translation id="8206859287963243715">Simu ya Mkononi</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 5242d342..2beafbb 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">நிறுத்து</translation> <translation id="1272293450992660632">'பின்' பொருந்தவில்லை.</translation> <translation id="1272978324304772054">இந்தப் பயனர் கணக்கானது சாதனம் பதிவுசெய்யப்பட்ட களத்திற்கு உரியது அல்ல. வேறொரு களத்தில் பதிவுசெய்ய விரும்பினால், முதலில் சாதன மீட்புக்குச் செல்ல வேண்டும்.</translation> -<translation id="1274977772557788323">Adobe Flash Player இன் சேமிப்பக அமைப்புகள்</translation> <translation id="1274997165432133392">குக்கீகள் மற்றும் பிற தளத்தின் தரவு</translation> <translation id="1275718070701477396">தேர்ந்தெடுக்கப்பட்டது</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> ஆப்ஸை நிறுவல் நீக்க முடியவில்லை</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">உங்கள் புத்தகக்குறிகள், வரலாறு மற்றும் பிற அமைப்புகள் ஆகியவை உங்கள் Google கணக்கில் ஒத்திசைக்கப்படும்.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">உள்ளூர் நெட்வொர்க், ரோமிங் இல்லை</translation> -<translation id="1315056510003830387">Flashஐப் பயன்படுத்த அனுமதி இல்லாத தளங்கள்</translation> <translation id="1316136264406804862">தேடுகிறது...</translation> <translation id="1316495628809031177">ஒத்திசைவு இடைநிறுத்தப்பட்டது</translation> <translation id="1317637799698924700">'USB டைப்-சி இணக்கத்தன்மைப் பயன்முறையில்' உங்கள் டாக் செய்வதற்கான நிலையம் இயங்கும்.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">என்க்ரிப்ஷன் வகையை KDC ஆதரிக்கவில்லை</translation> <translation id="1984417487208496350">பாதுகாப்பற்ற பயன்முறை (பரிந்துரைக்கப்படவில்லை)</translation> <translation id="1987317783729300807">கணக்குகள்</translation> -<translation id="1988494864246143197">ஆடியோ, வீடியோ, வீடியோ கேம்கள் போன்றவற்றை இயக்குவதற்கு Flashஷைத் தளங்கள் வழக்கமாகப் பயன்படுத்தும். டிசம்பர் 2020க்குப் பிறகு Flash Playerரைப் பயன்படுத்த முடியாது.</translation> <translation id="1989112275319619282">உலாவு</translation> <translation id="1990512225220753005">இந்தப் பக்கத்தில் ஷார்ட்கட்களைக் காண்பிக்க வேண்டாம்</translation> <translation id="1992397118740194946">அமைக்கப்படவில்லை</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">சாளரத்தைக் காட்டுமிடம்</translation> <translation id="2881076733170862447">நீங்கள் நீட்டிப்பைக் கிளிக் செய்யும்போது</translation> <translation id="2882943222317434580">சிறிது நேரத்தில் <ph name="IDS_SHORT_PRODUCT_NAME" /> மீண்டும் துவங்கப்பட்டு, மீட்டமைக்கப்படும்</translation> -<translation id="288387288628762616">Flashஐப் பயன்படுத்த அனுமதிக்கப்பட்டுள்ள தளங்கள்</translation> <translation id="2885378588091291677">செயல் நிர்வாகி</translation> <translation id="2885729872133513017">சேவையகத்தின் பதிலை டிகோட் செய்யும்போது சிக்கல் ஏற்பட்டது.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2465,7 +2461,6 @@ <translation id="383669374481694771">இந்தச் சாதனம் மற்றும் இதைப் பயன்படுத்தும் விதம் (பேட்டரியின் அளவு, சிஸ்டம் மற்றும் ஆப்ஸ் செயல்பாடு மற்றும் பிழைகள் போன்றவை) குறித்த பொதுவான தகவல் இது. Androidடை மேம்படுத்த இந்தத் தரவு பயன்படுத்தப்படும். மேலும், Google ஆப்ஸுக்கும் Android டெவலப்பர்கள் போன்ற கூட்டாளர்கள் தங்களின் ஆப்ஸ் மற்றும் தயாரிப்புகளைச் சிறப்பாக அமைக்கவும் ஒருங்கிணைக்கப்பட்ட சில தரவு உதவும்.</translation> <translation id="3838085852053358637">நீட்டிப்பை ஏற்ற முடியவில்லை</translation> <translation id="3838486795898716504">மேலும் <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">குக்கீகள், பிற தளம் மற்றும் செருகுநிரல் தரவு</translation> <translation id="383891835335927981">எந்தத் தளங்களும் பெரிதாக்கப்படவோ சிறிதாக்கப்படவோ இல்லை</translation> <translation id="3839509547554145593">'மவுஸைத் துரிதமாக நகர்த்துதல்' அம்சத்தை இயக்கு</translation> <translation id="3839516600093027468"><ph name="HOST" />, கிளிப்போர்டைப் பார்ப்பதை எப்போதும் தடைசெய்</translation> @@ -2639,7 +2634,6 @@ <translation id="4023146161712577481">சாதன உள்ளமைவைத் தீர்மானிக்கிறது.</translation> <translation id="4025039777635956441">தேர்வுசெய்துள்ள இணையதளத்தை முடக்கு</translation> <translation id="4027804175521224372">(இதைத் தவறவிடுகிறீர்கள்—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Chromeமை விட்டு வெளியேறும் வரை, ஃப்ளாஷ் அமைப்புகள் தக்கவைக்கப்படும்.</translation> <translation id="4028467762035011525">உள்ளீட்டு முறைகளைச் சேர்</translation> <translation id="4031179711345676612">மைக்ரோஃபோன் அனுமதிக்கப்பட்டது</translation> <translation id="4031527940632463547">சென்சார்கள் தடுக்கப்பட்டுள்ளன</translation> @@ -2791,7 +2785,6 @@ <translation id="4232375817808480934">Kerberosஸை உள்ளமைத்தல்</translation> <translation id="4235200303672858594">திரை முழுவதும்</translation> <translation id="4235965441080806197">உள்நுழைவை ரத்துசெய்</translation> -<translation id="4237773362828263530">"*" வைல்டுகார்டுகள் உள்ள அமைப்புகள் இனி ஆதரிக்கப்படாது. <ph name="BEGIN_LINK" />இந்த அமைப்புகளை மாற்ற<ph name="END_LINK" />, உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{பின்னர் படிக்க தாவலைச் சேர்}other{பின்னர் படிக்க தாவல்களைச் சேர்}}</translation> <translation id="4242145785130247982">பல்வேறு கிளையண்ட் சான்றிதழ்களைப் பயன்படுத்த இயலாது</translation> <translation id="4242533952199664413">அமைப்புகளைத் திற</translation> @@ -3055,7 +3048,6 @@ <translation id="4548483925627140043">சிக்னல் கிடைக்கவில்லை</translation> <translation id="4549791035683739768">பாதுகாப்பு விசையில் கைரேகைகள் எதுவும் சேமிக்கப்படவில்லை</translation> <translation id="4551763574344810652">செயல்தவிர்க்க <ph name="MODIFIER_KEY_DESCRIPTION" />ஐ அழுத்தவும்</translation> -<translation id="4552089082226364758">ஃப்ளாஷ்</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> நெட்வொர்க், சிக்னல் வலிமை <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">சாதனத்தின் மொழியை மாற்ற உங்கள் Chromebookகை மீண்டும் தொடங்கவும். <ph name="BEGIN_LINK_LEARN_MORE" />மேலும் அறிக<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">ஏற்கனவே இருப்பதுடன் ஒப்பிடும் போது வெளிப்புற நீட்டிப்பு ஒரே அல்லது குறைவான பதிப்பைக் கொண்டுள்ளது.</translation> @@ -3410,7 +3402,6 @@ <translation id="4974733135013075877">வெளியேறி குழந்தைப்பூட்டிடு</translation> <translation id="4976009197147810135">செங்குத்தாகப் பிரி</translation> <translation id="4977942889532008999">அணுகலை உறுதிசெய்</translation> -<translation id="4978905460870207779">Flashஷைப் பயன்படுத்தத் தளங்கள் முயலும்போது அனுமதி கேள்</translation> <translation id="4980805016576257426">இந்த நீட்டிப்பில் மால்வேர் உள்ளது.</translation> <translation id="4981449534399733132">உங்கள் ஒத்திசைக்கப்பட்ட சாதனங்கள் அனைத்திலிருந்தும் Google கணக்கிலிருந்தும் உலாவல் தரவை முழுமையாக அழிக்க, <ph name="BEGIN_LINK" />உள்நுழையவும்<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">சாதன மென்பொருள்</translation> @@ -4182,7 +4173,6 @@ <translation id="5906732635754427568">இந்தப் பயன்பாட்டுடன் தொடர்புடைய தரவு, எல்லாச் சாதனங்களிலிருந்தும் அகற்றப்படும்.</translation> <translation id="5908474332780919512">நான் உள்நுழையும்போது ஆப்ஸைத் தொடங்கு</translation> <translation id="5908695239556627796">மவுஸ் நகர்த்துதல் வேகம்</translation> -<translation id="5908769186679515905">Flashஐ இயக்குவதிலிருந்து தளங்களைத் தடு</translation> <translation id="5910363049092958439">படத்தை இவ்வாறு சே&மி...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ஆஃப்லைனில் உள்ளது</translation> <translation id="5911533659001334206">Shortcut viewer</translation> @@ -5832,7 +5822,6 @@ <translation id="7831491651892296503">நெட்வொர்க்கை உள்ளமைப்பதில் பிழை</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">முடிவு நேரம்</translation> -<translation id="783214144752121388">தளங்கள் ஃபிளாஷை இயக்குவதிலிருந்து தடுக்கும் (பரிந்துரைக்கப்படுவது)</translation> <translation id="7833720883933317473">சேமித்த பிரத்தியேக சொற்கள் இங்கே தோன்றும்</translation> <translation id="7835178595033117206">புக்மார்க் அகற்றப்பட்டது</translation> <translation id="7836850009646241041">உங்கள் பாதுகாப்பு விசையை மீண்டும் தொடவும்</translation> @@ -6060,7 +6049,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{இந்தக் கோப்பு என்க்ரிப்ஷன் செய்யப்பட்டுள்ளது. டீக்ரிப்ட் செய்யுமாறு அதன் உரிமையாளரிடம் கேட்கவும்.}other{இந்தக் கோப்புகளில் சில என்க்ரிப்ஷன் செய்யப்பட்டுள்ளன. டீக்ரிப்ட் செய்யுமாறு அவற்றின் உரிமையாளரிடம் கேட்கவும்.}}</translation> <translation id="808894953321890993">கடவுச்சொல்லை மாற்று</translation> <translation id="8090234456044969073">அடிக்கடி பார்வையிட்ட இணையதளங்களின் பட்டியலைப் படிக்கலாம்</translation> -<translation id="8092681102116274204">"*" வைல்டுகார்டுகள் உள்ள அமைப்புகள் இனி ஆதரிக்கப்படாது. <ph name="BEGIN_LINK" />இந்த அமைப்புகளை மாற்ற<ph name="END_LINK" />, நீட்டிப்பு டெவெலப்பரையோ உங்கள் நிர்வாகியையோ தொடர்புகொள்ளவும்.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> பதிலளிக்கவில்லை</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google இயக்ககத்திற்குக் காப்புப் பிரதி எடுக்கும். இதனால் உங்கள் தரவை எளிதாக மீட்டெடுக்கலாம் அல்லது எப்போது வேண்டுமானாலும் சாதனத்தை மாற்றலாம். காப்புப் பிரதியில் ஆப்ஸ் தரவும் உள்ளடங்கும்.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />உங்கள் காப்புப் பிரதிகள் Googleளுக்குப் பதிவேற்றப்பட்டு, உங்கள் Google கணக்கின் கடவுச்சொல்லைப் பயன்படுத்தி என்க்ரிப்ட் செய்யப்படும்.<ph name="END_PARAGRAPH2" /> @@ -6155,7 +6143,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ஆல்பங்களைத் தேர்ந்தெடுக்கும்</translation> <translation id="8202160505685531999">உங்கள் <ph name="DEVICE_TYPE" /> சுயவிவரத்தைப் புதுப்பிக்க உங்கள் கடவுச்சொல்லை மீண்டும் உள்ளிடவும்.</translation> <translation id="8203732864715032075">இந்தக் கம்ப்யூட்டரை இயல்பாக நினைவில் வைத்து, மெசேஜஸ் அறிவிப்புகளை அனுப்பும். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flashஷைத் தடு (பரிந்துரைக்கப்படுவது)</translation> <translation id="820568752112382238">அதிகம் பார்த்த தளங்கள்</translation> <translation id="8206745257863499010">ப்ளூஸி</translation> <translation id="8206859287963243715">செல்லுலர்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 940337e..e5e343c 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">ఆపు</translation> <translation id="1272293450992660632">పిన్ విలువలు సరిపోలలేదు.</translation> <translation id="1272978324304772054">ఈ వినియోగదారు ఖాతా, పరికరం నమోదు చేయబడిన డొమైన్కు చెందినది కాదు. మీరు వేరొక డొమైన్కు నమోదు చేయాలనుకుంటే మీరు ముందుగా పరికరాన్ని పునరుద్ధరించాలి.</translation> -<translation id="1274977772557788323">Adobe Flash Player నిల్వ సెట్టింగ్లు</translation> <translation id="1274997165432133392">కుక్కీలు మరియు ఇతర సైట్ డేటా</translation> <translation id="1275718070701477396">ఎంపికైంది</translation> <translation id="1276994519141842946"><ph name="APP_NAME" />ను అన్ఇన్స్టాల్ చేయడం సాధ్యపడలేదు.</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">మీ బుక్మార్క్లు, చరిత్ర, ఇతర సెట్టింగ్లు మీ Google ఖాతాకు సింక్ చేయబడతాయి.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">హోమ్ నెట్వర్క్, రోమింగ్ కాదు</translation> -<translation id="1315056510003830387">ఫ్లాష్ను ఉపయోగించడానికి అనుమతించబడలేదు</translation> <translation id="1316136264406804862">శోధిస్తోంది...</translation> <translation id="1316495628809031177">సమకాలీకరణ పాజ్ చేయబడింది</translation> <translation id="1317637799698924700">మీ డాకింగ్ స్టేషన్, USB టైప్-సి అనుకూలత మోడ్లో ఆపరేట్ చేయబడుతుంది.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">ఎన్క్రిప్షన్ రకానికి KDC మద్దతు లేదు</translation> <translation id="1984417487208496350">రక్షణ లేదు (సిఫార్సు చేయడం లేదు)</translation> <translation id="1987317783729300807">ఖాతాలు</translation> -<translation id="1988494864246143197">ఆడియో, వీడియో, లేదా వీడియో గేమ్లను ప్లే చేయడానికి సాధారణంగా సైట్లు Flashను ఉపయోగించుకుంటాయి. డిసెంబర్ 2020 నుండి Flash Playerకు సపోర్ట్ తీసివేయబడుతుంది.</translation> <translation id="1989112275319619282">బ్రౌజ్ చేయి</translation> <translation id="1990512225220753005">ఈ పేజీలో షార్ట్కట్లను చూపవద్దు</translation> <translation id="1992397118740194946">సెట్ చెయ్యలేదు</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">విండో స్థలం</translation> <translation id="2881076733170862447">మీరు ఎక్స్టెన్షన్ క్లిక్ చేసినప్పుడు</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> పునఃప్రారంభించబడుతుంది మరియు కొద్దిసేపట్లో రీసెట్ చేయబడుతుంది</translation> -<translation id="288387288628762616">ఫ్లాష్ను ఉపయోగించడానికి అనుమతించబడింది</translation> <translation id="2885378588091291677">విధి సంచాలకులు</translation> <translation id="2885729872133513017">సర్వర్ ప్రతిస్పందనను డీకోడ్ చేస్తుండగా సమస్య ఏర్పడింది.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2465,7 +2461,6 @@ <translation id="383669374481694771">ఈ పరికరం, దీనిని ఉపయోగించే పద్ధతి (బ్యాటరీ స్థాయి, సిస్టమ్, యాప్ కార్యకలాపం, ఎర్రర్లు లాంటివి) గురించి ఇది సాధారణ సమాచారం. ఈ డేటా Androidను మెరుగుపరచడం కోసం ఉపయోగించబడుతుంది. కొంత ఏకీకృత సమాచారం కూడా Google యాప్లు, Android డెవలపర్ల లాంటి భాగస్వాముల యాప్లు, ఉత్పత్తులను మెరుగుపరచడంలో సహాయపడుతుంది.</translation> <translation id="3838085852053358637">ఎక్స్టెన్షన్ను లోడ్ చేయడం విఫలమైంది</translation> <translation id="3838486795898716504">మరిన్ని <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">కుక్కీలు మరియు ఇతర సైట్ మరియు ప్లగిన్ డేటా</translation> <translation id="383891835335927981">సైట్లు ఏవీ దగ్గరకు లేదా దూరానికి జూమ్ చేయబడలేదు</translation> <translation id="3839509547554145593">మౌస్ స్క్రోల్ యాక్సిలరేషన్ను ఎనేబుల్ చేయండి</translation> <translation id="3839516600093027468">క్లిప్బోర్డ్ను చూడనీయకుండా ఎల్లప్పుడూ <ph name="HOST" />ని బ్లాక్ చేయి</translation> @@ -2639,7 +2634,6 @@ <translation id="4023146161712577481">పరికర కాన్ఫిగరేషన్ను గుర్తిస్తోంది.</translation> <translation id="4025039777635956441">ఎంపిక చేసిన సైట్ను మ్యూట్ చేయి</translation> <translation id="4027804175521224372">(మీరు దీన్ని చేయలేదు—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">మీరు Chrome నుండి నిష్క్రమించే వరకు మీ Flash సెట్టింగ్లు ఉంచబడతాయి.</translation> <translation id="4028467762035011525">ఇన్పుట్ విధానాలను జోడించండి</translation> <translation id="4031179711345676612">మైక్రోఫోన్ అనుమతించబడింది</translation> <translation id="4031527940632463547">సెన్సార్లు బ్లాక్ చేయబడ్డాయి</translation> @@ -2791,7 +2785,6 @@ <translation id="4232375817808480934">Kerberosను కాన్ఫిగర్ చేయండి</translation> <translation id="4235200303672858594">పూర్తి స్క్రీన్</translation> <translation id="4235965441080806197">సైన్ ఇన్ను రద్దు చేయి</translation> -<translation id="4237773362828263530">"*" వైల్డ్కార్డ్లతో కూడిన సెట్టింగ్లకు ఇకపై సపోర్ట్ లేదు. <ph name="BEGIN_LINK" />ఈ సెట్టింగ్లను మార్చడానికి<ph name="END_LINK" /> మీ అడ్మినిస్ట్రేటర్ను కాంటాక్ట్ చేయండి.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{ట్యాబ్ను తర్వాత చదవండి}other{ట్యాబ్లను తర్వాత చదవండి}}</translation> <translation id="4242145785130247982">బహుళ క్లయింట్ సర్టిఫికెట్లకు మద్దతు లేదు</translation> <translation id="4242533952199664413">సెట్టింగ్లను తెరువు</translation> @@ -3055,7 +3048,6 @@ <translation id="4548483925627140043">సిగ్నల్ కనుగొనబడలేదు</translation> <translation id="4549791035683739768">మీ సెక్యూరిటీ కీలో వేలిముద్రలు సేవ్ చేయబడలేదు</translation> <translation id="4551763574344810652">చర్యరద్దు చేయడానికి <ph name="MODIFIER_KEY_DESCRIPTION" />ను నొక్కండి</translation> -<translation id="4552089082226364758">ఫ్లాష్</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> నెట్వర్క్, సిగ్నల్ సామర్థ్యం <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">పరికర భాషను మార్చడానికి మీరు Chromebookను రీస్టార్ట్ చేయవలసి ఉంటుంది. <ph name="BEGIN_LINK_LEARN_MORE" />మరింత తెలుసుకోండి<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">ప్రస్తుతం ఉన్న వెర్షన్తో పోలిస్తే, బాహ్య ఎక్స్టెన్షన్ అదే వెర్షన్కు చెందినది లేదా తక్కువ వెర్షన్కు చెందినది.</translation> @@ -3410,7 +3402,6 @@ <translation id="4974733135013075877">నిష్క్రమించు మరియు చైల్డ్ లాక్ చేయి</translation> <translation id="4976009197147810135">నిలువుగా విభజించు</translation> <translation id="4977942889532008999">యాక్సెస్ను నిర్ధారించండి</translation> -<translation id="4978905460870207779">Flashను ఉపయోగించడానికి సైట్లు అడగగలవు</translation> <translation id="4980805016576257426">ఈ ఎక్స్టెన్షన్లో మాల్వేర్ ఉంది.</translation> <translation id="4981449534399733132">మీ అన్ని సమకాలీకరించబడుతున్న పరికరాలతో సహా, మీ Google ఖాతా నుండి బ్రౌజింగ్ డేటాను తీసివేయడానికి, <ph name="BEGIN_LINK" />సైన్ ఇన్ చేయండి<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">పరికరం సాఫ్ట్వేర్</translation> @@ -4181,7 +4172,6 @@ <translation id="5906732635754427568">ఈ యాప్తో అనుబంధించబడిన డేటా ఈ పరికరం నుండి తీసివేయబడుతుంది.</translation> <translation id="5908474332780919512">మీరు సైన్ ఇన్ చేసినప్పుడు యాప్ను ప్రారంభించండి</translation> <translation id="5908695239556627796">మౌస్ స్క్రోల్ వేగం</translation> -<translation id="5908769186679515905">Flashని అమలు చేయనీయకుండా సైట్లను బ్లాక్ చేయి</translation> <translation id="5910363049092958439">చిత్రాన్ని ఇలా సే&వ్ చేయి...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ఆఫ్లైన్లో ఉంది</translation> <translation id="5911533659001334206">షార్ట్కట్ వ్యూయర్</translation> @@ -5830,7 +5820,6 @@ <translation id="7831491651892296503">నెట్వర్క్ను కాన్ఫిగర్ చేయడంలో ఎర్రర్</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">ముగింపు సమయం</translation> -<translation id="783214144752121388">సైట్లలో Flashను అమలు చేయనివ్వకుండా బ్లాక్ చేయి (సిఫార్సు చేయడమైనది)</translation> <translation id="7833720883933317473">సేవ్ చేసిన అనుకూల పదాలు ఇక్కడ కనిపిస్తాయి</translation> <translation id="7835178595033117206">బుక్మార్క్ తీసివేయబడింది</translation> <translation id="7836850009646241041">మీ సెక్యూరిటీ కీని మళ్లీ తాకి చూడండి</translation> @@ -6055,7 +6044,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ఈ ఫైల్ ఎన్క్రిప్ట్ చేయబడింది. డీక్రిప్ట్ చేయమని ఫైల్ యజమానిని అడగండి.}other{ఈ ఫైల్స్లో కొన్ని ఎన్క్రిప్ట్ చేయబడ్డాయి. డీక్రిప్ట్ చేయమని వాటి యజమానిని అడగండి.}}</translation> <translation id="808894953321890993">పాస్వర్డ్ను మార్చు</translation> <translation id="8090234456044969073">మీరు అత్యంత తరచుగా సందర్శించిన వెబ్సైట్ల జాబితాను చదవడానికి అనుమతి</translation> -<translation id="8092681102116274204">"*" వైల్డ్కార్డ్లతో కూడిన సెట్టింగ్లకు ఇకపై సపోర్ట్ లేదు. <ph name="BEGIN_LINK" />ఈ సెట్టింగ్లను మార్చడానికి<ph name="END_LINK" /> ఎక్స్టెన్షన్ డెవలపర్ లేదా మీ అడ్మినిస్ట్రేటర్ను కాంటాక్ట్ చేయండి.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ప్రతిస్పందించడం లేదు</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google డిస్క్కి బ్యాకప్ చేయండి. ఏ సమయంలో అయినా సులభంగా మీ డేటాని పునరుద్ధరించండి లేదా పరికరాన్ని మార్చండి. మీ బ్యాకప్లో యాప్ డేటా ఉంటుంది.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />మీ బ్యాకప్లు Googleకి అప్లోడ్ చేయబడతాయి మరియు మీ Google ఖాతా పాస్వర్డ్ని ఉపయోగించి ఎన్క్రిప్ట్ చేయబడతాయి.<ph name="END_PARAGRAPH2" /> @@ -6150,7 +6138,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ఆల్బమ్లను ఎంచుకోండి</translation> <translation id="8202160505685531999">దయచేసి మీ <ph name="DEVICE_TYPE" /> ప్రొఫైల్ను అప్డేట్ చేయడానికి మీ పాస్వర్డ్ను మళ్లీ నమోదు చేయండి.</translation> <translation id="8203732864715032075">మీకు నోటిఫికేషన్లను పంపుతుంది, అలాగే సందేశాల కోసం ఈ కంప్యూటర్ను డిఫాల్ట్గా గుర్తుపెట్టుకుంటుంది. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flashను బ్లాక్ చేయండి (సిఫార్సు చేయబడింది)</translation> <translation id="820568752112382238">అత్యంత ఎక్కువగా సందర్శించిన సైట్లు</translation> <translation id="8206745257863499010">బ్లూసై</translation> <translation id="8206859287963243715">సెల్యులార్</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index e403e93..94238551 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">หยุด</translation> <translation id="1272293450992660632">ค่า PIN ไม่ตรงกัน</translation> <translation id="1272978324304772054">บัญชีผู้ใช้นี้ไม่ได้อยู่ในโดเมนที่ลงทะเบียนอุปกรณ์ ถ้าคุณต้องการลงทะเบียนไปยังโดเมนอื่น คุณจะต้องกู้คืนอุปกรณ์ก่อน</translation> -<translation id="1274977772557788323">การตั้งค่าพื้นที่เก็บข้อมูล Adobe Flash Player</translation> <translation id="1274997165432133392">คุกกี้และข้อมูลอื่นของไซต์</translation> <translation id="1275718070701477396">เลือกแล้ว</translation> <translation id="1276994519141842946">ถอนการติดตั้ง <ph name="APP_NAME" /> ไม่ได้</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">บุ๊กมาร์ก ประวัติการเข้าชม และการตั้งค่าอื่นๆ ของคุณจะได้รับการซิงค์ไปยังบัญชี Google ของคุณ</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">เครือข่ายในประเทศ ไม่ใช่โรมมิ่ง</translation> -<translation id="1315056510003830387">ไม่ได้รับอนุญาตให้ใช้ Flash</translation> <translation id="1316136264406804862">กำลังค้นหา...</translation> <translation id="1316495628809031177">หยุดซิงค์ชั่วคราว</translation> <translation id="1317637799698924700">แท่นชาร์จจะทำงานในโหมดที่เข้ากันได้กับ USB Type-C</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC ไม่รองรับการเข้ารหัสประเภทนี้</translation> <translation id="1984417487208496350">ไม่มีการปกป้อง (ไม่แนะนำ)</translation> <translation id="1987317783729300807">บัญชี</translation> -<translation id="1988494864246143197">โดยปกติแล้วเว็บไซต์จะใช้ Flash เพื่อเล่นเสียง วิดีโอ หรือวิดีโอเกม เราจะไม่รองรับ Flash Player อีกต่อไปหลังจากเดือนธันวาคม 2020</translation> <translation id="1989112275319619282">เปิดดู</translation> <translation id="1990512225220753005">ไม่แสดงทางลัดในหน้านี้</translation> <translation id="1992397118740194946">ไม่ได้ตั้งค่า</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">ตำแหน่งหน้าต่าง</translation> <translation id="2881076733170862447">เมื่อคุณคลิกส่วนขยาย</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> จะรีสตาร์ทและรีเซ็ตในอีกสักครู่</translation> -<translation id="288387288628762616">ได้รับอนุญาตให้ใช้ Flash</translation> <translation id="2885378588091291677">ตัวจัดการงาน</translation> <translation id="2885729872133513017">เกิดปัญหาเมื่อถอดรหัสการตอบกลับของเซิร์ฟเวอร์</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">คุณลงชื่อเข้าใช้แล้ว</translation> <translation id="3428747202529429621">รักษาความปลอดภัยของคุณใน Chrome และอาจใช้เพื่อปรับปรุงความปลอดภัยในแอปอื่นๆ ของ Google เมื่อลงชื่อเข้าใช้</translation> <translation id="3428800329481094896">กำลังดึงข้อมูลคีย์ ssh ของคอนเทนเนอร์ Linux</translation> +<translation id="3429271624041785769">ภาษาของเนื้อหาเว็บ</translation> <translation id="3429275422858276529">บุ๊กมาร์กหน้านี้เพื่อให้หาเจอง่ายในภายหลัง</translation> <translation id="3432227430032737297">นำรายการที่แสดงทั้งหมดออก</translation> <translation id="3432757130254800023">ส่งภาพและเสียงไปยังจอแสดงผลบนเครือข่ายเฉพาะที่</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">นี่คือข้อมูลทั่วไปเกี่ยวกับอุปกรณ์และการใช้งานอุปกรณ์ (เช่น ระดับแบตเตอรี่ กิจกรรมในระบบและแอป ตลอดจนข้อผิดพลาด) ระบบจะใช้ข้อมูลเพื่อปรับปรุง Android และข้อมูลที่รวบรวมมาบางส่วนก็ยังจะช่วยให้แอปและพาร์ทเนอร์ของ Google เช่น นักพัฒนาซอฟต์แวร์ Android พัฒนาแอปและผลิตภัณฑ์ของตนให้ดีขึ้นด้วย</translation> <translation id="3838085852053358637">ไม่สามารถโหลดส่วนขยาย</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> เพิ่มเติม</translation> -<translation id="3838543471119263078">คุกกี้และข้อมูลอื่นๆ ของเว็บไซต์ ตลอดจนข้อมูลปลั๊กอิน</translation> <translation id="383891835335927981">ไม่มีการซูมเข้าหรือซูมออกเว็บไซต์ใดๆ</translation> <translation id="3839509547554145593">เปิดใช้การเร่งการเลื่อนเมาส์</translation> <translation id="3839516600093027468">บล็อก <ph name="HOST" /> ไม่ให้ดูคลิปบอร์ดเสมอ</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Download Manager</translation> <translation id="3881478300875776315">แสดงบรรทัดน้อยลง</translation> <translation id="3882165008614329320">วิดีโอที่มีอยู่จากกล้องหรือไฟล์</translation> +<translation id="3884152383786131369">เนื้อหาเว็บที่มีหลายภาษาจะใช้ภาษาแรกที่รองรับจากรายการนี้ ระบบจะซิงค์ค่ากำหนดเหล่านี้กับการตั้งค่าเบราว์เซอร์ <ph name="BEGIN_LINK_LEARN_MORE" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">ระบบส่งคำขอเข้าถึงเว็บไซต์นี้ของคุณให้ <ph name="NAME" /> แล้ว</translation> <translation id="3888550877729210209">จดโน้ตด้วย <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">เปิดการซิงค์ของ Chrome เพื่อใช้การซิงค์ Wi-Fi</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">กำลังกำหนดการกำหนดค่าของอุปกรณ์</translation> <translation id="4025039777635956441">ปิดเสียงเว็บไซต์ที่เลือก</translation> <translation id="4027804175521224372">(คุณยังไม่ได้ <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">ระบบจะเก็บการตั้งค่า Flash ไว้จนกว่าคุณจะออกจาก Chrome</translation> <translation id="4028467762035011525">เพิ่มวิธีการป้อนข้อมูล</translation> <translation id="4031179711345676612">อนุญาตให้ใช้ไมโครโฟน</translation> <translation id="4031527940632463547">มีการบล็อกเซ็นเซอร์</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">กำหนดค่า Kerberos</translation> <translation id="4235200303672858594">ทั้งหน้าจอ</translation> <translation id="4235965441080806197">ยกเลิกการลงชื่อเข้าใช้</translation> -<translation id="4237773362828263530">ไม่รองรับการตั้งค่าด้วยไวลด์การ์ด "*" อีกต่อไป ติดต่อผู้ดูแลระบบเพื่อ<ph name="BEGIN_LINK" />เปลี่ยนการตั้งค่าเหล่านี้<ph name="END_LINK" /></translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{อ่านแท็บนี้ภายหลัง}other{อ่านแท็บเหล่านี้ภายหลัง}}</translation> <translation id="4242145785130247982">ไม่รองรับใบรับรองไคลเอ็นต์หลายรายการ</translation> <translation id="4242533952199664413">เปิดการตั้งค่า</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">ไม่พบสัญญาณ</translation> <translation id="4549791035683739768">คีย์ความปลอดภัยไม่มีลายนิ้วมือบันทึกไว้</translation> <translation id="4551763574344810652">กด <ph name="MODIFIER_KEY_DESCRIPTION" /> เพื่อเลิกทำ</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">เครือข่าย <ph name="NETWORK_TYPE" /> ความแรงสัญญาณ <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">คุณต้องรีสตาร์ท Chromebook เพื่อเปลี่ยนภาษาของอุปกรณ์ <ph name="BEGIN_LINK_LEARN_MORE" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">ส่วนขยายภายนอกเป็นเวอร์ชันเดียวกันหรือต่ำกว่าเมื่อเปรียบเทียบกับส่วนขยายที่มีอยู่</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">ออกและล็อกป้องกันเด็ก</translation> <translation id="4976009197147810135">แยกในแนวตั้ง</translation> <translation id="4977942889532008999">ยืนยันการเข้าถึง</translation> -<translation id="4978905460870207779">เว็บไซต์ขอใช้ Flash ได้</translation> <translation id="4980805016576257426">ส่วนขยายนี้มีมัลแวร์</translation> <translation id="4981449534399733132"><ph name="BEGIN_LINK" />ลงชื่อเข้าใช้<ph name="END_LINK" />เพื่อล้างข้อมูลการท่องเว็บในอุปกรณ์ทุกเครื่องที่ซิงค์และบัญชี Google</translation> <translation id="4982236238228587209">ซอฟต์แวร์ของอุปกรณ์</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">ระบบจะนำข้อมูลที่เชื่อมโยงกับแอปนี้ออกจากอุปกรณ์เครื่องนี้</translation> <translation id="5908474332780919512">เริ่มต้นแอปเมื่อคุณลงชื่อเข้าใช้</translation> <translation id="5908695239556627796">ความเร็วในการเลื่อนเมาส์</translation> -<translation id="5908769186679515905">บล็อกไม่ให้เว็บไซต์เรียกใช้ Flash</translation> <translation id="5910363049092958439">&บันทึกรูปภาพเป็น...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ออฟไลน์</translation> <translation id="5911533659001334206">การดูแป้นพิมพ์ลัด</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">เพิ่มตั๋ว</translation> <translation id="6112931163620622315">ตรวจสอบโทรศัพท์</translation> <translation id="6112952769866305444">แก้ไขบุคคล, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">ตั้งค่าเครื่องมือค้นหาเริ่มต้นสำหรับเบราว์เซอร์ Chrome และ Launcher ของ <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">โปรดเปลี่ยนเป็นโปรไฟล์ผู้ใช้หลักในโทรศัพท์เพื่อใช้ Smart Lock</translation> <translation id="6116921718742659598">เปลี่ยนการตั้งค่าภาษาและการป้อนข้อมูล</translation> <translation id="6120205520491252677">ตรึงหน้าเว็บนี้ไว้ที่หน้าจอเริ่ม...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">ไม่มีอุปกรณ์อื่นๆ ที่พร้อมใช้งาน</translation> <translation id="7141105143012495934">การลงชื่อเข้าใช้ล้มเหลวเนื่องจากไม่สามารถเรียกคืนรายละเอียดบัญชีของคุณได้ โปรดติดต่อผู้ดูแลระบบของคุณหรือลองอีกครั้ง</translation> <translation id="7143207342074048698">กำลังเชื่อมต่อ</translation> +<translation id="7143358760238281735">ไม่มีแอป</translation> <translation id="7144878232160441200">ลองอีกครั้ง</translation> <translation id="714876143603641390">การเชื่อมต่อ LAN</translation> <translation id="7149893636342594995">24 ชั่วโมงที่แล้ว</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">ใช้เน็ตมือถือ</translation> <translation id="7709152031285164251">ล้มเหลว - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">แ&คสต์...</translation> +<translation id="7712739869553853093">กล่องโต้ตอบตัวอย่างงานพิมพ์</translation> <translation id="7712836429117959503">ส่วนขยายที่ไม่รู้จักซึ่งมีรหัส <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">อนุญาตคุกกี้จาก <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">ใบรับรอง</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">เกิดข้อผิดพลาดในการกำหนดค่าเครือข่าย</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">เวลาสิ้นสุด</translation> -<translation id="783214144752121388">บล็อกไม่ให้เว็บไซต์เรียกใช้ Flash (แนะนำ)</translation> <translation id="7833720883933317473">คำที่กำหนดเองที่บันทึกไว้จะแสดงที่นี่</translation> <translation id="7835178595033117206">นำบุ๊กมาร์กออกแล้ว</translation> <translation id="7836850009646241041">ลองแตะคีย์ความปลอดภัยอีกครั้ง</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{ไฟล์นี้มีการเข้ารหัส ขอให้เจ้าของไฟล์ถอดรหัส}other{ไฟล์เหล่านี้บางไฟล์มีการเข้ารหัส ขอให้เจ้าของไฟล์ถอดรหัส}}</translation> <translation id="808894953321890993">เปลี่ยนรหัสผ่าน</translation> <translation id="8090234456044969073">อ่านรายชื่อของเว็บไซต์ที่คุณเข้าชมบ่อยที่สุด</translation> -<translation id="8092681102116274204">ไม่รองรับการตั้งค่าด้วยไวลด์การ์ด "*" อีกต่อไป ติดต่อนักพัฒนาซอฟต์แวร์ของส่วนขยายหรือผู้ดูแลระบบเพื่อ<ph name="BEGIN_LINK" />เปลี่ยนการตั้งค่าเหล่านี้<ph name="END_LINK" /></translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ไม่ตอบสนอง</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />สำรองข้อมูลไปยัง Google ไดรฟ์ กู้ข้อมูลคืนหรือเปลี่ยนอุปกรณ์ได้ง่ายๆ ทุกเมื่อ ข้อมูลสำรองจะรวมถึงข้อมูลแอป<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ระบบจะอัปโหลดข้อมูลสำรองไปยัง Google และเข้ารหัสโดยใช้รหัสผ่านบัญชี Google ของคุณ<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">เลือกอัลบั้ม <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">โปรดป้อนรหัสผ่านใหม่เพื่ออัปเดตโปรไฟล์ <ph name="DEVICE_TYPE" /> ของคุณ</translation> <translation id="8203732864715032075">ส่งการแจ้งเตือนให้คุณและตั้งค่าเริ่มต้นให้ Messages จดจำคอมพิวเตอร์เครื่องนี้ <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">บล็อก Flash (แนะนำ)</translation> <translation id="820568752112382238">เว็บไซต์ที่เข้าชมบ่อยที่สุด</translation> <translation id="8206745257863499010">บลูซี</translation> <translation id="8206859287963243715">โทรศัพท์มือถือ</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index bf7650c..31576c0 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Durdur</translation> <translation id="1272293450992660632">PIN değerleri eşleşmiyor.</translation> <translation id="1272978324304772054">Bu kullanıcı hesabı, cihazın kaydedildiği alan adına ait değil. Farklı bir alan adına kaydolmak istiyorsanız, öncelikle cihaz kurtarma işlemini tamamlamanız gerekir.</translation> -<translation id="1274977772557788323">Adobe Flash Player Depolama ayarları</translation> <translation id="1274997165432133392">Çerezler ve diğer site verileri</translation> <translation id="1275718070701477396">Seçili</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> kaldırılamadı</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Yer işaretleriniz, geçmişiniz ve diğer ayarlarınız Google Hesabınızla senkronize edilecek.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Ev ağı, dolaşımda değil</translation> -<translation id="1315056510003830387">Flash kullanmasına izin verilmeyen siteler</translation> <translation id="1316136264406804862">Aranıyor...</translation> <translation id="1316495628809031177">Senkronizasyon duraklatıldı</translation> <translation id="1317637799698924700">Yuva istasyonunuz USB Type-C uyumlu modda çalışır.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC, şifreleme türünü desteklemiyor</translation> <translation id="1984417487208496350">Koruma yok (önerilmez)</translation> <translation id="1987317783729300807">Hesaplar</translation> -<translation id="1988494864246143197">Siteler ses, video veya video oyunlarını oynatmak için genellikle Flash kullanır. Aralık 2020'den sonra Flash Player desteklenmeyecektir.</translation> <translation id="1989112275319619282">Göz at</translation> <translation id="1990512225220753005">Kısayolları bu sayfada gösterme</translation> <translation id="1992397118740194946">Ayarlanmadı</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Pencere yerleşimi</translation> <translation id="2881076733170862447">Uzantıyı Tıkladığınızda</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> geçici olarak yeniden başlatılacak ve sıfırlanacaktır.</translation> -<translation id="288387288628762616">Flash kullanmasına izin verilen siteler</translation> <translation id="2885378588091291677">Görev Yöneticisi</translation> <translation id="2885729872133513017">Sunucu yanıtının kodu çözülürken bir sorun oluştu.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Oturum açtınız!</translation> <translation id="3428747202529429621">Chrome'da güvende kalmanızı sağlar ve oturum açtığınızda diğer Google uygulamalarındaki güvenliğinizi artırmak için kullanılabilir</translation> <translation id="3428800329481094896">Linux kapsayıcı SSH anahtarları getiriliyor</translation> +<translation id="3429271624041785769">Web içerik dilleri</translation> <translation id="3429275422858276529">Bu sayfayı daha sonra kolayca bulmak için sayfaya yer işareti koyun</translation> <translation id="3432227430032737297">Tüm Gösterilenleri Kaldır</translation> <translation id="3432757130254800023">Yerel ağdaki ekranlara ses ve video gönderme</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Buradaki bilgiler (ör. pil seviyesi, sistem ve uygulama etkinliği, hatalar), bu cihazla ve cihazın nasıl kullanıldığıyla ilgili genel bilgilerdir. Bu veriler Android'i iyileştirmek için kullanılır. Toplu hale getirilen bazı bilgiler, Google uygulamalarının ve Android geliştiricileri gibi iş ortaklarına ait uygulama ve ürünlerin iyileştirilmesine de yardımcı olur.</translation> <translation id="3838085852053358637">Uzantı yüklenemedi</translation> <translation id="3838486795898716504">Diğer <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Çerezler ve diğer site verileriyle eklenti verileri</translation> <translation id="383891835335927981">Yakınlaştırılmış veya uzaklaştırılmış herhangi bir site yok</translation> <translation id="3839509547554145593">Fare kaydırma hızlandırmasını etkinleştir</translation> <translation id="3839516600093027468"><ph name="HOST" /> sitesinin panoyu görmesini her zaman engelle</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">İndirme yöneticisi</translation> <translation id="3881478300875776315">Daha az satır göster</translation> <translation id="3882165008614329320">Kameradan veya dosyadan mevcut video</translation> +<translation id="3884152383786131369">Birden fazla dilde sunulan web içeriği bu listedeki desteklenen ilk dili kullanır. Bu tercihler, tarayıcı ayarlarınızla senkronize edilir. <ph name="BEGIN_LINK_LEARN_MORE" />Daha fazla bilgi<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Bu siteye erişim isteğiniz şu kişiye gönderildi: <ph name="NAME" /></translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ile not alınıyor</translation> <translation id="3890064827463908288">Wi-Fi Senkronizasyonu'nu kullanmak için Chrome Senkronizasyonu'nu açın</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Cihaz yapılandırması belirleniyor.</translation> <translation id="4025039777635956441">Seçili Sitenin Sesini Kapat</translation> <translation id="4027804175521224372">(Kaçırıyorsunuz—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Flash ayarlarınız Chrome'dan çıkmanıza kadar tutulacak.</translation> <translation id="4028467762035011525">Giriş yöntemleri ekle</translation> <translation id="4031179711345676612">Mikrofona izin verildi</translation> <translation id="4031527940632463547">Sensörler engellendi</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Kerberos'u yapılandırın</translation> <translation id="4235200303672858594">Tüm ekran</translation> <translation id="4235965441080806197">Oturum açmayı iptal et</translation> -<translation id="4237773362828263530">"*" joker karakteri içeren ayarlar artık desteklenmemektedir. <ph name="BEGIN_LINK" />Bu ayarları değiştirmek<ph name="END_LINK" /> için yöneticinizle iletişime geçin.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Sekmeyi Daha Sonra Oku}other{Sekmeleri Daha Sonra Oku}}</translation> <translation id="4242145785130247982">Birden fazla istemci sertifikası desteklenmiyor</translation> <translation id="4242533952199664413">Ayarları aç</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Sinyal bulunamadı</translation> <translation id="4549791035683739768">Güvenlik anahtarınızda depolanmış parmak izi yok</translation> <translation id="4551763574344810652">Geri Almak için <ph name="MODIFIER_KEY_DESCRIPTION" /> kısayoluna basın</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> adlı ağ, %<ph name="SIGNAL_STRENGTH" /> sinyal gücü</translation> <translation id="4553526521109675518">Cihaz dilini değiştirmek için Chromebook'unuzu yeniden başlatmanız gerekir. <ph name="BEGIN_LINK_LEARN_MORE" />Daha fazla bilgi<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Harici uzantı, mevcut bir uzantıyla aynı veya daha eski sürümde.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Çıkış ve çocuk kilidi</translation> <translation id="4976009197147810135">Dikey böl</translation> <translation id="4977942889532008999">Erişimi Onaylayın</translation> -<translation id="4978905460870207779">Siteler Flash kullanmak isteyebilir</translation> <translation id="4980805016576257426">Bu uzantı kötü amaçlı yazılım içeriyor.</translation> <translation id="4981449534399733132">Tarama verilerini senkronize edilmiş tüm cihazlarınızdan ve Google Hesabınızdan temizlemek için <ph name="BEGIN_LINK" />oturum açın<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Cihaz yazılımı</translation> @@ -4182,7 +4175,6 @@ <translation id="5906732635754427568">Bu uygulamayla ilişkili veriler bu cihazdan kaldırılacak.</translation> <translation id="5908474332780919512">Oturum Açtığımda Uygulamayı Başlat</translation> <translation id="5908695239556627796">Fare kaydırma hızı</translation> -<translation id="5908769186679515905">Sitelerin Flash çalıştırmasını engelle</translation> <translation id="5910363049092958439">Resmi Farklı Ka&ydet...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> çevrimdışı</translation> <translation id="5911533659001334206">Kısayol görüntüleyici</translation> @@ -4366,6 +4358,7 @@ <translation id="6112727384379533756">Bilet ekle</translation> <translation id="6112931163620622315">Telefonunuzu kontrol edin</translation> <translation id="6112952769866305444"><ph name="PROFILE_NAME" />, <ph name="USERNAME" /> kişisini düzenleyin</translation> +<translation id="6113434369102685411">Chrome tarayıcı ve <ph name="DEVICE_TYPE" /> Başlatıcı için varsayılan arama motorunuzu ayarlayın</translation> <translation id="6113942107547980621">Smart Lock'u kullanmak için telefonunuzda birincil kullanıcı profiline geçin.</translation> <translation id="6116921718742659598">Dil ve giriş ayarlarını değiştir</translation> <translation id="6120205520491252677">Bu sayfayı Başlangıç ekranına sabitle...</translation> @@ -5232,6 +5225,7 @@ <translation id="7140928199327930795">Başka kullanılabilir cihaz yok.</translation> <translation id="7141105143012495934">Hesap ayrıntılarınız alınamadığı için oturum açma işlemi başarısız oldu. Lütfen yöneticinizle iletişime geçin veya tekrar deneyin.</translation> <translation id="7143207342074048698">Bağlanıyor</translation> +<translation id="7143358760238281735">Mevcut uygulama yok</translation> <translation id="7144878232160441200">Yeniden dene</translation> <translation id="714876143603641390">LAN Bağlantısı</translation> <translation id="7149893636342594995">Son 24 saat</translation> @@ -5703,6 +5697,7 @@ <translation id="7707922173985738739">Mobil veri kullanın</translation> <translation id="7709152031285164251">Başarısız - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Yayınla...</translation> +<translation id="7712739869553853093">Yazdırma önizleme iletişim kutusu</translation> <translation id="7712836429117959503"><ph name="EXTENSION_ID" /> kimlikli bilinmeyen uzantı</translation> <translation id="7714307061282548371"><ph name="DOMAIN" /> tarafından gönderilen çerezlere izin veriliyor</translation> <translation id="7714464543167945231">Sertifika</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Ağ yapılandırılırken hata oluştu</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Bitiş zamanı</translation> -<translation id="783214144752121388">Sitelerin Flash çalıştırmasını engelle (önerilir)</translation> <translation id="7833720883933317473">Kaydedilen özel kelimeler burada görünür</translation> <translation id="7835178595033117206">Yer işareti kaldırıldı</translation> <translation id="7836850009646241041">Güvenlik anahtarınıza tekrar dokunmayı deneyin</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Bu dosya şifrelenmiş. Dosyanın sahibinden şifreyi çözmesini isteyin.}other{Bu dosyaların bazıları şifrelenmiş. Dosyaların sahibinden şifreleri çözmesini isteyin.}}</translation> <translation id="808894953321890993">Şifreyi değiştir</translation> <translation id="8090234456044969073">En sık ziyaret ettiğiniz web sitelerinin listesini okuma</translation> -<translation id="8092681102116274204">"*" joker karakteri içeren ayarlar artık desteklenmemektedir. <ph name="BEGIN_LINK" />Bu ayarları<ph name="END_LINK" /> değiştirmek için uzantı geliştiricisiyle veya yöneticinizle iletişime geçin.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> yanıt vermiyor</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google Drive'a yedekleyin. Verilerinizi istediğiniz zaman kolayca geri yükleyin veya cihazlar arasında geçiş yapın. Yedekleme işleminiz uygulama verilerini içerir.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Yedek verileriniz Google'a yüklenir ve Google Hesabınızın şifresi kullanılarak şifrelenir.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> albümü seçin</translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> profilinizi güncellemek için lütfen şifrenizi tekrar girin.</translation> <translation id="8203732864715032075">Size bildirimler gönderir ve Mesajlar uygulaması için bu bilgisayarın hatırlanmasını varsayılan ayar yapar. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash'ı engelle (önerilir)</translation> <translation id="820568752112382238">En çok ziyaret edilen siteler</translation> <translation id="8206745257863499010">Melodi</translation> <translation id="8206859287963243715">Cep telefonu</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 0daae8d..bcf5116c 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Зупинити</translation> <translation id="1272293450992660632">Значення PIN-кодів не збігаються.</translation> <translation id="1272978324304772054">Цей обліковий запис користувача не належить домену, в якому зареєстровано пристрій. Якщо ви хочете зареєструватися в іншому домені, спершу потрібно виконати процедуру відновлення пристрою.</translation> -<translation id="1274977772557788323">Налаштування пам’яті Adobe Flash Player</translation> <translation id="1274997165432133392">Файли cookie та інші дані із сайтів</translation> <translation id="1275718070701477396">Вибрано</translation> <translation id="1276994519141842946">Не вдалося видалити додаток <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Ваші закладки, історія й інші налаштування буде синхронізовано з обліковим записом Google.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Домашня мережа, без роумінгу</translation> -<translation id="1315056510003830387">Заборонено використовувати Flash</translation> <translation id="1316136264406804862">Пошук...</translation> <translation id="1316495628809031177">Синхронізацію призупинено</translation> <translation id="1317637799698924700">Док-станція працюватиме в режимі сумісності з USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC не підтримує тип шифрування</translation> <translation id="1984417487208496350">Захист вимкнено (не рекомендовано)</translation> <translation id="1987317783729300807">Облікові записи</translation> -<translation id="1988494864246143197">Сайти зазвичай використовують Flash, щоб відтворювати аудіо, відео чи відеоігри. З грудня 2020 року програвач Flash Player більше не підтримуватиметься.</translation> <translation id="1989112275319619282">Переглянути</translation> <translation id="1990512225220753005">Не показувати ярлики на цій сторінці</translation> <translation id="1992397118740194946">Не налаштовано</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Розміщення вікон</translation> <translation id="2881076733170862447">Коли ви натискаєте розширення</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> за мить перезапуститься та скине налаштування</translation> -<translation id="288387288628762616">Дозволено використовувати Flash</translation> <translation id="2885378588091291677">Диспетчер завдань</translation> <translation id="2885729872133513017">Під час декодування відповіді сервера виникла проблема.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2466,7 +2462,6 @@ <translation id="383669374481694771">Це загальна інформація про цей пристрій і його використання (як-от дані про рівень заряду акумулятора, систему, історію додатків та помилки). Ці відомості використовуватимуться, щоб покращити Android, а деякі зведені дані корисні для додатків і партнерів Google, як-от розробників Android.</translation> <translation id="3838085852053358637">Не вдалося завантажити розширення</translation> <translation id="3838486795898716504">Інші <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Файли cookie й інші дані із сайтів і плагінів</translation> <translation id="383891835335927981">Масштабування сайтів не змінено</translation> <translation id="3839509547554145593">Увімкнути прискорення прокрутки мишею</translation> <translation id="3839516600093027468">Завжди забороняти сайту <ph name="HOST" /> переглядати буфер обміну</translation> @@ -2641,7 +2636,6 @@ <translation id="4023146161712577481">Визначення конфігурації пристрою.</translation> <translation id="4025039777635956441">Вимкнути звук на вибраному сайті</translation> <translation id="4027804175521224372">(Ви не ввійшли – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Налаштування Flash зберігатимуться, доки ви не закриєте Chrome.</translation> <translation id="4028467762035011525">Додати методи введення</translation> <translation id="4031179711345676612">Дозволено використовувати мікрофон</translation> <translation id="4031527940632463547">Датчики заблоковано</translation> @@ -2793,7 +2787,6 @@ <translation id="4232375817808480934">Налаштувати Kerberos</translation> <translation id="4235200303672858594">Увесь екран</translation> <translation id="4235965441080806197">Скасувати вхід</translation> -<translation id="4237773362828263530">Налаштування із символом підстановки "*" більше не підтримуються. Щоб <ph name="BEGIN_LINK" />змінити їх<ph name="END_LINK" />, зв'яжіться з адміністратором.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Додати вкладку в список "Читати пізніше"}one{Додати вкладки в список "Читати пізніше"}few{Додати вкладки в список "Читати пізніше"}many{Додати вкладки в список "Читати пізніше"}other{Додати вкладки в список "Читати пізніше"}}</translation> <translation id="4242145785130247982">Кілька сертифікатів клієнтів не підтримуються</translation> <translation id="4242533952199664413">Відкрити налаштування</translation> @@ -3057,7 +3050,6 @@ <translation id="4548483925627140043">Сигнал не знайдено</translation> <translation id="4549791035683739768">На ключі безпеки немає збережених відбитків</translation> <translation id="4551763574344810652">Щоб відмінити, натисніть <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Мережа <ph name="NETWORK_TYPE" />, рівень сигналу – <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Щоб змінити мову пристрою, потрібно перезапустити Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Докладніше<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Зовнішнє розширення має таку саму або нижчу версію порівняно з наявним.</translation> @@ -3412,7 +3404,6 @@ <translation id="4974733135013075877">Вийти та заблокувати</translation> <translation id="4976009197147810135">Розділити вертикально</translation> <translation id="4977942889532008999">Підтвердити доступ</translation> -<translation id="4978905460870207779">Сайти можуть запитувати дозвіл на використання Flash</translation> <translation id="4980805016576257426">Це розширення містить зловмисне програмне забезпечення.</translation> <translation id="4981449534399733132">Щоб очистити дані веб-перегляду на всіх синхронізованих пристроях і в обліковому записі Google, <ph name="BEGIN_LINK" />увійдіть в обліковий запис<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Програмне забезпечення на пристрої</translation> @@ -4183,7 +4174,6 @@ <translation id="5906732635754427568">Дані, пов’язані з цим додатком, буде видалено з пристрою.</translation> <translation id="5908474332780919512">Запускати додаток, коли ви входите в обліковий запис</translation> <translation id="5908695239556627796">Швидкість прокрутки мишею</translation> -<translation id="5908769186679515905">Не дозволяти сайтам запускати Flash</translation> <translation id="5910363049092958439">Збер&егти зображення як...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> у режимі офлайн</translation> <translation id="5911533659001334206">Засіб перегляду комбінацій клавіш</translation> @@ -5836,7 +5826,6 @@ <translation id="7831491651892296503">Помилка налаштування мережі</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Час завершення</translation> -<translation id="783214144752121388">Заборонити сайтам запускати Flash (рекомендовано)</translation> <translation id="7833720883933317473">Тут відображатимуться збережені спеціальні слова</translation> <translation id="7835178595033117206">Закладку видалено</translation> <translation id="7836850009646241041">Спробуйте торкнутися ключа безпеки ще раз</translation> @@ -6064,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Цей файл зашифровано. Попросіть власника файлу розшифрувати його.}one{Деякі з цих файлів зашифровано. Попросіть власника файлів розшифрувати їх.}few{Деякі з цих файлів зашифровано. Попросіть власника файлів розшифрувати їх.}many{Деякі з цих файлів зашифровано. Попросіть власника файлів розшифрувати їх.}other{Деякі з цих файлів зашифровано. Попросіть власника файлів розшифрувати їх.}}</translation> <translation id="808894953321890993">Змінити пароль</translation> <translation id="8090234456044969073">Переглядати список ваших найчастіше відвідуваних веб-сайтів</translation> -<translation id="8092681102116274204">Налаштування із символом підстановки "*" більше не підтримуються. Щоб <ph name="BEGIN_LINK" />змінити їх<ph name="END_LINK" />, зв'яжіться з розробником розширення або своїм адміністратором.</translation> <translation id="8093359998839330381">Плагін <ph name="PLUGIN_NAME" /> не відповідає</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Створення резервних копій на Google Диску. Легко відновлюйте дані та переносьте їх на інші пристрої. Резервна копія містить дані додатків.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Ваші резервні копії завантажуються в Google і шифруються за допомогою пароля облікового запису Google.<ph name="END_PARAGRAPH2" /> @@ -6159,7 +6147,6 @@ <translation id="8201717382574620700">Вибрати альбоми для теми "<ph name="TOPIC_SOURCE" />"</translation> <translation id="8202160505685531999">Щоб оновити профіль <ph name="DEVICE_TYPE" />, введіть пароль ще раз.</translation> <translation id="8203732864715032075">Надсилає сповіщення й за умовчанням зберігає цей комп’ютер у додатку Повідомлення. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Блокувати Flash (рекомендовано)</translation> <translation id="820568752112382238">Сайти, які часто відвідуються</translation> <translation id="8206745257863499010">Блюз</translation> <translation id="8206859287963243715">Мобільний</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index f82442a..58a1d55 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -245,7 +245,6 @@ <translation id="1272079795634619415">روکیں</translation> <translation id="1272293450992660632">PIN کی اقدار مماثل نہیں ہیں۔</translation> <translation id="1272978324304772054">یہ صارف اکاؤنٹ اس ڈومین سے تعلق نہیں رکھتا جس میں آلہ کا اندراج ہے۔ اگر آپ ایک مختلف ڈومین میں اندراج کرانا چاہتے ہیں تو آپ کو سب سے پہلے آلہ کی بازیابی سے گزرنے کی ضرورت ہے۔</translation> -<translation id="1274977772557788323">Adobe Flash Player کے اسٹوریج کی ترتیبات</translation> <translation id="1274997165432133392">کوکیز اور دیگر سائٹ کا ڈیٹا</translation> <translation id="1275718070701477396">منتخب</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> اَن انسٹال نہیں ہو سکی</translation> @@ -279,7 +278,6 @@ <translation id="1313705515580255288">آپ کے بُک مارکس، سرگزشت اور دیگر ترتیبات کی آپ کے Google اکاؤنٹ سے مطابقت پذیری کی جائے گی۔</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">ہوم نیٹ ورک، رومنگ نہیں</translation> -<translation id="1315056510003830387">Flash استعمال کرنے کی اجازت نہیں ہے</translation> <translation id="1316136264406804862">تلاش ہو رہی ہے…</translation> <translation id="1316495628809031177">مطابقت پذیری موقوف ہے</translation> <translation id="1317637799698924700">آپ کا ڈاکنگ اسٹیشن USB ٹائپ سی موافق موڈ میں آپریٹ کرے گا۔</translation> @@ -449,6 +447,7 @@ <translation id="1509281256533087115">USB کے ذریعے کسی بھی <ph name="DEVICE_NAME_AND_VENDOR" /> تک رسائی حاصل کریں</translation> <translation id="1509960214886564027">بہت سی سائٹس پر خصوصیات میں خلل ہو سکتا ہے</translation> <translation id="1510238584712386396">لانچر</translation> +<translation id="151070646350206700">سائٹس آپ کو اطلاعات بھیجنے کے لیے کہہ کر رکاوٹ نہیں ڈال سکتی ہیں</translation> <translation id="1510785804673676069">اگر آپ ایک پراکسی سرور استعمال کر رہے ہیں تو اپنی پراکسی کی ترتیبات چیک کریں یا اپنے نیٹ ورک کے منتظم سے رابطہ کر کے چیک کریں کہ پراکسی سرور کام کر رہا ہے۔ اگر آپ کو نہیں لگتا کہ آپ کو ایک @@ -878,7 +877,6 @@ <translation id="197989455406964291">KDC مرموز کاری کی قسم کو سپورٹ نہیں کرتا ہے</translation> <translation id="1984417487208496350">کوئی تحفظ نہیں (تجویز نہیں کی جاتی ہے)</translation> <translation id="1987317783729300807">اکاؤنٹس</translation> -<translation id="1988494864246143197">سائٹس عام طور پر آڈیو، ویڈیو یا ویڈیو گیمز چلانے کے لیے Flash استعمال کرتی ہیں۔ دسمبر 2020 کے بعد Flash Player تعاون یافتہ نہیں رہے گا۔</translation> <translation id="1989112275319619282">براؤز کریں</translation> <translation id="1990512225220753005">اس صفحہ پر شارٹ کٹس نہ دکھائیں</translation> <translation id="1992397118740194946">سیٹ نہیں ہے</translation> @@ -935,6 +933,7 @@ <translation id="205560151218727633">Google اسسٹنٹ لوگو</translation> <translation id="2058456167109518507">آلہ کا پتا چلا</translation> <translation id="2059913712424898428">ٹائم زون</translation> +<translation id="2060375639911876205">eSIM کی پروفائل ہٹائیں</translation> <translation id="2065405795449409761">Chrome کو خودکار ٹیسٹ سافٹ ویئر کنٹرول کر رہا ہے۔</translation> <translation id="2071393345806050157">کوئی مقامی لاگ فائل نہیں ہے۔</translation> <translation id="2073148037220830746">{NUM_EXTENSIONS,plural, =1{ایکسٹینشن انسٹال کرنے کے لیے کلک کریں}other{ان ایکسٹینشنز کو انسٹال کرنے کے لیے کلک کریں}}</translation> @@ -1648,7 +1647,6 @@ <translation id="2880660355386638022">ونڈو کا مقام</translation> <translation id="2881076733170862447">جب آپ ایکسٹینشن پر کلک کرتے ہیں</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> تھوڑی دیر کیلئے دوبارہ شروع ہو جائے گا اور دوبارہ ترتیب دیا جائے گا</translation> -<translation id="288387288628762616">Flash استعمال کرنے کی اجات ہے</translation> <translation id="2885378588091291677">ٹاسک مینیجر</translation> <translation id="2885729872133513017">سرور کے جواب کو ڈیکوڈ کرنے میں ایک مسئلہ پیش آگیا۔</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2464,7 +2462,6 @@ <translation id="383669374481694771">یہ اس آلہ اور اس کے استعمال کیے جانے (جیسے بیٹری کی سطح، سسٹم، ایپ کی سرگرمی اور خرابیوں) کے بارے میں ایک عام معلومات ہے۔ Android کو بہتر بنانے کی خاطر ڈیٹا کا استعمال کیا جائے گا، اور کچھ مجموعی معلومات سے Google ایپس اور پارٹنرز، جیسے کہ Android ڈیولپرز، کو ان کی ایپس اور پروڈکٹس کو بہتر بنانے میں بھی مدد ملے گی۔</translation> <translation id="3838085852053358637">ایکسٹیشن لوڈ کرنے میں ناکام</translation> <translation id="3838486795898716504">مزید <ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">کوکیز اور دیگر سائٹ اور پلگ ان ڈیٹا</translation> <translation id="383891835335927981">کسی بھی سائٹ کو زوم ان یا زوم آؤٹ نہیں کیا گیا ہے</translation> <translation id="3839509547554145593">ماؤس کے اسکرول ایکسلریٹر کو فعال کریں</translation> <translation id="3839516600093027468">کلپ بورڈ کو دیکھنے سے <ph name="HOST" /> کو ہمیشہ مسدود کریں</translation> @@ -2638,7 +2635,6 @@ <translation id="4023146161712577481">آلہ کفیگریشن کا تعین کرنا۔</translation> <translation id="4025039777635956441">منتخب کردہ سائٹ کو خاموش کریں</translation> <translation id="4027804175521224372">(آپ بھول رہے ہیں—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">آپ کے Chrome سے باہر نکلنے تک آپ کی Flash کی ترتیبات کو باقی رکھا جائے گا۔</translation> <translation id="4028467762035011525">ان پٹ کے طریقے شامل کریں</translation> <translation id="4031179711345676612">مائیکروفون اجازت یافتہ ہے</translation> <translation id="4031527940632463547">سینسرز مسدود ہیں</translation> @@ -2729,6 +2725,7 @@ <translation id="4131410914670010031">سیاہ اور سفید</translation> <translation id="413193092008917129">نیٹ ورک کی تشخیصی روٹینز</translation> <translation id="4132183752438206707">Google Play اسٹور پر ایپس حاصل کریں</translation> +<translation id="4132364317545104286">eSIM کی پروفائل کا نام تبدیل کریں</translation> <translation id="4133076602192971179">پاس ورڈ تبدیل کرنے کیلئے ایپ کو کھولیں</translation> <translation id="4136203100490971508">طلوع آفتاب کے وقت نائٹ لائٹ خودکار طور پر آف ہو جائے گی</translation> <translation id="41365691917097717">جاری رکھنے سے Android ایپس تخلیق کرنے اور ٹیسٹ کرنے کے لیے ADB ڈیبگنگ فعال ہو جائے گی۔ نوٹ کریں کہ یہ کارروائی ان Android ایپس کو انسٹال کرنے کی اجازت دیتی ہے جن کی تصدیق Google کے ذریعے نہیں کی گئی ہے، اور غیر فعال کرنے کے لیے فیکٹری ری سیٹ کی ضرورت ہوتی ہے۔</translation> @@ -2789,7 +2786,6 @@ <translation id="4232375817808480934">Kerberos کنفیگر کریں</translation> <translation id="4235200303672858594">پوری اسکرین</translation> <translation id="4235965441080806197">سائن ان کو منسوخ کریں</translation> -<translation id="4237773362828263530">"*" وائلڈ کارڈز والی ترتیبات اب تعاون یافتہ نہیں ہیں۔ <ph name="BEGIN_LINK" />ان ترتیبات کو تبدیل کرنے کے لیے<ph name="END_LINK" /> اپنے منتظم سے رابطہ کریں۔</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{ٹیب کو بعد میں پڑھیں}other{ٹیبز کو بعد میں پڑھیں}}</translation> <translation id="4242145785130247982">متعدد کلائنٹ سرٹیفکیٹس تعاون یافتہ نہیں ہیں</translation> <translation id="4242533952199664413">ترتیبات کھولیں</translation> @@ -3053,7 +3049,6 @@ <translation id="4548483925627140043">سگنل نہیں ملا</translation> <translation id="4549791035683739768">آپ کی سیکیورٹی کلید میں کوئی فنگر پرنٹ اسٹور نہیں ہے</translation> <translation id="4551763574344810652">کالعدم کرنے کے لیے <ph name="MODIFIER_KEY_DESCRIPTION" /> دبائيں</translation> -<translation id="4552089082226364758">فلیش</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> نیٹ ورک، سگنل کی مظبوطی <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">آلہ کی زبان تبدیل کرنے کے لیے آپ کو اپنا Chromebook ری سٹارٹ کرنا ہوگا۔ <ph name="BEGIN_LINK_LEARN_MORE" />مزید جانیں<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">بیرونی ایکسٹینشن موجودہ ورژن کے مقابلہ ویسا ہی یا اس سے کم تر ورژن پر ہے۔</translation> @@ -3242,6 +3237,7 @@ <translation id="4778644898150334464">دوسرا پاس ورڈ استعمال کریں</translation> <translation id="4779083564647765204">زوم</translation> <translation id="4779136857077979611">اونیگیری</translation> +<translation id="4779766576531456629">eSIM سیلولر نیٹ ورک کا نام تبدیل کریں</translation> <translation id="4780321648949301421">صفحہ محفوظ کریں بطور…</translation> <translation id="4785719467058219317">آپ اس سیکیورٹی کلید کا استعمال کر رہے ہیں جو اس ویب سائٹ کے ساتھ رجسٹرڈ نہیں ہے</translation> <translation id="4788092183367008521">براہ کرم اپنا نیٹ ورک کنکشن چیک کریں اور دوبارہ کوشش کریں۔</translation> @@ -3407,7 +3403,6 @@ <translation id="4974733135013075877">باہر نکلیں اور چائلڈ لاک کریں</translation> <translation id="4976009197147810135">عمودی تقسیم کریں</translation> <translation id="4977942889532008999">رسائی کی توثیق کریں</translation> -<translation id="4978905460870207779">سائٹس Flash استعمال کرنے کے لیے پوچھ سکتی ہیں</translation> <translation id="4980805016576257426">اس ایکسٹینشن میں میلویئر شامل ہے۔</translation> <translation id="4981449534399733132">اپنے سبھی مطابقت پذیر آلات اور اپنے Google اکاؤنٹ سے براؤزنگ ڈیٹا صاف کرنے کیلئے، <ph name="BEGIN_LINK" />سائن ان کریں<ph name="END_LINK" />۔</translation> <translation id="4982236238228587209">آلے کا سافٹ ویئر</translation> @@ -3685,6 +3680,7 @@ <translation id="5324780743567488672">اپنے مقام کا استعمال کرکے منطقۂ وقت خود بخود سیٹ کریں</translation> <translation id="5327248766486351172">نام</translation> <translation id="5327570636534774768">اس آلہ کو مختلف ڈومین نے نظم و نسق کیلئے نشان زد کر دیا ہے۔ ڈیمو موڈ کو سیٹ کرنے سے پہلے اس ڈومین سے اس کی فراہمی ختم کریں۔</translation> +<translation id="5327912693242073631">وہ خصوصیات کام نہیں کریں گی جن کے لیے اطلاعات کی ضرورت ہوتی ہے</translation> <translation id="532943162177641444">اس آلہ کے ذریعے استعمال کئے جانے والے موبائل ہاٹ اسپاٹ کو سیٹ اپ کرنے کیلئے اپنے <ph name="PHONE_NAME" /> پر اطلاع پر تھپتھپائيں۔</translation> <translation id="5329858601952122676">&حذف کریں</translation> <translation id="5331069282670671859">آپ کے پاس اس زمرے کا کوئی سرٹیفکیٹ نہیں ہے</translation> @@ -3736,6 +3732,7 @@ <translation id="5390112241331447203">تاثرات کی رپورٹس میں بھیجی گئی system_logs.txt file فائل شامل کریں۔</translation> <translation id="5390677308841849479">گہرا سرخ اور نارنجی</translation> <translation id="5390743329570580756">بھیجیں برائے</translation> +<translation id="5392192690789334093">اطلاعات بھیجنے کی اجازت ہے</translation> <translation id="5397794290049113714">آپ</translation> <translation id="5398497406011404839">چھپے ہوئے بُک مارکس</translation> <translation id="5398572795982417028">صفحہ کے حوالہ کی حدوں سے باہر، حد <ph name="MAXIMUM_PAGE" /> ہے</translation> @@ -4038,6 +4035,7 @@ <translation id="5739235828260127894">توثیق کا انتظار ہے۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation> <translation id="5739458112391494395">بہت بڑا</translation> <translation id="5740328398383587084">قریبی آلات کے ساتھ اشتراک</translation> +<translation id="5740820643029013514">پرسکون پیغام رسانی کا استعمال کریں (تجویز کردہ)</translation> <translation id="574104302965107104">مررنگ ڈسپلے کریں</translation> <translation id="574209121243317957">پچ</translation> <translation id="5746169159649715125">PDF کے بطور محفوظ کریں</translation> @@ -4175,7 +4173,6 @@ <translation id="5906732635754427568">اس ایپ سے وابستہ ڈیٹا کو اس آلہ سے ہٹا دیا جائے گا۔</translation> <translation id="5908474332780919512">اپنے سائن ان کرتے وقت ایپ شروع کریں</translation> <translation id="5908695239556627796">ماؤس کے اسکرول کی رفتار</translation> -<translation id="5908769186679515905">سائٹس کو فلیش چلانے سے مسدود کریں</translation> <translation id="5910363049092958439">تصویر مح&فوظ کریں بطور…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> آف لائن ہے</translation> <translation id="5911533659001334206">شارٹ کٹ ناظر</translation> @@ -4257,6 +4254,7 @@ <translation id="6002210667729577411">گروپ کو نئی ونڈو میں منتقل کریں</translation> <translation id="6002452033851752583">پاس ورڈ آپ کے Google اکاؤنٹ سے ہٹایا گیا</translation> <translation id="6002458620803359783">ترجیحی آوازیں</translation> +<translation id="6003143259071779217">eSIM سیلولر نیٹ ورک کو ہٹائیں</translation> <translation id="6006484371116297560">کلاسک</translation> <translation id="6007240208646052708">آپ کی زبان میں صوتی تلاش دستیاب نہیں ہے۔</translation> <translation id="6009781704028455063">پہلے سے شامل سینسر</translation> @@ -4525,6 +4523,7 @@ <translation id="6308937455967653460">&لنک محفوظ کریں بطور…</translation> <translation id="6309443618838462258">آپ کا منتظم اس ان پٹ کے طریقے کی اجازت نہیں دیتا ہے</translation> <translation id="6309510305002439352">مائیکروفون آف ہے</translation> +<translation id="6310472381159916879">پروفائل ہٹائیں</translation> <translation id="6311220991371174222">Chrome کو شروع نہیں کیا جا سکتا ہے کیوںکہ آپ کے پروفائل کو کھولتے وقت کچھ غلط ہوگیا۔ Chrome کو دوبارہ شروع کرنے کی کوشش کریں۔</translation> <translation id="6312403991423642364">نیٹ ورک کی نامعلوم خرابی</translation> <translation id="6312567056350025599">{NUM_DAYS,plural, =1{سیفٹی چیک 1 دن پہلے کیا گیا}other{سیفٹی چیک {NUM_DAYS} دن پہلے کیا گیا}}</translation> @@ -4714,6 +4713,7 @@ <translation id="6532663472409656417">انٹرپرائز کا ادراج کیا گیا</translation> <translation id="6535331821390304775">وابستہ ایپ میں اس قسم کے لنکس کو کھولنے کے لیے ہمیشہ <ph name="ORIGIN" /> کو اجازت دیں</translation> <translation id="6537613839935722475">نام حروف، اعداد اور ہائفنز (-) کا استعمال کر سکتا ہے</translation> +<translation id="6537880577641744343">کمانڈر</translation> <translation id="6538635548667167211">موجودہ ڈیٹا استعمال کی ترتیب ڈیٹا ہے</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />نوٹ:<ph name="END_BOLD" /> صرف اس وقت فعال کریں جب آپ کو معلوم ہو کہ آپ کیا کر رہے ہیں یا اگر آپ سے ایسا کرنے کو کہا گیا ہو، کیونکہ ڈیٹا جمع کرنے سے کارکردگی کم ہو سکتی ہے۔</translation> <translation id="6541638731489116978">اس سائٹ کو آپ کے موشن سینسرز تک رسائی حاصل کرنے سے مسدود کر دیا گیا ہے۔</translation> @@ -5823,7 +5823,6 @@ <translation id="7831491651892296503">نیٹ ورک کو ترتیب دینے میں خرابی</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">وقت اختتام</translation> -<translation id="783214144752121388">سائٹس کو Flash چلانے سے مسدود کریں (تجویز کردہ)</translation> <translation id="7833720883933317473">محفوظ کردہ حسب ضرورت الفاظ یہاں ظاہر ہوں گے</translation> <translation id="7835178595033117206">بُک مارک ہٹا دیا گیا</translation> <translation id="7836850009646241041">اپنی سیکیورٹی کلید کو دوبارہ چھونے کی کوشش کریں</translation> @@ -5846,6 +5845,7 @@ <translation id="7855678561139483478">ٹیب کو نئی ونڈو میں منتقل کریں</translation> <translation id="7857117644404132472">استثناء شامل کریں</translation> <translation id="7857949311770343000">کیا یہی وہ نیا ٹیب صفحہ ہے جس کی آپ توقع کر رہے تھے؟</translation> +<translation id="7858328180167661092"><ph name="APP_NAME" /> (Windows)</translation> <translation id="785948723952233770">دسمبر کے بعد یہ اختیار تعاون یافتہ نہیں ہوگا۔ اپنے منتظم سے رابطہ کریں۔</translation> <translation id="786073089922909430">سروس: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="7861215335140947162">&ڈاؤن لوڈز</translation> @@ -6049,7 +6049,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{یہ فائل مرموز کردہ ہے۔ اس کے مالک سے غیر مرموز کرنے کو کہیں۔}other{ان فائلز میں سے کچھ مرموز کردہ ہیں۔ ان کے مالک سے غیر مرموز کرنے کو کہیں۔}}</translation> <translation id="808894953321890993">پاس ورڈ تبدیل کریں</translation> <translation id="8090234456044969073">جو ویب سائٹس آپ سب سے زیادہ کثرت سے ملاحظہ کرتے ہیں ان کی ایک فہرست پڑھیں</translation> -<translation id="8092681102116274204">"*" وائلڈ کارڈز والی ترتیبات اب تعاون یافتہ نہیں ہیں۔ <ph name="BEGIN_LINK" />ان ترتیبات کو تبدیل کرنے<ph name="END_LINK" /> کیلئے ایکسٹینشن ڈویلپر یا اپنے منتظم سے رابطہ کریں۔</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> جواب نہیں دے رہی ہے</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google Drive پر بیک اپ لیں۔ آسانی سے کسی بھی وقت اپنا ڈیٹا بحال کریں یا آلہ سوئچ کریں۔ آپ کے بیک اپ میں ایپ ڈیٹا شامل ہے۔<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />آپ کے بیک اپس کو Google پر اپ لوڈ کیا جاتا ہے اور آپ کے Google اکاؤنٹ کا پاس ورڈ استعمال کر کے انہیں مرموز کیا جاتا ہے۔<ph name="END_PARAGRAPH2" /> @@ -6144,7 +6143,6 @@ <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> البمز منتخب کریں</translation> <translation id="8202160505685531999">اپنا <ph name="DEVICE_TYPE" /> پروفائل اپ ڈيٹ کرنے کیلئے براہ کرم اپنا پاس ورڈ دوبارہ درج کریں۔</translation> <translation id="8203732864715032075">آپ کو اطلاعات بھیجتی ہے اور "پیغامات" کیلئے اس کمپیوٹر کو یاد رکھنے پر ڈیفالٹ کرتی ہے۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash کو مسدود کریں (تجویز کردہ ہے)</translation> <translation id="820568752112382238">سب سے زیادہ ملاحظہ کردہ سائٹس</translation> <translation id="8206745257863499010">بلوزی</translation> <translation id="8206859287963243715">سیلولر</translation> @@ -6167,6 +6165,7 @@ <translation id="8236917170563564587">اس کے بجائے اس ٹیب کا اشتراک کریں</translation> <translation id="8237647586961940482">گہرا گلابی اور سرخ</translation> <translation id="8239032431519548577">انٹرپرائز اندراج مکمل</translation> +<translation id="8239932336306009582">اطلاعات بھیجنے کی اجازت نہیں ہے</translation> <translation id="8241040075392580210">سایہ دار</translation> <translation id="8241806945692107836">آلہ کفیگریشن کا تعین کیا جا رہا ہے…</translation> <translation id="8241868517363889229">اپنے بُک مارکس کو پڑھیں اور تبدیل کریں</translation> @@ -6296,6 +6295,7 @@ <translation id="8386091599636877289">پالیسی نہیں ملی۔</translation> <translation id="8386903983509584791">اسکین مکمل ہو گیا</translation> <translation id="8387361103813440603">آپ کا مقام دیکھنے کی اجازت نہیں ہے</translation> +<translation id="8389264703141926739">اطلاعات مسدود کریں</translation> <translation id="8389416080014625855">اس صفحہ کیلئے QR کوڈ تخلیق کریں</translation> <translation id="8389492867173948260">اس ایکسٹینشن کو ان ویب سائٹس پر موجود آپ کا سبھی ڈیٹا پڑھنے اور تبدیل کرنے کی اجازت دیں، جنہیں آپ ملاحظہ کرتے ہیں:</translation> <translation id="8390449457866780408">سرور دستیاب نہیں ہے۔</translation> @@ -6505,6 +6505,7 @@ <translation id="8645354835496065562">سینسر تک رسائی کی اجازت جاری رکھیں</translation> <translation id="8645920082661222035">خطرناک ایونٹس ہونے سے پہلے ان کی پیشین گوئی کرتی ہے اور آپ کو ان کے بارے میں متنبہ کرتی ہے</translation> <translation id="8646209145740351125">سِنک غیر فعال کریں</translation> +<translation id="864637694230589560">سائٹس عام طور پر اہم خبروں یا چیٹ پیغامات کے بارے میں آپ کو مطلع کرنے کے لیے اطلاعات بھیجتی ہیں</translation> <translation id="8647834505253004544">ویب پتہ درست نہیں ہے</translation> <translation id="8648252583955599667"><ph name="GET_HELP_LINK" /> یا <ph name="RE_SCAN_LINK" /></translation> <translation id="8648408795949963811">نائٹ لائٹ کے رنگ کا درجہ حرارت</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index e776bd9..368b1ed 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -125,6 +125,7 @@ <translation id="1136712381129578788">PIN kod koʻp marta xato kiritilganligi uchun elektron kalit qulflandi. Qulfdan chiqarish uchun uni chiqarib, qaytadan suqing.</translation> <translation id="1137589305610962734">vaqtinchalik axborot</translation> <translation id="1137673463384776352">Havolani <ph name="APP" /> dasturida ochish</translation> +<translation id="1138686548582345331">{MUTED_NOTIFICATIONS_COUNT,plural, =1{Yangi bildirishnoma}other{# ta yangi bildirishnoma}}</translation> <translation id="1139343347646843679">Linux tizimini yangilashda xatolik yuz berdi. Administratorga murojaat qiling.</translation> <translation id="1140351953533677694">Bluetooth va keyingi seriyali qurilmalaringizga ruxsat</translation> <translation id="114036956334641753">Audio va taglavhalar</translation> @@ -245,7 +246,6 @@ <translation id="1272079795634619415">To‘xtatish</translation> <translation id="1272293450992660632">PIN qiymatlari mos kelmadi.</translation> <translation id="1272978324304772054">Bu hisob qurilma ro‘yxatdan o‘tkazilgan domenga tegishli emas. Boshqa domen ro‘yxatidan o‘tkazish uchun qurilmani zavod sozlamalariga qaytaring.</translation> -<translation id="1274977772557788323">Adobe Flash Player xotirasi sozlamalari</translation> <translation id="1274997165432133392">Cookie fayllari va boshqa sayt ma’lumotlari</translation> <translation id="1275718070701477396">Tanlandi</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> oʻrnatilmadi</translation> @@ -279,7 +279,6 @@ <translation id="1313705515580255288">Xatcho‘plar, brauzer tarixi va boshqa sozlamalaringiz Google hisobingizga sinxronlanadi.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Roumingsiz uy tarmog‘i</translation> -<translation id="1315056510003830387">Flash ishlatish taqiqlangan</translation> <translation id="1316136264406804862">Qidirilmoqda...</translation> <translation id="1316495628809031177">Sinxronizatsiya pauza qilingan</translation> <translation id="1317637799698924700">Dok stansiya USB Type-C bilan mos rejimda ishlaydi.</translation> @@ -876,7 +875,6 @@ <translation id="197989455406964291">KDC bunday shifrlash turi bilan mos emas</translation> <translation id="1984417487208496350">Himoyasiz (tavsiya etilmaydi)</translation> <translation id="1987317783729300807">Hisoblar</translation> -<translation id="1988494864246143197">Saytlar odatda audio, video va video oʻyinlar ijrosida Flash modulidan foydalanadi. Flash Player 2020-yil dekabrdan boshlab ishlamaydi.</translation> <translation id="1989112275319619282">Tanlash</translation> <translation id="1990512225220753005">Bu sahifada chiqmasin</translation> <translation id="1992397118740194946">O‘rnatilmagan</translation> @@ -1647,7 +1645,6 @@ <translation id="2880660355386638022">Oynani joylashtirish</translation> <translation id="2881076733170862447">Kengaytma bosilganda</translation> <translation id="2882943222317434580">Hozir <ph name="IDS_SHORT_PRODUCT_NAME" /> qaytadan ishga tushiriladi va sozlamalari ilk holatga qaytariladi</translation> -<translation id="288387288628762616">Flash ishlatishga ruxsat berilgan</translation> <translation id="2885378588091291677">Vazifalar boshqaruvi</translation> <translation id="2885729872133513017">Server javobi deshifrlanmadi.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -1674,6 +1671,7 @@ <translation id="291056154577034373">OʻQILMAGAN</translation> <translation id="2910718431259223434">Nimadir xato ketdi. Qayta urining. Foydasi tegmasa, qurilma egasi yoki administratorga murojaat qiling. Xatolik kodi: <ph name="ERROR_CODE" />.</translation> <translation id="2913331724188855103">Saytlarga cookie-fayllarini saqlash va o’qishga ruxsat berish (tavsiya etiladi)</translation> +<translation id="2915016304249900997">Ekran namoyishida tafsilotlar berkitiladi</translation> <translation id="2915102088417824677">Faollik jurnalini ochish</translation> <translation id="2915873080513663243">Avtomatik skanerlash</translation> <translation id="2916073183900451334">Veb-sahifada Ichki oyna bosilsa, havolalar va shakllar ajratib ko‘rsatiladi</translation> @@ -2079,6 +2077,7 @@ <translation id="3428419049384081277">Hisobingizga kirdingiz!</translation> <translation id="3428747202529429621">Hisobingizga kirganingizda Chrome va boshqa Google ilovalaridan xavfsiz foydalanishingizni taʼminlaydi</translation> <translation id="3428800329481094896">Linux konteyneri uchun SSH kalitlarni olinmoqda</translation> +<translation id="3429271624041785769">Veb kontent tilllari</translation> <translation id="3429275422858276529">Bu sahifani xatcho‘plarga qo‘shib keyinchalik oson topishingiz mumkin</translation> <translation id="3432227430032737297">Barcha ko‘rsatilganlarni o‘chirish</translation> <translation id="3432757130254800023">Mahalliy tarmoqdagi ekranlarga audio va video uzatish</translation> @@ -2443,6 +2442,7 @@ <translation id="3819257035322786455">Zaxiralash</translation> <translation id="3819261658055281761">Tizim bu qurilmada API uchun ruxsat tokenini saqlay olmadi.</translation> <translation id="3819800052061700452">&To‘liq ekran rejimi</translation> +<translation id="3820638253182943944">{MUTED_NOTIFICATIONS_COUNT,plural, =1{Chiqarish}other{Hammasini chiqarish}}</translation> <translation id="3820749202859700794">SECG elliptik egri chiziqli secp521r1 (NIST P-521) ochiq kalit algoritmi</translation> <translation id="3821372858277557370">{NUM_EXTENSIONS,plural, =1{Kengaytma tasdiqlandi}other{# ta kengaytma tasdiqlandi}}</translation> <translation id="3822559385185038546">Bu proksi-server sozlamalari administrator tomonidan belgilangan</translation> @@ -2463,7 +2463,6 @@ <translation id="383669374481694771">Bunga qurilma va undan qanday foydalanish haqidagi umumiy axborot, masalan, batareya quvvati darajasi, tizim va ilovalardan qanday foydalanishingiz, ishdan chiqish hisobotlari kiradi. Ayrim toʻplangan maʼlumotlar Android dasturchilar kabi hamkorlarimizga ham oʻz ilovalari va mahsulotlarini yanada yaxshilashga yordam beradi.</translation> <translation id="3838085852053358637">Kengaytma yuklanmadi</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> sarlavhasiga ega boshqa sahifalar</translation> -<translation id="3838543471119263078">Cookie fayllari, hamda boshqa sayt ma’lumotlari va plaginlar</translation> <translation id="383891835335927981">Hech qanday sayt uchun masshtab tayinlanmagan</translation> <translation id="3839509547554145593">Sichqonchada tez varaqlash funksiyasini yoqish</translation> <translation id="3839516600093027468"><ph name="HOST" /> saytiga klipbordni ko‘rishga ruxsat har doim taqiqlansin</translation> @@ -2505,6 +2504,7 @@ <translation id="3879748587602334249">Yuklanmalar menejeri</translation> <translation id="3881478300875776315">Kamroq qatorlarni koʻrsatish</translation> <translation id="3882165008614329320">Kamera yoki galereyadan olingan video</translation> +<translation id="3884152383786131369">Bir nechta tilda chiqadigan veb kontent shu roʻyxatdagi birinchi mos tilni ishlatadi. Bu parametrlar brauzeringiz sozlamalari bilan sinxronlanadi. <ph name="BEGIN_LINK_LEARN_MORE" />Batafsil<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Bu saytni ochishga ruxsat so‘rovi <ph name="NAME" />ga yuborildi</translation> <translation id="3888550877729210209">Qaydlar <ph name="LOCK_SCREEN_APP_NAME" /> dasturida yoziladi</translation> <translation id="3890064827463908288">Wi-Fi Sync ishlatish uchun Chrome Sync funksiyasini yoqing</translation> @@ -2637,7 +2637,6 @@ <translation id="4023146161712577481">Qurilma sozlamalari aniqlanmoqda.</translation> <translation id="4025039777635956441">Tanlangan saytni ovozsiz qilish</translation> <translation id="4027804175521224372">(Bunday imkoniyatni qo‘ldan boy bermang – <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Flash sozlamalari Chrome brauzeri yopilgunga qadar saqlanadi.</translation> <translation id="4028467762035011525">Klaviatura kiritish</translation> <translation id="4031179711345676612">Mikrofondan foydalanish mumkin</translation> <translation id="4031527940632463547">Sensorlar bloklandi</translation> @@ -2789,7 +2788,6 @@ <translation id="4232375817808480934">Kerberos chiptasini moslash</translation> <translation id="4235200303672858594">Butun ekran</translation> <translation id="4235965441080806197">Hisobga kirishni bekor qilish</translation> -<translation id="4237773362828263530">Yoppasiga “*” sozlamalari endi ishlamaydi. <ph name="BEGIN_LINK" />Bu sozlamalarni oʻzgartirish<ph name="END_LINK" /> uchun administratorga murojaat qiling.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Varaqni keyinroq oʻqish}other{Varaqlarni keyinroq oʻqish}}</translation> <translation id="4242145785130247982">Bir nechta mijoz sertifikati mos emas</translation> <translation id="4242533952199664413">Sozlamalarni ochish</translation> @@ -2835,6 +2833,7 @@ <translation id="4285498937028063278">Olib tashlash</translation> <translation id="428565720843367874">Antivirus dasturida bu faylni tekshirish vaqtida xatolik yuz berdi.</translation> <translation id="4287099557599763816">Ekrandan oʻqish vositasi</translation> +<translation id="4287502603002637393">{MUTED_NOTIFICATIONS_COUNT,plural, =1{Chiqarish}other{Hammasini chiqarish}}</translation> <translation id="4289372044984810120">Hisoblaringiz shu yerdan boshqariladi. <ph name="LINK_BEGIN" />Batafsil<ph name="LINK_END" /></translation> <translation id="4289540628985791613">Umumiy</translation> <translation id="4295072614469448764">Ilova terminalingizda mavjud. Launcherda ikonka bo‘lishi kerak.</translation> @@ -3053,7 +3052,6 @@ <translation id="4548483925627140043">Signal topilmadi</translation> <translation id="4549791035683739768">Elektron kalitingizda barmoq izlari topilmadi</translation> <translation id="4551763574344810652">Bekor qilish uchun <ph name="MODIFIER_KEY_DESCRIPTION" /> ni bosing</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Tarmoq: <ph name="NETWORK_TYPE" />, signal darajasi: <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Qurilmadagi tilni almashtirish uchun Chromebookni qayta ishga tushiring. <ph name="BEGIN_LINK_LEARN_MORE" />Batafsil<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Tashqi kengaytma versiyasi joriysidan yangi emas.</translation> @@ -3408,7 +3406,6 @@ <translation id="4974733135013075877">Chiqish va bolalardan qulflash</translation> <translation id="4976009197147810135">Vertikal ajratish</translation> <translation id="4977942889532008999">Ruxsatni tasdiqlash</translation> -<translation id="4978905460870207779">Saytlar Flash ishlatishni soʻray oladi</translation> <translation id="4980805016576257426">Bu kengaytma zararli bo‘lishi mumkin.</translation> <translation id="4981449534399733132">Brauzer tarixini Google hisobingizga sinxronlangan barcha qurilmalardan tozalash uchun <ph name="BEGIN_LINK" />hisobingizga kiring<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Qurilmadagi dasturlar</translation> @@ -3686,7 +3683,7 @@ <translation id="5324780743567488672">Vaqt mintaqasini geo-ma’lumotlari asosida avtomatik aniqlash</translation> <translation id="5327248766486351172">Nomi</translation> <translation id="5327570636534774768">Bu qurilma boshqa domen tomonidan boshqarilmoqda. Demo rejimni sozlashdan avval bu domen bilan aloqa uzilishi kerak.</translation> -<translation id="5327912693242073631">Bildirishnomalar zarur funksiyalar ishlamaydi</translation> +<translation id="5327912693242073631">Bildirishnomalardan foydalanadigan funksiyalar ishlamaydi</translation> <translation id="532943162177641444">Bu qurilmaga mobil hotspot orqali internet tarqatish uchun <ph name="PHONE_NAME" /> telefoningizdagi bildirishnoma ustiga bosing.</translation> <translation id="5329858601952122676">&O‘chirish</translation> <translation id="5331069282670671859">Bu turkumdagi sertifikatlar yo‘q</translation> @@ -4179,7 +4176,6 @@ <translation id="5906732635754427568">Bu ilovaga aloqador ma’lumotlar ushbu qurilmadan o‘chiriladi.</translation> <translation id="5908474332780919512">Ilova tizim bilan birga ishga tushsin</translation> <translation id="5908695239556627796">Sichqonchada varaqlash tezligi</translation> -<translation id="5908769186679515905">Saytlarga Flash elementlarini ishga tushirish taqiqlansin</translation> <translation id="5910363049092958439">&Rasmni saqlab olish...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> oflayn</translation> <translation id="5911533659001334206">Tezkor tugmalar</translation> @@ -4363,6 +4359,7 @@ <translation id="6112727384379533756">Chipta kiritish</translation> <translation id="6112931163620622315">Telefoningizni tekshiring</translation> <translation id="6112952769866305444">Foydalanuvchini tahrirlash, <ph name="PROFILE_NAME" /> , <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Chrome brauzeri va <ph name="DEVICE_TYPE" /> launcherida asosiy qidiruv tizimi sifatida belgilash</translation> <translation id="6113942107547980621">Smart Lock himoyasini yoqish uchun telefondagi asosiy profilga oʻting</translation> <translation id="6116921718742659598">Til va kiritish usuli sozlamalarini o‘zgartirish</translation> <translation id="6120205520491252677">Ushbu sahifani bosh ekranga qadab qo‘yish...</translation> @@ -5229,6 +5226,7 @@ <translation id="7140928199327930795">Boshqa qurilmalar mavjud emas.</translation> <translation id="7141105143012495934">Hisobga kirishda xatolik yuz berdi, chunki hisob ma’lumotlarini yuklab bo‘lmadi. Administrator bilan bog‘laning yoki qaytadan urinib ko‘ring.</translation> <translation id="7143207342074048698">Ulanmoqda</translation> +<translation id="7143358760238281735">Mos ilova topilmadi</translation> <translation id="7144878232160441200">Qayta urinish</translation> <translation id="714876143603641390">LAN aloqasi</translation> <translation id="7149893636342594995">Oxirgi 24 soat</translation> @@ -5700,6 +5698,7 @@ <translation id="7707922173985738739">Mobil internetdan foydalanish</translation> <translation id="7709152031285164251">Xatolik: <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Translatsiya...</translation> +<translation id="7712739869553853093">Bosmaga razm solish oynasi</translation> <translation id="7712836429117959503"><ph name="EXTENSION_ID" /> identifikatoriga ega noma’lum kengaytma</translation> <translation id="7714307061282548371"><ph name="DOMAIN" /> cookie fayllariga ruxsat berildi.</translation> <translation id="7714464543167945231">Sertifikat</translation> @@ -5828,7 +5827,6 @@ <translation id="7831491651892296503">Tarmoqni sozlashda xatolik yuz berdi</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Tugash vaqti</translation> -<translation id="783214144752121388">Saytlarga Flash kontentni ishga tushirishni taqiqlash (tavsiya etiladi)</translation> <translation id="7833720883933317473">Saqlangan so‘zlar shu yerda turadi</translation> <translation id="7835178595033117206">Xatcho‘p olib tashlandi</translation> <translation id="7836850009646241041">Elektron kalit tugmasini qayta bosib turing</translation> @@ -6055,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Bu fayl shifrlangan. Egasidan uning shifrini yechishini soʻrang.}other{Bu fayllarning ayrimlari shifrlangan. Egasidan ularning shifrini yechishini soʻrang.}}</translation> <translation id="808894953321890993">Parolni almashtirish</translation> <translation id="8090234456044969073">Eng ko‘p ochilgan saytlar ro‘yhati</translation> -<translation id="8092681102116274204">Yoppasiga “*” sozlamalari endi ishlamaydi. <ph name="BEGIN_LINK" />Bu sozlamalarni oʻzgartirish<ph name="END_LINK" /> uchun kengaytma dasturchisi yoki administratorga murojaat qiling.</translation> <translation id="8093359998839330381">“<ph name="PLUGIN_NAME" />” plagini javob bermayapti</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google Drive xizmatiga zaxiralash. Axborotlaringizni osongina tiklashingiz yoki qurilmangizni xohlagan vaqtda almashtirishingiz mumkin. Zaxira ichida ilova ma’lumotlari ham bor.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Zaxiralar Google serverlariga yuklanadi va Google hisobingiz paroli bilan shifrlanadi.<ph name="END_PARAGRAPH2" /> @@ -6150,10 +6147,10 @@ <translation id="8201717382574620700">Albom tanlash: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> qurilmasi profilini yangilash uchun parolni qayta kiriting.</translation> <translation id="8203732864715032075">Bu kompyuter xabarlashuv uchun birlamchi bo‘lishi uchun sizga bildirishnoma yuborildi. <ph name="LINK_BEGIN" />Batafsil axborot<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Flash kontentni taqiqlash (tavsiya etiladi)</translation> <translation id="820568752112382238">Eng koʻp ochilgan saytlar</translation> <translation id="8206745257863499010">Blyuz</translation> <translation id="8206859287963243715">Uyali</translation> +<translation id="8210398899759134986">{MUTED_NOTIFICATIONS_COUNT,plural, =1{Yangi bildirishnoma}other{# ta yangi bildirishnoma}}</translation> <translation id="8212008074015601248">{NUM_DOWNLOAD,plural, =1{Yuklab olinmoqda}other{Yuklab olinmoqda}}</translation> <translation id="8213449224684199188">Foto rejimi yoqildi</translation> <translation id="8213577208796878755">Yana bir qurilma mavjud.</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index 60b8640..98aaff8 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Dừng</translation> <translation id="1272293450992660632">Giá trị mã PIN không khớp.</translation> <translation id="1272978324304772054">Tài khoản người dùng này không thuộc về miền mà thiết bị được đăng ký. Nếu bạn muốn đăng ký miền khác, bạn cần tìm thiết bị trước tiên.</translation> -<translation id="1274977772557788323">Cài đặt bộ nhớ của Adobe Flash Player</translation> <translation id="1274997165432133392">Cookie và các dữ liệu khác của trang web</translation> <translation id="1275718070701477396">Đã chọn</translation> <translation id="1276994519141842946">Không gỡ được cài đặt <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Dấu trang, lịch sử và các cài đặt khác sẽ được đồng bộ hóa với tài khoản Google của bạn.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Mạng chủ, không chuyển vùng</translation> -<translation id="1315056510003830387">Không được phép sử dụng Flash</translation> <translation id="1316136264406804862">Đang tìm kiếm...</translation> <translation id="1316495628809031177">Quá trình đồng bộ hóa hiện tạm dừng</translation> <translation id="1317637799698924700">Đế sạc sẽ hoạt động ở chế độ tương thích với USB Type-C.</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC không hỗ trợ loại mã hóa</translation> <translation id="1984417487208496350">Không được bảo vệ (không khuyến nghị)</translation> <translation id="1987317783729300807">Tài khoản</translation> -<translation id="1988494864246143197">Các trang web thường sử dụng Flash để phát âm thanh, video hoặc trò chơi điện tử. Sau tháng 12 năm 2020, Flash Player sẽ không còn được hỗ trợ nữa.</translation> <translation id="1989112275319619282">Duyệt qua</translation> <translation id="1990512225220753005">Không hiển thị lối tắt trên trang này</translation> <translation id="1992397118740194946">Chưa đặt</translation> @@ -1649,7 +1646,6 @@ <translation id="2880660355386638022">Vị trí cửa sổ</translation> <translation id="2881076733170862447">Khi bạn nhấp vào tiện ích</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> sẽ khởi động lại và đặt lại trong giây lát</translation> -<translation id="288387288628762616">Được phép sử dụng Flash</translation> <translation id="2885378588091291677">Trình quản lý tác vụ</translation> <translation id="2885729872133513017">Đã xảy ra lỗi khi giải mã phản hồi của máy chủ.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2081,6 +2077,7 @@ <translation id="3428419049384081277">Bạn đã đăng nhập!</translation> <translation id="3428747202529429621">Giúp bạn an toàn trên Chrome và có thể dùng để tăng cường bảo mật cho bạn trong các ứng dụng khác của Google sau khi đăng nhập</translation> <translation id="3428800329481094896">Đang tìm nạp các khóa SSH của vùng chứa Linux</translation> +<translation id="3429271624041785769">Ngôn ngữ dùng cho nội dung web</translation> <translation id="3429275422858276529">Đánh dấu trang này để dễ dàng tìm kiếm về sau</translation> <translation id="3432227430032737297">Xóa tất cả cookie hiển thị</translation> <translation id="3432757130254800023">Gửi âm thanh và video tới màn hình trên mạng cục bộ</translation> @@ -2465,7 +2462,6 @@ <translation id="383669374481694771">Đây là thông tin chung về thiết bị này và cách bạn sử dụng thiết bị (như mức pin, hoạt động của ứng dụng và hệ thống cũng như các lỗi). Dữ liệu sẽ dùng để cải thiện Android và một số thông tin tổng hợp cũng sẽ giúp các ứng dụng và đối tác của Google, chẳng hạn như nhà phát triển Android, cải thiện ứng dụng và sản phẩm của họ.</translation> <translation id="3838085852053358637">Không tải được tiện ích</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> khác</translation> -<translation id="3838543471119263078">Cookie cùng dữ liệu plugin và trang web khác</translation> <translation id="383891835335927981">Không có trang web nào được phóng to hoặc thu nhỏ</translation> <translation id="3839509547554145593">Bật tính năng tăng tốc độ cuộn chuột</translation> <translation id="3839516600093027468">Luôn chặn <ph name="HOST" /> xem khay nhớ tạm</translation> @@ -2507,6 +2503,7 @@ <translation id="3879748587602334249">Trình quản lý tải xuống</translation> <translation id="3881478300875776315">Ẩn bớt dòng</translation> <translation id="3882165008614329320">Video hiện có từ camera hoặc tệp</translation> +<translation id="3884152383786131369">Nội dung web có nhiều phiên bản ngôn ngữ sẽ dùng ngôn ngữ đầu tiên được hỗ trợ trong danh sách này. Những tùy chọn này được đồng bộ hóa với tùy chọn cài đặt của trình duyệt. <ph name="BEGIN_LINK_LEARN_MORE" />Tìm hiểu thêm<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Yêu cầu truy cập trang web này của bạn đã được gửi tới <ph name="NAME" /></translation> <translation id="3888550877729210209">Ghi chú bằng <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Bật Chrome Sync để dùng tính năng Đồng bộ hóa Wi-Fi</translation> @@ -2639,7 +2636,6 @@ <translation id="4023146161712577481">Cấu hình thiết bị đang chờ xác định.</translation> <translation id="4025039777635956441">Tắt tiếng trang web đã chọn</translation> <translation id="4027804175521224372">(Bạn chưa được đăng nhập—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Tùy chọn cài đặt Flash của bạn sẽ được lưu cho tới khi bạn thoát Chrome.</translation> <translation id="4028467762035011525">Thêm phương thức nhập</translation> <translation id="4031179711345676612">Cho phép micrô</translation> <translation id="4031527940632463547">Đã chặn sử dụng cảm biến</translation> @@ -2791,7 +2787,6 @@ <translation id="4232375817808480934">Định cấu hình Kerberos</translation> <translation id="4235200303672858594">Toàn màn hình</translation> <translation id="4235965441080806197">Hủy đăng nhập</translation> -<translation id="4237773362828263530">Các tùy chọn cài đặt có ký tự đại diện "*" không được hỗ trợ nữa. Hãy liên hệ với quản trị viên để <ph name="BEGIN_LINK" />thay đổi các tùy chọn cài đặt này<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Đọc thẻ sau}other{Đọc các thẻ sau}}</translation> <translation id="4242145785130247982">Không hỗ trợ nhiều chứng chỉ ứng dụng khách</translation> <translation id="4242533952199664413">Mở phần cài đặt</translation> @@ -3055,7 +3050,6 @@ <translation id="4548483925627140043">Không tìm thấy tín hiệu</translation> <translation id="4549791035683739768">Khóa bảo mật của bạn chưa lưu trữ vân tay nào</translation> <translation id="4551763574344810652">Nhấn <ph name="MODIFIER_KEY_DESCRIPTION" /> để hủy thao tác</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">Mạng <ph name="NETWORK_TYPE" />, cường độ tín hiệu <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Bạn cần khởi động lại Chromebook để thay đổi ngôn ngữ của thiết bị. <ph name="BEGIN_LINK_LEARN_MORE" />Tìm hiểu thêm<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Tiện ích bên ngoài có cùng phiên bản hoặc phiên bản thấp hơn so với tiện ích hiện có.</translation> @@ -3410,7 +3404,6 @@ <translation id="4974733135013075877">Thoát và khóa chặn trẻ em</translation> <translation id="4976009197147810135">Chia dọc</translation> <translation id="4977942889532008999">Xác nhận truy cập</translation> -<translation id="4978905460870207779">Các trang web có thể yêu cầu sử dụng Flash</translation> <translation id="4980805016576257426">Tiện ích này có chứa phần mềm độc hại.</translation> <translation id="4981449534399733132">Để xóa dữ liệu duyệt web khỏi tất cả các thiết bị đã đồng bộ hóa và Tài khoản Google của bạn, hãy <ph name="BEGIN_LINK" />đăng nhập<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Phần mềm trên thiết bị</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Dữ liệu được liên kết với ứng dụng này sẽ bị xóa khỏi thiết bị này.</translation> <translation id="5908474332780919512">Mở ứng dụng khi bạn đăng nhập</translation> <translation id="5908695239556627796">Tốc độ cuộn chuột</translation> -<translation id="5908769186679515905">Chặn trang web chạy Flash</translation> <translation id="5910363049092958439">Lưu &Hình ảnh Dưới dạng...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> hiện không có kết nối mạng</translation> <translation id="5911533659001334206">Trình xem phím tắt</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Thêm phiếu</translation> <translation id="6112931163620622315">Kiểm tra điện thoại của bạn</translation> <translation id="6112952769866305444">Chỉnh sửa người, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Thiết lập công cụ tìm kiếm mặc định cho trình duyệt Chrome và Trình chạy trên <ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Để sử dụng Smart Lock, hãy chuyển sang hồ sơ người dùng chính trên điện thoại của bạn</translation> <translation id="6116921718742659598">Thay đổi cài đặt ngôn ngữ và phương thức nhập</translation> <translation id="6120205520491252677">Ghim trang này vào màn hình Bắt đầu...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Hiện không có thiết bị nào khác.</translation> <translation id="7141105143012495934">Đăng nhập không thành công vì không thể truy xuất chi tiết tài khoản của bạn. Vui lòng liên hệ với quản trị viên của bạn hoặc thử lại.</translation> <translation id="7143207342074048698">Đang kết nối</translation> +<translation id="7143358760238281735">Không có ứng dụng nào</translation> <translation id="7144878232160441200">Thử lại</translation> <translation id="714876143603641390">Khả năng kết nối với mạng LAN</translation> <translation id="7149893636342594995">24 giờ qua</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Sử dụng dữ liệu di động</translation> <translation id="7709152031285164251">Không thành công - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Truyền...</translation> +<translation id="7712739869553853093">Hộp thoại Xem trước bản in</translation> <translation id="7712836429117959503">Tiện ích không xác định có ID <ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Cho phép các cookie từ <ph name="DOMAIN" /></translation> <translation id="7714464543167945231">Chứng chỉ</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Lỗi khi định cấu hình mạng</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Thời gian kết thúc</translation> -<translation id="783214144752121388">Chặn không cho các trang web chạy Flash (khuyên dùng)</translation> <translation id="7833720883933317473">Các từ tùy chỉnh đã lưu sẽ xuất hiện ở đây</translation> <translation id="7835178595033117206">Đã xóa dấu trang</translation> <translation id="7836850009646241041">Thử chạm lại vào khóa bảo mật</translation> @@ -6059,7 +6053,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Tệp này đã được mã hóa. Hãy yêu cầu chủ sở hữu tệp giải mã.}other{Một số tệp trong số này đã được mã hóa. Hãy yêu cầu chủ sở hữu tệp giải mã.}}</translation> <translation id="808894953321890993">Đổi mật khẩu</translation> <translation id="8090234456044969073">Đọc danh sách trang web được truy cập thường xuyên nhất của bạn</translation> -<translation id="8092681102116274204">Các tùy chọn cài đặt có ký tự đại diện "*" không được hỗ trợ nữa. Hãy liên hệ với nhà phát triển tiện ích hoặc quản trị viên của bạn để <ph name="BEGIN_LINK" />thay đổi các tùy chọn cài đặt này<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> không phản hồi</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Sao lưu vào Google Drive. Dễ dàng khôi phục dữ liệu hoặc chuyển đổi thiết bị bất kỳ lúc nào. Bản sao lưu của bạn bao gồm cả dữ liệu ứng dụng.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Các bản sao lưu được tải lên Google và mã hóa bằng mật khẩu Tài khoản Google của bạn.<ph name="END_PARAGRAPH2" /> @@ -6154,7 +6147,6 @@ <translation id="8201717382574620700">Chọn album trên <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Vui lòng nhập lại mật khẩu để cập nhật hồ sơ <ph name="DEVICE_TYPE" /> của bạn.</translation> <translation id="8203732864715032075">Gửi cho bạn thông báo và đặt mặc định để ghi nhớ máy tính này cho ứng dụng Messages. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Chặn Flash (khuyến nghị)</translation> <translation id="820568752112382238">Trang web truy cập nhiều nhất</translation> <translation id="8206745257863499010">Nốt nhạc xanh</translation> <translation id="8206859287963243715">Di động</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index 16c2883..c2f4dbb 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">停止</translation> <translation id="1272293450992660632">PIN 码的值不一致。</translation> <translation id="1272978324304772054">此用户帐号不属于设备所注册的域。如果想注册其他域,那么您首先需要执行设备恢复。</translation> -<translation id="1274977772557788323">Adobe Flash Player 存储设置</translation> <translation id="1274997165432133392">Cookie 及其他网站数据</translation> <translation id="1275718070701477396">已选中</translation> <translation id="1276994519141842946">无法卸载 <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">系统会将您的书签、浏览记录和其他设置同步到您的Google帐号。</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">家庭网络,非漫游</translation> -<translation id="1315056510003830387">不允许使用 Flash</translation> <translation id="1316136264406804862">正在搜索...</translation> <translation id="1316495628809031177">同步已暂停</translation> <translation id="1317637799698924700">您的基座将以与 USB C 型兼容的模式运行。</translation> @@ -875,7 +873,6 @@ <translation id="197989455406964291">KDC 不支持加密类型</translation> <translation id="1984417487208496350">不保护(不建议)</translation> <translation id="1987317783729300807">帐号</translation> -<translation id="1988494864246143197">网站通常会使用 Flash 来播放音频、视频或视频游戏。2020 年 12 月之后,Flash Player 将不再受支持。</translation> <translation id="1989112275319619282">浏览</translation> <translation id="1990512225220753005">不在本页上显示快捷方式</translation> <translation id="1992397118740194946">未设置</translation> @@ -1645,7 +1642,6 @@ <translation id="2880660355386638022">窗口放置</translation> <translation id="2881076733170862447">当您点击此扩展程序时</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> 将立即重新启动并重置</translation> -<translation id="288387288628762616">允许使用 Flash</translation> <translation id="2885378588091291677">任务管理器</translation> <translation id="2885729872133513017">对服务器响应进行解码时出问题了。</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2461,7 +2457,6 @@ <translation id="383669374481694771">这是关于此设备及其使用情况(例如电池电量、系统与应用活动以及错误)的一般信息。我们会使用这些数据来改善 Android,部分汇总信息还会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。</translation> <translation id="3838085852053358637">未能成功加载扩展程序</translation> <translation id="3838486795898716504">更多“<ph name="PAGE_TITLE" />”</translation> -<translation id="3838543471119263078">Cookie 及其他网站数据和插件数据</translation> <translation id="383891835335927981">未对任何网站设置缩放级别</translation> <translation id="3839509547554145593">启用鼠标滚屏加速</translation> <translation id="3839516600093027468">始终禁止 <ph name="HOST" /> 查看剪贴板</translation> @@ -2634,7 +2629,6 @@ <translation id="4023146161712577481">正在确定设备配置。</translation> <translation id="4025039777635956441">将所选网站静音</translation> <translation id="4027804175521224372">(无法同步 - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">您的 Flash 设置会一直保留到您退出 Chrome 为止。</translation> <translation id="4028467762035011525">添加输入法</translation> <translation id="4031179711345676612">已允许使用麦克风</translation> <translation id="4031527940632463547">已禁止使用传感器</translation> @@ -2786,7 +2780,6 @@ <translation id="4232375817808480934">配置 Kerberos</translation> <translation id="4235200303672858594">整个屏幕</translation> <translation id="4235965441080806197">取消登录</translation> -<translation id="4237773362828263530">带有“*”通配符的设置已不再受支持。如需<ph name="BEGIN_LINK" />更改这些设置<ph name="END_LINK" />,请与您的管理员联系。</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{稍后阅读这个标签页}other{稍后阅读这些标签页}}</translation> <translation id="4242145785130247982">有多个客户端证书不受支持</translation> <translation id="4242533952199664413">打开“设置”</translation> @@ -3050,7 +3043,6 @@ <translation id="4548483925627140043">找不到信号</translation> <translation id="4549791035683739768">您的安全密钥未存储任何指纹</translation> <translation id="4551763574344810652">按 <ph name="MODIFIER_KEY_DESCRIPTION" /> 即可撤消</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">“<ph name="NETWORK_TYPE" />”类型的网络,信号强度为 <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">您需要重启 Chromebook 才能更改设备语言。<ph name="BEGIN_LINK_LEARN_MORE" />了解详情<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">外部扩展程序的版本与现有版本相同或更低。</translation> @@ -3405,7 +3397,6 @@ <translation id="4974733135013075877">退出并启用 childlock 功能</translation> <translation id="4976009197147810135">垂直分割</translation> <translation id="4977942889532008999">确认访问</translation> -<translation id="4978905460870207779">网站可以请求使用 Flash</translation> <translation id="4980805016576257426">此扩展程序包含恶意软件。</translation> <translation id="4981449534399733132">要想清除您的所有已同步设备中的浏览数据以及您的 Google 帐号中的浏览数据,请<ph name="BEGIN_LINK" />登录<ph name="END_LINK" />。</translation> <translation id="4982236238228587209">设备软件</translation> @@ -4176,7 +4167,6 @@ <translation id="5906732635754427568">系统将会从此设备上移除与该应用相关的数据。</translation> <translation id="5908474332780919512">在您登录时启动应用</translation> <translation id="5908695239556627796">鼠标滚屏速度</translation> -<translation id="5908769186679515905">禁止网站运行 Flash</translation> <translation id="5910363049092958439">图片存储为(&V)...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> 处于离线状态</translation> <translation id="5911533659001334206">快捷键查看器</translation> @@ -5826,7 +5816,6 @@ <translation id="7831491651892296503">配置网络时出错</translation> <translation id="7831754656372780761">“<ph name="TAB_TITLE" />”<ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">结束时间</translation> -<translation id="783214144752121388">禁止网站运行 Flash(推荐)</translation> <translation id="7833720883933317473">已保存的自定义字词将显示在这里</translation> <translation id="7835178595033117206">已移除书签</translation> <translation id="7836850009646241041">请再次尝试轻触您的安全密钥</translation> @@ -6054,7 +6043,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{这个文件已加密。请让它的所有者进行解密。}other{这些文件中的部分文件已加密。请让它们的所有者进行解密。}}</translation> <translation id="808894953321890993">更改密码</translation> <translation id="8090234456044969073">读取您最常访问的网站列表</translation> -<translation id="8092681102116274204">带有“*”通配符的设置已不再受支持。如需<ph name="BEGIN_LINK" />更改这些设置<ph name="END_LINK" />,请与扩展程序开发者或您的管理员联系。</translation> <translation id="8093359998839330381">“<ph name="PLUGIN_NAME" />”没有响应</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />备份到 Google 云端硬盘。您随时都能轻松地恢复数据或更换设备。您的备份内容会包含应用数据。<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />您的备份内容会上传到 Google 并会使用您的 Google 帐号密码进行加密。<ph name="END_PARAGRAPH2" /> @@ -6148,7 +6136,6 @@ <translation id="8201717382574620700">选择 <ph name="TOPIC_SOURCE" />影集</translation> <translation id="8202160505685531999">请重新输入密码,以便更新您的<ph name="DEVICE_TYPE" />资料。</translation> <translation id="8203732864715032075">向您发送通知,并默认记住这台计算机以便在您收到短信时向其发送通知。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">禁用 Flash(推荐)</translation> <translation id="820568752112382238">最常访问的网站</translation> <translation id="8206745257863499010">音符</translation> <translation id="8206859287963243715">蜂窝网络设备</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index 2bc8402..f7ac4f5b 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">停止</translation> <translation id="1272293450992660632">PIN 值不相符。</translation> <translation id="1272978324304772054">裝置註冊的網域中沒有這個使用者帳戶。如果您要使用其他網域進行註冊,必須先完成裝置修復操作。</translation> -<translation id="1274977772557788323">Adobe Flash Player 儲存設定</translation> <translation id="1274997165432133392">Cookie 和其他網站數據</translation> <translation id="1275718070701477396">已選取</translation> <translation id="1276994519141842946">無法解除安裝 <ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">系統會將您的書籤、記錄和其他設定與您的 Google 帳戶同步處理。</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">家用網絡,非漫遊狀態</translation> -<translation id="1315056510003830387">不允許使用 Flash</translation> <translation id="1316136264406804862">搜尋中...</translation> <translation id="1316495628809031177">已暫停同步處理</translation> <translation id="1317637799698924700">您的插座將以 USB-C 兼容模式執行。</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC 不支援加密類型</translation> <translation id="1984417487208496350">無保護功能 (不建議)</translation> <translation id="1987317783729300807">帳戶</translation> -<translation id="1988494864246143197">網站通常會使用 Flash 來播放音訊、影片或電玩遊戲。由 2020 年 12 月起,系統將不再支援 Flash Player。</translation> <translation id="1989112275319619282">瀏覽</translation> <translation id="1990512225220753005">不要在此頁面顯示捷徑</translation> <translation id="1992397118740194946">未設定</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">放置視窗</translation> <translation id="2881076733170862447">當您點擊擴充程式時</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> 即將重新啟動並重新設定。</translation> -<translation id="288387288628762616">已允許使用 Flash</translation> <translation id="2885378588091291677">工作管理員</translation> <translation id="2885729872133513017">解碼伺服器回應時發生問題。</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2464,7 +2460,6 @@ <translation id="383669374481694771">這個選項會提供此裝置的一般資料和使用情况 (例如電量、系統及應用程式活動和錯誤)。這些資料將會用來改善 Android。部分彙整資料還能協助 Google 應用程式和合作夥伴 (例如 Android 開發人員) 改良應用程式和產品。</translation> <translation id="3838085852053358637">無法載入擴充程式</translation> <translation id="3838486795898716504">更多<ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookie、其他網站數據和外掛程式數據</translation> <translation id="383891835335927981">沒有已放大或縮小的網站</translation> <translation id="3839509547554145593">啟用滑鼠捲動加速功能</translation> <translation id="3839516600093027468">一律禁止 <ph name="HOST" /> 查看剪貼簿</translation> @@ -2638,7 +2633,6 @@ <translation id="4023146161712577481">正在確定裝置設定。</translation> <translation id="4025039777635956441">將已選取的網站設定為靜音</translation> <translation id="4027804175521224372">(登入以體驗更佳效能 — <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">您的 Flash 設定將保留至退出 Chrome 為止。</translation> <translation id="4028467762035011525">新增輸入方法</translation> <translation id="4031179711345676612">已允許使用麥克風</translation> <translation id="4031527940632463547">已封鎖感應器</translation> @@ -2790,7 +2784,6 @@ <translation id="4232375817808480934">設定 Kerberos</translation> <translation id="4235200303672858594">整個螢幕</translation> <translation id="4235965441080806197">取消登入</translation> -<translation id="4237773362828263530">系統已不再支援含有「*」萬用字元的設定。請聯絡您的管理員,以<ph name="BEGIN_LINK" />變更這些設定<ph name="END_LINK" />。</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{稍後閱讀分頁}other{稍後閱讀分頁}}</translation> <translation id="4242145785130247982">不支援多個用戶端憑證</translation> <translation id="4242533952199664413">開啟設定</translation> @@ -3054,7 +3047,6 @@ <translation id="4548483925627140043">偵測不到訊號</translation> <translation id="4549791035683739768">您的安全密鑰並未儲存任何指紋</translation> <translation id="4551763574344810652">按下 <ph name="MODIFIER_KEY_DESCRIPTION" /> 即可復原</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005">「<ph name="NETWORK_TYPE" />」網絡,訊號強度為 <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">您需要重新啟動 Chromebook 才能變更裝置語言。<ph name="BEGIN_LINK_LEARN_MORE" />瞭解詳情<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">外部擴充功能與現有擴充功能的版本相同或較低。</translation> @@ -3409,7 +3401,6 @@ <translation id="4974733135013075877">退出並加設兒童鎖</translation> <translation id="4976009197147810135">垂直分割</translation> <translation id="4977942889532008999">確認存取權</translation> -<translation id="4978905460870207779">網站可要求使用 Flash</translation> <translation id="4980805016576257426">這個擴充程式含有惡意軟件。</translation> <translation id="4981449534399733132">如要從所有已同步的裝置和 Google 帳戶中清除瀏覽資料,請<ph name="BEGIN_LINK" />登入<ph name="END_LINK" />。</translation> <translation id="4982236238228587209">裝置軟件</translation> @@ -4180,7 +4171,6 @@ <translation id="5906732635754427568">系統會從裝置中移除與此應用程式相關的資料。</translation> <translation id="5908474332780919512">當您登入時啟動應用程式</translation> <translation id="5908695239556627796">滑鼠捲動速度</translation> -<translation id="5908769186679515905">禁止網站執行 Flash</translation> <translation id="5910363049092958439">另存圖片為(&V)…</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> 已離線</translation> <translation id="5911533659001334206">快速鍵檢視器</translation> @@ -5830,7 +5820,6 @@ <translation id="7831491651892296503">設定網絡時發生錯誤</translation> <translation id="7831754656372780761">「<ph name="TAB_TITLE" />」<ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">結束時間</translation> -<translation id="783214144752121388">禁止網站執行 Flash (建議)</translation> <translation id="7833720883933317473">已儲存的自訂字詞將會在這裡顯示</translation> <translation id="7835178595033117206">移除咗書籤</translation> <translation id="7836850009646241041">請嘗試再次輕觸安全密鑰</translation> @@ -6058,7 +6047,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{此檔案已加密。請要求擁有者解密。}other{這些檔案部分已加密。請要求擁有者解密。}}</translation> <translation id="808894953321890993">變更密碼</translation> <translation id="8090234456044969073">讀取最常瀏覽的網站清單</translation> -<translation id="8092681102116274204">系統已不再支援含有「*」萬用字元的設定。請聯絡擴充程式開發人員或您的管理員,以<ph name="BEGIN_LINK" />變更這些設定<ph name="END_LINK" />。</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> 沒有回應</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />備份至「Google 雲端硬碟」。您可隨時輕鬆還原資料或轉用其他裝置。備份包含應用程式資料。<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />您的備份會上載至 Google,並使用您的 Google 帳戶密碼加密。<ph name="END_PARAGRAPH2" /> @@ -6152,7 +6140,6 @@ <translation id="8201717382574620700">揀「<ph name="TOPIC_SOURCE" />」相簿</translation> <translation id="8202160505685531999">請重新輸入密碼以更新 <ph name="DEVICE_TYPE" /> 的個人檔案。</translation> <translation id="8203732864715032075">讓「訊息」向您傳送通知並預設記住這台電腦<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">禁止 Flash (建議)</translation> <translation id="820568752112382238">最常瀏覽的網站</translation> <translation id="8206745257863499010">藍調</translation> <translation id="8206859287963243715">蜂窩</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index b283d59..a0fd585 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">停止</translation> <translation id="1272293450992660632">PIN 碼值不相符。</translation> <translation id="1272978324304772054">裝置註冊的網域中沒有這個使用者帳戶。如果你要使用其他網域進行註冊,必須先完成裝置修復作業。</translation> -<translation id="1274977772557788323">Adobe Flash Player 儲存設定</translation> <translation id="1274997165432133392">Cookie 和其他網站資料</translation> <translation id="1275718070701477396">已選取</translation> <translation id="1276994519141842946">無法解除安裝「<ph name="APP_NAME" />」</translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">系統會將你的書籤、歷史記錄和其他設定與你的 Google 帳戶同步處理。</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">家用網路,非漫遊狀態</translation> -<translation id="1315056510003830387">不得使用 Flash</translation> <translation id="1316136264406804862">搜尋中...</translation> <translation id="1316495628809031177">已暫停同步處理</translation> <translation id="1317637799698924700">你的座架將以 USB Type-C 相容模式執行。</translation> @@ -878,7 +876,6 @@ <translation id="197989455406964291">KDC 不支援加密類型</translation> <translation id="1984417487208496350">無防護 (不建議)</translation> <translation id="1987317783729300807">帳戶</translation> -<translation id="1988494864246143197">網站通常會使用 Flash 播放音訊、影片或電玩遊戲。2020 年 12 月之後,系統將停止支援 Flash Player。</translation> <translation id="1989112275319619282">瀏覽</translation> <translation id="1990512225220753005">不要在這個頁面顯示捷徑</translation> <translation id="1992397118740194946">尚未設定</translation> @@ -1648,7 +1645,6 @@ <translation id="2880660355386638022">放置視窗</translation> <translation id="2881076733170862447">當你點選擴充功能時</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> 即將重新啟動並進行重設</translation> -<translation id="288387288628762616">可以使用 Flash</translation> <translation id="2885378588091291677">工作管理員</translation> <translation id="2885729872133513017">解碼伺服器回應時發生問題。</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2464,7 +2460,6 @@ <translation id="383669374481694771">這個頁面會顯示這部裝置和裝置使用情況的一般資訊 (例如電池電量、系統和應用程式活動,以及錯誤資訊)。這些資料將用於改善 Android,且部分匯總資訊還能協助 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提高應用程式和產品的服務品質。</translation> <translation id="3838085852053358637">無法載入擴充功能</translation> <translation id="3838486795898716504">更多<ph name="PAGE_TITLE" /></translation> -<translation id="3838543471119263078">Cookie、其他網站資料和外掛程式資料</translation> <translation id="383891835335927981">未針對任何網站設定縮放等級</translation> <translation id="3839509547554145593">啟用滑鼠捲動加速功能</translation> <translation id="3839516600093027468">一律禁止 <ph name="HOST" /> 讀取剪貼簿</translation> @@ -2637,7 +2632,6 @@ <translation id="4023146161712577481">正在確定裝置設定。</translation> <translation id="4025039777635956441">將所選網站設為靜音</translation> <translation id="4027804175521224372">(你錯過了下列步驟 - <ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">你的 Flash 設定將保留到退出 Chrome 為止。</translation> <translation id="4028467762035011525">新增輸入法</translation> <translation id="4031179711345676612">可使用麥克風</translation> <translation id="4031527940632463547">禁止使用感應器</translation> @@ -2789,7 +2783,6 @@ <translation id="4232375817808480934">設定 Kerberos</translation> <translation id="4235200303672858594">整個畫面</translation> <translation id="4235965441080806197">取消登入</translation> -<translation id="4237773362828263530">系統已停止支援包含「*」萬用字元的設定。請與系統管理員聯絡以<ph name="BEGIN_LINK" />變更這類設定<ph name="END_LINK" />。</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{稍後再閱讀分頁}other{稍後再閱讀分頁}}</translation> <translation id="4242145785130247982">不支援多個用戶端憑證</translation> <translation id="4242533952199664413">開啟設定</translation> @@ -3053,7 +3046,6 @@ <translation id="4548483925627140043">偵測不到訊號</translation> <translation id="4549791035683739768">你的安全金鑰沒有儲存任何指紋</translation> <translation id="4551763574344810652">按下 <ph name="MODIFIER_KEY_DESCRIPTION" /> 即可復原</translation> -<translation id="4552089082226364758">Flash</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" />網路,訊號強度 <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">你需要重新啟動 Chromebook 才能變更裝置語言。<ph name="BEGIN_LINK_LEARN_MORE" />瞭解詳情<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">外部擴充功能與現有擴充功能的版本相同,或版本較低。</translation> @@ -3408,7 +3400,6 @@ <translation id="4974733135013075877">結束並執行 Childlock</translation> <translation id="4976009197147810135">垂直分割</translation> <translation id="4977942889532008999">確認存取權</translation> -<translation id="4978905460870207779">網站可以要求使用 Flash</translation> <translation id="4980805016576257426">這個擴充功能含有惡意軟體。</translation> <translation id="4981449534399733132">如要從所有同步的裝置和 Google 帳戶中清除瀏覽資料,請先<ph name="BEGIN_LINK" />登入<ph name="END_LINK" />。</translation> <translation id="4982236238228587209">裝置上的軟體</translation> @@ -4179,7 +4170,6 @@ <translation id="5906732635754427568">與這個應用程式相關聯的資料會從這個裝置上移除。</translation> <translation id="5908474332780919512">當你登入時啟動應用程式</translation> <translation id="5908695239556627796">滑鼠捲動速度</translation> -<translation id="5908769186679515905">禁止網站執行 Flash</translation> <translation id="5910363049092958439">另存圖片(&V)...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> 目前離線</translation> <translation id="5911533659001334206">快速鍵檢視器</translation> @@ -5829,7 +5819,6 @@ <translation id="7831491651892296503">網路設定錯誤</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">結束時間</translation> -<translation id="783214144752121388">禁止網站執行 Flash (建議)</translation> <translation id="7833720883933317473">你所儲存的自訂字詞會顯示在這裡</translation> <translation id="7835178595033117206">已移除書籤</translation> <translation id="7836850009646241041">請再次輕觸你的安全金鑰</translation> @@ -6057,7 +6046,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{這個檔案已加密。請要求檔案擁有者解密。}other{部分檔案已加密。請要求檔案擁有者解密。}}</translation> <translation id="808894953321890993">變更密碼</translation> <translation id="8090234456044969073">讀取最常造訪的網站清單</translation> -<translation id="8092681102116274204">系統已停止支援包含「*」萬用字元的設定。請與擴充功能開發人員或系統管理員聯絡,<ph name="BEGIN_LINK" />以變更這類設定<ph name="END_LINK" />。</translation> <translation id="8093359998839330381">「<ph name="PLUGIN_NAME" />」無回應</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />備份到 Google 雲端硬碟。你隨時可以輕鬆還原資料或改用其他裝置。備份內容包含應用程式資料。<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />備份內容會上傳到 Google 並以你的 Google 帳戶密碼加密。<ph name="END_PARAGRAPH2" /> @@ -6151,7 +6139,6 @@ <translation id="8201717382574620700">選取「<ph name="TOPIC_SOURCE" />」的相簿</translation> <translation id="8202160505685531999">請再次輸入您的密碼,以更新您的 <ph name="DEVICE_TYPE" /> 設定檔。</translation> <translation id="8203732864715032075">傳送通知給你,並預設記住這部電腦,以便在收到簡訊時傳送通知。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">封鎖 Flash (建議)</translation> <translation id="820568752112382238">最常造訪的網站</translation> <translation id="8206745257863499010">藍調</translation> <translation id="8206859287963243715">手機</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index 342ba1e1..45b58b5 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -244,7 +244,6 @@ <translation id="1272079795634619415">Misa</translation> <translation id="1272293450992660632">Amavelu ephinikhodi awafani.</translation> <translation id="1272978324304772054">Le akhawunti yomsebenzisi akuyona yesizinda idivayisi ebhaliswe kuso. Uma ufuna ukubhalisa kusizinda esihlukile kuzomele udlule kusitholi sedivayisi kuqala.</translation> -<translation id="1274977772557788323">Izilungiselelo zesitoreji sesidlali se-Adobe Flash</translation> <translation id="1274997165432133392">Amakhukhi nenye idatha yesayithi</translation> <translation id="1275718070701477396">Ikhethiwe</translation> <translation id="1276994519141842946">Ayikwazanga ukukhipha i-<ph name="APP_NAME" /></translation> @@ -278,7 +277,6 @@ <translation id="1313705515580255288">Amabhukhimakhi wakho, umlando, nezilungiselelo zizovumelaniswa ku-Akhawunti yakho ye-Google.</translation> <translation id="1314565355471455267">I-Android VPN</translation> <translation id="131461803491198646">Inethiwekhi yasekhaya, hhayi ukuzula</translation> -<translation id="1315056510003830387">Ayivumelekile ukusebenzisa Ifuleshi</translation> <translation id="1316136264406804862">Iyasesha...</translation> <translation id="1316495628809031177">Ukuvumelanisa kumiswe isikhashana</translation> <translation id="1317637799698924700">Isiteshi sakho sokudokha sizosebenza kumodi ehambisanayo ye-USB Type-C</translation> @@ -876,7 +874,6 @@ <translation id="197989455406964291">I-KDC ayisekeli uhlobo lokubiyela</translation> <translation id="1984417487208496350">Asikho Isivikelo (akunconywa)</translation> <translation id="1987317783729300807">Ama-Akhawunti</translation> -<translation id="1988494864246143197">Amasayithi avamise ukusebenzisa i-Flash ukuze adlale umsindo, ividiyo, noma amageyimu evidiyo. Isidlali se-Flash ngeke sisasekelwa ngemuva kwangomhla ka-Disemba 2020.</translation> <translation id="1989112275319619282">Dlulisa amehlo</translation> <translation id="1990512225220753005">Ungabonisi izinqamuleli kuleli khasi</translation> <translation id="1992397118740194946">Ayisethiwe</translation> @@ -1647,7 +1644,6 @@ <translation id="2880660355386638022">Ukubekwa kwewindi</translation> <translation id="2881076733170862447">Uma uchofoza isandiso</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> izoqala kabusha futhi isethe kabusha okwesikhashana</translation> -<translation id="288387288628762616">Ivumelekile ukusebenzisa Ifuleshi</translation> <translation id="2885378588091291677">Isiphathi somsebenzi</translation> <translation id="2885729872133513017">Inkinga ivelile ngenkathi ikopisha impendulo yeseva.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -2079,6 +2075,7 @@ <translation id="3428419049384081277">Ungene ngemvume!</translation> <translation id="3428747202529429621">Kukugcina uphephile ku-Chrome futhi kungase kusetshenziswe ukuthuthukisa ukuvikeleka kwakho kwezinye izinhlelo zokusebenza ze-Google lapho ungene ngemvume</translation> <translation id="3428800329481094896">Kulanda isiqukathi sokhiye we-ssh ye-Linux</translation> +<translation id="3429271624041785769">Izilimi zokuqukethwe kwewebhu</translation> <translation id="3429275422858276529">Bekisa leli khasi ukuze uthole kalula muva</translation> <translation id="3432227430032737297">Susa konke okunonisiwe</translation> <translation id="3432757130254800023">Thumela umsindo nevidiyo kuzibonisi kunethiwekhi yasendaweni</translation> @@ -2463,7 +2460,6 @@ <translation id="383669374481694771">Lolu ulwazi oluvamile mayelana nedivayisi yakho nokuthi isetshenziswa kanjani (njengeleveli yebhethri, umsebenzi wesistimu nohlelo lokusebenza, namaphutha). Idatha izosetshenziselwa ukuthuthukisa i-Android, nolunye ulwazi olulinganiselwe luzophinda lusize izinhlelo zokusebenza ze-Google nozakwethu, abafana nonjiniyela be-Android, benze izinhlelo zabo zokusebenza nemikhiqizo ibe ngcono.</translation> <translation id="3838085852053358637">Yehlulekile ukulayisha isandiso</translation> <translation id="3838486795898716504">I-<ph name="PAGE_TITLE" /> eningi</translation> -<translation id="3838543471119263078">Amakhukhi nelinye isayithi nedatha ye-plugin</translation> <translation id="383891835335927981">Awekho amasayithi asondezwe noma ahlehliselwe isithombe</translation> <translation id="3839509547554145593">Nika amandla ukusheshisa ukuskrola kwegundane</translation> <translation id="3839516600093027468">Hlala uvimbela u-<ph name="HOST" /> ekuboneni ibhodi lokunamathisela</translation> @@ -2505,6 +2501,7 @@ <translation id="3879748587602334249">Isiphathi zokulayisha</translation> <translation id="3881478300875776315">Bonisa imigqa embalwa</translation> <translation id="3882165008614329320">Ividiyo ekhona kusuka kukhamera noma ifayela</translation> +<translation id="3884152383786131369">Okuqukethwe kwewebhu okutholakala ngezilimi eziningi kuzosebenzisa ulimi lokuqala olusekelwe kusuka kulolu hlu. Lokhu okuncanyelwayo kuvunyelaniswa namasethingi wesiphequluli sakho. <ph name="BEGIN_LINK_LEARN_MORE" />Funda kabanzi<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="3886446263141354045">Isicelo sakho sokufinyelela kule sayithi sithunyelwe ku-<ph name="NAME" /></translation> <translation id="3888550877729210209">Ukuthatha amanothi nge-<ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3890064827463908288">Vula ukuvumelanisa kwe-Chrome ukuze usebenzise Ukuxhumana ne-Wi-Fi</translation> @@ -2636,7 +2633,6 @@ <translation id="4023146161712577481">Ithola ukulungiselelwa kwedivayisi.</translation> <translation id="4025039777635956441">Thulisa isayithi elikhethiwe</translation> <translation id="4027804175521224372">(Uyaphuthelwa—<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" />)</translation> -<translation id="4027951648498485763">Izilungiselelo zakho ze-Flash zizogcinwa uze uyekele i-Chrome.</translation> <translation id="4028467762035011525">Engeza izindlela zokufaka</translation> <translation id="4031179711345676612">Imakrofoni ivunyelwe</translation> <translation id="4031527940632463547">Izinzwa zivinjiwe</translation> @@ -2788,7 +2784,6 @@ <translation id="4232375817808480934">Lungiselela i-Kerberos</translation> <translation id="4235200303672858594">Sonke isikrini</translation> <translation id="4235965441080806197">Khansela ukungena ngemvume</translation> -<translation id="4237773362828263530">Amasethingi anama-wildcard we-"*"awasasekelwe. Xhumana nomlawuli wakho ukuze <ph name="BEGIN_LINK" /> ushintshe la masethingi<ph name="END_LINK" />.</translation> <translation id="4241393667672058421">{NUM_TABS,plural, =1{Funda Ithebhu Kamuva}one{Funda Amathebhu Kamuva}other{Funda Amathebhu Kamuva}}</translation> <translation id="4242145785130247982">Izitifiketi zeklayenti eziningi azisekelwa</translation> <translation id="4242533952199664413">Vula izilungiselelo</translation> @@ -3052,7 +3047,6 @@ <translation id="4548483925627140043">Isignali ayitholakalanga</translation> <translation id="4549791035683739768">Ukhiye wakho wokuqinisekisa ubunikazi awunazo izigxivizo zeminwe ezigciniwe</translation> <translation id="4551763574344810652">Cindezela ku-<ph name="MODIFIER_KEY_DESCRIPTION" /> ukuze uhlehlise</translation> -<translation id="4552089082226364758">Ifuleshi</translation> <translation id="4552759165874948005"><ph name="NETWORK_TYPE" /> inethiwekhi, amandla wesignali <ph name="SIGNAL_STRENGTH" />%</translation> <translation id="4553526521109675518">Kuzomele uqalise kabusha i-Chromebook yakho ukuze ushintshe ulimi lwedivayisi. <ph name="BEGIN_LINK_LEARN_MORE" />Funda kabanzi<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="4554591392113183336">Isandiso sangaphandle sikunguqulo efanayo noma engaphansi ngokuqhathaniswa nesivele ikhona.</translation> @@ -3407,7 +3401,6 @@ <translation id="4974733135013075877">Ukuphuma nokukhiya kwengane</translation> <translation id="4976009197147810135">Hlukanisa ngokumile</translation> <translation id="4977942889532008999">Qinisekisa ukufinyelela</translation> -<translation id="4978905460870207779">Amasayithi angacela ukusebenzisa i-Flash</translation> <translation id="4980805016576257426">Lesi sandiso siqukethe uhlelo olungayilungele ikhompuyutha.</translation> <translation id="4981449534399733132">Ukuze usule idatha yokuphequlula kusuka kuwo wonke amadivayisi akho avumelanisiwe ne-akhawunti yakho ye-Google, <ph name="BEGIN_LINK" />ngena ngemvume<ph name="END_LINK" />.</translation> <translation id="4982236238228587209">Isofthiwe yedivayisi</translation> @@ -4181,7 +4174,6 @@ <translation id="5906732635754427568">Idatha ephathelaniswe nalolu hlelo lokusebenza izosuswa kule divayisi.</translation> <translation id="5908474332780919512">Qala Uhlelo Lokusebenza Uma Ungena Ngemvume</translation> <translation id="5908695239556627796">Isivinini sokuskrola segundane</translation> -<translation id="5908769186679515905">Vimbela amasayithi kusukela ekuqaliseni i-Flash</translation> <translation id="5910363049092958439">Londoloza isithombe njenge...</translation> <translation id="5910726859585389579"><ph name="DEVICE_TYPE" /> ayixhunyiwe kwi-inthanethi</translation> <translation id="5911533659001334206">Isibuki sesinqamuleli</translation> @@ -4365,6 +4357,7 @@ <translation id="6112727384379533756">Engeza ithikithi</translation> <translation id="6112931163620622315">Hlola ifoni yakho</translation> <translation id="6112952769866305444">Hlela umuntu, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> +<translation id="6113434369102685411">Setha injini yakho yokusesha ezenzakalelayo yesiphequluli se-Chrome kanye Nesiqalisi se-<ph name="DEVICE_TYPE" /></translation> <translation id="6113942107547980621">Ukuze usebenzise i-Smart Lock, shintshela kuphrofayela yomsebenzisi oyisisekelo efonini yakho</translation> <translation id="6116921718742659598">Guqula ulimi nezilungiselelo zokufaka</translation> <translation id="6120205520491252677">Phina leli khasi kusikrini sokuqala...</translation> @@ -5231,6 +5224,7 @@ <translation id="7140928199327930795">Awekho amanye amadivayisi atholakalayo.</translation> <translation id="7141105143012495934">Ukungena ngemvume kwehlulekile ngoba imininingwane ye-akhawunti yakho ayikwazanga ukubuyiswa. Sicela uxhumane nomlawuli wakho noma zama futhi.</translation> <translation id="7143207342074048698">Iyaxhuma</translation> +<translation id="7143358760238281735">Azikho izinhlelo zokusebenza ezitholakalayo</translation> <translation id="7144878232160441200">Zama futhi</translation> <translation id="714876143603641390">Ukuxhumana kwe-LAN</translation> <translation id="7149893636342594995">Amahora angu-24 okugcina</translation> @@ -5702,6 +5696,7 @@ <translation id="7707922173985738739">Sebenzisa idatha yeselula</translation> <translation id="7709152031285164251">Ihlulekile - <ph name="INTERRUPT_REASON" /></translation> <translation id="7710568461918838723">&Sakaza...</translation> +<translation id="7712739869553853093">Ukubuka kuqala kokuphrinta ibhokisi</translation> <translation id="7712836429117959503">Isandiso esingaziwa esine-ID engu-<ph name="EXTENSION_ID" /></translation> <translation id="7714307061282548371">Amakhukhi asuka ku-<ph name="DOMAIN" /> avunyelwe</translation> <translation id="7714464543167945231">Isitifiketi</translation> @@ -5831,7 +5826,6 @@ <translation id="7831491651892296503">Iphutha lokulungiselela inethiwekhi</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> <translation id="7832084384634357321">Isikhathi sokugcina</translation> -<translation id="783214144752121388">Vimbela amasayithi kusukela ekuqaliseni i-Flash (kunconyiwe)</translation> <translation id="7833720883933317473">Amagama wangezifiso alondoloziwe azovela lapha</translation> <translation id="7835178595033117206">Ibhukhimakhi lisusiwe</translation> <translation id="7836850009646241041">Zama ukuthinta ukhiye wokuqinisekisa ubunikazi wakho futhi</translation> @@ -6058,7 +6052,6 @@ <translation id="80866457114322936">{NUM_FILES,plural, =1{Leli fayela libetheliwe. Cela umnikazi walo ukuthi asuse ukubethela.}one{Amanye walawa mafayela abetheliwe. Cela umnikazi wawo ukuthi asuse ukubethelwa}other{Amanye walawa mafayela abetheliwe. Cela umnikazi wawo ukuthi asuse ukubethelwa}}</translation> <translation id="808894953321890993">Shintsha iphasiwedi</translation> <translation id="8090234456044969073">Funda uhlu lwamawebhusayithi wakho avakashelwa kakhulu</translation> -<translation id="8092681102116274204">Amasethingi anama-wildcard we-"*"awasasekelwe. Xhumana nonjiniyela wezandiso noma umlawulo wakho ukuze <ph name="BEGIN_LINK" />ushintshe la masethingi<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">I-<ph name="PLUGIN_NAME" /> ayiphenduli</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Yenza isipele ku-Google Drayivu. Buyisela kalula idatha yakho noma shintsha idivayisi noma kunini. Isipele sakho sifaka idatha yohlelo lokusebenza.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Izipele zakho zilayishwa ku-Google futhi zibethelwa kusetshenziswa iphasiwedi yakho ye-akhawunti ye-Google.<ph name="END_PARAGRAPH2" /> @@ -6153,7 +6146,6 @@ <translation id="8201717382574620700">Khetha ama-albhamu e-<ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Sicela ufake kabusha iphasiwedi yakho ukuze ubuyekeze iphrofayela yakho ye-<ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">Ikthumela izaziso nokuzenzakalelayo ukukhumbula le khompyutha ngemilayezo. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation> -<translation id="8205561625497621211">Vimbela i-Flash (kunconyiwe)</translation> <translation id="820568752112382238">Amasayithi avakashelwe kaningi</translation> <translation id="8206745257863499010">I-Bluesy</translation> <translation id="8206859287963243715">Iselula</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index e1b0284..04f63e7 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -2326,6 +2326,8 @@ "//chromeos/components/quick_answers/public/cpp:prefs", "//chromeos/components/scanning", "//chromeos/components/scanning/mojom", + "//chromeos/dbus/attestation", + "//chromeos/dbus/attestation:attestation_proto", "//chromeos/dbus/cryptohome", "//chromeos/dbus/power", "//chromeos/services/device_sync/public/cpp:prefs", @@ -2747,7 +2749,6 @@ "android/rlz/revenue_stats.cc", "android/rlz/rlz_ping_handler.cc", "android/rlz/rlz_ping_handler.h", - "android/screenshot/editor_screenshot_task.cc", "android/search_permissions/search_geolocation_disclosure_infobar_delegate.cc", "android/search_permissions/search_geolocation_disclosure_infobar_delegate.h", "android/search_permissions/search_geolocation_disclosure_tab_helper.cc", @@ -4162,6 +4163,8 @@ "metrics/cros_healthd_metrics_provider.cc", "metrics/cros_healthd_metrics_provider.h", "metrics/enrollment_status.h", + "metrics/family_link_user_metrics_provider.cc", + "metrics/family_link_user_metrics_provider.h", "metrics/family_user_metrics_provider.cc", "metrics/family_user_metrics_provider.h", "metrics/perf/collection_params.cc",
diff --git a/chrome/browser/OWNERS b/chrome/browser/OWNERS index e286c6f..0ff297c 100644 --- a/chrome/browser/OWNERS +++ b/chrome/browser/OWNERS
@@ -89,5 +89,9 @@ per-file chrome_cross_origin_opener_policy_browsertest.cc=file://content/OWNERS per-file chrome_cross_origin_opener_policy_browsertest.cc=arthursonzogni@chromium.org +# CORS-RFC1918 +per-file chrome_private_network_request_browsertest.cc=file://content/OWNERS +per-file chrome_private_network_request_browsertest.cc=titouan@chromium.org + # COMPONENT: UI>Browser # TEAM: chromium-reviews@chromium.org
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index a4694c5..9c91757 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -5923,13 +5923,6 @@ #endif #if defined(OS_MAC) - {"enable-core-location-backend", - flag_descriptions::kMacCoreLocationBackendName, - flag_descriptions::kMacCoreLocationBackendDescription, kOsMac, - FEATURE_VALUE_TYPE(features::kMacCoreLocationBackend)}, -#endif - -#if defined(OS_MAC) {"enable-core-location-implementation", flag_descriptions::kMacCoreLocationImplementationName, flag_descriptions::kMacCoreLocationImplementationDescription, kOsMac,
diff --git a/chrome/browser/apps/app_shim/app_shim_listener_browsertest_mac.mm b/chrome/browser/apps/app_shim/app_shim_listener_browsertest_mac.mm index 1a21682..124ab0d 100644 --- a/chrome/browser/apps/app_shim/app_shim_listener_browsertest_mac.mm +++ b/chrome/browser/apps/app_shim/app_shim_listener_browsertest_mac.mm
@@ -9,6 +9,7 @@ #include "base/bind.h" #include "base/check.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/mac/foundation_util.h" #include "base/macros.h" #include "base/optional.h"
diff --git a/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc b/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc index 91f3069..0216f74 100644 --- a/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc +++ b/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc
@@ -10,6 +10,7 @@ #include "base/callback.h" #include "base/files/file_enumerator.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/logging.h" #include "base/path_service.h" #include "base/run_loop.h"
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc index 305b4452..2f7e3455 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -157,8 +157,9 @@ #include "chrome/browser/chromeos/policy/system_proxy_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chromeos/cryptohome/cryptohome_parameters.h" +#include "chromeos/dbus/attestation/attestation_client.h" +#include "chromeos/dbus/attestation/interface.pb.h" #include "chromeos/dbus/constants/attestation_constants.h" -#include "chromeos/dbus/cryptohome/cryptohome_client.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "components/user_manager/user.h" #endif // defined(OS_CHROMEOS) @@ -1062,16 +1063,27 @@ if (!user) { LOG(WARNING) << "Failed to find user for current profile."; } else { - chromeos::CryptohomeClient::Get()->TpmAttestationDeleteKeysByPrefix( - chromeos::attestation::KEY_USER, - cryptohome::CreateAccountIdentifierFromAccountId( - user->GetAccountId()), - chromeos::attestation::kContentProtectionKeyPrefix, - base::BindOnce( - &ChromeBrowsingDataRemoverDelegate::OnClearPlatformKeys, - weak_ptr_factory_.GetWeakPtr(), - CreateTaskCompletionClosure( - TracingDataType::kTpmAttestationKeys))); + ::attestation::DeleteKeysRequest request; + request.set_username(cryptohome::CreateAccountIdentifierFromAccountId( + user->GetAccountId()) + .account_id()); + request.set_key_label_match( + chromeos::attestation::kContentProtectionKeyPrefix); + request.set_match_behavior( + ::attestation::DeleteKeysRequest::MATCH_BEHAVIOR_PREFIX); + + auto callback = base::BindOnce( + &ChromeBrowsingDataRemoverDelegate::OnClearPlatformKeys, + weak_ptr_factory_.GetWeakPtr(), + CreateTaskCompletionClosure(TracingDataType::kTpmAttestationKeys)); + chromeos::AttestationClient::Get()->DeleteKeys( + request, base::BindOnce( + [](decltype(callback) cb, + const ::attestation::DeleteKeysReply& reply) { + std::move(cb).Run(reply.status() == + ::attestation::STATUS_SUCCESS); + }, + std::move(callback))); } } #endif // defined(OS_CHROMEOS) @@ -1281,9 +1293,8 @@ #if defined(OS_CHROMEOS) void ChromeBrowsingDataRemoverDelegate::OnClearPlatformKeys( base::OnceClosure done, - base::Optional<bool> result) { - LOG_IF(ERROR, !result.has_value() || !result.value()) - << "Failed to clear platform keys."; + bool result) { + LOG_IF(ERROR, !result) << "Failed to clear platform keys."; std::move(done).Run(); } #endif
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h index 921a08c..ae0d556 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
@@ -277,7 +277,7 @@ bool IsForAllTime() const; #if defined(OS_CHROMEOS) - void OnClearPlatformKeys(base::OnceClosure done, base::Optional<bool> result); + void OnClearPlatformKeys(base::OnceClosure done, bool); #endif #if BUILDFLAG(ENABLE_PLUGINS)
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc index 3826717c..b2d4e497 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -143,7 +143,7 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chromeos/dbus/cryptohome/fake_cryptohome_client.h" +#include "chromeos/dbus/attestation/fake_attestation_client.h" #include "components/account_id/account_id.h" #include "components/user_manager/scoped_user_manager.h" #endif // defined(OS_CHROMEOS) @@ -272,27 +272,6 @@ }; #endif -#if defined(OS_CHROMEOS) -// Customized fake class to count TpmAttestationDeleteKeys call. -class FakeCryptohomeClient : public chromeos::FakeCryptohomeClient { - public: - void TpmAttestationDeleteKeysByPrefix( - chromeos::attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& cryptohome_id, - const std::string& key_prefix, - chromeos::DBusMethodCallback<bool> callback) override { - ++delete_keys_call_count_; - chromeos::FakeCryptohomeClient::TpmAttestationDeleteKeysByPrefix( - key_type, cryptohome_id, key_prefix, std::move(callback)); - } - - int delete_keys_call_count() const { return delete_keys_call_count_; } - - private: - int delete_keys_call_count_ = 0; -}; -#endif - class RemoveCookieTester { public: RemoveCookieTester() {} @@ -1766,19 +1745,18 @@ user_manager::ScopedUserManager user_manager_enabler( base::WrapUnique(mock_user_manager)); - // Creates a derived fake global instance destroyed in - // CryptohomeClient::Shutdown(). - auto* cryptohome_client = new FakeCryptohomeClient(); - + chromeos::AttestationClient::InitializeFake(); BlockUntilBrowsingDataRemoved( base::Time(), base::Time::Max(), content::BrowsingDataRemover::DATA_TYPE_MEDIA_LICENSES, false); - // Expect exactly one call. No calls means no attempt to delete keys and more - // than one call means a significant performance problem. - EXPECT_EQ(1, cryptohome_client->delete_keys_call_count()); + const std::vector<::attestation::DeleteKeysRequest>& history = + chromeos::AttestationClient::Get() + ->GetTestInterface() + ->delete_keys_history(); + EXPECT_EQ(history.size(), 1); - chromeos::CryptohomeClient::Shutdown(); + chromeos::AttestationClient::Shutdown(); } #endif
diff --git a/chrome/browser/captive_portal/captive_portal_browsertest.cc b/chrome/browser/captive_portal/captive_portal_browsertest.cc index 951e66a..d76e03c 100644 --- a/chrome/browser/captive_portal/captive_portal_browsertest.cc +++ b/chrome/browser/captive_portal/captive_portal_browsertest.cc
@@ -17,6 +17,7 @@ #include "base/command_line.h" #include "base/compiler_specific.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/macros.h" #include "base/path_service.h" #include "base/run_loop.h"
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index debd913..eac4c86 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -3421,6 +3421,7 @@ } } + auto* native_theme = GetWebTheme(); #if !defined(OS_ANDROID) if (IsAutoplayAllowedByPolicy(contents, prefs)) { // If autoplay is allowed by policy then force the no user gesture required @@ -3440,7 +3441,6 @@ : blink::mojom::AutoplayPolicy::kNoUserGestureRequired; } - auto* native_theme = GetWebTheme(); switch (native_theme->GetPreferredColorScheme()) { case ui::NativeTheme::PreferredColorScheme::kDark: web_prefs->preferred_color_scheme = @@ -3453,6 +3453,19 @@ } #endif // !defined(OS_ANDROID) + switch (native_theme->GetPreferredContrast()) { + case ui::NativeTheme::PreferredContrast::kNoPreference: + web_prefs->preferred_contrast = + blink::mojom::PreferredContrast::kNoPreference; + break; + case ui::NativeTheme::PreferredContrast::kMore: + web_prefs->preferred_contrast = blink::mojom::PreferredContrast::kMore; + break; + case ui::NativeTheme::PreferredContrast::kLess: + web_prefs->preferred_contrast = blink::mojom::PreferredContrast::kLess; + break; + } + UpdatePreferredColorSchemesBasedOnURLIfNeeded( web_prefs, rvh->GetSiteInstance()->GetSiteURL());
diff --git a/chrome/browser/chrome_content_browser_client_browsertest.cc b/chrome/browser/chrome_content_browser_client_browsertest.cc index 936866e..ae30be5 100644 --- a/chrome/browser/chrome_content_browser_client_browsertest.cc +++ b/chrome/browser/chrome_content_browser_client_browsertest.cc
@@ -362,6 +362,86 @@ INSTANTIATE_TEST_SUITE_P(All, PrefersColorSchemeTest, testing::Bool()); +class PrefersContrastTest + : public testing::WithParamInterface<ui::NativeTheme::PreferredContrast>, + public InProcessBrowserTest { + protected: + PrefersContrastTest() : theme_client_(&test_theme_) {} + + ~PrefersContrastTest() override { + CHECK_EQ(&theme_client_, SetBrowserClientForTesting(original_client_)); + } + + const char* ExpectedPrefersContrast() const { + switch (GetParam()) { + case ui::NativeTheme::PreferredContrast::kNoPreference: + return "no-preference"; + case ui::NativeTheme::PreferredContrast::kMore: + return "more"; + case ui::NativeTheme::PreferredContrast::kLess: + return "less"; + } + } + + void SetUpCommandLine(base::CommandLine* command_line) override { + InProcessBrowserTest::SetUpCommandLine(command_line); + command_line->AppendSwitchASCII(switches::kEnableBlinkFeatures, + "PrefersContrast"); + command_line->AppendSwitchASCII(switches::kEnableBlinkFeatures, + "ForcedColors"); + } + + void SetUpOnMainThread() override { + InProcessBrowserTest::SetUpOnMainThread(); + original_client_ = SetBrowserClientForTesting(&theme_client_); + } + + protected: + ui::TestNativeTheme test_theme_; + + private: + content::ContentBrowserClient* original_client_ = nullptr; + + class ChromeContentBrowserClientWithWebTheme + : public ChromeContentBrowserClient { + public: + explicit ChromeContentBrowserClientWithWebTheme( + const ui::NativeTheme* theme) + : theme_(theme) {} + + protected: + const ui::NativeTheme* GetWebTheme() const override { return theme_; } + + private: + const ui::NativeTheme* const theme_; + }; + + ChromeContentBrowserClientWithWebTheme theme_client_; +}; + +IN_PROC_BROWSER_TEST_P(PrefersContrastTest, PrefersContrast) { + test_theme_.set_preferred_contrast(GetParam()); + browser() + ->tab_strip_model() + ->GetActiveWebContents() + ->OnWebPreferencesChanged(); + ui_test_utils::NavigateToURL( + browser(), + ui_test_utils::GetTestUrl( + base::FilePath(base::FilePath::kCurrentDirectory), + base::FilePath(FILE_PATH_LITERAL("prefers-contrast.html")))); + base::string16 tab_title; + ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &tab_title)); + EXPECT_EQ(base::ASCIIToUTF16(ExpectedPrefersContrast()), tab_title); +} + +INSTANTIATE_TEST_SUITE_P( + All, + PrefersContrastTest, + testing::Values(ui::NativeTheme::PreferredContrast::kNoPreference, + ui::NativeTheme::PreferredContrast::kMore, + ui::NativeTheme::PreferredContrast::kLess)); + class ProtocolHandlerTest : public InProcessBrowserTest { public: ProtocolHandlerTest() = default;
diff --git a/chrome/browser/chrome_navigation_browsertest.cc b/chrome/browser/chrome_navigation_browsertest.cc index e0bfd07..6926249 100644 --- a/chrome/browser/chrome_navigation_browsertest.cc +++ b/chrome/browser/chrome_navigation_browsertest.cc
@@ -65,6 +65,7 @@ #include "extensions/test/test_extension_dir.h" #include "google_apis/gaia/gaia_switches.h" #include "net/dns/mock_host_resolver.h" +#include "net/test/spawned_test_server/spawned_test_server.h" #include "services/metrics/public/cpp/ukm_builders.h" #include "services/network/public/cpp/features.h" #include "testing/gmock/include/gmock/gmock.h"
diff --git a/chrome/browser/chrome_private_network_request_browsertest.cc b/chrome/browser/chrome_private_network_request_browsertest.cc new file mode 100644 index 0000000..17afe1b --- /dev/null +++ b/chrome/browser/chrome_private_network_request_browsertest.cc
@@ -0,0 +1,300 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include <map> +#include <string> + +#include "base/strings/string_piece.h" +#include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_feature_list.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "content/public/browser/web_contents.h" +#include "content/public/common/content_features.h" +#include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" +#include "content/public/test/content_browser_test_utils.h" +#include "net/dns/mock_host_resolver.h" +#include "net/test/embedded_test_server/embedded_test_server.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "third_party/blink/public/mojom/web_feature/web_feature.mojom.h" + +namespace { + +using blink::mojom::WebFeature; +using testing::ElementsAre; +using testing::IsEmpty; +using testing::Pair; + +constexpr char kTreatAsPublicAddressPath[] = "/treat-as-public-address.html"; + +GURL PublicSecureURL(const net::EmbeddedTestServer& server) { + // Test HTTPS servers cannot lie about their hostname, so they yield URLs + // starting with https://localhost. http://localhost is already a secure + // context, so we do not bother instantiating an HTTPS server. + return server.GetURL(kTreatAsPublicAddressPath); +} + +GURL PublicNonSecureURL(const net::EmbeddedTestServer& server) { + return server.GetURL("foo.test", kTreatAsPublicAddressPath); +} + +constexpr WebFeature kAllAddressSpaceFeatures[] = { + WebFeature::kAddressSpaceLocalEmbeddedInPrivateSecureContext, + WebFeature::kAddressSpaceLocalEmbeddedInPrivateNonSecureContext, + WebFeature::kAddressSpaceLocalEmbeddedInPublicSecureContext, + WebFeature::kAddressSpaceLocalEmbeddedInPublicNonSecureContext, + WebFeature::kAddressSpaceLocalEmbeddedInUnknownSecureContext, + WebFeature::kAddressSpaceLocalEmbeddedInUnknownNonSecureContext, + WebFeature::kAddressSpacePrivateEmbeddedInPublicSecureContext, + WebFeature::kAddressSpacePrivateEmbeddedInPublicNonSecureContext, + WebFeature::kAddressSpacePrivateEmbeddedInUnknownSecureContext, + WebFeature::kAddressSpacePrivateEmbeddedInUnknownNonSecureContext, +}; + +// Returns a map of WebFeature to bucket count. Skips buckets with zero counts. +std::map<WebFeature, int> GetAddressSpaceFeatureBucketCounts( + const base::HistogramTester& tester) { + std::map<WebFeature, int> counts; + for (WebFeature feature : kAllAddressSpaceFeatures) { + int count = tester.GetBucketCount("Blink.UseCounter.Features", feature); + if (count == 0) { + continue; + } + + counts.emplace(feature, count); + } + return counts; +} + +// CORS-RFC1918 is a web platform specification aimed at securing requests made +// from public websites to the private network and localhost. It is entirely +// implemented in content/. Its integration with Blink UseCounters cannot be +// tested in content/, however, thus we define this standalone test here. +// +// See also: +// +// - specification: https://wicg.github.io/cors-rfc1918. +// - feature browsertests in content/: RenderFrameHostImplTest. +// +class ChromePrivateNetworkRequestBrowserTest : public InProcessBrowserTest { + public: + content::WebContents* web_contents() { + return browser()->tab_strip_model()->GetActiveWebContents(); + } + + bool NavigateAndFlushHistograms() { + // Commit a new navigation in order to flush UseCounters incremented during + // the last navigation to the browser process, so they are reflected in + // histograms. + return content::NavigateToURL(web_contents(), GURL("about:blank")); + } + + // Never returns nullptr. The returned server is already Start()ed. + // + // NOTE: This is defined as a method on the test fixture instead of a free + // function because GetChromeTestDataDir() is a test fixture method itself. + // We return a unique_ptr because EmbeddedTestServer is not movable and C++17 + // support is not available at time of writing. + std::unique_ptr<net::EmbeddedTestServer> NewServer() { + auto server = std::make_unique<net::EmbeddedTestServer>(); + server->AddDefaultHandlers(GetChromeTestDataDir()); + EXPECT_TRUE(server->Start()); + return server; + } + + private: + void SetUpOnMainThread() final { host_resolver()->AddRule("*", "127.0.0.1"); } +}; + +// This test verifies that no feature is counted for the initial navigation from +// a new tab to a page served by localhost. +// +// Regression test for https://crbug.com/1134601. +IN_PROC_BROWSER_TEST_F(ChromePrivateNetworkRequestBrowserTest, + DoesNotRecordAddressSpaceFeatureForInitialNavigation) { + base::HistogramTester histogram_tester; + std::unique_ptr<net::EmbeddedTestServer> server = NewServer(); + + EXPECT_TRUE(content::NavigateToURL(web_contents(), PublicSecureURL(*server))); + EXPECT_TRUE(NavigateAndFlushHistograms()); + + EXPECT_THAT(GetAddressSpaceFeatureBucketCounts(histogram_tester), IsEmpty()); +} + +// This test verifies that no feature is counted for top-level navigations from +// a public page to a local page. +// +// TODO(crbug.com/1129326): Revisit this once the story around top-level +// navigations is closer to being resolved. Counting these events will help +// decide what to do. +IN_PROC_BROWSER_TEST_F(ChromePrivateNetworkRequestBrowserTest, + DoesNotRecordAddressSpaceFeatureForRegularNavigation) { + base::HistogramTester histogram_tester; + std::unique_ptr<net::EmbeddedTestServer> server = NewServer(); + + EXPECT_TRUE(content::NavigateToURL(web_contents(), PublicSecureURL(*server))); + EXPECT_TRUE(content::NavigateToURL(web_contents(), + server->GetURL("/defaultresponse"))); + EXPECT_TRUE(NavigateAndFlushHistograms()); + + EXPECT_THAT(GetAddressSpaceFeatureBucketCounts(histogram_tester), IsEmpty()); +} + +// This test verifies that when a secure context served from the public address +// space loads a resource from the local network, the correct WebFeature is +// use-counted. +IN_PROC_BROWSER_TEST_F(ChromePrivateNetworkRequestBrowserTest, + RecordsAddressSpaceFeatureForFetch) { + base::HistogramTester histogram_tester; + std::unique_ptr<net::EmbeddedTestServer> server = NewServer(); + + EXPECT_TRUE(content::NavigateToURL(web_contents(), PublicSecureURL(*server))); + EXPECT_TRUE(content::ExecJs(web_contents(), R"( + fetch("defaultresponse") + )")); + EXPECT_TRUE(NavigateAndFlushHistograms()); + + EXPECT_THAT( + GetAddressSpaceFeatureBucketCounts(histogram_tester), + ElementsAre(Pair( + WebFeature::kAddressSpaceLocalEmbeddedInPublicSecureContext, 1))); +} + +// This test verifies that when a non-secure context served from the public +// address space loads a resource from the local network, the correct WebFeature +// is use-counted. +IN_PROC_BROWSER_TEST_F( + ChromePrivateNetworkRequestBrowserTest, + DISABLED_RecordsAddressSpaceFeatureForFetchInNonSecureContext) { + base::HistogramTester histogram_tester; + std::unique_ptr<net::EmbeddedTestServer> server = NewServer(); + + EXPECT_TRUE( + content::NavigateToURL(web_contents(), PublicNonSecureURL(*server))); + EXPECT_TRUE(content::ExecJs(web_contents(), R"( + fetch("defaultresponse") + )")); + EXPECT_TRUE(NavigateAndFlushHistograms()); + + EXPECT_THAT( + GetAddressSpaceFeatureBucketCounts(histogram_tester), + ElementsAre(Pair( + WebFeature::kAddressSpaceLocalEmbeddedInPublicNonSecureContext, 1))); +} + +// This test verifies that when page embeds an empty iframe pointing to +// about:blank, no address space feature is recorded. It serves as a basis for +// comparison with the following tests, which test behavior with iframes. +IN_PROC_BROWSER_TEST_F( + ChromePrivateNetworkRequestBrowserTest, + DoesNotRecordAddressSpaceFeatureForAboutBlankNavigation) { + base::HistogramTester histogram_tester; + std::unique_ptr<net::EmbeddedTestServer> server = NewServer(); + + EXPECT_TRUE( + content::NavigateToURL(web_contents(), PublicNonSecureURL(*server))); + EXPECT_TRUE(content::ExecJs(web_contents(), R"( + new Promise(resolve => { + const child = document.createElement("iframe"); + child.src = "about:blank"; + child.onload = resolve; + document.body.appendChild(child); + }) + )")); + EXPECT_TRUE(NavigateAndFlushHistograms()); + + EXPECT_THAT(GetAddressSpaceFeatureBucketCounts(histogram_tester), IsEmpty()); +} + +// This test verifies that when a non-secure context served from the public +// address space loads a child frame from the local network, the correct +// WebFeature is use-counted. +IN_PROC_BROWSER_TEST_F(ChromePrivateNetworkRequestBrowserTest, + RecordsAddressSpaceFeatureForChildNavigation) { + base::HistogramTester histogram_tester; + std::unique_ptr<net::EmbeddedTestServer> server = NewServer(); + + EXPECT_TRUE( + content::NavigateToURL(web_contents(), PublicNonSecureURL(*server))); + EXPECT_TRUE(content::ExecJs(web_contents(), R"( + new Promise(resolve => { + const child = document.createElement("iframe"); + child.src = "defaultresponse"; + child.onload = resolve; + document.body.appendChild(child); + }) + )")); + EXPECT_TRUE(NavigateAndFlushHistograms()); + + // TODO(https://crbug.com/1129326): Expect InPublicNonSecureContext? + EXPECT_THAT( + GetAddressSpaceFeatureBucketCounts(histogram_tester), + ElementsAre(Pair( + WebFeature::kAddressSpaceLocalEmbeddedInUnknownNonSecureContext, 1))); +} + +// This test verifies that when a non-secure context served from the public +// address space loads a grand-child frame from the local network, the correct +// WebFeature is use-counted. If inheritance did not work correctly, the +// intermediate about:blank frame might confuse the address space logic. +IN_PROC_BROWSER_TEST_F(ChromePrivateNetworkRequestBrowserTest, + RecordsAddressSpaceFeatureForGrandchildNavigation) { + base::HistogramTester histogram_tester; + std::unique_ptr<net::EmbeddedTestServer> server = NewServer(); + + EXPECT_TRUE( + content::NavigateToURL(web_contents(), PublicNonSecureURL(*server))); + EXPECT_TRUE(content::ExecJs(web_contents(), R"( + function addChildFrame(doc, src) { + return new Promise(resolve => { + const child = doc.createElement("iframe"); + child.src = src; + child.onload = () => { resolve(child); }; + doc.body.appendChild(child); + }); + } + + addChildFrame(document, "about:blank") + .then(child => addChildFrame(child.contentDocument, "defaultresponse")) + )")); + EXPECT_TRUE(NavigateAndFlushHistograms()); + + // TODO(https://crbug.com/1129326): Expect InPublicNonSecureContext? + EXPECT_THAT( + GetAddressSpaceFeatureBucketCounts(histogram_tester), + ElementsAre(Pair( + WebFeature::kAddressSpaceLocalEmbeddedInUnknownNonSecureContext, 1))); +} + +class ChromePrivateNetworkRequestWithFeatureEnabledBrowserTest + : public ChromePrivateNetworkRequestBrowserTest { + public: + ChromePrivateNetworkRequestWithFeatureEnabledBrowserTest() { + features_.InitAndEnableFeature( + features::kBlockInsecurePrivateNetworkRequests); + } + + private: + base::test::ScopedFeatureList features_; +}; + +// This test verifies that private network requests that are blocked do not +// result in a WebFeature being use-counted. +IN_PROC_BROWSER_TEST_F(ChromePrivateNetworkRequestWithFeatureEnabledBrowserTest, + DoesNotRecordAddressSpaceFeatureForBlockedRequests) { + base::HistogramTester histogram_tester; + std::unique_ptr<net::EmbeddedTestServer> server = NewServer(); + + EXPECT_TRUE( + content::NavigateToURL(web_contents(), PublicNonSecureURL(*server))); + EXPECT_EQ(true, content::EvalJs(web_contents(), R"( + fetch("defaultresponse").catch(() => true) + )")); + EXPECT_TRUE(NavigateAndFlushHistograms()); + + EXPECT_THAT(GetAddressSpaceFeatureBucketCounts(histogram_tester), IsEmpty()); +} + +} // namespace
diff --git a/chrome/browser/chrome_service_worker_browsertest.cc b/chrome/browser/chrome_service_worker_browsertest.cc index a13fcdf..d4fb12d 100644 --- a/chrome/browser/chrome_service_worker_browsertest.cc +++ b/chrome/browser/chrome_service_worker_browsertest.cc
@@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/command_line.h" +#include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/numerics/safe_conversions.h" #include "base/path_service.h"
diff --git a/chrome/browser/chromeos/attestation/enrollment_policy_observer.cc b/chrome/browser/chromeos/attestation/enrollment_policy_observer.cc index 2ceea855..73b96c51 100644 --- a/chrome/browser/chromeos/attestation/enrollment_policy_observer.cc +++ b/chrome/browser/chromeos/attestation/enrollment_policy_observer.cc
@@ -18,7 +18,8 @@ #include "chrome/browser/chromeos/attestation/attestation_key_payload.pb.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chromeos/cryptohome/cryptohome_parameters.h" -#include "chromeos/dbus/cryptohome/cryptohome_client.h" +#include "chromeos/dbus/attestation/attestation_client.h" +#include "chromeos/dbus/attestation/interface.pb.h" #include "chromeos/dbus/dbus_method_call_status.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "components/account_id/account_id.h" @@ -36,26 +37,6 @@ const int kRetryDelay = 5; // Seconds. const int kRetryLimit = 100; -// A dbus callback which handles a string result. -// -// Parameters -// on_success - Called when result is successful and has a value. -// on_failure - Called otherwise. -void DBusStringCallback( - base::OnceCallback<void(const std::string&)> on_success, - base::OnceClosure on_failure, - const base::Location& from_here, - base::Optional<chromeos::CryptohomeClient::TpmAttestationDataResult> - result) { - if (!result.has_value() || !result->success) { - LOG(ERROR) << "Cryptohome DBus method failed: " << from_here.ToString(); - if (!on_failure.is_null()) - std::move(on_failure).Run(); - return; - } - std::move(on_success).Run(result->data); -} - } // namespace namespace chromeos { @@ -65,7 +46,6 @@ policy::CloudPolicyClient* policy_client) : device_settings_service_(DeviceSettingsService::Get()), policy_client_(policy_client), - cryptohome_client_(nullptr), num_retries_(0), retry_limit_(kRetryLimit), retry_delay_(kRetryDelay) { @@ -76,11 +56,9 @@ EnrollmentPolicyObserver::EnrollmentPolicyObserver( policy::CloudPolicyClient* policy_client, - DeviceSettingsService* device_settings_service, - CryptohomeClient* cryptohome_client) + DeviceSettingsService* device_settings_service) : device_settings_service_(device_settings_service), policy_client_(policy_client), - cryptohome_client_(cryptohome_client), num_retries_(0), retry_delay_(kRetryDelay) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -126,33 +104,32 @@ return; request_in_flight_ = true; - if (!cryptohome_client_) - cryptohome_client_ = CryptohomeClient::Get(); - GetEnrollmentId(); } void EnrollmentPolicyObserver::GetEnrollmentId() { - cryptohome_client_->TpmAttestationGetEnrollmentId( - true /* ignore_cache */, - base::BindOnce( - DBusStringCallback, - base::BindOnce(&EnrollmentPolicyObserver::HandleEnrollmentId, - weak_factory_.GetWeakPtr()), - base::BindOnce(&EnrollmentPolicyObserver::RescheduleGetEnrollmentId, - weak_factory_.GetWeakPtr()), - FROM_HERE)); + ::attestation::GetEnrollmentIdRequest request; + request.set_ignore_cache(true); + AttestationClient::Get()->GetEnrollmentId( + request, base::BindOnce(&EnrollmentPolicyObserver::OnGetEnrollmentId, + weak_factory_.GetWeakPtr())); } -void EnrollmentPolicyObserver::HandleEnrollmentId( - const std::string& enrollment_id) { - if (enrollment_id.empty()) { +void EnrollmentPolicyObserver::OnGetEnrollmentId( + const ::attestation::GetEnrollmentIdReply& reply) { + if (reply.status() != ::attestation::STATUS_SUCCESS) { + LOG(WARNING) << "Failed to get enrollment id: " << reply.status(); + RescheduleGetEnrollmentId(); + return; + } + if (reply.enrollment_id().empty()) { LOG(WARNING) << "EnrollmentPolicyObserver: The enrollment identifier" " obtained is empty."; } policy_client_->UploadEnterpriseEnrollmentId( - enrollment_id, base::BindOnce(&EnrollmentPolicyObserver::OnUploadComplete, - weak_factory_.GetWeakPtr(), enrollment_id)); + reply.enrollment_id(), + base::BindOnce(&EnrollmentPolicyObserver::OnUploadComplete, + weak_factory_.GetWeakPtr(), reply.enrollment_id())); } void EnrollmentPolicyObserver::RescheduleGetEnrollmentId() {
diff --git a/chrome/browser/chromeos/attestation/enrollment_policy_observer.h b/chrome/browser/chromeos/attestation/enrollment_policy_observer.h index a2af594f..4fb3c4b9 100644 --- a/chrome/browser/chromeos/attestation/enrollment_policy_observer.h +++ b/chrome/browser/chromeos/attestation/enrollment_policy_observer.h
@@ -12,6 +12,7 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" +#include "chromeos/dbus/attestation/interface.pb.h" #include "chromeos/dbus/constants/attestation_constants.h" namespace policy { @@ -19,9 +20,6 @@ } namespace chromeos { - -class CryptohomeClient; - namespace attestation { // A class which observes policy changes and triggers uploading identification @@ -36,8 +34,7 @@ // A constructor which accepts custom instances useful for testing. EnrollmentPolicyObserver(policy::CloudPolicyClient* policy_client, - DeviceSettingsService* device_settings_service, - CryptohomeClient* cryptohome_client); + DeviceSettingsService* device_settings_service); ~EnrollmentPolicyObserver() override; @@ -56,8 +53,8 @@ // Gets an enrollment identifier directly. void GetEnrollmentId(); - // Handles an enrollment identifer obtained directly. - void HandleEnrollmentId(const std::string& enrollment_id); + // Handles an enrollment identifier obtained directly. + void OnGetEnrollmentId(const ::attestation::GetEnrollmentIdReply& reply); // Reschedule an attempt to get an enrollment identifier directly. void RescheduleGetEnrollmentId(); @@ -69,7 +66,6 @@ DeviceSettingsService* device_settings_service_; policy::CloudPolicyClient* policy_client_; - CryptohomeClient* cryptohome_client_; int num_retries_; int retry_limit_; int retry_delay_;
diff --git a/chrome/browser/chromeos/attestation/enrollment_policy_observer_unittest.cc b/chrome/browser/chromeos/attestation/enrollment_policy_observer_unittest.cc index 4103b5cf..6c47f61d 100644 --- a/chrome/browser/chromeos/attestation/enrollment_policy_observer_unittest.cc +++ b/chrome/browser/chromeos/attestation/enrollment_policy_observer_unittest.cc
@@ -18,7 +18,7 @@ #include "base/threading/thread_task_runner_handle.h" #include "chrome/browser/chromeos/attestation/enrollment_policy_observer.h" #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" -#include "chromeos/dbus/cryptohome/fake_cryptohome_client.h" +#include "chromeos/dbus/attestation/fake_attestation_client.h" #include "chromeos/settings/cros_settings_names.h" #include "components/policy/core/common/cloud/mock_cloud_policy_client.h" #include "testing/gtest/include/gtest/gtest.h" @@ -34,47 +34,13 @@ namespace { +constexpr int kRetryLimit = 3; + void StatusCallbackSuccess(policy::CloudPolicyClient::StatusCallback callback) { base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(std::move(callback), true)); } -// A FakeCryptohomeClient that can hold call until told to flush them all. -class CallsHoldingFakeCryptohomeClient : public FakeCryptohomeClient { - public: - void set_hold_calls(bool hold_calls) { hold_calls_ = hold_calls; } - - void TpmAttestationGetEnrollmentId( - bool ignore_cache, - DBusMethodCallback<TpmAttestationDataResult> callback) override { - if (hold_calls_) { - held_calls_.push(base::BindOnce( - &CallsHoldingFakeCryptohomeClient::DoTpmAttestationGetEnrollmentId, - base::Unretained(this), ignore_cache, std::move(callback))); - } else { - DoTpmAttestationGetEnrollmentId(ignore_cache, std::move(callback)); - } - } - - void FlushCalls() { - while (!held_calls_.empty()) { - std::move(held_calls_.front()).Run(); - held_calls_.pop(); - } - } - - private: - void DoTpmAttestationGetEnrollmentId( - bool ignore_cache, - DBusMethodCallback<TpmAttestationDataResult> callback) { - FakeCryptohomeClient::TpmAttestationGetEnrollmentId(ignore_cache, - std::move(callback)); - } - - bool hold_calls_ = false; - std::queue<base::OnceClosure> held_calls_; -}; - } // namespace class EnrollmentPolicyObserverTest : public DeviceSettingsTestBase { @@ -83,23 +49,24 @@ ~EnrollmentPolicyObserverTest() override = default; void SetUp() override { + AttestationClient::InitializeFake(); DeviceSettingsTestBase::SetUp(); policy_client_.SetDMToken("fake_dm_token"); EXPECT_TRUE(base::HexStringToString(kEnrollmentId, &enrollment_id_)); - // Destroy the DeviceSettingsTestBase fake client and replace it. - CryptohomeClient::Shutdown(); - // This will be destroyed in DeviceSettingsTestBase::TearDown(). - cryptohome_client_ = new CallsHoldingFakeCryptohomeClient(); - cryptohome_client_->set_tpm_attestation_enrollment_id( - true /* ignore_cache */, enrollment_id_); + AttestationClient::Get() + ->GetTestInterface() + ->set_enrollment_id_ignore_cache(enrollment_id_); + AttestationClient::Get()->GetTestInterface()->set_cached_enrollment_id( + "unexpeted query to cached enrollment id"); } void TearDown() override { observer_.reset(); DeviceSettingsTestBase::TearDown(); + AttestationClient::Shutdown(); } protected: @@ -108,12 +75,16 @@ void SetUpObserver() { observer_ = std::make_unique<EnrollmentPolicyObserver>( - &policy_client_, device_settings_service_.get(), cryptohome_client_); - observer_->set_retry_limit(3); + &policy_client_, device_settings_service_.get()); + observer_->set_retry_limit(kRetryLimit); observer_->set_retry_delay(0); } void ExpectUploadEnterpriseEnrollmentId(int times) { + // Setting a mock behavior with 0 times causes warnings. + if (times == 0) { + return; + } EXPECT_CALL(policy_client_, UploadEnterpriseEnrollmentId(enrollment_id_, _)) .Times(times) .WillRepeatedly(WithArgs<1>(Invoke(StatusCallbackSuccess))); @@ -133,9 +104,6 @@ base::RunLoop().RunUntilIdle(); } - // Owned by the global instance, shut down in DeviceSettingsTestBase. - CallsHoldingFakeCryptohomeClient* cryptohome_client_ = nullptr; - StrictMock<policy::MockCloudPolicyClient> policy_client_; std::unique_ptr<EnrollmentPolicyObserver> observer_; std::string enrollment_id_; @@ -166,20 +134,6 @@ Run(); } -TEST_F(EnrollmentPolicyObserverTest, - UploadEnterpriseEnrollmentIdWithDelayedCallbacks) { - // We hold calls to cryptohome so that one is still pending by the time the - // observer gets notified. We expect only one upload despite the concurrent - // calls. - cryptohome_client_->set_hold_calls(true); - SetUpDevicePolicy(true); - ExpectUploadEnterpriseEnrollmentId(1); - PropagateDevicePolicy(); - SetUpObserver(); - cryptohome_client_->FlushCalls(); - Run(); -} - TEST_F(EnrollmentPolicyObserverTest, FeatureDisabled) { SetUpDevicePolicy(false); SetUpObserver(); @@ -196,8 +150,9 @@ } TEST_F(EnrollmentPolicyObserverTest, DBusFailureRetry) { - // Simulate a DBus failure. - cryptohome_client_->SetServiceIsAvailable(false); + AttestationClient::Get() + ->GetTestInterface() + ->set_enrollment_id_dbus_error_count(kRetryLimit - 1); ExpectUploadEnterpriseEnrollmentId(1); @@ -205,16 +160,19 @@ PropagateDevicePolicy(); SetUpObserver(); - // Emulate delayed service initialization. - // The observer we create synchronously calls TpmAttestationGetEnrollmentId() - // and fails. During this call, we make the service available in the next - // run, so on retry, it will successfully return the result. - base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce( - [](FakeCryptohomeClient* cryptohome_client) { - cryptohome_client->SetServiceIsAvailable(true); - }, - base::Unretained(cryptohome_client_))); + Run(); +} + +TEST_F(EnrollmentPolicyObserverTest, DBusFailureRetryUntilLimit) { + AttestationClient::Get() + ->GetTestInterface() + ->set_enrollment_id_dbus_error_count(kRetryLimit); + + ExpectUploadEnterpriseEnrollmentId(0); + + SetUpDevicePolicy(true); + PropagateDevicePolicy(); + SetUpObserver(); Run(); }
diff --git a/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl.cc b/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl.cc index 14034e7..1e5d0fd 100644 --- a/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl.cc +++ b/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl.cc
@@ -19,6 +19,8 @@ #include "chromeos/attestation/attestation_flow.h" #include "chromeos/cryptohome/async_method_caller.h" #include "chromeos/cryptohome/cryptohome_parameters.h" +#include "chromeos/dbus/attestation/attestation_client.h" +#include "chromeos/dbus/attestation/interface.pb.h" #include "chromeos/dbus/cryptohome/cryptohome_client.h" #include "chromeos/dbus/dbus_method_call_status.h" #include "chromeos/dbus/dbus_thread_manager.h" @@ -266,12 +268,13 @@ if (num_certificates == 0) { LOG(WARNING) << "Failed to parse certificate chain, cannot check expiry."; } - // Get the payload and check if the certificate has already been uploaded. - GetKeyPayload( - base::BindRepeating(&MachineCertificateUploaderImpl::CheckIfUploaded, - weak_factory_.GetWeakPtr(), pem_certificate_chain), - base::BindRepeating(&MachineCertificateUploaderImpl::Reschedule, - weak_factory_.GetWeakPtr())); + ::attestation::GetKeyInfoRequest request; + request.set_username(""); + request.set_key_label(kEnterpriseMachineKey); + AttestationClient::Get()->GetKeyInfo( + request, + base::BindOnce(&MachineCertificateUploaderImpl::CheckIfUploaded, + weak_factory_.GetWeakPtr(), pem_certificate_chain)); } void MachineCertificateUploaderImpl::UploadCertificate( @@ -284,9 +287,14 @@ void MachineCertificateUploaderImpl::CheckIfUploaded( const std::string& pem_certificate_chain, - const std::string& key_payload) { + const ::attestation::GetKeyInfoReply& reply) { + if (reply.status() != ::attestation::STATUS_SUCCESS) { + Reschedule(); + return; + } + AttestationKeyPayload payload_pb; - if (!key_payload.empty() && payload_pb.ParseFromString(key_payload) && + if (!reply.payload().empty() && payload_pb.ParseFromString(reply.payload()) && payload_pb.is_certificate_uploaded()) { // Already uploaded... nothing more to do. return; @@ -294,45 +302,35 @@ UploadCertificate(pem_certificate_chain); } -void MachineCertificateUploaderImpl::GetKeyPayload( - base::RepeatingCallback<void(const std::string&)> callback, - base::RepeatingCallback<void()> on_failure) { - cryptohome_client_->TpmAttestationGetKeyPayload( - KEY_DEVICE, - cryptohome::AccountIdentifier(), // Not used. - kEnterpriseMachineKey, - base::BindOnce(DBusStringCallback, callback, on_failure, FROM_HERE)); -} - void MachineCertificateUploaderImpl::OnUploadComplete(bool status) { if (status) { VLOG(1) << "Enterprise Machine Certificate uploaded to DMServer."; - GetKeyPayload( - base::BindRepeating(&MachineCertificateUploaderImpl::MarkAsUploaded, - weak_factory_.GetWeakPtr()), - base::DoNothing()); + ::attestation::GetKeyInfoRequest request; + request.set_username(""); + request.set_key_label(kEnterpriseMachineKey); + AttestationClient::Get()->GetKeyInfo( + request, base::BindOnce(&MachineCertificateUploaderImpl::MarkAsUploaded, + weak_factory_.GetWeakPtr())); } std::move(callback_).Run(status); } void MachineCertificateUploaderImpl::MarkAsUploaded( - const std::string& key_payload) { + const ::attestation::GetKeyInfoReply& reply) { AttestationKeyPayload payload_pb; - if (!key_payload.empty()) - payload_pb.ParseFromString(key_payload); + if (!reply.payload().empty()) + payload_pb.ParseFromString(reply.payload()); payload_pb.set_is_certificate_uploaded(true); std::string new_payload; if (!payload_pb.SerializeToString(&new_payload)) { LOG(WARNING) << "Failed to serialize key payload."; return; } - cryptohome_client_->TpmAttestationSetKeyPayload( - KEY_DEVICE, - cryptohome::AccountIdentifier(), // Not used. - kEnterpriseMachineKey, new_payload, - base::BindOnce(DBusBoolRedirectCallback, base::RepeatingClosure(), - base::RepeatingClosure(), base::RepeatingClosure(), - FROM_HERE)); + ::attestation::SetKeyPayloadRequest request; + request.set_username(""); + request.set_key_label(kEnterpriseMachineKey); + request.set_payload(new_payload); + AttestationClient::Get()->SetKeyPayload(request, base::DoNothing()); } void MachineCertificateUploaderImpl::HandleGetCertificateFailure(
diff --git a/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl.h b/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl.h index 144ab989..c3c4af6 100644 --- a/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl.h +++ b/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl.h
@@ -10,6 +10,7 @@ #include "base/callback.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/chromeos/attestation/machine_certificate_uploader.h" +#include "chromeos/dbus/attestation/interface.pb.h" #include "chromeos/dbus/constants/attestation_constants.h" namespace policy { @@ -71,19 +72,14 @@ // Checks if a certificate has already been uploaded and, if not, upload. void CheckIfUploaded(const std::string& pem_certificate_chain, - const std::string& key_payload); - - // Gets the payload associated with the EMK and sends it to |callback|, - // or call |on_failure| with no arguments if the payload cannot be obtained. - void GetKeyPayload(base::RepeatingCallback<void(const std::string&)> callback, - base::RepeatingCallback<void()> on_failure); + const ::attestation::GetKeyInfoReply& reply); // Called when a certificate upload operation completes. On success, |status| // will be true. void OnUploadComplete(bool status); // Marks a key as uploaded in the payload proto. - void MarkAsUploaded(const std::string& key_payload); + void MarkAsUploaded(const ::attestation::GetKeyInfoReply& reply); // Handles failure of getting a certificate. void HandleGetCertificateFailure(AttestationStatus status);
diff --git a/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl_unittest.cc b/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl_unittest.cc index 8e517e6..fb713704 100644 --- a/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl_unittest.cc +++ b/chrome/browser/chromeos/attestation/machine_certificate_uploader_impl_unittest.cc
@@ -17,6 +17,7 @@ #include "chrome/browser/chromeos/attestation/machine_certificate_uploader_impl.h" #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h" #include "chromeos/attestation/mock_attestation_flow.h" +#include "chromeos/dbus/attestation/fake_attestation_client.h" #include "chromeos/dbus/cryptohome/fake_cryptohome_client.h" #include "chromeos/settings/cros_settings_names.h" #include "components/policy/core/common/cloud/mock_cloud_policy_client.h" @@ -38,6 +39,11 @@ const int64_t kCertExpired = -20; void CertCallbackSuccess(AttestationFlow::CertificateCallback callback) { + AttestationClient::Get() + ->GetTestInterface() + ->GetMutableKeyInfoReply(/*username=*/"", kEnterpriseMachineKey) + ->set_certificate("fake_cert"); + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(std::move(callback), ATTESTATION_SUCCESS, "fake_cert")); @@ -67,9 +73,11 @@ class MachineCertificateUploaderTest : public ::testing::TestWithParam<bool> { public: MachineCertificateUploaderTest() { + AttestationClient::InitializeFake(); settings_helper_.ReplaceDeviceSettingsProviderWithStub(); policy_client_.SetDMToken("fake_dm_token"); } + ~MachineCertificateUploaderTest() override { AttestationClient::Shutdown(); } protected: enum MockOptions { @@ -88,12 +96,20 @@ if (key_exists) { cryptohome_client_.SetTpmAttestationDeviceCertificate( kEnterpriseMachineKey, certificate); + ::attestation::GetKeyInfoReply* key_info = + AttestationClient::Get()->GetTestInterface()->GetMutableKeyInfoReply( + /*username=*/"", kEnterpriseMachineKey); + key_info->set_certificate(certificate); } // Setup expected key payload queries. bool key_uploaded = refresh || (mock_options & MOCK_KEY_UPLOADED); - cryptohome_client_.SetTpmAttestationDeviceKeyPayload( - kEnterpriseMachineKey, key_uploaded ? CreatePayload() : std::string()); + if (key_uploaded) { + ::attestation::GetKeyInfoReply* key_info = + AttestationClient::Get()->GetTestInterface()->GetMutableKeyInfoReply( + /*username=*/"", kEnterpriseMachineKey); + key_info->set_payload(key_uploaded ? CreatePayload() : std::string()); + } // Setup expected key uploads. Use WillOnce() so StrictMock will trigger an // error if our expectations are not met exactly. We want to verify that @@ -165,8 +181,10 @@ SetupMocks(MOCK_NEW_KEY, ""); Run(); EXPECT_EQ(CreatePayload(), - cryptohome_client_.GetTpmAttestationDeviceKeyPayload( - kEnterpriseMachineKey)); + AttestationClient::Get() + ->GetTestInterface() + ->GetMutableKeyInfoReply(/*username=*/"", kEnterpriseMachineKey) + ->payload()); } TEST_P(MachineCertificateUploaderTest, KeyExistsNotUploaded) { @@ -176,8 +194,10 @@ SetupMocks(MOCK_KEY_EXISTS, certificate); Run(); EXPECT_EQ(CreatePayload(), - cryptohome_client_.GetTpmAttestationDeviceKeyPayload( - kEnterpriseMachineKey)); + AttestationClient::Get() + ->GetTestInterface() + ->GetMutableKeyInfoReply(/*username=*/"", kEnterpriseMachineKey) + ->payload()); } TEST_P(MachineCertificateUploaderTest, KeyExistsAlreadyUploaded) { @@ -227,8 +247,10 @@ base::Unretained(&cryptohome_client_))); Run(); EXPECT_EQ(CreatePayload(), - cryptohome_client_.GetTpmAttestationDeviceKeyPayload( - kEnterpriseMachineKey)); + AttestationClient::Get() + ->GetTestInterface() + ->GetMutableKeyInfoReply(/*username=*/"", kEnterpriseMachineKey) + ->payload()); } INSTANTIATE_TEST_SUITE_P(All,
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_common.cc b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_common.cc index 46b8242f..5766ab1b 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_common.cc +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_common.cc
@@ -15,7 +15,8 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" #include "chromeos/cryptohome/cryptohome_parameters.h" -#include "chromeos/dbus/cryptohome/cryptohome_client.h" +#include "chromeos/dbus/attestation/attestation_client.h" +#include "chromeos/dbus/attestation/interface.pb.h" #include "components/account_id/account_id.h" #include "components/prefs/pref_registry_simple.h" @@ -41,6 +42,35 @@ NOTREACHED(); } + +// This function implements `DeleteVaKey()` and `DeleteVaKeysByPrefix()`, both +// of which call this function with a proper match behavior. +void DeleteVaKeysWithMatchBehavior( + CertScope scope, + Profile* profile, + ::attestation::DeleteKeysRequest::MatchBehavior match_behavior, + const std::string& label_match, + DeleteVaKeyCallback callback) { + auto account_id = GetAccountId(scope, profile); + if (!account_id.has_value()) { + std::move(callback).Run(false); + return; + } + ::attestation::DeleteKeysRequest request; + request.set_username( + cryptohome::CreateAccountIdentifierFromAccountId(account_id.value()) + .account_id()); + request.set_key_label_match(label_match); + request.set_match_behavior(match_behavior); + + auto wrapped_callback = [](DeleteVaKeyCallback cb, + const ::attestation::DeleteKeysReply& reply) { + std::move(cb).Run(reply.status() == ::attestation::STATUS_SUCCESS); + }; + AttestationClient::Get()->DeleteKeys( + request, base::BindOnce(wrapped_callback, std::move(callback))); +} + } // namespace bool IsFinalState(CertProvisioningWorkerState state) { @@ -170,14 +200,8 @@ Profile* profile, const std::string& key_name, DeleteVaKeyCallback callback) { - auto account_id = GetAccountId(scope, profile); - if (!account_id.has_value()) { - return; - } - - CryptohomeClient::Get()->TpmAttestationDeleteKey( - GetVaKeyType(scope), - cryptohome::CreateAccountIdentifierFromAccountId(account_id.value()), + DeleteVaKeysWithMatchBehavior( + scope, profile, ::attestation::DeleteKeysRequest::MATCH_BEHAVIOR_EXACT, key_name, std::move(callback)); } @@ -185,14 +209,8 @@ Profile* profile, const std::string& key_prefix, DeleteVaKeyCallback callback) { - auto account_id = GetAccountId(scope, profile); - if (!account_id.has_value()) { - return; - } - - CryptohomeClient::Get()->TpmAttestationDeleteKeysByPrefix( - GetVaKeyType(scope), - cryptohome::CreateAccountIdentifierFromAccountId(account_id.value()), + DeleteVaKeysWithMatchBehavior( + scope, profile, ::attestation::DeleteKeysRequest::MATCH_BEHAVIOR_PREFIX, key_prefix, std::move(callback)); }
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_common.h b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_common.h index 4ce13af..f9ab338 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_common.h +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_common.h
@@ -14,6 +14,7 @@ #include "base/values.h" #include "chrome/browser/chromeos/platform_keys/platform_keys.h" #include "chrome/browser/chromeos/platform_keys/platform_keys_service.h" +#include "chromeos/dbus/attestation/interface.pb.h" #include "chromeos/dbus/constants/attestation_constants.h" #include "components/policy/proto/device_management_backend.pb.h" #include "net/cert/x509_certificate.h" @@ -30,7 +31,7 @@ namespace cert_provisioning { // Used for both DeleteVaKey and DeleteVaKeysByPrefix -using DeleteVaKeyCallback = base::OnceCallback<void(base::Optional<bool>)>; +using DeleteVaKeyCallback = base::OnceCallback<void(bool)>; const char kKeyNamePrefix[] = "cert-provis-";
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler.cc b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler.cc index b4a457f6..8e152328 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler.cc +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler.cc
@@ -291,10 +291,10 @@ } void CertProvisioningSchedulerImpl::OnCleanVaKeysIfIdleDone( - base::Optional<bool> delete_result) { + bool delete_result) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - if (!delete_result.has_value() || !delete_result.value()) { + if (!delete_result) { LOG(ERROR) << "Failed to delete keys while idle"; }
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler.h b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler.h index b3b8b14e..2d9f965 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler.h +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler.h
@@ -156,7 +156,7 @@ void OnDeleteCertsWithoutPolicyDone(platform_keys::Status status); void CancelWorkersWithoutPolicy(const std::vector<CertProfile>& profiles); void CleanVaKeysIfIdle(); - void OnCleanVaKeysIfIdleDone(base::Optional<bool> delete_result); + void OnCleanVaKeysIfIdleDone(bool delete_result); void RegisterForPrefsChanges(); void InitiateRenewal(const CertProfileId& cert_profile_id);
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler_unittest.cc b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler_unittest.cc index ce72c9f..7222a982 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler_unittest.cc +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_scheduler_unittest.cc
@@ -16,6 +16,8 @@ #include "chrome/browser/chromeos/platform_keys/platform_keys.h" #include "chrome/browser/chromeos/platform_keys/platform_keys_service.h" #include "chrome/common/pref_names.h" +#include "chromeos/dbus/attestation/fake_attestation_client.h" +#include "chromeos/dbus/attestation/interface.pb.h" #include "chromeos/network/network_state_test_helper.h" #include "components/policy/core/common/cloud/mock_cloud_policy_client.h" #include "components/prefs/testing_pref_service.h" @@ -45,6 +47,28 @@ constexpr char kCertProfileVersion[] = "cert_profile_version_1"; constexpr TimeDelta kCertProfileRenewalPeriod = TimeDelta::FromSeconds(0); +void VerifyDeleteKeysByPrefixCalledOnce(CertScope cert_scope) { + const std::vector<::attestation::DeleteKeysRequest> delete_keys_history = + chromeos::AttestationClient::Get() + ->GetTestInterface() + ->delete_keys_history(); + // Use `ASSERT_EQ()` so the checks that follows don't crash. + ASSERT_EQ(delete_keys_history.size(), 1); + EXPECT_EQ(delete_keys_history[0].username().empty(), + cert_scope != CertScope::kUser); + EXPECT_EQ(delete_keys_history[0].key_label_match(), kKeyNamePrefix); + EXPECT_EQ(delete_keys_history[0].match_behavior(), + ::attestation::DeleteKeysRequest::MATCH_BEHAVIOR_PREFIX); +} + +void ExpectDeleteKeysByPrefixNeverCalled() { + const std::vector<::attestation::DeleteKeysRequest> delete_keys_history = + chromeos::AttestationClient::Get() + ->GetTestInterface() + ->delete_keys_history(); + EXPECT_TRUE(delete_keys_history.empty()); +} + //=============== TestCertProvisioningSchedulerObserver ======================== class TestCertProvisioningSchedulerObserver @@ -103,11 +127,13 @@ } void SetUp() override { + chromeos::AttestationClient::InitializeFake(); CertProvisioningWorkerFactory::SetFactoryForTesting(&mock_factory_); } void TearDown() override { CertProvisioningWorkerFactory::SetFactoryForTesting(nullptr); + chromeos::AttestationClient::Shutdown(); } void AddOnlineWifiNetwork() { @@ -148,7 +174,6 @@ ProfileHelperForTesting profile_helper_for_testing_; platform_keys::MockPlatformKeysService platform_keys_service_; std::unique_ptr<CertificateHelperForTesting> certificate_helper_; - StrictMock<SpyingFakeCryptohomeClient> fake_cryptohome_client_; TestingPrefServiceSimple pref_service_; policy::MockCloudPolicyClient cloud_policy_client_; // Only expected creations are allowed. @@ -171,12 +196,6 @@ network_state_test_helper_.network_state_handler(), std::move(mock_invalidation_factory_obj)); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_USER, kKeyNamePrefix)) - .Times(1); - // The policy is empty, so no workers should be created yet. FastForwardBy(TimeDelta::FromSeconds(1)); EXPECT_EQ(scheduler.GetWorkers().size(), 0U); @@ -186,6 +205,9 @@ .WillOnce( Return(ByMove(nullptr))); // nullptr is good enough for mock worker. + // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); + // One worker will be created on prefs update. CertProfile cert_profile(kCertProfileId, kCertProfileVersion, /*is_va_enabled=*/true, kCertProfileRenewalPeriod); @@ -232,16 +254,14 @@ network_state_test_helper_.network_state_handler(), MakeFakeInvalidationFactory()); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_DEVICE, kKeyNamePrefix)) - .Times(1); // The policy is empty, so no workers should be created yet. FastForwardBy(TimeDelta::FromSeconds(1)); EXPECT_EQ(scheduler.GetWorkers().size(), 0U); + // From CertProvisioningScheduler::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); + // One worker will be created on prefs update. CertProfile cert_profile(kCertProfileId, kCertProfileVersion, /*is_va_enabled=*/true, kCertProfileRenewalPeriod); @@ -300,12 +320,6 @@ network_state_test_helper_.network_state_handler(), MakeFakeInvalidationFactory()); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_USER, kKeyNamePrefix)) - .Times(1); - // Now one worker should be created. MockCertProvisioningWorker* worker = mock_factory_.ExpectCreateReturnMock(kCertScope, cert_profile); @@ -326,6 +340,9 @@ FastForwardBy(TimeDelta::FromHours(20)); ASSERT_EQ(scheduler.GetWorkers().size(), 0U); + // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); + // Now list of failed profiles should be cleared that will cause a new attempt // to provision certificate. MockCertProvisioningWorker* worker2 = @@ -352,16 +369,13 @@ network_state_test_helper_.network_state_handler(), MakeFakeInvalidationFactory()); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_DEVICE, kKeyNamePrefix)) - .Times(1); - // The policy is empty, so no workers should be created yet. FastForwardBy(TimeDelta::FromSeconds(1)); ASSERT_EQ(scheduler.GetWorkers().size(), 0U); + // From CertProvisioningScheduler::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); + // New workers will be created on prefs update. const char kCertProfileId0[] = "cert_profile_id_0"; const char kCertProfileVersion0[] = "cert_profile_version_0"; @@ -527,16 +541,13 @@ network_state_test_helper_.network_state_handler(), MakeFakeInvalidationFactory()); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_DEVICE, kKeyNamePrefix)) - .Times(1); - // The policy is empty, so no workers should be created yet. FastForwardBy(TimeDelta::FromSeconds(1)); EXPECT_EQ(scheduler.GetWorkers().size(), 0U); + // From CertProvisioningScheduler::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); + CertProfile cert_profile_v1(kCertProfileId, kCertProfileVersion1, /*is_va_enabled=*/true, kCertProfileRenewalPeriod); @@ -650,15 +661,12 @@ network_state_test_helper_.network_state_handler(), MakeFakeInvalidationFactory()); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_DEVICE, kKeyNamePrefix)) - .Times(1); - FastForwardBy(TimeDelta::FromHours(72)); ASSERT_EQ(scheduler.GetWorkers().size(), 0U); + // From CertProvisioningScheduler::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); + // Add a new worker to the factory. MockCertProvisioningWorker* worker = mock_factory_.ExpectCreateReturnMock(kCertScope, cert_profile); @@ -689,12 +697,6 @@ network_state_test_helper_.network_state_handler(), MakeFakeInvalidationFactory()); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_DEVICE, kKeyNamePrefix)) - .Times(1); - // Add a new worker to the factory. MockCertProvisioningWorker* worker = mock_factory_.ExpectCreateReturnMock(kCertScope, cert_profile); @@ -720,6 +722,9 @@ CertProvisioningWorkerState::kCanceled); ASSERT_EQ(scheduler.GetWorkers().size(), 0U); + + // From CertProvisioningScheduler::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); } TEST_F(CertProvisioningSchedulerTest, DeleteVaKeysOnIdle) { @@ -732,16 +737,16 @@ network_state_test_helper_.network_state_handler(), MakeFakeInvalidationFactory()); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL( - fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_DEVICE, kKeyNamePrefix)) - .Times(1); - FastForwardBy(TimeDelta::FromSeconds(1)); + + // From CertProvisioningScheduler::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); } + chromeos::AttestationClient::Get() + ->GetTestInterface() + ->ClearDeleteKeysHistory(); + { CertProfile cert_profile(kCertProfileId, kCertProfileVersion, /*is_va_enabled=*/true, kCertProfileRenewalPeriod); @@ -778,10 +783,10 @@ network_state_test_helper_.network_state_handler(), MakeFakeInvalidationFactory()); - EXPECT_CALL(fake_cryptohome_client_, OnTpmAttestationDeleteKeysByPrefix) - .Times(0); FastForwardBy(TimeDelta::FromSeconds(1)); + + ExpectDeleteKeysByPrefixNeverCalled(); } } @@ -797,10 +802,11 @@ CertProfile cert_profile(kCertProfileId, kCertProfileVersion, /*is_va_enabled=*/true, kCertProfileRenewalPeriod); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, OnTpmAttestationDeleteKeysByPrefix); FastForwardBy(TimeDelta::FromSeconds(1)); + // From CertProvisioningScheduler::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); + // There is no policies yet, |kCertProfileId| will not be found. scheduler.UpdateOneCert(kCertProfileId); FastForwardBy(TimeDelta::FromSeconds(1)); @@ -905,17 +911,14 @@ network_state_test_helper_.network_state_handler(), MakeFakeInvalidationFactory()); - // From CertProvisioningScheduler::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_USER, kKeyNamePrefix)) - .Times(1); - // The certificate already exists, nothing should happen on scheduler // creation. FastForwardBy(TimeDelta::FromSeconds(1)); ASSERT_EQ(scheduler.GetWorkers().size(), 0U); + // From CertProvisioningScheduler::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); + // Also nothing should happen in the next ~6 days. FastForwardBy(TimeDelta::FromDays(5) + TimeDelta::FromHours(23)); ASSERT_EQ(scheduler.GetWorkers().size(), 0U); @@ -993,16 +996,13 @@ TestCertProvisioningSchedulerObserver observer; scheduler.AddObserver(&observer); - // From CertProvisioningSchedulerImpl::CleanVaKeysIfIdle. - EXPECT_CALL(fake_cryptohome_client_, - OnTpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType::KEY_DEVICE, kKeyNamePrefix)) - .Times(1); - // The policy is empty, so no workers should be created yet. FastForwardBy(TimeDelta::FromSeconds(1)); ASSERT_EQ(scheduler.GetWorkers().size(), 0U); + // From CertProvisioningScheduler::CleanVaKeysIfIdle. + VerifyDeleteKeysByPrefixCalledOnce(kCertScope); + // Two new workers will be created on prefs update. // Expect a state change notification for this. const char kCertProfileId0[] = "cert_profile_id_0";
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_test_helpers.cc b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_test_helpers.cc index d4ff2be..5b674d9 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_test_helpers.cc +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_test_helpers.cc
@@ -158,30 +158,5 @@ return user_; } -//================ SpyingFakeCryptohomeClient ================================== - -SpyingFakeCryptohomeClient::SpyingFakeCryptohomeClient() = default; -SpyingFakeCryptohomeClient::~SpyingFakeCryptohomeClient() = default; - -void SpyingFakeCryptohomeClient::TpmAttestationDeleteKey( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& cryptohome_id, - const std::string& key_prefix, - DBusMethodCallback<bool> callback) { - OnTpmAttestationDeleteKey(key_type, key_prefix); - FakeCryptohomeClient::TpmAttestationDeleteKey( - key_type, cryptohome_id, key_prefix, std::move(callback)); -} - -void SpyingFakeCryptohomeClient::TpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& cryptohome_id, - const std::string& key_prefix, - DBusMethodCallback<bool> callback) { - OnTpmAttestationDeleteKeysByPrefix(key_type, key_prefix); - FakeCryptohomeClient::TpmAttestationDeleteKeysByPrefix( - key_type, cryptohome_id, key_prefix, std::move(callback)); -} - } // namespace cert_provisioning } // namespace chromeos
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_test_helpers.h b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_test_helpers.h index 3aa5927b..4f5bffd 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_test_helpers.h +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_test_helpers.h
@@ -11,7 +11,6 @@ #include "chrome/browser/chromeos/platform_keys/mock_platform_keys_service.h" #include "chrome/browser/chromeos/platform_keys/platform_keys.h" #include "chrome/test/base/testing_profile_manager.h" -#include "chromeos/dbus/cryptohome/fake_cryptohome_client.h" #include "testing/gmock/include/gmock/gmock.h" namespace user_manager { @@ -93,39 +92,6 @@ user_manager::User* user_ = nullptr; }; -//================ SpyingFakeCryptohomeClient ================================== - -class SpyingFakeCryptohomeClient : public FakeCryptohomeClient { - public: - SpyingFakeCryptohomeClient(); - SpyingFakeCryptohomeClient(const SpyingFakeCryptohomeClient&) = delete; - SpyingFakeCryptohomeClient& operator=(const SpyingFakeCryptohomeClient&) = - delete; - ~SpyingFakeCryptohomeClient() override; - - void TpmAttestationDeleteKey( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& cryptohome_id, - const std::string& key_prefix, - DBusMethodCallback<bool> callback) override; - - void TpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& cryptohome_id, - const std::string& key_prefix, - DBusMethodCallback<bool> callback) override; - - MOCK_METHOD(void, - OnTpmAttestationDeleteKey, - (attestation::AttestationKeyType key_type, - const std::string& key_prefix)); - - MOCK_METHOD(void, - OnTpmAttestationDeleteKeysByPrefix, - (attestation::AttestationKeyType key_type, - const std::string& key_prefix)); -}; - } // namespace cert_provisioning } // namespace chromeos
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker.cc b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker.cc index b21d3a1e..2489f96b 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker.cc +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker.cc
@@ -817,11 +817,10 @@ OnCleanUpDone(); } -void CertProvisioningWorkerImpl::OnDeleteVaKeyDone( - base::Optional<bool> delete_result) { +void CertProvisioningWorkerImpl::OnDeleteVaKeyDone(bool delete_result) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!delete_result.has_value() || !delete_result.value()) { + if (!delete_result) { LOG(ERROR) << "Failed to delete a va key"; } OnCleanUpDone();
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker.h b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker.h index fc20bcea..205761e 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker.h +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker.h
@@ -211,7 +211,7 @@ void InitAfterDeserialization(); void CleanUpAndRunCallback(); - void OnDeleteVaKeyDone(base::Optional<bool> delete_result); + void OnDeleteVaKeyDone(bool delete_result); void OnRemoveKeyDone(platform_keys::Status status); void OnCleanUpDone();
diff --git a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker_unittest.cc b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker_unittest.cc index 54a5d4e..94de056 100644 --- a/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker_unittest.cc +++ b/chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker_unittest.cc
@@ -29,6 +29,7 @@ #include "chrome/browser/chromeos/platform_keys/platform_keys.h" #include "chrome/browser/chromeos/platform_keys/platform_keys_service.h" #include "chrome/browser/chromeos/platform_keys/platform_keys_service_factory.h" +#include "chromeos/dbus/attestation/fake_attestation_client.h" #include "components/policy/core/common/cloud/mock_cloud_policy_client.h" #include "components/prefs/pref_change_registrar.h" #include "components/prefs/pref_service.h" @@ -110,6 +111,20 @@ return public_key; } +void VerifyDeleteKeyCalledOnce(CertScope cert_scope) { + const std::vector<::attestation::DeleteKeysRequest> delete_keys_history = + chromeos::AttestationClient::Get() + ->GetTestInterface() + ->delete_keys_history(); + EXPECT_EQ(delete_keys_history.size(), 1); + EXPECT_EQ(delete_keys_history[0].username().empty(), + cert_scope != CertScope::kUser); + EXPECT_EQ(delete_keys_history[0].key_label_match(), + GetKeyName(kCertProfileId)); + EXPECT_EQ(delete_keys_history[0].match_behavior(), + ::attestation::DeleteKeysRequest::MATCH_BEHAVIOR_EXACT); +} + // Using macros to reduce boilerplate code, but keep real line numbers in // error messages in case of expectation failure. They use some of protected // fields of CertProvisioningWorkerTest class and may be considered as extra @@ -337,6 +352,7 @@ ~CertProvisioningWorkerTest() override = default; void SetUp() override { + ::chromeos::AttestationClient::InitializeFake(); // There should not be any calls to callback before this expect is // overridden. EXPECT_CALL(callback_observer_, Callback).Times(0); @@ -348,6 +364,7 @@ void TearDown() override { EXPECT_FALSE( attestation::TpmChallengeKeySubtleFactory::WillReturnTestingInstance()); + ::chromeos::AttestationClient::Shutdown(); } protected: @@ -427,7 +444,6 @@ StrictMock<StateChangeCallbackObserver> state_change_callback_observer_; StrictMock<CallbackObserver> callback_observer_; - StrictMock<SpyingFakeCryptohomeClient> fake_cryptohome_client_; ProfileHelperForTesting profile_helper_for_testing_; TestingPrefServiceSimple testing_pref_service_; @@ -815,12 +831,13 @@ // Checks that when the server returns error status, the worker will enter an // error state and stop the provisioning. TEST_F(CertProvisioningWorkerTest, StatusErrorHandling) { + const CertScope kCertScope = CertScope::kUser; CertProfile cert_profile(kCertProfileId, kCertProfileVersion, /*is_va_enabled=*/true, kCertProfileRenewalPeriod); MockTpmChallengeKeySubtle* mock_tpm_challenge_key = PrepareTpmChallengeKey(); CertProvisioningWorkerImpl worker( - CertScope::kUser, GetProfile(), &testing_pref_service_, cert_profile, + kCertScope, GetProfile(), &testing_pref_service_, cert_profile, &cloud_policy_client_, MakeInvalidator(), GetStateChangeCallback(), GetResultCallback()); @@ -841,12 +858,6 @@ kCertScopeStrUser, kCertProfileId, kCertProfileVersion, GetPublicKey(), /*callback=*/_)); - EXPECT_CALL( - fake_cryptohome_client_, - OnTpmAttestationDeleteKey(attestation::AttestationKeyType::KEY_USER, - GetKeyName(kCertProfileId))) - .Times(1); - EXPECT_CALL(callback_observer_, Callback(cert_profile, CertProvisioningWorkerState::kFailed)) .Times(1); @@ -854,11 +865,14 @@ worker.DoStep(); FastForwardBy(TimeDelta::FromSeconds(1)); + + VerifyDeleteKeyCalledOnce(kCertScope); } // Checks that when the server returns response error, the worker will enter an // error state and stop the provisioning. Also check factory. TEST_F(CertProvisioningWorkerTest, ResponseErrorHandling) { + const CertScope kCertScope = CertScope::kUser; base::HistogramTester histogram_tester; CertProfile cert_profile(kCertProfileId, kCertProfileVersion, @@ -866,7 +880,7 @@ MockTpmChallengeKeySubtle* mock_tpm_challenge_key = PrepareTpmChallengeKey(); auto worker = CertProvisioningWorkerFactory::Get()->Create( - CertScope::kUser, GetProfile(), &testing_pref_service_, cert_profile, + kCertScope, GetProfile(), &testing_pref_service_, cert_profile, &cloud_policy_client_, MakeInvalidator(), GetStateChangeCallback(), GetResultCallback()); @@ -885,12 +899,6 @@ EXPECT_START_CSR_CA_ERROR(ClientCertProvisioningStartCsr); - EXPECT_CALL( - fake_cryptohome_client_, - OnTpmAttestationDeleteKey(attestation::AttestationKeyType::KEY_USER, - GetKeyName(kCertProfileId))) - .Times(1); - EXPECT_CALL(callback_observer_, Callback(cert_profile, CertProvisioningWorkerState::kFailed)) .Times(1); @@ -899,6 +907,8 @@ worker->DoStep(); FastForwardBy(TimeDelta::FromSeconds(1)); + VerifyDeleteKeyCalledOnce(kCertScope); + histogram_tester.ExpectBucketCount("ChromeOS.CertProvisioning.Result.User", CertProvisioningWorkerState::kFailed, 1); histogram_tester.ExpectBucketCount( @@ -908,12 +918,13 @@ } TEST_F(CertProvisioningWorkerTest, InconsistentDataErrorHandling) { + const CertScope kCertScope = CertScope::kUser; CertProfile cert_profile(kCertProfileId, kCertProfileVersion, /*is_va_enabled=*/true, kCertProfileRenewalPeriod); MockTpmChallengeKeySubtle* mock_tpm_challenge_key = PrepareTpmChallengeKey(); auto worker = CertProvisioningWorkerFactory::Get()->Create( - CertScope::kUser, GetProfile(), &testing_pref_service_, cert_profile, + kCertScope, GetProfile(), &testing_pref_service_, cert_profile, &cloud_policy_client_, MakeInvalidator(), GetStateChangeCallback(), GetResultCallback()); @@ -932,12 +943,6 @@ EXPECT_START_CSR_INCONSISTENT_DATA(ClientCertProvisioningStartCsr); - EXPECT_CALL( - fake_cryptohome_client_, - OnTpmAttestationDeleteKey(attestation::AttestationKeyType::KEY_USER, - GetKeyName(kCertProfileId))) - .Times(1); - EXPECT_CALL(callback_observer_, Callback(cert_profile, CertProvisioningWorkerState::kInconsistentDataError)) @@ -946,6 +951,8 @@ worker->DoStep(); FastForwardBy(TimeDelta::FromSeconds(1)); + + VerifyDeleteKeyCalledOnce(kCertScope); } // Checks that when the server returns TEMPORARY_UNAVAILABLE status code, the @@ -1128,7 +1135,7 @@ GetResultCallback()); StrictMock<PrefServiceObserver> pref_observer( - &testing_pref_service_, GetPrefNameForSerialization(CertScope::kUser)); + &testing_pref_service_, GetPrefNameForSerialization(kCertScope)); base::Value pref_val; EXPECT_CALL(state_change_callback_observer_, StateChangeCallback) @@ -1297,17 +1304,18 @@ } TEST_F(CertProvisioningWorkerTest, SerializationOnFailure) { + const CertScope kCertScope = CertScope::kUser; CertProfile cert_profile(kCertProfileId, kCertProfileVersion, /*is_va_enabled=*/true, kCertProfileRenewalPeriod); MockTpmChallengeKeySubtle* mock_tpm_challenge_key = PrepareTpmChallengeKey(); auto worker = CertProvisioningWorkerFactory::Get()->Create( - CertScope::kUser, GetProfile(), &testing_pref_service_, cert_profile, + kCertScope, GetProfile(), &testing_pref_service_, cert_profile, &cloud_policy_client_, MakeInvalidator(), GetStateChangeCallback(), GetResultCallback()); - PrefServiceObserver pref_observer( - &testing_pref_service_, GetPrefNameForSerialization(CertScope::kUser)); + PrefServiceObserver pref_observer(&testing_pref_service_, + GetPrefNameForSerialization(kCertScope)); base::Value pref_val; EXPECT_CALL(state_change_callback_observer_, StateChangeCallback) @@ -1345,12 +1353,6 @@ pref_val = ParseJson("{}"); EXPECT_CALL(pref_observer, OnPrefValueUpdated(IsJson(pref_val))).Times(1); - EXPECT_CALL( - fake_cryptohome_client_, - OnTpmAttestationDeleteKey(attestation::AttestationKeyType::KEY_USER, - GetKeyName(kCertProfileId))) - .Times(1); - EXPECT_CALL(callback_observer_, Callback(cert_profile, CertProvisioningWorkerState::kFailed)) .Times(1); @@ -1358,15 +1360,18 @@ worker->DoStep(); FastForwardBy(TimeDelta::FromSeconds(1)); + + VerifyDeleteKeyCalledOnce(kCertScope); } TEST_F(CertProvisioningWorkerTest, InformationalGetters) { + const CertScope kCertScope = CertScope::kUser; CertProfile cert_profile(kCertProfileId, kCertProfileVersion, /*is_va_enabled=*/true, kCertProfileRenewalPeriod); MockTpmChallengeKeySubtle* mock_tpm_challenge_key = PrepareTpmChallengeKey(); CertProvisioningWorkerImpl worker( - CertScope::kUser, GetProfile(), &testing_pref_service_, cert_profile, + kCertScope, GetProfile(), &testing_pref_service_, cert_profile, &cloud_policy_client_, MakeInvalidator(), GetStateChangeCallback(), GetResultCallback()); @@ -1394,12 +1399,6 @@ EXPECT_START_CSR_CA_ERROR(ClientCertProvisioningStartCsr); - EXPECT_CALL( - fake_cryptohome_client_, - OnTpmAttestationDeleteKey(attestation::AttestationKeyType::KEY_USER, - GetKeyName(kCertProfileId))) - .Times(1); - EXPECT_CALL(callback_observer_, Callback(cert_profile, CertProvisioningWorkerState::kFailed)) .Times(1); @@ -1407,6 +1406,8 @@ worker.DoStep(); FastForwardBy(TimeDelta::FromSeconds(1)); + VerifyDeleteKeyCalledOnce(kCertScope); + EXPECT_EQ(worker.GetState(), CertProvisioningWorkerState::kFailed); EXPECT_EQ(worker.GetPreviousState(), CertProvisioningWorkerState::kKeypairGenerated); @@ -1432,8 +1433,8 @@ EXPECT_CALL(callback_observer_, Callback).Times(0); - PrefServiceObserver pref_observer( - &testing_pref_service_, GetPrefNameForSerialization(CertScope::kDevice)); + PrefServiceObserver pref_observer(&testing_pref_service_, + GetPrefNameForSerialization(kCertScope)); base::Value pref_val; { @@ -1470,12 +1471,6 @@ } { - EXPECT_CALL( - fake_cryptohome_client_, - OnTpmAttestationDeleteKey(attestation::AttestationKeyType::KEY_DEVICE, - GetKeyName(kCertProfileId))) - .Times(1); - pref_val = ParseJson("{}"); EXPECT_CALL(pref_observer, OnPrefValueUpdated(IsJson(pref_val))).Times(1); @@ -1485,6 +1480,8 @@ Callback(cert_profile, CertProvisioningWorkerState::kCanceled)) .Times(1); FastForwardBy(TimeDelta::FromSeconds(1)); + + VerifyDeleteKeyCalledOnce(kCertScope); } histogram_tester.ExpectUniqueSample("ChromeOS.CertProvisioning.Result.Device",
diff --git a/chrome/browser/chromeos/child_accounts/family_features.cc b/chrome/browser/chromeos/child_accounts/family_features.cc index f0ab0eb..f20aa02 100644 --- a/chrome/browser/chromeos/child_accounts/family_features.cc +++ b/chrome/browser/chromeos/child_accounts/family_features.cc
@@ -9,4 +9,7 @@ const base::Feature kFamilyUserMetricsProvider{ "FamilyUserMetricsProvider", base::FEATURE_ENABLED_BY_DEFAULT}; +const base::Feature kFamilyLinkUserMetricsProvider{ + "FamilyLinkUserMetricsProvider", base::FEATURE_DISABLED_BY_DEFAULT}; + } // namespace chromeos
diff --git a/chrome/browser/chromeos/child_accounts/family_features.h b/chrome/browser/chromeos/child_accounts/family_features.h index 1d2c80c..74262f9 100644 --- a/chrome/browser/chromeos/child_accounts/family_features.h +++ b/chrome/browser/chromeos/child_accounts/family_features.h
@@ -14,6 +14,9 @@ // this feature for privacy reasons. extern const base::Feature kFamilyUserMetricsProvider; +// Filters family link user metrics into one of three types. +extern const base::Feature kFamilyLinkUserMetricsProvider; + } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_FAMILY_FEATURES_H_
diff --git a/chrome/browser/chromeos/crosapi/browser_manager.cc b/chrome/browser/chromeos/crosapi/browser_manager.cc index 922eebc..fb5c472 100644 --- a/chrome/browser/chromeos/crosapi/browser_manager.cc +++ b/chrome/browser/chromeos/crosapi/browser_manager.cc
@@ -303,6 +303,7 @@ "--enable-oop-rasterization", "--lang=en-US", "--enable-crashpad", + "--enable-wayland-ime", "--breakpad-dump-location=" + crash_dir}; // CrAS is the default audio server in Chrome OS.
diff --git a/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc b/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc index 578a0bb..f1b99f63 100644 --- a/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc +++ b/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc
@@ -9,6 +9,7 @@ #include "ash/public/cpp/keyboard/keyboard_switches.h" #include "base/command_line.h" +#include "base/files/file_util.h" #include "base/run_loop.h" #include "base/threading/thread_restrictions.h" #include "chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client.h"
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc index 0c7196f8..7cf2fab 100644 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc
@@ -70,6 +70,8 @@ #include "storage/common/file_system/file_system_types.h" #include "storage/common/file_system/file_system_util.h" #include "third_party/cros_system_api/constants/cryptohome.h" +#include "ui/base/clipboard/clipboard_buffer.h" +#include "ui/base/clipboard/clipboard_non_backed.h" using chromeos::disks::DiskMountManager; using content::BrowserThread; @@ -970,6 +972,9 @@ return RespondNow(Error("Image file URL was invalid")); } + clipboard_sequence_ = + ui::ClipboardNonBacked::GetForCurrentThread()->GetSequenceNumber( + ui::ClipboardBuffer::kCopyPaste); std::unique_ptr<storage::FileStreamReader> reader = file_system_context->CreateFileStreamReader( file_system_url, 0, storage::kMaximumLength, base::Time()); @@ -979,7 +984,7 @@ &CopyImageRespondOnUIThread, base::BindOnce( &FileManagerPrivateInternalCopyImageToClipboardFunction:: - RespondWith, + MoveBytesToClipboard, this)); content::GetIOThreadTaskRunner({})->PostTask( @@ -992,12 +997,22 @@ return RespondLater(); } -void FileManagerPrivateInternalCopyImageToClipboardFunction::RespondWith( - scoped_refptr<base::RefCountedString> bytes) { +void FileManagerPrivateInternalCopyImageToClipboardFunction:: + MoveBytesToClipboard(scoped_refptr<base::RefCountedString> bytes) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - clipboard_util::DecodeImageFileAndCopyToClipboard(std::move(bytes)); - // Copy image to clipboard is async, this responds before copy is finished. - Respond(NoArguments()); + + clipboard_util::DecodeImageFileAndCopyToClipboard( + clipboard_sequence_, /*maintain_clipboard=*/true, + /*png_data=*/std::move(bytes), + base::BindOnce( + &FileManagerPrivateInternalCopyImageToClipboardFunction::RespondWith, + this)); +} + +void FileManagerPrivateInternalCopyImageToClipboardFunction::RespondWith( + bool is_on_clipboard) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + Respond(OneArgument(base::Value(is_on_clipboard))); } ExtensionFunction::ResponseAction FileManagerPrivateCancelCopyFunction::Run() {
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.h b/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.h index 003a15b6..8858676 100644 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.h +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.h
@@ -274,10 +274,16 @@ ResponseAction Run() override; private: - void RespondWith(scoped_refptr<base::RefCountedString> bytes); + // `is_on_clipboard` specifies whether or not the image was copied to the + // clipboard. + void RespondWith(bool is_on_clipboard); + void MoveBytesToClipboard(scoped_refptr<base::RefCountedString> bytes); const ChromeExtensionFunctionDetails chrome_details_; std::unique_ptr<storage::FileStreamStringConverter> converter_; + // Stores the clipboard copy sequence number to validate the clipboard did not + // change during an async operation. + uint64_t clipboard_sequence_ = 0; }; // Implements the chrome.fileManagerPrivate.startCopy method.
diff --git a/chrome/browser/chromeos/file_manager/file_manager_jstest_base.cc b/chrome/browser/chromeos/file_manager/file_manager_jstest_base.cc index d360ac4..ce00425 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_jstest_base.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_jstest_base.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/chromeos/file_manager/file_manager_jstest_base.h" +#include "base/files/file_util.h" #include "base/lazy_instance.h" #include "base/memory/ref_counted_memory.h" #include "base/path_service.h"
diff --git a/chrome/browser/chromeos/input_method/ui/candidate_view.cc b/chrome/browser/chromeos/input_method/ui/candidate_view.cc index 9f05c0f..81fdd81 100644 --- a/chrome/browser/chromeos/input_method/ui/candidate_view.cc +++ b/chrome/browser/chromeos/input_method/ui/candidate_view.cc
@@ -145,7 +145,6 @@ infolist_icon_ = AddChildView(std::move(infolist_icon)); } - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/chrome/browser/chromeos/input_method/ui/suggestion_view.cc b/chrome/browser/chromeos/input_method/ui/suggestion_view.cc index c7834df2..755d46e9 100644 --- a/chrome/browser/chromeos/input_method/ui/suggestion_view.cc +++ b/chrome/browser/chromeos/input_method/ui/suggestion_view.cc
@@ -103,7 +103,6 @@ annotation_label_ = AddChildView(CreateAnnotationLabel()); annotation_label_->SetVisible(false); - DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/chrome/browser/chromeos/input_method/ui/undo_window.cc b/chrome/browser/chromeos/input_method/ui/undo_window.cc index a185b155..16330f5 100644 --- a/chrome/browser/chromeos/input_method/ui/undo_window.cc +++ b/chrome/browser/chromeos/input_method/ui/undo_window.cc
@@ -44,6 +44,7 @@ views::LayoutProvider::Get()->GetDistanceMetric( views::DistanceMetric::DISTANCE_RELATED_BUTTON_HORIZONTAL)); undo_button_->SetBackground(nullptr); + undo_button_->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); } void UndoWindow::OnThemeChanged() {
diff --git a/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc b/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc index 0a516c98..854b45fc 100644 --- a/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc +++ b/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc
@@ -10,6 +10,7 @@ #include "base/bind_helpers.h" #include "base/callback.h" #include "base/command_line.h" +#include "base/files/file_util.h" #include "base/location.h" #include "base/macros.h" #include "base/memory/ref_counted.h"
diff --git a/chrome/browser/chromeos/login/screens/welcome_screen_browsertest.cc b/chrome/browser/chromeos/login/screens/welcome_screen_browsertest.cc index 59adf5f..4f704aa9 100644 --- a/chrome/browser/chromeos/login/screens/welcome_screen_browsertest.cc +++ b/chrome/browser/chromeos/login/screens/welcome_screen_browsertest.cc
@@ -4,6 +4,7 @@ #include <memory> +#include "base/files/file_util.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_path_override.h" #include "base/test/task_environment.h"
diff --git a/chrome/browser/chromeos/login/signin/device_id_browsertest.cc b/chrome/browser/chromeos/login/signin/device_id_browsertest.cc index 9c47bbd..6800599 100644 --- a/chrome/browser/chromeos/login/signin/device_id_browsertest.cc +++ b/chrome/browser/chromeos/login/signin/device_id_browsertest.cc
@@ -5,6 +5,7 @@ #include "ash/public/cpp/login_screen_test_api.h" #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/json/json_reader.h" #include "base/json/json_writer.h" #include "base/run_loop.h"
diff --git a/chrome/browser/chromeos/login/test/device_state_mixin.cc b/chrome/browser/chromeos/login/test/device_state_mixin.cc index add0dc9..210da19 100644 --- a/chrome/browser/chromeos/login/test/device_state_mixin.cc +++ b/chrome/browser/chromeos/login/test/device_state_mixin.cc
@@ -8,6 +8,7 @@ #include <vector> #include "base/callback.h" +#include "base/files/file_util.h" #include "base/json/json_writer.h" #include "base/numerics/safe_conversions.h" #include "base/path_service.h"
diff --git a/chrome/browser/chromeos/login/test/fake_gaia_mixin.cc b/chrome/browser/chromeos/login/test/fake_gaia_mixin.cc index fedcab86..21f3da18 100644 --- a/chrome/browser/chromeos/login/test/fake_gaia_mixin.cc +++ b/chrome/browser/chromeos/login/test/fake_gaia_mixin.cc
@@ -79,6 +79,8 @@ user_info_token.token = "fake-userinfo-token"; user_info_token.expires_in = kFakeAccessTokenExpiration; user_info_token.email = user_email; + if (initialize_child_id_token()) + user_info_token.id_token = test::GetChildAccountOAuthIdToken(); fake_gaia_->IssueOAuthToken(refresh_token, user_info_token); if (issue_any_scope_token) {
diff --git a/chrome/browser/chromeos/login/test/fake_gaia_mixin.h b/chrome/browser/chromeos/login/test/fake_gaia_mixin.h index 0f2b5b90..a165a67 100644 --- a/chrome/browser/chromeos/login/test/fake_gaia_mixin.h +++ b/chrome/browser/chromeos/login/test/fake_gaia_mixin.h
@@ -88,6 +88,12 @@ initialize_fake_merge_session_ = value; } + bool initialize_child_id_token() { return initialize_child_id_token_; } + + void set_initialize_child_id_token(bool value) { + initialize_child_id_token_ = value; + } + FakeGaia* fake_gaia() { return fake_gaia_.get(); } HTTPSForwarder* gaia_https_forwarder() { return &gaia_https_forwarder_; } @@ -103,6 +109,7 @@ std::unique_ptr<FakeGaia> fake_gaia_; bool initialize_fake_merge_session_ = true; + bool initialize_child_id_token_ = false; DISALLOW_COPY_AND_ASSIGN(FakeGaiaMixin); };
diff --git a/chrome/browser/chromeos/login/ui/simple_web_view_dialog.cc b/chrome/browser/chromeos/login/ui/simple_web_view_dialog.cc index c928a5c..713196c 100644 --- a/chrome/browser/chromeos/login/ui/simple_web_view_dialog.cc +++ b/chrome/browser/chromeos/login/ui/simple_web_view_dialog.cc
@@ -174,6 +174,7 @@ ui::EF_MIDDLE_MOUSE_BUTTON); back->SetImageHorizontalAlignment(views::ImageButton::ALIGN_RIGHT); back->SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_BACK)); + back->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); back->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_BACK)); back->SetID(VIEW_ID_BACK_BUTTON); back_ = back.get(); @@ -184,6 +185,7 @@ forward->SetTriggerableEventFlags(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_MIDDLE_MOUSE_BUTTON); forward->SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_FORWARD)); + forward->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); forward->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_FORWARD)); forward->SetID(VIEW_ID_FORWARD_BUTTON); forward_ = forward.get();
diff --git a/chrome/browser/chromeos/policy/affiliation_test_helper.cc b/chrome/browser/chromeos/policy/affiliation_test_helper.cc index cb22021e..5aac870 100644 --- a/chrome/browser/chromeos/policy/affiliation_test_helper.cc +++ b/chrome/browser/chromeos/policy/affiliation_test_helper.cc
@@ -10,6 +10,7 @@ #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/numerics/safe_conversions.h" #include "base/path_service.h" #include "chrome/browser/browser_process.h"
diff --git a/chrome/browser/chromeos/policy/device_cloud_external_data_policy_observer_browsertest.cc b/chrome/browser/chromeos/policy/device_cloud_external_data_policy_observer_browsertest.cc index 8ef0142..f62b852e0 100644 --- a/chrome/browser/chromeos/policy/device_cloud_external_data_policy_observer_browsertest.cc +++ b/chrome/browser/chromeos/policy/device_cloud_external_data_policy_observer_browsertest.cc
@@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process_platform_part.h"
diff --git a/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc b/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc index 1ae80fe..9881f59 100644 --- a/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc +++ b/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc
@@ -3,6 +3,7 @@ // found in the LICENSE file. #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/strings/string_util.h" #include "base/test/bind_test_util.h"
diff --git a/chrome/browser/content_settings/content_settings_policy_provider_unittest.cc b/chrome/browser/content_settings/content_settings_policy_provider_unittest.cc index e154f15..ac18117 100644 --- a/chrome/browser/content_settings/content_settings_policy_provider_unittest.cc +++ b/chrome/browser/content_settings/content_settings_policy_provider_unittest.cc
@@ -86,41 +86,6 @@ provider.ShutdownOnUIThread(); } -TEST_F(PolicyProviderTest, ManagedDefaultPluginSettingsExperiment) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitFromCommandLine("IgnoreDefaultPluginsSetting", - std::string()); - - TestingProfile profile; - sync_preferences::TestingPrefServiceSyncable* prefs = - profile.GetTestingPrefService(); - PolicyProvider provider(prefs); - - // ForceDefaultPluginsSettingAsk overrides this to ASK. - prefs->SetManagedPref(prefs::kManagedDefaultPluginsSetting, - std::make_unique<base::Value>(CONTENT_SETTING_BLOCK)); - prefs->SetManagedPref(prefs::kManagedDefaultJavaScriptSetting, - std::make_unique<base::Value>(CONTENT_SETTING_BLOCK)); - - std::unique_ptr<RuleIterator> plugin_rule_iterator(provider.GetRuleIterator( - ContentSettingsType::PLUGINS, std::string(), false)); - // Policy should be removed when running under experiment. - EXPECT_FALSE(plugin_rule_iterator); - - std::unique_ptr<RuleIterator> js_rule_iterator(provider.GetRuleIterator( - ContentSettingsType::JAVASCRIPT, std::string(), false)); - // Other policies should be left alone. - EXPECT_TRUE(js_rule_iterator->HasNext()); - Rule rule = js_rule_iterator->Next(); - EXPECT_FALSE(js_rule_iterator->HasNext()); - - EXPECT_EQ(ContentSettingsPattern::Wildcard(), rule.primary_pattern); - EXPECT_EQ(ContentSettingsPattern::Wildcard(), rule.secondary_pattern); - EXPECT_EQ(CONTENT_SETTING_BLOCK, ValueToContentSetting(&rule.value)); - - provider.ShutdownOnUIThread(); -} - // When a default-content-setting is set to a managed setting a // CONTENT_SETTINGS_CHANGED notification should be fired. The same should happen // if the managed setting is removed.
diff --git a/chrome/browser/data_saver/subresource_redirect_browsertest.cc b/chrome/browser/data_saver/subresource_redirect_browsertest.cc index 5d928f0..f2f4b37 100644 --- a/chrome/browser/data_saver/subresource_redirect_browsertest.cc +++ b/chrome/browser/data_saver/subresource_redirect_browsertest.cc
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/task/thread_pool/thread_pool_instance.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/chrome/browser/devtools/devtools_sanity_browsertest.cc b/chrome/browser/devtools/devtools_sanity_browsertest.cc index 08d3b33b6..e20b0d2 100644 --- a/chrome/browser/devtools/devtools_sanity_browsertest.cc +++ b/chrome/browser/devtools/devtools_sanity_browsertest.cc
@@ -1883,16 +1883,7 @@ observer_->CloseAllSync(); } -// Flaky timeouts on Win7 Tests (dbg)(1); see https://crbug.com/985255. -// Flaky timeouts and failures on Win7 (32) Tests; see -// https://crbug.com/1025411. -#if defined(OS_WIN) -#define MAYBE_DevToolsReattachAfterCrashTest \ - DISABLED_DevToolsReattachAfterCrashTest -#else -#define MAYBE_DevToolsReattachAfterCrashTest DevToolsReattachAfterCrashTest -#endif -class MAYBE_DevToolsReattachAfterCrashTest : public DevToolsSanityTest { +class DevToolsReattachAfterCrashTest : public DevToolsSanityTest { protected: void RunTestWithPanel(const char* panel_name) { OpenDevToolsWindow("about:blank", false); @@ -1910,12 +1901,12 @@ } }; -IN_PROC_BROWSER_TEST_F(MAYBE_DevToolsReattachAfterCrashTest, +IN_PROC_BROWSER_TEST_F(DevToolsReattachAfterCrashTest, TestReattachAfterCrashOnTimeline) { RunTestWithPanel("timeline"); } -IN_PROC_BROWSER_TEST_F(MAYBE_DevToolsReattachAfterCrashTest, +IN_PROC_BROWSER_TEST_F(DevToolsReattachAfterCrashTest, TestReattachAfterCrashOnNetwork) { RunTestWithPanel("network"); }
diff --git a/chrome/browser/download/notification/download_notification_browsertest.cc b/chrome/browser/download/notification/download_notification_browsertest.cc index cf8f1a9..3a61669 100644 --- a/chrome/browser/download/notification/download_notification_browsertest.cc +++ b/chrome/browser/download/notification/download_notification_browsertest.cc
@@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/feature_list.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/stl_util.h"
diff --git a/chrome/browser/enterprise/connectors/README.md b/chrome/browser/enterprise/connectors/README.md new file mode 100644 index 0000000..efea92d --- /dev/null +++ b/chrome/browser/enterprise/connectors/README.md
@@ -0,0 +1,11 @@ +This directory contains code used by Chrome Enterprise Connectors. This +includes: + * Code to handle Connector policies. + * Code specific to uploaded content analysis. + * Common utilities used by Connector code. + +Code shared with user downloads cloud scanning should be added to +`//chrome/browser/safe_browsing/cloud_content_scanning/` instead. + +Code specific to user downloads cloud scanning should be added to +`//chrome/browser/safe_browsing/download_protection/` instead.
diff --git a/chrome/browser/enterprise/connectors/content_analysis_delegate_browsertest.cc b/chrome/browser/enterprise/connectors/content_analysis_delegate_browsertest.cc index c5cfd97..f17582c27 100644 --- a/chrome/browser/enterprise/connectors/content_analysis_delegate_browsertest.cc +++ b/chrome/browser/enterprise/connectors/content_analysis_delegate_browsertest.cc
@@ -24,6 +24,7 @@ #include "components/policy/core/common/cloud/mock_cloud_policy_client.h" #include "components/policy/core/common/cloud/realtime_reporting_job_configuration.h" #include "components/prefs/scoped_user_pref_update.h" +#include "components/signin/public/identity_manager/identity_test_environment.h" #include "content/public/test/browser_test.h" using extensions::SafeBrowsingPrivateEventRouter; @@ -35,6 +36,8 @@ namespace { +constexpr char kUserName[] = "test@chromium.org"; + base::string16 text() { return base::UTF8ToUTF16(std::string(100, 'a')); } @@ -216,6 +219,13 @@ extensions::SafeBrowsingPrivateEventRouterFactory::GetForProfile( browser()->profile()) ->SetBinaryUploadServiceForTesting(FakeBinaryUploadServiceStorage()); + identity_test_environment_ = + std::make_unique<signin::IdentityTestEnvironment>(); + identity_test_environment_->MakePrimaryAccountAvailable(kUserName); + extensions::SafeBrowsingPrivateEventRouterFactory::GetForProfile( + browser()->profile()) + ->SetIdentityManagerForTesting( + identity_test_environment_->identity_manager()); } void DestructorCalled(ContentAnalysisDialog* dialog) override { @@ -231,6 +241,7 @@ private: std::unique_ptr<policy::MockCloudPolicyClient> client_; + std::unique_ptr<signin::IdentityTestEnvironment> identity_test_environment_; base::ScopedTempDir temp_dir_; }; @@ -314,7 +325,8 @@ /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("bad file content").size(), /*result*/ - safe_browsing::EventResultToString(safe_browsing::EventResult::BLOCKED)); + safe_browsing::EventResultToString(safe_browsing::EventResult::BLOCKED), + /*username*/ kUserName); enterprise_connectors::ContentAnalysisResponse ok_response; auto* ok_result = ok_response.add_results(); @@ -406,7 +418,8 @@ /*mimetype*/ TextMimeTypes(), /*size*/ 400, /*result*/ - safe_browsing::EventResultToString(safe_browsing::EventResult::BLOCKED)); + safe_browsing::EventResultToString(safe_browsing::EventResult::BLOCKED), + /*username*/ kUserName); bool called = false; base::RunLoop run_loop; @@ -515,7 +528,8 @@ expected_result() ? safe_browsing::EventResultToString( safe_browsing::EventResult::ALLOWED) : safe_browsing::EventResultToString( - safe_browsing::EventResult::BLOCKED)); + safe_browsing::EventResult::BLOCKED), + /*username*/ kUserName); // Start test. ContentAnalysisDelegate::CreateForWebContents( @@ -610,7 +624,8 @@ expected_result() ? safe_browsing::EventResultToString( safe_browsing::EventResult::ALLOWED) : safe_browsing::EventResultToString( - safe_browsing::EventResult::BLOCKED)); + safe_browsing::EventResult::BLOCKED), + /*username*/ kUserName); bool called = false; base::RunLoop run_loop; @@ -712,7 +727,8 @@ expected_result() ? safe_browsing::EventResultToString( safe_browsing::EventResult::ALLOWED) : safe_browsing::EventResultToString( - safe_browsing::EventResult::BLOCKED)); + safe_browsing::EventResult::BLOCKED), + /*username*/ kUserName); bool called = false; base::RunLoop run_loop; @@ -835,7 +851,8 @@ /*result*/ safe_browsing::EventResultToString( expected_result() ? safe_browsing::EventResult::ALLOWED - : safe_browsing::EventResult::BLOCKED)); + : safe_browsing::EventResult::BLOCKED), + /*username*/ kUserName); bool called = false; base::RunLoop run_loop;
diff --git a/chrome/browser/enterprise/reporting/report_scheduler_desktop.cc b/chrome/browser/enterprise/reporting/report_scheduler_desktop.cc index 6e6612c..69f93787 100644 --- a/chrome/browser/enterprise/reporting/report_scheduler_desktop.cc +++ b/chrome/browser/enterprise/reporting/report_scheduler_desktop.cc
@@ -72,6 +72,8 @@ trigger_report_callback_.Run( ReportScheduler::ReportTrigger::kTriggerNewVersion); } + + // TODO(zmin): Observes extension request update. } void ReportSchedulerDesktop::StopWatchingUpdates() { @@ -80,13 +82,21 @@ } } -void ReportSchedulerDesktop::SaveLastUploadVersion() { +void ReportSchedulerDesktop::OnBrowserVersionUploaded() { if (ShouldReportUpdates()) { // Remember what browser version made this upload. GetLocalState()->SetString(kLastUploadVersion, chrome::kChromeVersion); } } +void ReportSchedulerDesktop::StopWatchingExtensionRequest() { + // TODO(zmin): Stop uploading extension requests for all profiles. +} + +void ReportSchedulerDesktop::OnExtensionRequestUploaded() { + // TODO(zmin): Request is uploaded, erase all pending uploaded record. +} + void ReportSchedulerDesktop::OnUpdate(const BuildState* build_state) { DCHECK(ShouldReportUpdates()); // A new version has been detected on the machine and a restart is now needed @@ -98,4 +108,11 @@ } } +void ReportSchedulerDesktop::OnExtensionRequest() { + if (!trigger_report_callback_.is_null()) { + trigger_report_callback_.Run( + ReportScheduler::ReportTrigger::kTriggerExtensionRequest); + } +} + } // namespace enterprise_reporting
diff --git a/chrome/browser/enterprise/reporting/report_scheduler_desktop.h b/chrome/browser/enterprise/reporting/report_scheduler_desktop.h index f1489f14..0d42ab36 100644 --- a/chrome/browser/enterprise/reporting/report_scheduler_desktop.h +++ b/chrome/browser/enterprise/reporting/report_scheduler_desktop.h
@@ -29,11 +29,15 @@ void StartWatchingUpdatesIfNeeded(base::Time last_upload, base::TimeDelta upload_interval) override; void StopWatchingUpdates() override; - void SaveLastUploadVersion() override; + void OnBrowserVersionUploaded() override; + void StopWatchingExtensionRequest() override; + void OnExtensionRequestUploaded() override; // BuildStateObserver implementation. void OnUpdate(const BuildState* build_state) override; + void OnExtensionRequest(); + private: ExtensionRequestObserverFactory extension_request_observer_factory_; };
diff --git a/chrome/browser/enterprise/reporting/report_scheduler_desktop_unittest.cc b/chrome/browser/enterprise/reporting/report_scheduler_desktop_unittest.cc index 431c245..3e2775a 100644 --- a/chrome/browser/enterprise/reporting/report_scheduler_desktop_unittest.cc +++ b/chrome/browser/enterprise/reporting/report_scheduler_desktop_unittest.cc
@@ -13,6 +13,7 @@ #include "build/build_config.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/enterprise/reporting/prefs.h" +#include "chrome/browser/enterprise/reporting/report_scheduler_desktop.h" #include "chrome/browser/enterprise/reporting/reporting_delegate_factory_desktop.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/upgrade_detector/build_state.h" @@ -48,10 +49,8 @@ constexpr base::TimeDelta kDefaultUploadInterval = base::TimeDelta::FromHours(24); -#if !defined(OS_CHROMEOS) constexpr char kUploadTriggerMetricName[] = "Enterprise.CloudReportingUploadTrigger"; -#endif } // namespace @@ -182,6 +181,11 @@ #endif } + void TriggerExtensionRequestReport() { + static_cast<ReportSchedulerDesktop*>(scheduler_->GetDelegateForTesting()) + ->OnExtensionRequest(); + } + base::test::ScopedFeatureList scoped_feature_list_; content::BrowserTaskEnvironment task_environment_; ScopedTestingLocalState local_state_; @@ -431,6 +435,35 @@ histogram_tester_.ExpectUniqueSample(kUploadTriggerMetricName, 2, 1); } +TEST_F(ReportSchedulerTest, OnUpdateAndPersistentError) { + // Pretend that a periodic report was generated recently so that one isn't + // kicked off during startup. + SetLastUploadInHour(base::TimeDelta::FromHours(1)); + EXPECT_CALL_SetupRegistration(); + EXPECT_CALL(*generator_, OnGenerate(ReportType::kBrowserVersion, _)) + .WillOnce(WithArgs<1>(ScheduleGeneratorCallback(1))); + EXPECT_CALL(*uploader_, SetRequestAndUpload(_, _)) + .WillOnce(RunOnceCallback<1>(ReportUploader::kPersistentError)); + + CreateScheduler(); + g_browser_process->GetBuildState()->SetUpdate( + BuildState::UpdateType::kNormalUpdate, + base::Version("1" + version_info::GetVersionNumber()), base::nullopt); + task_environment_.RunUntilIdle(); + + // The timestamp should not have been updated, since a periodic report was not + // generated/uploaded. + ExpectLastUploadTimestampUpdated(false); + + histogram_tester_.ExpectUniqueSample(kUploadTriggerMetricName, 2, 1); + + // The report should be stopped in case of persistent error. + g_browser_process->GetBuildState()->SetUpdate( + BuildState::UpdateType::kNormalUpdate, + base::Version("2" + version_info::GetVersionNumber()), base::nullopt); + histogram_tester_.ExpectUniqueSample(kUploadTriggerMetricName, 2, 1); +} + // Tests that a full report is generated and uploaded following a basic report // if the timer fires while the basic report is being uploaded. TEST_F(ReportSchedulerTest, DeferredTimer) { @@ -545,4 +578,75 @@ #endif // !defined(OS_CHROMEOS) +TEST_F(ReportSchedulerTest, OnExtensionRequest) { + SetLastUploadInHour(base::TimeDelta::FromHours(1)); + + EXPECT_CALL_SetupRegistration(); + EXPECT_CALL(*generator_, OnGenerate(ReportType::kExtensionRequest, _)) + .WillOnce(WithArgs<1>(ScheduleGeneratorCallback(1))); + EXPECT_CALL(*uploader_, SetRequestAndUpload(_, _)) + .WillOnce(RunOnceCallback<1>(ReportUploader::kSuccess)); + + CreateScheduler(); + + TriggerExtensionRequestReport(); + + task_environment_.RunUntilIdle(); + + // The timestamp should not have been updated, since a periodic report was not + // generated/uploaded. + ExpectLastUploadTimestampUpdated(false); + + histogram_tester_.ExpectUniqueSample(kUploadTriggerMetricName, 4, 1); +} + +#if !defined(OS_CHROMEOS) + +TEST_F(ReportSchedulerTest, OnExtensionRequestAndUpdate) { + SetLastUploadInHour(base::TimeDelta::FromHours(1)); + + ReportUploader::ReportCallback saved_callback; + auto new_uploader = std::make_unique<MockReportUploader>(); + + EXPECT_CALL_SetupRegistration(); + EXPECT_CALL(*generator_, OnGenerate(ReportType::kExtensionRequest, _)) + .WillOnce(WithArgs<1>(ScheduleGeneratorCallback(1))); + EXPECT_CALL(*generator_, OnGenerate(ReportType::kBrowserVersion, _)) + .WillOnce(WithArgs<1>(ScheduleGeneratorCallback(1))); + + EXPECT_CALL(*uploader_, SetRequestAndUpload(_, _)) + .WillOnce([&saved_callback](ReportUploader::ReportRequests requests, + ReportUploader::ReportCallback callback) { + saved_callback = std::move(callback); + }); + + CreateScheduler(); + + g_browser_process->GetBuildState()->SetUpdate( + BuildState::UpdateType::kNormalUpdate, + base::Version("1" + version_info::GetVersionNumber()), base::nullopt); + TriggerExtensionRequestReport(); + + task_environment_.RunUntilIdle(); + + // Release the first request and set uploader for the second request. + EXPECT_CALL(*new_uploader, SetRequestAndUpload(_, _)) + .WillOnce(RunOnceCallback<1>(ReportUploader::kSuccess)); + std::move(saved_callback).Run(ReportUploader::kSuccess); + uploader_ = new_uploader.get(); + scheduler_->SetReportUploaderForTesting(std::move(new_uploader)); + + task_environment_.RunUntilIdle(); + + // The timestamp should not have been updated, since a periodic report was not + // generated/uploaded. + ExpectLastUploadTimestampUpdated(false); + + histogram_tester_.ExpectTotalCount(kUploadTriggerMetricName, 2); + histogram_tester_.ExpectBucketCount(kUploadTriggerMetricName, 2, 1); + histogram_tester_.ExpectBucketCount(kUploadTriggerMetricName, 4, 1); +} + +#endif // !defined(OS_CHROMEOS) + } // namespace enterprise_reporting
diff --git a/chrome/browser/extensions/api/declarative_content/declarative_content_css_condition_tracker_unittest.cc b/chrome/browser/extensions/api/declarative_content/declarative_content_css_condition_tracker_unittest.cc index b6c4337..edcbc86 100644 --- a/chrome/browser/extensions/api/declarative_content/declarative_content_css_condition_tracker_unittest.cc +++ b/chrome/browser/extensions/api/declarative_content/declarative_content_css_condition_tracker_unittest.cc
@@ -94,7 +94,7 @@ content::WebContents* tab, const std::vector<std::string>& selectors) { ExtensionHostMsg_OnWatchedPageChange page_change( - tab->GetRenderViewHost()->GetRoutingID(), selectors); + tab->GetMainFrame()->GetRenderViewHost()->GetRoutingID(), selectors); EXPECT_TRUE(GetMockRenderProcessHost(tab)->OnMessageReceived(page_change)); }
diff --git a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc index 386e702..1747903b 100644 --- a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc +++ b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
@@ -56,6 +56,7 @@ #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" #include "content/public/test/download_test_observer.h" +#include "content/public/test/slow_download_http_response.h" #include "content/public/test/test_download_http_response.h" #include "content/public/test/test_navigation_observer.h" #include "content/public/test/test_utils.h" @@ -2602,10 +2603,11 @@ IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, DownloadExtensionTest_Download_Cancel) { LoadExtension("downloads_split"); + embedded_test_server()->RegisterRequestHandler(base::BindRepeating( + &content::SlowDownloadHttpResponse::HandleSlowDownloadRequest)); ASSERT_TRUE(StartEmbeddedTestServer()); - ASSERT_TRUE(spawned_test_server()->Start()); std::string download_url = - spawned_test_server()->GetURL("download-known-size").spec(); + embedded_test_server()->GetURL("/download-known-size").spec(); GoOnTheRecord(); std::unique_ptr<base::Value> result(RunFunctionAndReturnResult(
diff --git a/chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc b/chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc index 09665fa..0375df7 100644 --- a/chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc +++ b/chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc
@@ -14,10 +14,10 @@ #include "base/optional.h" #include "base/run_loop.h" #include "base/strings/stringprintf.h" +#include "base/test/bind_test_util.h" #include "base/threading/thread_restrictions.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/login/helper.h" -#include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" #include "chrome/browser/extensions/api/networking_cast_private/chrome_networking_cast_private_delegate.h" #include "chrome/browser/extensions/api/networking_private/networking_private_ui_delegate_chromeos.h" #include "chrome/browser/extensions/extension_apitest.h" @@ -38,7 +38,6 @@ #include "chromeos/network/network_state_handler.h" #include "chromeos/network/network_type_pattern.h" #include "chromeos/network/onc/onc_utils.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "components/onc/onc_constants.h" #include "components/onc/onc_pref_names.h" #include "components/policy/core/browser/browser_policy_connector.h" @@ -80,8 +79,6 @@ using chromeos::CryptohomeClient; using chromeos::DBusThreadManager; -using chromeos::NetworkPortalDetector; -using chromeos::NetworkPortalDetectorTestImpl; using chromeos::ShillDeviceClient; using chromeos::ShillIPConfigClient; using chromeos::ShillManagerClient; @@ -189,8 +186,7 @@ class NetworkingPrivateChromeOSApiTest : public extensions::ExtensionApiTest { public: NetworkingPrivateChromeOSApiTest() - : detector_(nullptr), - manager_test_(nullptr), + : manager_test_(nullptr), profile_test_(nullptr), service_test_(nullptr), device_test_(nullptr) {} @@ -345,9 +341,6 @@ } void SetUpOnMainThread() override { - detector_ = new NetworkPortalDetectorTestImpl(); - chromeos::network_portal_detector::InitializeForTesting(detector_); - extensions::ExtensionApiTest::SetUpOnMainThread(); content::RunAllPendingInMessageLoop(); @@ -496,9 +489,6 @@ } protected: - NetworkPortalDetectorTestImpl* detector() { return detector_; } - - NetworkPortalDetectorTestImpl* detector_; ShillManagerClient::TestInterface* manager_test_; ShillProfileClient::TestInterface* profile_test_; ShillServiceClient::TestInterface* service_test_; @@ -820,37 +810,29 @@ IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, GetCaptivePortalStatus) { - SetupCellular(); - - NetworkPortalDetector::CaptivePortalState state; - state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; - detector()->SetDetectionResultsForTesting("stub_ethernet_guid", state); - - state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE; - detector()->SetDetectionResultsForTesting("stub_wifi1_guid", state); - - state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL; - detector()->SetDetectionResultsForTesting("stub_wifi2_guid", state); - - state.status = - NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED; - detector()->SetDetectionResultsForTesting("stub_cellular1_guid", state); + // Ethernet defaults to online. Set wifi1 to idle -> 'Offline', and wifi2 to + // redirect-found -> 'Portal'. + service_test_->SetServiceProperty(kWifi1ServicePath, shill::kStateProperty, + base::Value(shill::kStateIdle)); + service_test_->SetServiceProperty(kWifi2ServicePath, shill::kStateProperty, + base::Value(shill::kStateRedirectFound)); + base::RunLoop().RunUntilIdle(); EXPECT_TRUE(RunNetworkingSubtest("getCaptivePortalStatus")) << message_; } IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, CaptivePortalNotification) { - detector()->SetDefaultNetworkForTesting("wifi_guid"); - NetworkPortalDetector::CaptivePortalState state; - state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; - detector()->SetDetectionResultsForTesting("wifi_guid", state); - - TestListener listener( - "notifyPortalDetectorObservers", - base::BindRepeating( - &NetworkPortalDetectorTestImpl::NotifyObserversForTesting, - base::Unretained(detector()))); + // Make wifi1 the default service since captive portal notifications only + // occur for the default service. + service_test_->RemoveService("stub_ethernet"); + service_test_->RemoveService("stub_vpn1"); + TestListener listener("notifyPortalDetectorObservers", + base::BindLambdaForTesting([&]() { + service_test_->SetServiceProperty( + kWifi1ServicePath, shill::kStateProperty, + base::Value(shill::kStateRedirectFound)); + })); EXPECT_TRUE(RunNetworkingSubtest("captivePortalNotification")) << message_; }
diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc index c839f0e..b6c0feb 100644 --- a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc +++ b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc
@@ -155,6 +155,8 @@ content::BrowserContext* context) : context_(context) { event_router_ = EventRouter::Get(context_); + identity_manager_ = IdentityManagerFactory::GetForProfile( + Profile::FromBrowserContext(context_)); } SafeBrowsingPrivateEventRouter::~SafeBrowsingPrivateEventRouter() { @@ -757,8 +759,6 @@ // |identity_manager_| may be null in tests. If there is no identity // manager don't enable the real-time reporting API since the router won't // be able to fill in all the info needed for the reports. - identity_manager_ = IdentityManagerFactory::GetForProfile( - Profile::FromBrowserContext(context_)); if (!identity_manager_) { DVLOG(2) << "Safe browsing real-time event requires an identity manager."; return;
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_performancetest.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_performancetest.cc index 387d30a..30dc47d 100644 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_performancetest.cc +++ b/chrome/browser/extensions/api/tab_capture/tab_capture_performancetest.cc
@@ -6,6 +6,7 @@ #include <unordered_map> #include "base/command_line.h" +#include "base/files/file_util.h" #include "base/strings/stringprintf.h" #include "base/test/trace_event_analyzer.h" #include "build/build_config.h"
diff --git a/chrome/browser/extensions/app_process_apitest.cc b/chrome/browser/extensions/app_process_apitest.cc index 888623a..1551812 100644 --- a/chrome/browser/extensions/app_process_apitest.cc +++ b/chrome/browser/extensions/app_process_apitest.cc
@@ -364,6 +364,7 @@ content::RenderProcessHost* old_process = browser() ->tab_strip_model() ->GetWebContentsAt(2) + ->GetMainFrame() ->GetRenderViewHost() ->GetProcess(); NavigateInRenderer(browser()->tab_strip_model()->GetWebContentsAt(2),
diff --git a/chrome/browser/extensions/content_verifier_browsertest.cc b/chrome/browser/extensions/content_verifier_browsertest.cc index 2b17875..d31341ff 100644 --- a/chrome/browser/extensions/content_verifier_browsertest.cc +++ b/chrome/browser/extensions/content_verifier_browsertest.cc
@@ -9,6 +9,7 @@ #include "base/bind_helpers.h" #include "base/callback_helpers.h" +#include "base/files/file_util.h" #include "base/macros.h" #include "base/strings/string_split.h" #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/extensions/content_verifier_hash_fetch_behavior_browsertest.cc b/chrome/browser/extensions/content_verifier_hash_fetch_behavior_browsertest.cc index 473cd902..b30888b 100644 --- a/chrome/browser/extensions/content_verifier_hash_fetch_behavior_browsertest.cc +++ b/chrome/browser/extensions/content_verifier_hash_fetch_behavior_browsertest.cc
@@ -6,6 +6,7 @@ #include <string> #include "base/bind.h" +#include "base/files/file_util.h" #include "base/macros.h" #include "base/test/bind_test_util.h" #include "chrome/browser/extensions/browsertest_util.h"
diff --git a/chrome/browser/extensions/crx_installer_browsertest.cc b/chrome/browser/extensions/crx_installer_browsertest.cc index a4e3964a..39d1cf48 100644 --- a/chrome/browser/extensions/crx_installer_browsertest.cc +++ b/chrome/browser/extensions/crx_installer_browsertest.cc
@@ -11,6 +11,7 @@ #include "base/at_exit.h" #include "base/bind.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h"
diff --git a/chrome/browser/extensions/extension_apitest.h b/chrome/browser/extensions/extension_apitest.h index 17b61a0..e796eb4 100644 --- a/chrome/browser/extensions/extension_apitest.h +++ b/chrome/browser/extensions/extension_apitest.h
@@ -12,6 +12,7 @@ #include "base/values.h" #include "chrome/browser/extensions/extension_browsertest.h" #include "content/public/browser/notification_registrar.h" +#include "net/test/spawned_test_server/spawned_test_server.h" namespace base { class FilePath;
diff --git a/chrome/browser/extensions/extension_bindings_apitest.cc b/chrome/browser/extensions/extension_bindings_apitest.cc index 5e52e2e6..f490488d 100644 --- a/chrome/browser/extensions/extension_bindings_apitest.cc +++ b/chrome/browser/extensions/extension_bindings_apitest.cc
@@ -41,8 +41,10 @@ mouse_event.button = blink::WebMouseEvent::Button::kLeft; mouse_event.SetPositionInWidget(10, 10); mouse_event.click_count = 1; - web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( - mouse_event); + web_contents->GetMainFrame() + ->GetRenderViewHost() + ->GetWidget() + ->ForwardMouseEvent(mouse_event); } void MouseUpInWebContents(content::WebContents* web_contents) { @@ -52,8 +54,10 @@ mouse_event.button = blink::WebMouseEvent::Button::kLeft; mouse_event.SetPositionInWidget(10, 10); mouse_event.click_count = 1; - web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( - mouse_event); + web_contents->GetMainFrame() + ->GetRenderViewHost() + ->GetWidget() + ->ForwardMouseEvent(mouse_event); } class ExtensionBindingsApiTest : public ExtensionApiTest {
diff --git a/chrome/browser/extensions/extension_functional_browsertest.cc b/chrome/browser/extensions/extension_functional_browsertest.cc index de085d9..1b9cb25f 100644 --- a/chrome/browser/extensions/extension_functional_browsertest.cc +++ b/chrome/browser/extensions/extension_functional_browsertest.cc
@@ -4,6 +4,7 @@ #include <stddef.h> +#include "base/files/file_util.h" #include "base/test/metrics/histogram_tester.h" #include "build/build_config.h" #include "chrome/browser/extensions/crx_installer.h"
diff --git a/chrome/browser/extensions/extension_view_host.cc b/chrome/browser/extensions/extension_view_host.cc index e6e4795..53b9822 100644 --- a/chrome/browser/extensions/extension_view_host.cc +++ b/chrome/browser/extensions/extension_view_host.cc
@@ -90,8 +90,12 @@ content::HostZoomMap* zoom_map = content::HostZoomMap::GetForWebContents(host_contents()); zoom_map->SetTemporaryZoomLevel( - host_contents()->GetRenderViewHost()->GetProcess()->GetID(), - host_contents()->GetRenderViewHost()->GetRoutingID(), + host_contents() + ->GetMainFrame() + ->GetRenderViewHost() + ->GetProcess() + ->GetID(), + host_contents()->GetMainFrame()->GetRenderViewHost()->GetRoutingID(), zoom_map->GetDefaultZoomLevel()); } }
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc index 090500e..b2fab22 100644 --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc
@@ -597,11 +597,11 @@ ReportFailure(kDownloadDirectoryError, FAILURE_REASON_OTHER); return; } - if (!contents->GetRenderViewHost()) { + if (!contents->GetMainFrame()->GetRenderViewHost()) { ReportFailure(kDownloadDirectoryError, FAILURE_REASON_OTHER); return; } - if (!contents->GetRenderViewHost()->GetProcess()) { + if (!contents->GetMainFrame()->GetRenderViewHost()->GetProcess()) { ReportFailure(kDownloadDirectoryError, FAILURE_REASON_OTHER); return; } @@ -620,7 +620,7 @@ // We will navigate the current tab to this url to start the download. The // download system will then pass the crx to the CrxInstaller. int render_process_host_id = - contents->GetRenderViewHost()->GetProcess()->GetID(); + contents->GetMainFrame()->GetRenderViewHost()->GetProcess()->GetID(); content::RenderFrameHost* render_frame_host = contents->GetMainFrame(); net::NetworkTrafficAnnotationTag traffic_annotation =
diff --git a/chrome/browser/first_run/first_run_browsertest.cc b/chrome/browser/first_run/first_run_browsertest.cc index 272d4b7..925b4e1b 100644 --- a/chrome/browser/first_run/first_run_browsertest.cc +++ b/chrome/browser/first_run/first_run_browsertest.cc
@@ -7,6 +7,7 @@ #include "base/base_switches.h" #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/numerics/safe_conversions.h"
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 9a509811..32a8189d 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -1310,11 +1310,6 @@ "expiry_milestone": 85 }, { - "name": "enable-core-location-backend", - "owners": [ "jameshollyer@google.com" ], - "expiry_milestone": 90 - }, - { "name": "enable-core-location-implementation", "owners": [ "jameshollyer@google.com" ], "expiry_milestone": 88
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index a8465f03..733abc7 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -708,13 +708,7 @@ const char kMacCoreLocationImplementationName[] = "Core Location Implementation"; const char kMacCoreLocationImplementationDescription[] = - "Enables usage of the Core Location APIs to get location permission on " - "macOS"; - -const char kMacCoreLocationBackendName[] = "Core Location Backend"; -const char kMacCoreLocationBackendDescription[] = - "Enables usage of the Core Location APIs as the backend for Geolocation " - "API"; + "Enables usage of the Core Location APIs on macOS for geolocation"; const char kNewMacNotificationAPIName[] = "Determines which notification API to use on macOS devices";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 3b7d83c0..1124192 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -425,9 +425,6 @@ extern const char kMacCoreLocationImplementationName[]; extern const char kMacCoreLocationImplementationDescription[]; -extern const char kMacCoreLocationBackendName[]; -extern const char kMacCoreLocationBackendDescription[]; - extern const char kNewMacNotificationAPIName[]; extern const char kNewMacNotificationAPIDescription[];
diff --git a/chrome/browser/lifetime/browser_close_manager_browsertest.cc b/chrome/browser/lifetime/browser_close_manager_browsertest.cc index 4d32ce3..eb6ad50 100644 --- a/chrome/browser/lifetime/browser_close_manager_browsertest.cc +++ b/chrome/browser/lifetime/browser_close_manager_browsertest.cc
@@ -9,6 +9,7 @@ #include "base/bind.h" #include "base/command_line.h" +#include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/macros.h" #include "base/optional.h"
diff --git a/chrome/browser/media/webrtc/webrtc_apprtc_browsertest.cc b/chrome/browser/media/webrtc/webrtc_apprtc_browsertest.cc index be8b9eb..c616482 100644 --- a/chrome/browser/media/webrtc/webrtc_apprtc_browsertest.cc +++ b/chrome/browser/media/webrtc/webrtc_apprtc_browsertest.cc
@@ -3,6 +3,7 @@ // found in the LICENSE file. #include "base/command_line.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/process/launch.h" #include "base/rand_util.h"
diff --git a/chrome/browser/media/webrtc/webrtc_internals_integration_browsertest.cc b/chrome/browser/media/webrtc/webrtc_internals_integration_browsertest.cc index bf4de4f..82351afc 100644 --- a/chrome/browser/media/webrtc/webrtc_internals_integration_browsertest.cc +++ b/chrome/browser/media/webrtc/webrtc_internals_integration_browsertest.cc
@@ -4,6 +4,7 @@ #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/run_loop.h" #include "base/threading/thread_restrictions.h"
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc index ff99e0ff..ae36bc82 100644 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -152,6 +152,7 @@ #include "chrome/browser/metrics/assistant_service_metrics_provider.h" #include "chrome/browser/metrics/chromeos_metrics_provider.h" #include "chrome/browser/metrics/cros_healthd_metrics_provider.h" +#include "chrome/browser/metrics/family_link_user_metrics_provider.h" #include "chrome/browser/metrics/family_user_metrics_provider.h" #include "chrome/browser/signin/signin_status_metrics_provider_chromeos.h" #include "components/metrics/structured/structured_metrics_provider.h" @@ -749,6 +750,11 @@ metrics_service_->RegisterMetricsProvider( std::make_unique<FamilyUserMetricsProvider>()); } + + if (base::FeatureList::IsEnabled(chromeos::kFamilyLinkUserMetricsProvider)) { + metrics_service_->RegisterMetricsProvider( + std::make_unique<FamilyLinkUserMetricsProvider>()); + } #endif // defined(OS_CHROMEOS) #if !defined(OS_CHROMEOS)
diff --git a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_observer.cc b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_observer.cc index aa22146..b8371f34 100644 --- a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_observer.cc +++ b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_observer.cc
@@ -14,7 +14,7 @@ content::WebContents* web_contents, DesktopSessionDurationTracker* service) : content::WebContentsObserver(web_contents), service_(service) { - RegisterInputEventObserver(web_contents->GetRenderViewHost()); + RegisterInputEventObserver(web_contents->GetMainFrame()->GetRenderViewHost()); } DesktopSessionDurationObserver::~DesktopSessionDurationObserver() {}
diff --git a/chrome/browser/metrics/family_link_user_metrics_provider.cc b/chrome/browser/metrics/family_link_user_metrics_provider.cc new file mode 100644 index 0000000..4eb627776 --- /dev/null +++ b/chrome/browser/metrics/family_link_user_metrics_provider.cc
@@ -0,0 +1,113 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/metrics/family_link_user_metrics_provider.h" + +#include "base/bind.h" +#include "base/logging.h" +#include "base/metrics/histogram_functions.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/signin/identity_manager_factory.h" +#include "components/session_manager/core/session_manager.h" +#include "components/signin/public/identity_manager/consent_level.h" +#include "components/signin/public/identity_manager/identity_manager.h" +#include "components/signin/public/identity_manager/primary_account_access_token_fetcher.h" +#include "components/signin/public/identity_manager/scope_set.h" +#include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" +#include "google_apis/gaia/oauth2_id_token_decoder.h" + +namespace { + +constexpr char kHistogramName[] = "ChromeOS.FamilyLinkUser.LogSegment"; + +} // namespace + +FamilyLinkUserMetricsProvider::FamilyLinkUserMetricsProvider() { + session_manager::SessionManager* session_manager = + session_manager::SessionManager::Get(); + // The |session_manager| is nullptr only for unit tests. + if (session_manager) + session_manager->AddObserver(this); +} + +FamilyLinkUserMetricsProvider::~FamilyLinkUserMetricsProvider() { + session_manager::SessionManager* session_manager = + session_manager::SessionManager::Get(); + // The |session_manager| is nullptr only for unit tests. + if (session_manager) + session_manager->RemoveObserver(this); +} + +// This function is called at unpredictable intervals throughout the entire +// ChromeOS session, so guarantee it will never crash. +void FamilyLinkUserMetricsProvider::ProvideCurrentSessionData( + metrics::ChromeUserMetricsExtension* uma_proto_unused) { + if (!log_segment_) + return; + base::UmaHistogramEnumeration(kHistogramName, log_segment_.value()); +} + +void FamilyLinkUserMetricsProvider::OnUserSessionStarted(bool is_primary_user) { + if (!is_primary_user) + return; + + const user_manager::User* primary_user = + user_manager::UserManager::Get()->GetPrimaryUser(); + DCHECK(primary_user); + if (!primary_user->IsChild()) { + SetLogSegment(LogSegment::kOther); + return; + } + + DCHECK(primary_user->is_profile_created()); + Profile* profile = + chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); + DCHECK(profile); + DCHECK(chromeos::ProfileHelper::IsRegularProfile(profile)); + + signin::IdentityManager* identity_manager = + IdentityManagerFactory::GetForProfile(profile); + DCHECK(identity_manager); + + DCHECK(!access_token_fetcher_); + access_token_fetcher_ = + std::make_unique<signin::PrimaryAccountAccessTokenFetcher>( + /*consumer_name=*/"FamilyLinkUserMetricsProvider", identity_manager, + signin::ScopeSet(), + base::BindOnce( + &FamilyLinkUserMetricsProvider::OnAccessTokenRequestCompleted, + // It is safe to use base::Unretained as |this| owns + // |access_token_fetcher_|. See comments in + // primary_account_access_token_fetcher.h. + base::Unretained(this)), + signin::PrimaryAccountAccessTokenFetcher::Mode::kImmediate, + signin::ConsentLevel::kNotRequired); +} + +// static +const char* FamilyLinkUserMetricsProvider::GetHistogramNameForTesting() { + return kHistogramName; +} + +void FamilyLinkUserMetricsProvider::SetLogSegment(LogSegment log_segment) { + log_segment_ = log_segment; +} + +void FamilyLinkUserMetricsProvider::OnAccessTokenRequestCompleted( + GoogleServiceAuthError error, + signin::AccessTokenInfo access_token_info) { + access_token_fetcher_.reset(); + + if (error.state() != GoogleServiceAuthError::NONE) + return; + + gaia::TokenServiceFlags service_flags = + gaia::ParseServiceFlags(access_token_info.id_token); + LogSegment log_segment = service_flags.is_child_account + ? LogSegment::kUnderConsentAge + : LogSegment::kOverConsentAge; + SetLogSegment(log_segment); +}
diff --git a/chrome/browser/metrics/family_link_user_metrics_provider.h b/chrome/browser/metrics/family_link_user_metrics_provider.h new file mode 100644 index 0000000..7f24007 --- /dev/null +++ b/chrome/browser/metrics/family_link_user_metrics_provider.h
@@ -0,0 +1,81 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_METRICS_FAMILY_LINK_USER_METRICS_PROVIDER_H_ +#define CHROME_BROWSER_METRICS_FAMILY_LINK_USER_METRICS_PROVIDER_H_ + +#include <memory> + +#include "base/optional.h" +#include "components/metrics/metrics_provider.h" +#include "components/session_manager/core/session_manager_observer.h" +#include "components/signin/public/identity_manager/access_token_info.h" +#include "google_apis/gaia/google_service_auth_error.h" + +namespace metrics { +class ChromeUserMetricsExtension; +} // namespace metrics + +namespace signin { +class PrimaryAccountAccessTokenFetcher; +} // namespace signin + +// This metrics provider categorizes the current user into over or under the age +// of consent for UMA dashboard filtering. This metrics provider is ChromeOS +// specific. +class FamilyLinkUserMetricsProvider + : public metrics::MetricsProvider, + public session_manager::SessionManagerObserver { + public: + // These enum values represent the current user's supervision type for the + // Family Experiences team's metrics. + // These values are logged to UMA. Entries should not be renumbered and + // numeric values should never be reused. Please keep in sync with + // "FamilyLinkUserLogSegment" in src/tools/metrics/histograms/enums.xml. + enum class LogSegment { + // User does not fall into any of the below categories. For example, this + // bucket includes regular users. + kOther = 0, + // Child under age of consent. + kUnderConsentAge = 1, + // Regular Gaia account above the age of consent with supervision added. + kOverConsentAge = 2, + // Add future entries above this comment, in sync with + // "FamilyLinkUserLogSegment" in src/tools/metrics/histograms/enums.xml. + // Update kMaxValue to the last value. + kMaxValue = kOverConsentAge + }; + + FamilyLinkUserMetricsProvider(); + FamilyLinkUserMetricsProvider(const FamilyLinkUserMetricsProvider&) = delete; + FamilyLinkUserMetricsProvider& operator=( + const FamilyLinkUserMetricsProvider&) = delete; + ~FamilyLinkUserMetricsProvider() override; + + // metrics::MetricsProvider: + void ProvideCurrentSessionData( + metrics::ChromeUserMetricsExtension* uma_proto_unused) override; + + // session_manager::SessionManagerObserver: + void OnUserSessionStarted(bool is_primary_user) override; + + static const char* GetHistogramNameForTesting(); + + protected: + // This function is protected for testing. + virtual void SetLogSegment(LogSegment log_segment); + + private: + void OnAccessTokenRequestCompleted(GoogleServiceAuthError error, + signin::AccessTokenInfo access_token_info); + + std::unique_ptr<signin::PrimaryAccountAccessTokenFetcher> + access_token_fetcher_; + + // Cache the log segment because it won't change during the session once + // assigned. + base::Optional<LogSegment> log_segment_; +}; + +#endif // CHROME_BROWSER_METRICS_FAMILY_LINK_USER_METRICS_PROVIDER_H_
diff --git a/chrome/browser/metrics/family_link_user_metrics_provider_browsertest.cc b/chrome/browser/metrics/family_link_user_metrics_provider_browsertest.cc new file mode 100644 index 0000000..a770e93 --- /dev/null +++ b/chrome/browser/metrics/family_link_user_metrics_provider_browsertest.cc
@@ -0,0 +1,160 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/metrics/family_link_user_metrics_provider.h" + +#include "base/bind.h" +#include "base/callback_forward.h" +#include "base/run_loop.h" +#include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_feature_list.h" +#include "base/time/time.h" +#include "chrome/browser/browser_process.h" +#include "chrome/browser/chromeos/child_accounts/family_features.h" +#include "chrome/browser/chromeos/login/test/fake_gaia_mixin.h" +#include "chrome/browser/chromeos/login/test/guest_session_mixin.h" +#include "chrome/browser/supervised_user/logged_in_user_mixin.h" +#include "chrome/test/base/mixin_based_in_process_browser_test.h" +#include "components/metrics/delegating_provider.h" +#include "components/metrics/metrics_service.h" +#include "content/public/test/browser_test.h" +#include "third_party/metrics_proto/chrome_user_metrics_extension.pb.h" +#include "third_party/metrics_proto/system_profile.pb.h" + +namespace { + +// Returns the user type for logging in. +chromeos::LoggedInUserMixin::LogInType GetLogInType( + FamilyLinkUserMetricsProvider::LogSegment log_segment) { + switch (log_segment) { + case FamilyLinkUserMetricsProvider::LogSegment::kOther: + return chromeos::LoggedInUserMixin::LogInType::kRegular; + case FamilyLinkUserMetricsProvider::LogSegment::kUnderConsentAge: + case FamilyLinkUserMetricsProvider::LogSegment::kOverConsentAge: + return chromeos::LoggedInUserMixin::LogInType::kChild; + } +} + +void ProvideCurrentSessionData() { + // The purpose of the below call is to avoid a DCHECK failure in an unrelated + // metrics provider, in |FieldTrialsProvider::ProvideCurrentSessionData()|. + metrics::SystemProfileProto system_profile_proto; + g_browser_process->metrics_service() + ->GetDelegatingProviderForTesting() + ->ProvideSystemProfileMetricsWithLogCreationTime(base::TimeTicks::Now(), + &system_profile_proto); + metrics::ChromeUserMetricsExtension uma_proto; + g_browser_process->metrics_service() + ->GetDelegatingProviderForTesting() + ->ProvideCurrentSessionData(&uma_proto); +} + +} // namespace + +class FamilyLinkUserMetricsProviderForTesting + : public FamilyLinkUserMetricsProvider { + public: + FamilyLinkUserMetricsProviderForTesting() = default; + FamilyLinkUserMetricsProviderForTesting( + const FamilyLinkUserMetricsProviderForTesting&) = delete; + FamilyLinkUserMetricsProviderForTesting& operator=( + const FamilyLinkUserMetricsProviderForTesting&) = delete; + ~FamilyLinkUserMetricsProviderForTesting() override = default; + + void SetRunLoopQuitClosure(base::RepeatingClosure closure) { + quit_closure_ = base::BindOnce(closure); + } + + private: + void SetLogSegment(LogSegment log_segment) override { + FamilyLinkUserMetricsProvider::SetLogSegment(log_segment); + std::move(quit_closure_).Run(); + } + + base::OnceClosure quit_closure_; +}; + +class FamilyLinkUserMetricsProviderTest + : public MixinBasedInProcessBrowserTest, + public testing::WithParamInterface< + FamilyLinkUserMetricsProvider::LogSegment> { + public: + FamilyLinkUserMetricsProviderTest() { + scoped_feature_list_.InitAndEnableFeature( + chromeos::kFamilyLinkUserMetricsProvider); + } + + protected: + chromeos::LoggedInUserMixin logged_in_user_mixin_{ + &mixin_host_, GetLogInType(GetParam()), embedded_test_server(), + /*test_base=*/this}; + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +IN_PROC_BROWSER_TEST_P(FamilyLinkUserMetricsProviderTest, UserCategory) { + base::HistogramTester histogram_tester; + FamilyLinkUserMetricsProviderForTesting provider; + base::RunLoop run_loop; + + // Simulate calling ProvideCurrentSessionData() prior to logging in. This call + // should return prematurely. + provider.ProvideCurrentSessionData(/*uma_proto_unused=*/nullptr); + + // No metrics were recorded. + histogram_tester.ExpectTotalCount( + FamilyLinkUserMetricsProvider::GetHistogramNameForTesting(), 0); + + provider.SetRunLoopQuitClosure(run_loop.QuitClosure()); + + const FamilyLinkUserMetricsProvider::LogSegment log_segment = GetParam(); + // Set up service flags for children under the age of consent. + logged_in_user_mixin_.GetFakeGaiaMixin()->set_initialize_child_id_token( + log_segment == + FamilyLinkUserMetricsProvider::LogSegment::kUnderConsentAge); + logged_in_user_mixin_.LogInUser(/*issue_any_scope_token=*/true); + + run_loop.Run(); + + // Simulate calling ProvideCurrentSessionData() after logging in. + provider.ProvideCurrentSessionData(/*uma_proto_unused=*/nullptr); + + histogram_tester.ExpectUniqueSample( + FamilyLinkUserMetricsProvider::GetHistogramNameForTesting(), log_segment, + 1); +} + +INSTANTIATE_TEST_SUITE_P( + , + FamilyLinkUserMetricsProviderTest, + testing::Values( + FamilyLinkUserMetricsProvider::LogSegment::kOther, + FamilyLinkUserMetricsProvider::LogSegment::kUnderConsentAge, + FamilyLinkUserMetricsProvider::LogSegment::kOverConsentAge)); + +class FamilyLinkUserMetricsProviderGuestModeTest + : public MixinBasedInProcessBrowserTest { + public: + FamilyLinkUserMetricsProviderGuestModeTest() { + scoped_feature_list_.InitAndEnableFeature( + chromeos::kFamilyLinkUserMetricsProvider); + } + + private: + chromeos::GuestSessionMixin guest_session_mixin_{&mixin_host_}; + + base::test::ScopedFeatureList scoped_feature_list_; +}; + +// Tests that guest users go into the kOther bucket. +IN_PROC_BROWSER_TEST_F(FamilyLinkUserMetricsProviderGuestModeTest, GuestMode) { + base::HistogramTester histogram_tester; + + ProvideCurrentSessionData(); + + histogram_tester.ExpectUniqueSample( + FamilyLinkUserMetricsProvider::GetHistogramNameForTesting(), + FamilyLinkUserMetricsProvider::LogSegment::kOther, 1); +}
diff --git a/chrome/browser/metrics/metrics_memory_details.cc b/chrome/browser/metrics/metrics_memory_details.cc index 7396129..df80a4f7 100644 --- a/chrome/browser/metrics/metrics_memory_details.cc +++ b/chrome/browser/metrics/metrics_memory_details.cc
@@ -208,7 +208,7 @@ // If this is a RVH for a subframe; skip it to avoid double-counting the // WebContents. - if (rvh != contents->GetRenderViewHost()) + if (rvh != contents->GetMainFrame()->GetRenderViewHost()) continue; // The rest of this block will happen only once per WebContents.
diff --git a/chrome/browser/metrics/metrics_service_browsertest.cc b/chrome/browser/metrics/metrics_service_browsertest.cc index 3f89bc9..671a51c 100644 --- a/chrome/browser/metrics/metrics_service_browsertest.cc +++ b/chrome/browser/metrics/metrics_service_browsertest.cc
@@ -12,6 +12,7 @@ #include "base/command_line.h" #include "base/files/file_enumerator.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/process/memory.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/chrome/browser/net/chrome_network_delegate_browsertest.cc b/chrome/browser/net/chrome_network_delegate_browsertest.cc index aad2715..f74206d 100644 --- a/chrome/browser/net/chrome_network_delegate_browsertest.cc +++ b/chrome/browser/net/chrome_network_delegate_browsertest.cc
@@ -3,6 +3,7 @@ // found in the LICENSE file. #include "base/base_paths.h" +#include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/macros.h" #include "base/path_service.h"
diff --git a/chrome/browser/net/load_timing_browsertest.cc b/chrome/browser/net/load_timing_browsertest.cc index e4ea88df..aecdbaf 100644 --- a/chrome/browser/net/load_timing_browsertest.cc +++ b/chrome/browser/net/load_timing_browsertest.cc
@@ -132,8 +132,7 @@ EXPECT_EQ(navigation_deltas.ssl_start, -1); } -// TODO(crbug.com/1128033): flaky. -IN_PROC_BROWSER_TEST_F(LoadTimingBrowserTest, DISABLED_HTTPS) { +IN_PROC_BROWSER_TEST_F(LoadTimingBrowserTest, HTTPS) { net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); https_server.AddDefaultHandlers(); ASSERT_TRUE(https_server.Start());
diff --git a/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc b/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc index 375be74..a460db3 100644 --- a/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc +++ b/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc
@@ -13,6 +13,7 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/metrics/statistics_recorder.h" #include "base/path_service.h" #include "base/run_loop.h"
diff --git a/chrome/browser/password_manager/password_manager_browsertest.cc b/chrome/browser/password_manager/password_manager_browsertest.cc index 564549cf..1162668 100644 --- a/chrome/browser/password_manager/password_manager_browsertest.cc +++ b/chrome/browser/password_manager/password_manager_browsertest.cc
@@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/command_line.h" +#include "base/files/file_util.h" #include "base/macros.h" #include "base/memory/ptr_util.h" #include "base/metrics/histogram_samples.h"
diff --git a/chrome/browser/permissions/permission_request_manager_browsertest.cc b/chrome/browser/permissions/permission_request_manager_browsertest.cc index c4256c59..664fe11 100644 --- a/chrome/browser/permissions/permission_request_manager_browsertest.cc +++ b/chrome/browser/permissions/permission_request_manager_browsertest.cc
@@ -941,8 +941,11 @@ ASSERT_TRUE(VerifyUi()); // Simulate a render process crash while the permission prompt is pending. - content::RenderViewHost* render_view_host = - browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(); + content::RenderViewHost* render_view_host = browser() + ->tab_strip_model() + ->GetActiveWebContents() + ->GetMainFrame() + ->GetRenderViewHost(); content::RenderProcessHost* render_process_host = render_view_host->GetProcess(); content::RenderProcessHostWatcher crash_observer(
diff --git a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc index e6cd84b..df10c75a8 100644 --- a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc +++ b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc
@@ -5,6 +5,7 @@ #include "content/public/browser/picture_in_picture_window_controller.h" #include "base/bind.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/strings/utf_string_conversions.h" #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc b/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc index 44b8d53b..752c0a3 100644 --- a/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc +++ b/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc
@@ -157,26 +157,3 @@ content::WebContentsTester::CreateTestWebContents(profile(), nullptr)); EXPECT_FALSE(IsPluginAvailable(url, main_frame_origin, flash_plugin)); } - -TEST_F(ChromePluginServiceFilterTest, ManagedSetting) { - content::WebPluginInfo flash_plugin( - base::ASCIIToUTF16(content::kFlashPluginName), flash_plugin_path_, - base::ASCIIToUTF16("1"), base::ASCIIToUTF16("The Flash plugin.")); - - sync_preferences::TestingPrefServiceSyncable* prefs = - profile()->GetTestingPrefService(); - prefs->SetManagedPref(prefs::kManagedDefaultPluginsSetting, - std::make_unique<base::Value>(CONTENT_SETTING_ASK)); - - GURL url("http://www.google.com"); - url::Origin main_frame_origin = url::Origin::Create(url); - NavigateAndCommit(url); - - // Flash is normally blocked on the ASK managed policy. - EXPECT_FALSE(IsPluginAvailable(url, main_frame_origin, flash_plugin)); - - // Allow flash temporarily. - FlashTemporaryPermissionTracker::Get(profile())->FlashEnabledForWebContents( - web_contents()); - EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin, flash_plugin)); -}
diff --git a/chrome/browser/plugins/plugin_info_host_impl_unittest.cc b/chrome/browser/plugins/plugin_info_host_impl_unittest.cc index e4255d0..d6ea7272 100644 --- a/chrome/browser/plugins/plugin_info_host_impl_unittest.cc +++ b/chrome/browser/plugins/plugin_info_host_impl_unittest.cc
@@ -326,54 +326,3 @@ VerifyPluginContentSetting(GURL("unknown-scheme://foobar"), "foo", CONTENT_SETTING_BLOCK, true, false); } - -TEST_F(PluginInfoHostImplTest, GetPluginContentSetting) { - HostContentSettingsMap* map = host_content_settings_map(); - { - bool is_managed = false; - EXPECT_EQ( - CONTENT_SETTING_BLOCK, - PluginUtils::UnsafeGetRawDefaultFlashContentSetting(map, &is_managed)); - EXPECT_FALSE(is_managed); - } - - // Set plugins to Plugin Power Saver on example.com and subdomains. - GURL host("http://example.com/"); - map->SetContentSettingDefaultScope(host, GURL(), ContentSettingsType::PLUGINS, - std::string(), - CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); - - GURL unmatched_host("https://www.google.com"); - EXPECT_EQ( - CONTENT_SETTING_BLOCK, - map->GetContentSetting(unmatched_host, unmatched_host, - ContentSettingsType::PLUGINS, std::string())); - EXPECT_EQ(CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, - map->GetContentSetting(host, host, ContentSettingsType::PLUGINS, - std::string())); - - VerifyPluginContentSetting(host, std::string(), - CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, false, - false); - VerifyPluginContentSetting(unmatched_host, std::string(), - CONTENT_SETTING_BLOCK, false, false); - - // Block plugins via policy. - sync_preferences::TestingPrefServiceSyncable* prefs = - profile()->GetTestingPrefService(); - prefs->SetManagedPref(prefs::kManagedDefaultPluginsSetting, - std::make_unique<base::Value>(CONTENT_SETTING_BLOCK)); - - // All plugins should be blocked now. - VerifyPluginContentSetting(host, std::string(), CONTENT_SETTING_BLOCK, true, - true); - VerifyPluginContentSetting(unmatched_host, std::string(), - CONTENT_SETTING_BLOCK, true, true); - { - bool is_managed = false; - EXPECT_EQ( - CONTENT_SETTING_BLOCK, - PluginUtils::UnsafeGetRawDefaultFlashContentSetting(map, &is_managed)); - EXPECT_TRUE(is_managed); - } -}
diff --git a/chrome/browser/plugins/plugin_policy_handler.cc b/chrome/browser/plugins/plugin_policy_handler.cc index ffd2e82..b764259 100644 --- a/chrome/browser/plugins/plugin_policy_handler.cc +++ b/chrome/browser/plugins/plugin_policy_handler.cc
@@ -61,13 +61,6 @@ prefs->SetValue(prefs::kPluginsAlwaysOpenPdfExternally, base::Value(disable_pdf_plugin)); } - if ((base::MatchPattern( - PluginMetadata::kAdobeFlashPlayerGroupName, plugin) || - base::MatchPattern(content::kFlashPluginName, plugin)) && - !policies.GetValue(policy::key::kDefaultPluginsSetting)) { - prefs->SetValue(prefs::kManagedDefaultPluginsSetting, - base::Value(flash_content_setting)); - } } } @@ -114,11 +107,5 @@ !policies.GetValue(policy::key::kAlwaysOpenPdfExternally)) { prefs->RemoveValue(prefs::kPluginsAlwaysOpenPdfExternally); } - if ((base::MatchPattern( - PluginMetadata::kAdobeFlashPlayerGroupName, plugin) || - base::MatchPattern(content::kFlashPluginName, plugin)) && - !policies.GetValue(policy::key::kDefaultPluginsSetting)) { - prefs->RemoveValue(prefs::kManagedDefaultPluginsSetting); - } } }
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc index 295f78d..0769ba8 100644 --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -247,9 +247,6 @@ { key::kLegacySameSiteCookieBehaviorEnabled, prefs::kManagedDefaultLegacyCookieAccessSetting, base::Value::Type::INTEGER }, - { key::kDefaultPluginsSetting, - prefs::kManagedDefaultPluginsSetting, - base::Value::Type::INTEGER }, { key::kDefaultPopupsSetting, prefs::kManagedDefaultPopupsSetting, base::Value::Type::INTEGER },
diff --git a/chrome/browser/policy/extension_policy_browsertest.cc b/chrome/browser/policy/extension_policy_browsertest.cc index 1e4c78d..349c841 100644 --- a/chrome/browser/policy/extension_policy_browsertest.cc +++ b/chrome/browser/policy/extension_policy_browsertest.cc
@@ -4,6 +4,7 @@ #include <memory> +#include "base/files/file_util.h" #include "base/run_loop.h" #include "base/test/bind_test_util.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/chrome/browser/prefs/pref_functional_browsertest.cc b/chrome/browser/prefs/pref_functional_browsertest.cc index 2be07ea..62d4a0bd 100644 --- a/chrome/browser/prefs/pref_functional_browsertest.cc +++ b/chrome/browser/prefs/pref_functional_browsertest.cc
@@ -4,6 +4,7 @@ #include <string> +#include "base/files/file_util.h" #include "base/memory/ptr_util.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_restrictions.h"
diff --git a/chrome/browser/renderer_context_menu/copy_link_to_text_menu_observer.cc b/chrome/browser/renderer_context_menu/copy_link_to_text_menu_observer.cc index 52249ce..9913a07f 100644 --- a/chrome/browser/renderer_context_menu/copy_link_to_text_menu_observer.cc +++ b/chrome/browser/renderer_context_menu/copy_link_to_text_menu_observer.cc
@@ -66,15 +66,23 @@ // the generated string if it succeeds or an empty string if it fails. content::RenderFrameHost* main_frame = proxy_->GetWebContents()->GetMainFrame(); - if (main_frame) { - main_frame->GetRemoteInterfaces()->GetInterface( - remote_.BindNewPipeAndPassReceiver()); - remote_->GenerateSelector( - base::BindOnce(&CopyLinkToTextMenuObserver::OnGeneratedSelector, - weak_ptr_factory_.GetWeakPtr(), - std::make_unique<ui::ClipboardDataEndpoint>( - main_frame->GetLastCommittedOrigin()))); + if (!main_frame) + return; + + if (main_frame != proxy_->GetWebContents()->GetFocusedFrame()) { + OnGeneratedSelector(std::make_unique<ui::ClipboardDataEndpoint>( + main_frame->GetLastCommittedOrigin()), + std::string()); + return; } + + main_frame->GetRemoteInterfaces()->GetInterface( + remote_.BindNewPipeAndPassReceiver()); + remote_->GenerateSelector( + base::BindOnce(&CopyLinkToTextMenuObserver::OnGeneratedSelector, + weak_ptr_factory_.GetWeakPtr(), + std::make_unique<ui::ClipboardDataEndpoint>( + main_frame->GetLastCommittedOrigin()))); } void CopyLinkToTextMenuObserver::OnGeneratedSelector(
diff --git a/chrome/browser/renderer_context_menu/copy_link_to_text_menu_observer_interactive_uitest.cc b/chrome/browser/renderer_context_menu/copy_link_to_text_menu_observer_interactive_uitest.cc index 90cce0c9..8ec764a 100644 --- a/chrome/browser/renderer_context_menu/copy_link_to_text_menu_observer_interactive_uitest.cc +++ b/chrome/browser/renderer_context_menu/copy_link_to_text_menu_observer_interactive_uitest.cc
@@ -9,9 +9,12 @@ #include "base/strings/utf_string_conversions.h" #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/renderer_context_menu/mock_render_view_context_menu.h" +#include "chrome/browser/ui/browser.h" #include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" #include "content/public/browser/context_menu_params.h" #include "content/public/test/browser_test.h" +#include "net/dns/mock_host_resolver.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/clipboard/clipboard.h" @@ -22,7 +25,16 @@ CopyLinkToTextMenuObserverTest(); void SetUp() override { InProcessBrowserTest::SetUp(); } - void SetUpOnMainThread() override { Reset(false); } + void SetUpOnMainThread() override { + Reset(false); + + host_resolver()->AddRule("*", "127.0.0.1"); + + // Add content/test/data for cross_site_iframe_factory.html + embedded_test_server()->ServeFilesFromSourceDirectory("content/test/data"); + + ASSERT_TRUE(embedded_test_server()->Start()); + } void TearDownOnMainThread() override { observer_.reset(); menu_.reset(); @@ -113,3 +125,33 @@ EXPECT_EQ(base::UTF8ToUTF16("\"hello world\"\nhttp://foo.com/#:~:text=hello"), text); } + +// crbug.com/1139864 +IN_PROC_BROWSER_TEST_F(CopyLinkToTextMenuObserverTest, + InvalidSelectorForIframe) { + GURL main_url( + embedded_test_server()->GetURL("a.com", "/page_with_iframe.html")); + + ui_test_utils::NavigateToURL(browser(), main_url); + + content::WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + content::RenderFrameHost* main_frame_a = web_contents->GetMainFrame(); + content::RenderFrameHost* child_frame_b = ChildFrameAt(main_frame_a, 0); + EXPECT_TRUE(ExecuteScript(child_frame_b, "window.focus();")); + EXPECT_EQ(child_frame_b, web_contents->GetFocusedFrame()); + + menu()->set_web_contents(web_contents); + + content::BrowserTestClipboardScope test_clipboard_scope; + content::ContextMenuParams params; + params.page_url = main_url; + params.selection_text = base::UTF8ToUTF16("hello world"); + InitMenu(params); + menu()->ExecuteCommand(IDC_CONTENT_CONTEXT_COPYLINKTOTEXT, 0); + + ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); + base::string16 text; + clipboard->ReadText(ui::ClipboardBuffer::kCopyPaste, nullptr, &text); + EXPECT_EQ(base::UTF8ToUTF16("\"hello world\"\n" + main_url.spec()), text); +}
diff --git a/chrome/browser/resource_coordinator/tab_activity_watcher.cc b/chrome/browser/resource_coordinator/tab_activity_watcher.cc index fc5481f..019c4d4 100644 --- a/chrome/browser/resource_coordinator/tab_activity_watcher.cc +++ b/chrome/browser/resource_coordinator/tab_activity_watcher.cc
@@ -196,7 +196,10 @@ explicit WebContentsData(content::WebContents* web_contents) : WebContentsObserver(web_contents) { DCHECK(!web_contents->GetBrowserContext()->IsOffTheRecord()); - web_contents->GetRenderViewHost()->GetWidget()->AddInputEventObserver(this); + web_contents->GetMainFrame() + ->GetRenderViewHost() + ->GetWidget() + ->AddInputEventObserver(this); creation_time_ = NowTicks();
diff --git a/chrome/browser/resource_coordinator/tab_activity_watcher_unittest.cc b/chrome/browser/resource_coordinator/tab_activity_watcher_unittest.cc index 834bf1f..bfb74cb 100644 --- a/chrome/browser/resource_coordinator/tab_activity_watcher_unittest.cc +++ b/chrome/browser/resource_coordinator/tab_activity_watcher_unittest.cc
@@ -526,7 +526,7 @@ // Fake some input events. content::RenderWidgetHost* widget_1 = - test_contents_1->GetRenderViewHost()->GetWidget(); + test_contents_1->GetMainFrame()->GetRenderViewHost()->GetWidget(); widget_1->ForwardMouseEvent( CreateMouseEvent(WebInputEvent::Type::kMouseDown)); widget_1->ForwardMouseEvent(CreateMouseEvent(WebInputEvent::Type::kMouseUp)); @@ -543,7 +543,7 @@ // The second tab's counts are independent of the other's. content::RenderWidgetHost* widget_2 = - test_contents_2->GetRenderViewHost()->GetWidget(); + test_contents_2->GetMainFrame()->GetRenderViewHost()->GetWidget(); widget_2->ForwardMouseEvent( CreateMouseEvent(WebInputEvent::Type::kMouseMove)); expected_metrics_2[TabManager_TabMetrics::kMouseEventCountName] = 1; @@ -575,7 +575,7 @@ // After a navigation, test that the counts are reset. WebContentsTester::For(test_contents_1)->NavigateAndCommit(TestUrls()[2]); // The widget may have been invalidated by the navigation. - widget_1 = test_contents_1->GetRenderViewHost()->GetWidget(); + widget_1 = test_contents_1->GetMainFrame()->GetRenderViewHost()->GetWidget(); widget_1->ForwardMouseEvent( CreateMouseEvent(WebInputEvent::Type::kMouseMove)); expected_metrics_1[TabManager_TabMetrics::kMouseEventCountName] = 1;
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_af.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_af.xtb index 573d2a7..cfca14e 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_af.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_af.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Diep hemelblou</translation> <translation id="4406249099130339147">Leestekeneggo:</translation> <translation id="4432457053224379116">Indiese rooi</translation> +<translation id="4432896207833262240">Gemerkte inhoud</translation> <translation id="4437615272777527928">Tik om die kieslyste te deursoek. Gebruik die op- en afpyl om deur resultate te beweeg. Gebruik die links- en regspyl om die teksinlasteken te verstel en tussen kieslyste te beweeg.</translation> <translation id="4457472090507035117">Kies huidige stem:</translation> <translation id="4476183483923481720">nuwe reël</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb index 75bf2af4..48da400 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">ጠለቅ ያለ የሰማይ ሰማያዊ</translation> <translation id="4406249099130339147">የሥርዓተ ነጥብ ማሚቶ፦</translation> <translation id="4432457053224379116">የህንድ ቀይ</translation> +<translation id="4432896207833262240">ምልክት የተደረገበት ይዘት</translation> <translation id="4437615272777527928">ምናሌዎችን ለመፈለግ ይተይቡ። ውጤቶቹን ለማሰስ ወደ ላይ እና ወደታች ቀስቶችን ይጠቀሙ የጽሑፍ ክብደቱን ለማስተካከል እና በምናሌዎች መካከል ለማንቀሳቀስ የግራ እና ይቀኝ ቀስቶችን ይጠቀሙ።</translation> <translation id="4457472090507035117">አሁን ያለውን ድምፅ ይመረጡ፦</translation> <translation id="4476183483923481720">አዲስ መስመር</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb index 171e496e..27fd681 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb
@@ -455,6 +455,7 @@ <translation id="4402014469255336455">গাঢ় আকাশী নীলা</translation> <translation id="4406249099130339147">যতিচিহ্নৰ ইক’:</translation> <translation id="4432457053224379116">ভাৰতীয় ৰঙা</translation> +<translation id="4432896207833262240">চিহ্নিত কৰা সমল</translation> <translation id="4437615272777527928">মেনুসমূহ সন্ধান কৰিবলৈ টাইপ কৰক। ফলাফলসমূহৰ মাজত তল ওপৰ কৰিবলৈ up আৰু down কাঁড়চিহ্ন ব্যৱহাৰ কৰক। পাঠৰ কেৰেট মিলাবলৈ আৰু মেনুসমূহৰ মাজত ইফাল-সিফাল কৰিবলৈ left আৰু right কাঁড়চিহ্ন ব্যৱহাৰ কৰক।</translation> <translation id="4457472090507035117">বৰ্তমানৰ কণ্ঠস্বৰ বাছনি কৰক:</translation> <translation id="4476183483923481720">নতুন শাৰী</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb index fba2720..b6e4dd83 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Tünd səma mavisi</translation> <translation id="4406249099130339147">Punktsuasiya exosu:</translation> <translation id="4432457053224379116">Hindu Qırmızısı</translation> +<translation id="4432896207833262240">İşarələnmiş məzmun</translation> <translation id="4437615272777527928">Menyularda axtarış etmək üçün yazın. Nəticələri gözdən keçirmək üçün yuxarı və aşağı ox düymələrini basın. Mətn kursorunu tənzimləmək və menyular arasında keçid etmək üçün sol və sağ ox düymələrini basın.</translation> <translation id="4457472090507035117">Cari səs seçin:</translation> <translation id="4476183483923481720">yeni xətt</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb index 5118900..690ba58 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Нябесна-сіні</translation> <translation id="4406249099130339147">Рэха пунктуацыі:</translation> <translation id="4432457053224379116">Індыйскі чырвоны</translation> +<translation id="4432896207833262240">Пазначанае змесціва</translation> <translation id="4437615272777527928">Пачніце ўводзіць тэкст, які трэба знайсці ў меню. Для прагляду вынікаў выкарыстоўвайце клавішы са стрэлкамі ўверх і ўніз. Каб змяняць становішча курсора рэдагавання тэксту і перамяшчацца паміж меню, выкарыстоўвайце клавішы са стрэлкамі ўлева і ўправа.</translation> <translation id="4457472090507035117">Выбар бягучага голасу:</translation> <translation id="4476183483923481720">новы радок</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb index 29b56090..7a8dc87 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">наситено небесносиньо</translation> <translation id="4406249099130339147">Ехо за препинателните знаци:</translation> <translation id="4432457053224379116">индийско червено</translation> +<translation id="4432896207833262240">Маркирано съдържание</translation> <translation id="4437615272777527928">Въведете текст, за да търсите в менютата. Използвайте стрелките нагоре и надолу, за да се придвижвате в резултатите. Коригирайте текстовия курсор и се придвижвайте между менютата със стрелките наляво и надясно.</translation> <translation id="4457472090507035117">Изберете текущия глас:</translation> <translation id="4476183483923481720">нов ред</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb index 94b4ead..fbfdcde5 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Blau cel intens</translation> <translation id="4406249099130339147">Lectura de la puntuació:</translation> <translation id="4432457053224379116">Vermell indi</translation> +<translation id="4432896207833262240">Contingut marcat</translation> <translation id="4437615272777527928">Escriu per cercar als menús. Fes servir les fletxes amunt i cp avall per moure't entre els resultats. Fes servir les tecles de fletxa esquerra i dreta per ajustar la marca d'inserció de text i per moure't entre els menús.</translation> <translation id="4457472090507035117">Selecciona la veu actual:</translation> <translation id="4476183483923481720">línia nova</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb index 22506f9..7f46188 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Sytá nebeská modrá</translation> <translation id="4406249099130339147">Hlasová odezva interpunkce:</translation> <translation id="4432457053224379116">Indiánská červená</translation> +<translation id="4432896207833262240">Označený obsah</translation> <translation id="4437615272777527928">Zadejte, co chcete v nabídkách vyhledat. K procházení výsledků můžete použít šipky nahoru a dolů. Pomocí šipek vlevo a vpravo můžete upravit textový kurzor a přecházet mezi nabídkami.</translation> <translation id="4457472090507035117">Vybrat aktuální hlas:</translation> <translation id="4476183483923481720">nový řádek</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_el.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_el.xtb index 52d28bd3..f59d8f9 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_el.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_el.xtb
@@ -457,6 +457,7 @@ <translation id="4402014469255336455">Βαθύ μπλε του ουρανού</translation> <translation id="4406249099130339147">Εκφώνηση σημείων στίξης:</translation> <translation id="4432457053224379116">Ινδικό κόκκινο</translation> +<translation id="4432896207833262240">Επισημασμένο περιεχόμενο</translation> <translation id="4437615272777527928">Πληκτρολογήστε για αναζήτηση στα μενού. Χρησιμοποιήστε το επάνω και το κάτω βέλος για περιήγηση μεταξύ των αποτελεσμάτων. Χρησιμοποιήστε το αριστερό και το δεξί βέλος, για να προσαρμόσετε τον δρομέα κειμένου και για να μετακινηθείτε μεταξύ των μενού.</translation> <translation id="4457472090507035117">Επιλογή τρέχουσας φωνής:</translation> <translation id="4476183483923481720">νέα γραμμή</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb index 55aeb44..a8686276 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Azul cielo oscuro</translation> <translation id="4406249099130339147">Eco de los signos de puntuación:</translation> <translation id="4432457053224379116">Rojo indio</translation> +<translation id="4432896207833262240">Contenido marcado</translation> <translation id="4437615272777527928">Escribe para realizar una búsqueda en los menús. Usa las flechas hacia arriba y abajo para moverte entre los resultados. Usa las flechas hacia la izquierda y la derecha para ajustar el símbolo de intercalación de texto y para moverte entre los menús.</translation> <translation id="4457472090507035117">Seleccionar voz actual:</translation> <translation id="4476183483923481720">Nueva línea</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb index a7a1752..9dcaf97 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Azul cielo intenso</translation> <translation id="4406249099130339147">Lectura de puntuación:</translation> <translation id="4432457053224379116">Rojo indio</translation> +<translation id="4432896207833262240">Contenido marcado</translation> <translation id="4437615272777527928">Escribe para buscar en los menús. Utiliza las flechas hacia arriba y hacia abajo para desplazarte por los resultados. Utiliza las flechas hacia la izquierda y hacia la derecha del teclado para ajustar el símbolo de intercalación de texto y para pasar de un menú a otro.</translation> <translation id="4457472090507035117">Selecciona la voz actual:</translation> <translation id="4476183483923481720">nueva línea</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb index 49de295..01e6b108 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">آبی آسمانی پررنگ</translation> <translation id="4406249099130339147">بازگویی علائم سجاوندی</translation> <translation id="4432457053224379116">جگری</translation> +<translation id="4432896207833262240">محتوای علامتدار</translation> <translation id="4437615272777527928">برای جستجو در منوها، تایپ کنید. برای جابهجایی بین نتایج از پیکانهای بالا و پایین استفاده کنید. برای تنظیم کردن هشتک نوشتار و حرکت کردن بین منوها از پیکانهای چپ و راست استفاده کنید.</translation> <translation id="4457472090507035117">انتخاب صدای فعلی:</translation> <translation id="4476183483923481720">خط جدید</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb index d6f43b9..19823498 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Syvä taivaansininen</translation> <translation id="4406249099130339147">Välimerkkien puhuminen:</translation> <translation id="4432457053224379116">Intianpunainen</translation> +<translation id="4432896207833262240">Merkitty sisältö</translation> <translation id="4437615272777527928">Hae valikoista kirjoittamalla. Selaa tuloksia ylä- ja alanuolilla. Säädä tekstikursoria ja siirry valikoiden välillä vasemmalla ja oikealla nuolinäppäimellä.</translation> <translation id="4457472090507035117">Valitse nykyinen ääni:</translation> <translation id="4476183483923481720">uusi rivi</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb index d49964e..679449c0 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Bleu ciel foncé</translation> <translation id="4406249099130339147">Énonciation de la ponctuation :</translation> <translation id="4432457053224379116">Rouge indien</translation> +<translation id="4432896207833262240">Contenu marqué</translation> <translation id="4437615272777527928">Tapez pour effectuer une recherche dans les menus. Servez-vous des flèches vers le haut et vers le bas pour naviguer dans les résultats. Servez-vous des flèches de gauche et de droite pour ajuster le point d'insertion de texte et pour vous déplacer entre les menus.</translation> <translation id="4457472090507035117">Sélectionner la voix actuelle :</translation> <translation id="4476183483923481720">nouvelle ligne</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb index ec1e879..d0b6f80 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Azul celeste escuro</translation> <translation id="4406249099130339147">Eco da puntuación:</translation> <translation id="4432457053224379116">Vermello indio</translation> +<translation id="4432896207833262240">Contido marcado</translation> <translation id="4437615272777527928">Escribir consulta para buscar nos menús. Usar frechas arriba e abaixo para desprazarse polos resultados. Usar frechas dereita e esquerda para axustar o cursor de texto e moverse entre os menús.</translation> <translation id="4457472090507035117">Selecciona a voz actual:</translation> <translation id="4476183483923481720">liña nova</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hi.xtb index 1d2c6d0..991dfad 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hi.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">गहरा आसमानी नीला</translation> <translation id="4406249099130339147">विराम चिह्न इको:</translation> <translation id="4432457053224379116">हल्का मरून</translation> +<translation id="4432896207833262240">मार्क किया गया कॉन्टेंट</translation> <translation id="4437615272777527928">मेन्यू खोजने के लिए टाइप करें. नतीजों पर जाने के लिए अप और डाउन ऐरो का इस्तेमाल करें. टेक्स्ट कैरेट को व्यवस्थित करने और एक से दूसरे मेन्यू पर जाने के लिए, लेफ़्ट और राइट ऐरो का इस्तेमाल करें.</translation> <translation id="4457472090507035117">मौजूदा ध्वनि चुनें:</translation> <translation id="4476183483923481720">नई पंक्ति</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hu.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hu.xtb index 532524a..0e014af 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hu.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hu.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Mély égszínkék</translation> <translation id="4406249099130339147">Írásjelek felolvasása:</translation> <translation id="4432457053224379116">Indiai vörös</translation> +<translation id="4432896207833262240">Megjelölt tartalom</translation> <translation id="4437615272777527928">Kezdjen el gépelni a menükben való kereséshez. A találatok között a felfelé és lefelé mutató nyilakkal mozoghat. A jobbra és balra mutató nyílbillentyűkkel a szövegbeszúrási pontot módosíthatja, illetve a menükben mozoghat.</translation> <translation id="4457472090507035117">Az aktuális hang kiválasztása:</translation> <translation id="4476183483923481720">új sor</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb index a264c8e..04816f6 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Deep Sky Blue</translation> <translation id="4406249099130339147">Gema tanda baca:</translation> <translation id="4432457053224379116">Indian Red</translation> +<translation id="4432896207833262240">Konten yang ditandai</translation> <translation id="4437615272777527928">Ketik untuk menelusuri di menu. Gunakan panah atas dan bawah untuk menjelajahi hasil. Gunakan panah kiri dan kanan untuk menyesuaikan kursor teks, dan untuk berpindah antar-menu.</translation> <translation id="4457472090507035117">Pilih suara saat ini:</translation> <translation id="4476183483923481720">baris baru</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_is.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_is.xtb index 408307a8..a7cd3f6 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_is.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_is.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Dökkhiminblár</translation> <translation id="4406249099130339147">Upplestur greinarmerkja:</translation> <translation id="4432457053224379116">Rauðbrúnn</translation> +<translation id="4432896207833262240">Merkt efni</translation> <translation id="4437615272777527928">Skrifaðu til að leita í valmyndunum. Notaðu upp- og niðurörvarnar til að fletta í gegnum niðurstöður. Notaðu örvarnar til vinstri og hægri til að færa textabendilinn til og fara á milli valmynda.</translation> <translation id="4457472090507035117">Velja núverandi rödd:</translation> <translation id="4476183483923481720">ný lína</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb index be0d449..d486f2ea 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">გაჯერებული ცისფერი</translation> <translation id="4406249099130339147">პუნქტუაციის ექო:</translation> <translation id="4432457053224379116">ინდური წითელი</translation> +<translation id="4432896207833262240">მონიშნული კონტენტი</translation> <translation id="4437615272777527928">აკრიფეთ ტექსტი მენიუებში ძიებისთვის. შედეგებში ნავიგაციისთვის გამოიყენეთ ზემოთ და ქვემოთ მიმართული ისრები. ტექსტში კურსორის კორექტირებისთვისა და მენიუებს შორის გადაადგილებისთვის გამოიყენეთ მარჯვნივ და მარცხნივ მიმართული ისრები.</translation> <translation id="4457472090507035117">აირჩიეთ ამჟამინდელი ხმა:</translation> <translation id="4476183483923481720">ახალი ხაზი</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb index c5252fb..78a202a 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">ស៊ីលៀប</translation> <translation id="4406249099130339147">ការនិយាយតាមសញ្ញាវណ្ណយុត្ត៖</translation> <translation id="4432457053224379116">ឈាមជ្រូកចាស់</translation> +<translation id="4432896207833262240">ខ្លឹមសារដែលបានសម្គាល់</translation> <translation id="4437615272777527928">វាយបញ្ចូល ដើម្បីស្វែងរកម៉ឺនុយ។ ប្រើព្រួញឡើងលើ និងចុះក្រោម ដើម្បីរុករកលទ្ធផល។ ប្រើព្រួញទៅឆ្វេង និងទៅស្ដាំ ដើម្បីកែតម្រូវទស្សន៍ទ្រនិចអក្សរ និងដើម្បីផ្លាស់ទីរវាងម៉ឺនុយនានា។</translation> <translation id="4457472090507035117">ជ្រើសរើសសំឡេងបច្ចុប្បន្ន៖</translation> <translation id="4476183483923481720">បន្ទាត់ថ្មី</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ko.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ko.xtb index 2857141..0dbafb0 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ko.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ko.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">딥 스카이 블루</translation> <translation id="4406249099130339147">구두점 에코:</translation> <translation id="4432457053224379116">인디언 레드</translation> +<translation id="4432896207833262240">표시된 콘텐츠</translation> <translation id="4437615272777527928">입력하여 메뉴를 검색합니다. 위쪽 및 아래쪽 화살표를 사용하여 다른 결과로 이동합니다. 왼쪽 및 오른쪽 화살표를 사용하여 텍스트 캐럿을 조정하고 메뉴 간에 이동합니다.</translation> <translation id="4457472090507035117">현재 음성 선택:</translation> <translation id="4476183483923481720">새로운 행</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb index 00c82c6..c9d36c0 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Асмандын түсүндөй кочкул көк</translation> <translation id="4406249099130339147">Тыныш белгилеринин жаңырыгы:</translation> <translation id="4432457053224379116">Индустардын кызыл түсү</translation> +<translation id="4432896207833262240">Белгиленген мазмун</translation> <translation id="4437615272777527928">Менюларда издөө үчүн териңиз. Натыйжаларды карап чыгуу үчүн жогору жана төмөн баскычтарын басыңыз. Курсорду тууралоо жана менюдан менюга жылуу үчүн солго жана оңго баскычтарын басыңыз.</translation> <translation id="4457472090507035117">Учурдагы үндү тандаңыз:</translation> <translation id="4476183483923481720">жаңы сап</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lv.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lv.xtb index 95ad82fb..b26d2ec 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lv.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lv.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Piesātināti debeszils</translation> <translation id="4406249099130339147">Pieturzīmju atbalss:</translation> <translation id="4432457053224379116">Dzelzs oksīda sarkana</translation> +<translation id="4432896207833262240">Atzīmētais saturs</translation> <translation id="4437615272777527928">Rakstiet, lai meklētu saturu izvēlnēs. Lai pārlūkotu rezultātus, izmantojiet augšupvērsto un lejupvērsto bultiņu. Izmantojiet pa kreisi un pa labi vērstās bultiņas, lai pielāgotu teksta ievietošanas punktu un pārvietotos pa izvēlnēm.</translation> <translation id="4457472090507035117">Atlasiet pašreizējo balsi:</translation> <translation id="4476183483923481720">jauna rindiņa</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb index 061ad13..1f7e2f9 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb
@@ -457,6 +457,7 @@ <translation id="4402014469255336455">Темна небесносина</translation> <translation id="4406249099130339147">Ехо на интерпункција:</translation> <translation id="4432457053224379116">Индискоцрвена</translation> +<translation id="4432896207833262240">Означени содржини</translation> <translation id="4437615272777527928">Напишете текст за пребарување на менијата. Користете ги стрелките за горе и долу за да ги прелистувате резултатите. Користете ги стрелките за лево и десно за да го приспособите каретот за текст и да се движите помеѓу менијата.</translation> <translation id="4457472090507035117">Изберете тековен глас:</translation> <translation id="4476183483923481720">нова линија</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb index 6b45bef..e0fe0ee 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">കടും ആകാശനീല</translation> <translation id="4406249099130339147">വിരാമചിഹ്നം എക്കോ:</translation> <translation id="4432457053224379116">ഇന്ത്യൻ ചുവപ്പ്</translation> +<translation id="4432896207833262240">അടയാളപ്പെടുത്തിയ ഉള്ളടക്കം</translation> <translation id="4437615272777527928">മെനുകൾ തിരയാൻ ടൈപ്പ് ചെയ്യുക. ഫലങ്ങളിലൂടെ കടന്നുപോകാൻ മുകളിലേക്കും താഴേക്കുമുള്ള അമ്പടയാളങ്ങൾ ഉപയോഗിക്കുക. ടെക്സ്റ്റ് കാരറ്റിന്റെ വലുപ്പം മാറ്റാനും മെനുകൾക്കിടയിൽ നീക്കാനും ഇടത്തേക്കും വലത്തേക്കുമുള്ള അമ്പടയാളങ്ങൾ ഉപയോഗിക്കുക.</translation> <translation id="4457472090507035117">നിലവിലെ ശബ്ദം തിരഞ്ഞെടുക്കുക:</translation> <translation id="4476183483923481720">പുതിയ വരി</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb index d351e68..e63d5a1b 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Biru Langit Tua</translation> <translation id="4406249099130339147">Gema tanda baca:</translation> <translation id="4432457053224379116">Merah India</translation> +<translation id="4432896207833262240">Kandungan bertanda</translation> <translation id="4437615272777527928">Taip untuk mencari dalam menu. Gunakan anak panah ke atas dan ke bawah untuk pergi ke setiap hasil carian. Gunakan anak panah ke kiri dan ke kanan untuk melaraskan karet teks dan bergerak daripada satu menu kepada menu yang lain.</translation> <translation id="4457472090507035117">Pilih suara semasa:</translation> <translation id="4476183483923481720">garisan baharu</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_my.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_my.xtb index 6864728..5c3035b 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_my.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_my.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">ကောင်းကင်ပြာ အရင့်</translation> <translation id="4406249099130339147">ပုဒ်ဖြတ်ပုဒ်ရပ် ပဲ့တင့်သံ-</translation> <translation id="4432457053224379116">အိန္ဒိယ အနီ</translation> +<translation id="4432896207833262240">မှတ်သားထားသော အကြောင်းအရာ</translation> <translation id="4437615272777527928">စာရိုက်၍ မီနူးများ ရှာပါ။ ရလဒ်များကို ဝိုင်းရန် အပေါ်၊ အောက် မြားများ အသုံးပြုပါ။ စာသားကာရက် ချိန်ညှိရန်နှင့် မီနူးများအကြား ရွှေ့ရန် ဘယ်၊ ညာ မြားများ အသုံးပြုပါ။</translation> <translation id="4457472090507035117">လက်ရှိအသံကို ရွေးပါ−</translation> <translation id="4476183483923481720">လိုင်းအသစ်</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_or.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_or.xtb index 707f7ef..8c027b1a 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_or.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_or.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">ଗାଢ଼ ଆକାଶିଆ ନୀଳ</translation> <translation id="4406249099130339147">ବିରାମ ଚିହ୍ନର ଇକୋ:</translation> <translation id="4432457053224379116">ଇଣ୍ଡିଆନ୍ ରେଡ୍</translation> +<translation id="4432896207833262240">ଚିହ୍ନଟ କରାଯାଇଥିବା ବିଷୟବସ୍ତୁ</translation> <translation id="4437615272777527928">ମେନୁ ସନ୍ଧାନ କରିବାକୁ ଟାଇପ୍ କରନ୍ତୁ। ଫଳାଫଳକୁ ଯିବା ପାଇଁ ଅପ୍ ଏବଂ ଡାଉନ୍ ତୀର କୀ'ଗୁଡ଼ିକ ବ୍ୟବହାର କରନ୍ତୁ। ଟେକ୍ସଟ୍ କ୍ୟାରେଟ୍ ଆଡଜଷ୍ଟ କରିବାକୁ ଏବଂ ମେନୁଗୁଡ଼ିକ ମଧ୍ୟରେ ମୁଭ୍ କରିବାକୁ ବାମ ଏବଂ ଡାହାଣ ତୀର କୀ'ଗୁଡ଼ିକ ବ୍ୟବହାର କରନ୍ତୁ।</translation> <translation id="4457472090507035117">ବର୍ତ୍ତମାନର ସ୍ୱରକୁ ଚୟନ କରନ୍ତୁ:</translation> <translation id="4476183483923481720">ନୂଆ ରେଖା</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb index 6d5be2ac..1f15fe4 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Azul-celeste-escuro</translation> <translation id="4406249099130339147">Pontuação falada:</translation> <translation id="4432457053224379116">Vermelho-indiano</translation> +<translation id="4432896207833262240">Conteúdo marcado</translation> <translation id="4437615272777527928">Digite para pesquisar nos menus. Use as setas para cima e para baixo para percorrer os resultados. Use as setas para a esquerda e direita para ajustar o cursor de texto e navegar entre os menus.</translation> <translation id="4457472090507035117">Selecione a voz atual:</translation> <translation id="4476183483923481720">linha nova</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ro.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ro.xtb index 000253c..9b299ad8 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ro.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ro.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Albastru celest</translation> <translation id="4406249099130339147">Redare vocală a punctuației:</translation> <translation id="4432457053224379116">Roșu indian</translation> +<translation id="4432896207833262240">Conținut marcat</translation> <translation id="4437615272777527928">Tastează pentru a căuta în meniuri. Folosește săgețile în sus și în jos pentru a răsfoi rezultatele. Folosește săgețile spre dreapta și spre stânga pentru a ajusta cursorul pentru text și pentru a trece de la un meniu la altul.</translation> <translation id="4457472090507035117">Selectează vocea actuală:</translation> <translation id="4476183483923481720">rând nou</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb index 9aa8a9db..d107c5f 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Насыщенный небесно-голубой</translation> <translation id="4406249099130339147">Озвучивание знаков пунктуации:</translation> <translation id="4432457053224379116">Индийский красный</translation> +<translation id="4432896207833262240">Выделенный контент</translation> <translation id="4437615272777527928">Чтобы выполнить поиск в меню, начните вводить текст. Для переключения между результатами используйте клавиши со стрелками вверх и вниз. Чтобы перемещать текстовый курсор и переходить из одного меню в другое, используйте клавиши со стрелками влево и вправо.</translation> <translation id="4457472090507035117">Голос:</translation> <translation id="4476183483923481720">Новая строка.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sl.xtb index 6c97e0d7..43231523 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sl.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Temno nebesno modra</translation> <translation id="4406249099130339147">Odmev izgovarjanja ločil:</translation> <translation id="4432457053224379116">Indijanska rdeča</translation> +<translation id="4432896207833262240">Označena vsebina</translation> <translation id="4437615272777527928">Vnesite, če želite iskati po menijih. Po rezultatih lahko krožite s puščicama gor in dol. S puščicama levo in desno prilagodite kazalko v besedilu ter se premikate med meniji.</translation> <translation id="4457472090507035117">Izbira trenutnega glasu:</translation> <translation id="4476183483923481720">nova vrstica</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb index 28631e5..2074e0b 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Blu qielli e thellë</translation> <translation id="4406249099130339147">Jehona e pikësimit:</translation> <translation id="4432457053224379116">E kuqe indiane</translation> +<translation id="4432896207833262240">Përmbajtje e shënuar</translation> <translation id="4437615272777527928">Shkruaj për të kërkuar në meny. Përdor shigjetat lart dhe poshtë për të kaluar në cikël mes rezultateve. Përdor shigjetat majtas dhe djathtas për të rregulluar kursorin e tekstit dhe për të lëvizur mes menyve.</translation> <translation id="4457472090507035117">Zgjidh zërin aktual:</translation> <translation id="4476183483923481720">kryeradhë</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb index afc73a2c..1955e493 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Djupt himmelsblå</translation> <translation id="4406249099130339147">Upprepa skiljetecken:</translation> <translation id="4432457053224379116">Brunröd</translation> +<translation id="4432896207833262240">Markerat innehåll</translation> <translation id="4437615272777527928">Skriv det du vill söka efter i menyerna. Bläddra bland resultat med upp- och nedpilarna. Justera textmarkören och navigera mellan menyer med vänster- och högerpilarna.</translation> <translation id="4457472090507035117">Välj den aktuella rösten:</translation> <translation id="4476183483923481720">ny rad</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb index 1aa0d32..c8307b2 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Samawati ya Anga Iliyokolea</translation> <translation id="4406249099130339147">Mwangwi wa uakifishaji:</translation> <translation id="4432457053224379116">Nyekundu Iliyokolea</translation> +<translation id="4432896207833262240">Maudhui yaliyotiwa alama</translation> <translation id="4437615272777527928">Andika ili utafute kwenye menyu. Tumia vishale vya juu na chini ili upitie matokeo. Tumia vishale vya kushoto na kulia ili urekebishe kiteuzi cha maandishi na usogeze kati ya menyu.</translation> <translation id="4457472090507035117">Chagua sauti iliyopo sasa:</translation> <translation id="4476183483923481720">mstari mpya</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_th.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_th.xtb index ec54deb..20242977 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_th.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_th.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">สีฟ้าท้องฟ้าเข้ม</translation> <translation id="4406249099130339147">เสียงสะท้อนของเครื่องหมายวรรคตอน</translation> <translation id="4432457053224379116">สีแดงอินเดียนเรด</translation> +<translation id="4432896207833262240">เนื้อหาที่มีการทำเครื่องหมาย</translation> <translation id="4437615272777527928">พิมพ์เพื่อค้นหาเมนู ใช้ลูกศรขึ้นและลงเพื่อวนดูผลการค้นหา ใช้แป้นลูกศรซ้ายและขวาเพื่อปรับเครื่องหมาย Caret ของข้อความและเพื่อย้ายระหว่างเมนู</translation> <translation id="4457472090507035117">เลือกเสียงปัจจุบัน:</translation> <translation id="4476183483923481720">บรรทัดใหม่</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb index 2733d0e..d6dbb28c 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Koyu Gök Mavisi</translation> <translation id="4406249099130339147">Noktalama yansıtma:</translation> <translation id="4432457053224379116">Hint Kırmızısı</translation> +<translation id="4432896207833262240">İşaretli içerik</translation> <translation id="4437615272777527928">Menülerde aramak için yazmaya başlayın. Sonuçlar arasında geçiş yapmak için yukarı ve aşağı okları kullanın. Metin imlecini ayarlamak ve menüler arasında dolaşmak için sol ve sağ okları kullanın.</translation> <translation id="4457472090507035117">Geçerli sesi seçin:</translation> <translation id="4476183483923481720">yeni satır</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_uz.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_uz.xtb index 38f149c..5611c55 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_uz.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_uz.xtb
@@ -455,6 +455,7 @@ <translation id="4402014469255336455">Yorqin moviy</translation> <translation id="4406249099130339147">Tinish belgilarining oʻqilishi:</translation> <translation id="4432457053224379116">Xinarang</translation> +<translation id="4432896207833262240">Belgilangan kontent</translation> <translation id="4437615272777527928">Menyuda qidirish uchun soʻrovni kiriting. Natijalarga oʻtish uchun yuqoriga va pastga strelkalarini bosing. Matn kursorini siljitish va bir menyudan boshqasiga oʻtish uchun chapga va oʻngga strelkalaridan foydalaning.</translation> <translation id="4457472090507035117">Joriy ovozni tanlash:</translation> <translation id="4476183483923481720">yangi qator</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb index 1257e0d..39a443b 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Màu xanh da trời đậm</translation> <translation id="4406249099130339147">Đọc to dấu câu:</translation> <translation id="4432457053224379116">Màu đỏ Ấn Độ</translation> +<translation id="4432896207833262240">Nội dung được đánh dấu</translation> <translation id="4437615272777527928">Nhập để tìm kiếm trong trình đơn. Sử dụng các mũi tên lên và xuống để chuyển qua kết quả. Sử dụng các mũi tên trái và phải để điều chỉnh điểm chèn văn bản và di chuyển giữa các trình đơn.</translation> <translation id="4457472090507035117">Chọn giọng nói hiện tại:</translation> <translation id="4476183483923481720">dòng mới</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zu.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zu.xtb index 9108daf..d2a306c 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zu.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zu.xtb
@@ -456,6 +456,7 @@ <translation id="4402014469255336455">Okuluhlaza okwesibhakabhaka okujulile</translation> <translation id="4406249099130339147">I-echo yezimpawu zokubhala:</translation> <translation id="4432457053224379116">I-Indian Red</translation> +<translation id="4432896207833262240">Okuqukethwe okumakiwe</translation> <translation id="4437615272777527928">Thayipha ukuze useshe amamenyu. Sebenzisa imicibisholo phansi naphezulu ukuze ujikeleze emiphumeleni. Sebenzisa imicibisholo kwesokunxele nakwesokudla ukuze ulungise umbhalo we-caret, nokuhamba phakathi kwamanenyu.</translation> <translation id="4457472090507035117">Khetha izwi lamanje:</translation> <translation id="4476183483923481720">umugqa omusha</translation>
diff --git a/chrome/browser/resources/gaia_auth_host/saml_password_attributes_test.unitjs b/chrome/browser/resources/gaia_auth_host/saml_password_attributes_test.unitjs index f684c53..aedec05 100644 --- a/chrome/browser/resources/gaia_auth_host/saml_password_attributes_test.unitjs +++ b/chrome/browser/resources/gaia_auth_host/saml_password_attributes_test.unitjs
@@ -21,6 +21,7 @@ /** @override */ testGenCppIncludes() { + GEN(`#include "base/files/file_util.h"`); GEN(`#include "chrome/test/base/ui_test_utils.h"`); GEN(`#include "content/public/test/browser_test.h"`); },
diff --git a/chrome/browser/resources/read_later/app.html b/chrome/browser/resources/read_later/app.html index 4732bbc..f638b42 100644 --- a/chrome/browser/resources/read_later/app.html +++ b/chrome/browser/resources/read_later/app.html
@@ -2,7 +2,7 @@ #header { align-items: center; display: flex; - font-size: var(--mwb-primary-text-font-size); + font-size: 15px; height: var(--mwb-item-height); margin: 0; padding-inline-start: var(--mwb-list-item-horizontal-margin);
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/README.md b/chrome/browser/safe_browsing/cloud_content_scanning/README.md new file mode 100644 index 0000000..6153f2c --- /dev/null +++ b/chrome/browser/safe_browsing/cloud_content_scanning/README.md
@@ -0,0 +1,10 @@ +This directory includes cloud scanning code that is shared across user uploads +and user downloads scanning features. This includes: + * Chrome Enterprise Connectors that scan content. + * Chrome Advanced Protection Program file download scans. + +Code specific to user downloads cloud scanning should be added to +`//chrome/browser/safe_browsing/download_protection/` instead. + +Code specific to user uploads cloud scanning or Chrome Enterprise Connectors +should be added to `//chrome/browser/enterprise/connectors/` instead.
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_test_utils.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_test_utils.cc index dc9d3706..edd4b3f4 100644 --- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_test_utils.cc +++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_test_utils.cc
@@ -141,7 +141,8 @@ const std::string& expected_reason, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result) { + const std::string& expected_result, + const std::string& expected_username) { event_key_ = SafeBrowsingPrivateEventRouter::kKeyUnscannedFileEvent; url_ = expected_url; filename_ = expected_filename; @@ -151,6 +152,7 @@ unscanned_reason_ = expected_reason; content_size_ = expected_content_size; result_ = expected_result; + username_ = expected_username; EXPECT_CALL(*client_, UploadRealtimeReport_(_, _)) .WillOnce([this](base::Value& report, base::OnceCallback<void(bool)>& callback) { @@ -168,7 +170,8 @@ const std::string& expected_trigger, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result) { + const std::string& expected_result, + const std::string& expected_username) { event_key_ = SafeBrowsingPrivateEventRouter::kKeyDangerousDownloadEvent; url_ = expected_url; filename_ = expected_filename; @@ -178,6 +181,7 @@ trigger_ = expected_trigger; content_size_ = expected_content_size; result_ = expected_result; + username_ = expected_username; EXPECT_CALL(*client_, UploadRealtimeReport_(_, _)) .WillOnce([this](base::Value& report, base::OnceCallback<void(bool)>& callback) { @@ -196,7 +200,8 @@ expected_dlp_verdict, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result) { + const std::string& expected_result, + const std::string& expected_username) { event_key_ = SafeBrowsingPrivateEventRouter::kKeySensitiveDataEvent; url_ = expected_url; dlp_verdict_ = expected_dlp_verdict; @@ -206,6 +211,7 @@ trigger_ = expected_trigger; content_size_ = expected_content_size; result_ = expected_result; + username_ = expected_username; EXPECT_CALL(*client_, UploadRealtimeReport_(_, _)) .WillOnce([this](base::Value& report, base::OnceCallback<void(bool)>& callback) { @@ -226,7 +232,8 @@ expected_dlp_verdict, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result) { + const std::string& expected_result, + const std::string& expected_username) { event_key_ = SafeBrowsingPrivateEventRouter::kKeyDangerousDownloadEvent; url_ = expected_url; filename_ = expected_filename; @@ -236,6 +243,7 @@ mimetypes_ = expected_mimetypes; content_size_ = expected_content_size; result_ = expected_result; + username_ = expected_username; EXPECT_CALL(*client_, UploadRealtimeReport_(_, _)) .WillOnce([this](base::Value& report, base::OnceCallback<void(bool)>& callback) { @@ -264,7 +272,8 @@ expected_dlp_verdict, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result) { + const std::string& expected_result, + const std::string& expected_username) { event_key_ = SafeBrowsingPrivateEventRouter::kKeySensitiveDataEvent; url_ = expected_url; filename_ = expected_filename; @@ -274,6 +283,7 @@ content_size_ = expected_content_size; result_ = expected_result; dlp_verdict_ = expected_dlp_verdict; + username_ = expected_username; EXPECT_CALL(*client_, UploadRealtimeReport_(_, _)) .WillOnce([this](base::Value& report, base::OnceCallback<void(bool)>& callback) { @@ -299,7 +309,8 @@ const std::string& expected_trigger, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result) { + const std::string& expected_result, + const std::string& expected_username) { event_key_ = SafeBrowsingPrivateEventRouter::kKeyDangerousDownloadEvent; url_ = expected_url; filename_ = expected_filename; @@ -309,6 +320,7 @@ trigger_ = expected_trigger; content_size_ = expected_content_size; result_ = expected_result; + username_ = expected_username; EXPECT_CALL(*client_, UploadRealtimeReport_(_, _)) .WillOnce([this](base::Value& report, base::OnceCallback<void(bool)>& callback) { @@ -350,6 +362,8 @@ threat_type_); ValidateField(event, SafeBrowsingPrivateEventRouter::kKeyUnscannedReason, unscanned_reason_); + ValidateField(event, SafeBrowsingPrivateEventRouter::kKeyProfileUserName, + username_); ValidateMimeType(event); ValidateDlpVerdict(event); }
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_test_utils.h b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_test_utils.h index 81be414..89058766 100644 --- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_test_utils.h +++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_test_utils.h
@@ -42,7 +42,8 @@ const std::string& expected_trigger, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result); + const std::string& expected_result, + const std::string& expected_username); void ExpectSensitiveDataEvent( const std::string& expected_url, @@ -53,7 +54,8 @@ expected_dlp_verdict, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result); + const std::string& expected_result, + const std::string& expected_username); void ExpectDangerousDeepScanningResultAndSensitiveDataEvent( const std::string& expected_url, @@ -65,7 +67,8 @@ expected_dlp_verdict, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result); + const std::string& expected_result, + const std::string& expected_username); void ExpectSensitiveDataEventAndDangerousDeepScanningResult( const std::string& expected_url, @@ -77,7 +80,8 @@ expected_dlp_verdict, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result); + const std::string& expected_result, + const std::string& expected_username); void ExpectUnscannedFileEvent(const std::string& expected_url, const std::string& expected_filename, @@ -86,7 +90,8 @@ const std::string& expected_reason, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result); + const std::string& expected_result, + const std::string& expected_username); void ExpectDangerousDownloadEvent( const std::string& expected_url, @@ -96,7 +101,8 @@ const std::string& expected_trigger, const std::set<std::string>* expected_mimetypes, int expected_content_size, - const std::string& expected_result); + const std::string& expected_result, + const std::string& expected_username); void ExpectNoReport(); @@ -134,6 +140,7 @@ base::Optional<int> content_size_ = base::nullopt; const std::set<std::string>* mimetypes_ = nullptr; base::Optional<std::string> result_ = base::nullopt; + std::string username_; base::RepeatingClosure done_closure_; };
diff --git a/chrome/browser/safe_browsing/download_protection/README.md b/chrome/browser/safe_browsing/download_protection/README.md new file mode 100644 index 0000000..935f6136 --- /dev/null +++ b/chrome/browser/safe_browsing/download_protection/README.md
@@ -0,0 +1,11 @@ +This directory includes code that scans downloaded content for security reasons. +This includes: + * Safe Browsing metadata checks. + * Chrome Advanced Protection Program file download scans. + * Chrome Enterprise Connectors file download scans. + +Code shared with user uploads cloud scanning should be added to +`//chrome/browser/safe_browsing/cloud_content_scanning/` instead. + +Code specific to user uploads cloud scanning or Chrome Enterprise Connectors +should be added to `//chrome/browser/enterprise/connectors/` instead.
diff --git a/chrome/browser/safe_browsing/download_protection/deep_scanning_browsertest.cc b/chrome/browser/safe_browsing/download_protection/deep_scanning_browsertest.cc index 4917e26..323335d 100644 --- a/chrome/browser/safe_browsing/download_protection/deep_scanning_browsertest.cc +++ b/chrome/browser/safe_browsing/download_protection/deep_scanning_browsertest.cc
@@ -36,6 +36,7 @@ #include "components/safe_browsing/core/features.h" #include "components/safe_browsing/core/proto/csd.pb.h" #include "components/safe_browsing/core/proto/webprotect.pb.h" +#include "components/signin/public/identity_manager/identity_test_environment.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/download_manager.h" #include "content/public/test/browser_test.h" @@ -47,6 +48,8 @@ namespace { +constexpr char kUserName[] = "test@chromium.org"; + // Extract the metadata proto from the raw request string. Returns true on // success. bool GetUploadMetadata( @@ -119,6 +122,13 @@ extensions::SafeBrowsingPrivateEventRouterFactory::GetForProfile( browser()->profile()) ->SetCloudPolicyClientForTesting(client_.get()); + identity_test_environment_ = + std::make_unique<signin::IdentityTestEnvironment>(); + identity_test_environment_->MakePrimaryAccountAvailable(kUserName); + extensions::SafeBrowsingPrivateEventRouterFactory::GetForProfile( + browser()->profile()) + ->SetIdentityManagerForTesting( + identity_test_environment_->identity_manager()); } policy::MockCloudPolicyClient* client() { return client_.get(); } @@ -357,6 +367,7 @@ base::flat_set<download::DownloadItem*> download_items_; std::unique_ptr<policy::MockCloudPolicyClient> client_; + std::unique_ptr<signin::IdentityTestEnvironment> identity_test_environment_; }; IN_PROC_BROWSER_TEST_F(DownloadDeepScanningBrowserTest, @@ -650,7 +661,8 @@ extensions::SafeBrowsingPrivateEventRouter::kTriggerFileDownload, /*mimetypes*/ &zip_types, /*size*/ 276, - /*result*/ EventResultToString(EventResult::WARNED)); + /*result*/ EventResultToString(EventResult::WARNED), + /*username*/ kUserName); // The DLP scan finishes asynchronously, and finds nothing. The malware result // is attached to the response again. @@ -736,7 +748,8 @@ /*dlp_verdict*/ *result, /*mimetypes*/ &zip_types, /*size*/ 276, - /*result*/ EventResultToString(EventResult::WARNED)); + /*result*/ EventResultToString(EventResult::WARNED), + /*username*/ kUserName); WaitForDownloadToFinish(); // The file should be blocked. @@ -804,7 +817,8 @@ extensions::SafeBrowsingPrivateEventRouter::kTriggerFileDownload, /*mimetypes*/ &zip_types, /*size*/ 276, - /*result*/ EventResultToString(EventResult::BLOCKED)); + /*result*/ EventResultToString(EventResult::BLOCKED), + /*username*/ kUserName); WaitForDownloadToFinish(); @@ -1044,7 +1058,8 @@ extensions::SafeBrowsingPrivateEventRouter::kTriggerFileDownload, /*mimetypes*/ &zip_types, /*size*/ 276, - /*result*/ EventResultToString(EventResult::WARNED)); + /*result*/ EventResultToString(EventResult::WARNED), + /*username*/ kUserName); } // The deep scanning malware verdict is returned asynchronously. It is not
diff --git a/chrome/browser/safe_browsing/download_protection/deep_scanning_request_unittest.cc b/chrome/browser/safe_browsing/download_protection/deep_scanning_request_unittest.cc index 64a3d4cf..57bc8bb 100644 --- a/chrome/browser/safe_browsing/download_protection/deep_scanning_request_unittest.cc +++ b/chrome/browser/safe_browsing/download_protection/deep_scanning_request_unittest.cc
@@ -36,6 +36,7 @@ #include "components/safe_browsing/core/common/safe_browsing_prefs.h" #include "components/safe_browsing/core/features.h" #include "components/safe_browsing/core/proto/webprotect.pb.h" +#include "components/signin/public/identity_manager/identity_test_environment.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/download_item_utils.h" #include "content/public/test/browser_task_environment.h" @@ -50,6 +51,8 @@ namespace { +constexpr char kUserName[] = "test@chromium.org"; + const std::set<std::string>* ExeMimeTypes() { static std::set<std::string> set = {"application/x-msdownload", "application/x-ms-dos-executable", @@ -409,6 +412,10 @@ extensions::SafeBrowsingPrivateEventRouterFactory::GetForProfile(profile_) ->SetBinaryUploadServiceForTesting( download_protection_service_.GetFakeBinaryUploadService()); + identity_test_environment_.MakePrimaryAccountAvailable(kUserName); + extensions::SafeBrowsingPrivateEventRouterFactory::GetForProfile(profile_) + ->SetIdentityManagerForTesting( + identity_test_environment_.identity_manager()); download_protection_service_.GetFakeBinaryUploadService() ->SetAuthForTesting(true); @@ -424,6 +431,7 @@ protected: std::unique_ptr<policy::MockCloudPolicyClient> client_; + signin::IdentityTestEnvironment identity_test_environment_; }; TEST_F(DeepScanningReportingTest, ProcessesResponseCorrectly) { @@ -477,7 +485,8 @@ /*dlp_verdict*/ *dlp_result, /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("download contents").size(), - /*result*/ EventResultToString(EventResult::WARNED)); + /*result*/ EventResultToString(EventResult::WARNED), + /*username*/ kUserName); request.Start(); @@ -527,7 +536,8 @@ /*dlp_verdict*/ *dlp_result, /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("download contents").size(), - /*result*/ EventResultToString(EventResult::WARNED)); + /*result*/ EventResultToString(EventResult::WARNED), + /*username*/ kUserName); request.Start(); @@ -567,7 +577,8 @@ /*dlp_verdict*/ *dlp_result, /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("download contents").size(), - EventResultToString(EventResult::BLOCKED)); + EventResultToString(EventResult::BLOCKED), + /*username*/ kUserName); request.Start(); @@ -607,7 +618,8 @@ /*dlp_verdict*/ *dlp_result, /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("download contents").size(), - EventResultToString(EventResult::WARNED)); + EventResultToString(EventResult::WARNED), + /*username*/ kUserName); request.Start(); @@ -651,7 +663,8 @@ /*dlp_verdict*/ *dlp_result, /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("download contents").size(), - EventResultToString(EventResult::BLOCKED)); + EventResultToString(EventResult::BLOCKED), + /*username*/ kUserName); request.Start(); @@ -688,7 +701,8 @@ /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("download contents").size(), /*result*/ - EventResultToString(EventResult::ALLOWED)); + EventResultToString(EventResult::ALLOWED), + /*username*/ kUserName); request.Start(); @@ -725,7 +739,8 @@ /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("download contents").size(), /*result*/ - EventResultToString(EventResult::ALLOWED)); + EventResultToString(EventResult::ALLOWED), + /*username*/ kUserName); request.Start(); @@ -804,7 +819,8 @@ extensions::SafeBrowsingPrivateEventRouter::kTriggerFileDownload, /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("download contents").size(), - /*result*/ EventResultToString(expected_event_result_for_malware())); + /*result*/ EventResultToString(expected_event_result_for_malware()), + /*username*/ kUserName); request.Start(); @@ -843,7 +859,8 @@ extensions::SafeBrowsingPrivateEventRouter::kTriggerFileDownload, /*mimetypes*/ ExeMimeTypes(), /*size*/ std::string("download contents").size(), - /*result*/ EventResultToString(EventResult::WARNED)); + /*result*/ EventResultToString(EventResult::WARNED), + /*username*/ kUserName); request.Start();
diff --git a/chrome/browser/service_process/service_process_control_browsertest.cc b/chrome/browser/service_process/service_process_control_browsertest.cc index e6d9765..3486838 100644 --- a/chrome/browser/service_process/service_process_control_browsertest.cc +++ b/chrome/browser/service_process/service_process_control_browsertest.cc
@@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/command_line.h" +#include "base/files/file_util.h" #include "base/location.h" #include "base/path_service.h" #include "base/process/kill.h"
diff --git a/chrome/browser/share/BUILD.gn b/chrome/browser/share/BUILD.gn index a6bd40aa..a0ed41aa 100644 --- a/chrome/browser/share/BUILD.gn +++ b/chrome/browser/share/BUILD.gn
@@ -9,6 +9,7 @@ source_set("share") { sources = [ "bitmap_download_request.cc", + "editor_screenshot_task.cc", "features.cc", "features.h", "link_to_text_metrics_bridge.cc", @@ -23,7 +24,9 @@ "//components/shared_highlighting/core/common", "//content/public/browser", "//skia", + "//ui/android", "//ui/gfx", + "//ui/snapshot", ] }
diff --git a/chrome/browser/share/DEPS b/chrome/browser/share/DEPS index 2a25c16..e63ade6 100644 --- a/chrome/browser/share/DEPS +++ b/chrome/browser/share/DEPS
@@ -11,8 +11,6 @@ "+chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java", "+chrome/android/java/src/org/chromium/chrome/browser/modules/ModuleInstallUi.java", "+chrome/android/java/src/org/chromium/chrome/browser/notifications", - "+chrome/android/java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotSource.java", - "+chrome/android/java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotTask.java", "+chrome/android/java/src/org/chromium/chrome/browser/share", "+chrome/services/qrcode_generator", "+components/browser_ui/notifications/android", @@ -22,5 +20,6 @@ "+components/infobars/android", "+components/shared_highlighting/core/common", "+content/public/android/java/src/org/chromium/content_public/browser/RenderWidgetHostView.java", + "+content/public/android/java/src/org/chromium/content_public/browser/UiThreadTaskTraits.java", "+content/public/android/java/src/org/chromium/content_public/browser/WebContents.java", ]
diff --git a/chrome/browser/share/android/BUILD.gn b/chrome/browser/share/android/BUILD.gn index 07e7853..9bece8b 100644 --- a/chrome/browser/share/android/BUILD.gn +++ b/chrome/browser/share/android/BUILD.gn
@@ -38,6 +38,7 @@ "java/src/org/chromium/chrome/browser/share/BitmapDownloadRequest.java", "java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextMetricsBridge.java", "java/src/org/chromium/chrome/browser/share/qrcode/QRCodeGenerationRequest.java", + "java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotTask.java", "java/src/org/chromium/chrome/browser/share/send_tab_to_self/NotificationManager.java", "java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfAndroidBridge.java", "java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfEntry.java",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotSource.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotSource.java similarity index 94% rename from chrome/android/java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotSource.java rename to chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotSource.java index 46e3b59e..140c98f6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotSource.java +++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotSource.java
@@ -2,7 +2,7 @@ // 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.screenshot; +package org.chromium.chrome.browser.share.screenshot; import android.graphics.Bitmap;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotTask.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotTask.java similarity index 96% rename from chrome/android/java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotTask.java rename to chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotTask.java index d5fb150..b153693 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/screenshot/EditorScreenshotTask.java +++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotTask.java
@@ -2,7 +2,7 @@ // 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.screenshot; +package org.chromium.chrome.browser.share.screenshot; import android.app.Activity; import android.graphics.Bitmap; @@ -16,7 +16,6 @@ import org.chromium.base.annotations.NativeMethods; import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.app.ChromeActivity; -import org.chromium.chrome.browser.tab.SadTab; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.content_public.browser.UiThreadTaskTraits; @@ -138,7 +137,7 @@ if (!currentTab.isUserInteractable()) return true; // If the tab focused and not showing Android widget based content, then use the Compositor // based screenshot. - if (currentTab.getNativePage() == null && !SadTab.isShowing(currentTab)) return true; + if (currentTab.getNativePage() == null && !currentTab.isShowingCustomView()) return true; // Assume the UI is drawn primarily by Android widgets, so do not use the Compositor // screenshot.
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinator.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinator.java index 5235695..04f31de 100644 --- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinator.java +++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinator.java
@@ -12,8 +12,6 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.image_editor.ImageEditorDialogCoordinator; import org.chromium.chrome.browser.modules.ModuleInstallUi; -import org.chromium.chrome.browser.screenshot.EditorScreenshotSource; -import org.chromium.chrome.browser.screenshot.EditorScreenshotTask; import org.chromium.chrome.browser.share.share_sheet.ChromeOptionShareCallback; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.modules.image_editor.ImageEditorModuleProvider;
diff --git a/chrome/browser/share/android/java_sources.gni b/chrome/browser/share/android/java_sources.gni index 8c7ba34..331104cb 100644 --- a/chrome/browser/share/android/java_sources.gni +++ b/chrome/browser/share/android/java_sources.gni
@@ -27,6 +27,8 @@ "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/share_tab/QrCodeShareView.java", "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/share_tab/QrCodeShareViewBinder.java", "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/share_tab/QrCodeShareViewProperties.java", + "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotSource.java", + "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotTask.java", "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinator.java", "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotShareSheetCoordinator.java", "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotShareSheetDialog.java",
diff --git a/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinatorTest.java b/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinatorTest.java index 17ca7e4..7645621 100644 --- a/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinatorTest.java +++ b/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinatorTest.java
@@ -28,7 +28,6 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.image_editor.ImageEditorDialogCoordinator; -import org.chromium.chrome.browser.screenshot.EditorScreenshotSource; import org.chromium.chrome.browser.share.share_sheet.ChromeOptionShareCallback; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.modules.image_editor.ImageEditorModuleProvider;
diff --git a/chrome/browser/android/screenshot/editor_screenshot_task.cc b/chrome/browser/share/editor_screenshot_task.cc similarity index 95% rename from chrome/browser/android/screenshot/editor_screenshot_task.cc rename to chrome/browser/share/editor_screenshot_task.cc index f3198309..1ad9518d 100644 --- a/chrome/browser/android/screenshot/editor_screenshot_task.cc +++ b/chrome/browser/share/editor_screenshot_task.cc
@@ -7,7 +7,7 @@ #include "base/android/scoped_java_ref.h" #include "base/bind.h" #include "base/memory/ref_counted_memory.h" -#include "chrome/android/chrome_jni_headers/EditorScreenshotTask_jni.h" +#include "chrome/browser/share/android/jni_headers/EditorScreenshotTask_jni.h" #include "third_party/skia/include/core/SkBitmap.h" #include "ui/android/window_android.h" #include "ui/gfx/geometry/rect.h"
diff --git a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc index da20411c..5049807f 100644 --- a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc +++ b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
@@ -10,6 +10,7 @@ #include "base/bind.h" #include "base/bind_helpers.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/stl_util.h"
diff --git a/chrome/browser/sync/session_sync_service_factory.cc b/chrome/browser/sync/session_sync_service_factory.cc index 3264afdb..846bae7c 100644 --- a/chrome/browser/sync/session_sync_service_factory.cc +++ b/chrome/browser/sync/session_sync_service_factory.cc
@@ -23,6 +23,7 @@ #include "components/sync_sessions/session_sync_prefs.h" #include "components/sync_sessions/session_sync_service_impl.h" #include "components/sync_sessions/sync_sessions_client.h" +#include "content/public/common/url_utils.h" #if defined(OS_ANDROID) #include "chrome/browser/sync/glue/synced_window_delegates_getter_android.h" @@ -32,11 +33,11 @@ bool ShouldSyncURLImpl(const GURL& url) { if (url == chrome::kChromeUIHistoryURL) { - // Whitelist the chrome history page, home for "Tabs from other devices", so + // Allow the chrome history page, home for "Tabs from other devices", so // it can trigger starting up the sync engine. return true; } - return url.is_valid() && !url.SchemeIs(content::kChromeUIScheme) && + return url.is_valid() && !content::HasWebUIScheme(url) && !url.SchemeIs(chrome::kChromeNativeScheme) && !url.SchemeIsFile() && !url.SchemeIs(dom_distiller::kDomDistillerScheme); }
diff --git a/chrome/browser/sync/session_sync_service_factory_unittest.cc b/chrome/browser/sync/session_sync_service_factory_unittest.cc index 42dcecf..c14bdf62f5 100644 --- a/chrome/browser/sync/session_sync_service_factory_unittest.cc +++ b/chrome/browser/sync/session_sync_service_factory_unittest.cc
@@ -32,6 +32,8 @@ EXPECT_FALSE(SessionSyncServiceFactory::ShouldSyncURLForTesting( GURL("chrome-distiller://anything"))); + EXPECT_FALSE(SessionSyncServiceFactory::ShouldSyncURLForTesting( + GURL("chrome-untrusted://anything"))); EXPECT_TRUE(SessionSyncServiceFactory::ShouldSyncURLForTesting( GURL(chrome::kChromeUIHistoryURL))); }
diff --git a/chrome/browser/sync/test/integration/password_manager_sync_test.cc b/chrome/browser/sync/test/integration/password_manager_sync_test.cc index 779a8943..5fe3cbc 100644 --- a/chrome/browser/sync/test/integration/password_manager_sync_test.cc +++ b/chrome/browser/sync/test/integration/password_manager_sync_test.cc
@@ -6,6 +6,7 @@ #include <string> #include "base/files/file_path_watcher.h" +#include "base/files/file_util.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/chrome/browser/sync/test/integration/single_client_preferences_sync_test.cc b/chrome/browser/sync/test/integration/single_client_preferences_sync_test.cc index 17e4d22..4875f69d 100644 --- a/chrome/browser/sync/test/integration/single_client_preferences_sync_test.cc +++ b/chrome/browser/sync/test/integration/single_client_preferences_sync_test.cc
@@ -4,6 +4,7 @@ #include <map> +#include "base/files/file_util.h" #include "base/macros.h" #include "base/strings/stringprintf.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/chrome/browser/sync/test/integration/two_client_extension_apps_sync_test.cc b/chrome/browser/sync/test/integration/two_client_extension_apps_sync_test.cc index cd2a750..2fa4e211 100644 --- a/chrome/browser/sync/test/integration/two_client_extension_apps_sync_test.cc +++ b/chrome/browser/sync/test/integration/two_client_extension_apps_sync_test.cc
@@ -89,9 +89,7 @@ // Install some apps on both clients, some on only one client, some on only the // other, and sync. Both clients should end up with all apps, and the app and // page ordinals should be identical. -// Disabled due to flake: https://crbug.com/1069843 -IN_PROC_BROWSER_TEST_F(TwoClientExtensionAppsSyncTest, - DISABLED_StartWithDifferentApps) { +IN_PROC_BROWSER_TEST_F(TwoClientExtensionAppsSyncTest, StartWithDifferentApps) { ASSERT_TRUE(SetupClients()); int i = 0;
diff --git a/chrome/browser/tab/BUILD.gn b/chrome/browser/tab/BUILD.gn index ff1ceba..c91b17f 100644 --- a/chrome/browser/tab/BUILD.gn +++ b/chrome/browser/tab/BUILD.gn
@@ -41,7 +41,6 @@ deps = [ ":critical_persisted_tab_data_proto_java", - ":jni_headers", "//base:base_java", "//base:base_java", "//base:jni_java",
diff --git a/chrome/browser/task_manager/providers/web_contents/tab_contents_tag_browsertest.cc b/chrome/browser/task_manager/providers/web_contents/tab_contents_tag_browsertest.cc index 55995230..2cd5fd5 100644 --- a/chrome/browser/task_manager/providers/web_contents/tab_contents_tag_browsertest.cc +++ b/chrome/browser/task_manager/providers/web_contents/tab_contents_tag_browsertest.cc
@@ -4,6 +4,7 @@ #include <stddef.h> +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/stl_util.h"
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb index 02ffbc39..66c1f46 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -273,6 +273,7 @@ <translation id="2979025552038692506">Ausgewählter Inkognitotab</translation> <translation id="2987620471460279764">Text, der über ein anderes Gerät geteilt wurde</translation> <translation id="2989523299700148168">Kürzlich besucht</translation> +<translation id="2992473221983447149">Bildbeschreibungen</translation> <translation id="2996291259634659425">Passphrase erstellen</translation> <translation id="2996809686854298943">URL erforderlich</translation> <translation id="3006881078666935414">Keine Nutzungsdaten</translation> @@ -285,6 +286,7 @@ <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> Lesezeichen}other{<ph name="BOOKMARKS_COUNT_MANY" /> Lesezeichen}}</translation> <translation id="3062802207422175757">Artikel zu Ihren Interessen in Chrome</translation> <translation id="3089395242580810162">In Inkognitotab öffnen</translation> +<translation id="3098745985164956033">Einige Bilder werden an Google gesendet, um die Beschreibungen zu verbessern.</translation> <translation id="3114507951000454849">Nachrichten von heute lesen <ph name="NEWS_ICON" /></translation> <translation id="3123734510202723619">Ankündigungen</translation> <translation id="3137521801621304719">Inkognitomodus deaktivieren</translation> @@ -775,6 +777,7 @@ <translation id="6545017243486555795">Alle Daten löschen</translation> <translation id="6560414384669816528">Suche mit Sogou</translation> <translation id="656065428026159829">Mehr anzeigen</translation> +<translation id="6565959834589222080">WLAN wird verwendet, wenn es verfügbar ist</translation> <translation id="6566259936974865419">Dank Chrome haben Sie <ph name="GIGABYTES" /> GB eingespart</translation> <translation id="6573096386450695060">Immer zulassen</translation> <translation id="6573431926118603307">Hier werden Tabs angezeigt, die Sie auf Ihren anderen Geräten in Chrome geöffnet haben.</translation> @@ -1086,6 +1089,7 @@ <translation id="8788968922598763114">Zuletzt geschlossenen Tab öffnen</translation> <translation id="8798449543960971550">Gelesen</translation> <translation id="8812260976093120287">Auf manchen Websites können Sie über Ihr Gerät mit den obigen unterstützten Zahlungs-Apps bezahlen.</translation> +<translation id="881688628773363275">Inhalt des Vorschau-Tabs kann nicht angezeigt werden.</translation> <translation id="8820817407110198400">Lesezeichen</translation> <translation id="883806473910249246">Beim Herunterladen des Inhalts ist ein Fehler aufgetreten.</translation> <translation id="8840953339110955557">Diese Seite unterscheidet sich gegebenenfalls von der Onlineversion.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb index 550d2db8..bd3e110 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -273,6 +273,7 @@ <translation id="2979025552038692506">निवडलेला गुप्त टॅब</translation> <translation id="2987620471460279764">मजकूर इतर डिव्हाइसवरून शेअर केला आहे</translation> <translation id="2989523299700148168">अलीकडे भेट दिलेले</translation> +<translation id="2992473221983447149">इमेजची वर्णने</translation> <translation id="2996291259634659425">सांकेतिक पासफ्रेझ तयार करा</translation> <translation id="2996809686854298943">URL आवश्यक आहे</translation> <translation id="3006881078666935414">वापराचा कोणताही डेटा नाही</translation> @@ -285,6 +286,7 @@ <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> बुकमार्क}other{<ph name="BOOKMARKS_COUNT_MANY" /> बुकमार्क}}</translation> <translation id="3062802207422175757">Chrome वरील तुमच्या स्वारस्यांविषयी लेख</translation> <translation id="3089395242580810162">गुप्त टॅबमध्ये उघडा</translation> +<translation id="3098745985164956033">तुमच्यासाठी वर्णनांमध्ये सुधारणा करण्याकरिता काही इमेज Google कडे पाठवल्या जातात</translation> <translation id="3114507951000454849">आजच्या बातम्या वाचा <ph name="NEWS_ICON" /></translation> <translation id="3123734510202723619">घोषणा</translation> <translation id="3137521801621304719">गुप्त मोड सोडा</translation> @@ -775,6 +777,7 @@ <translation id="6545017243486555795">सर्व डेटा साफ करा</translation> <translation id="6560414384669816528">Sogou सह शोध करा</translation> <translation id="656065428026159829">आणखी पाहा</translation> +<translation id="6565959834589222080">उपलब्ध असेल तेव्हा वाय-फाय वापरला जातो</translation> <translation id="6566259936974865419">Chrome ने तुमच्यासाठी <ph name="GIGABYTES" /> GB सेव्ह केले आहे</translation> <translation id="6573096386450695060">नेहमी अनुमती द्या</translation> <translation id="6573431926118603307">आपल्या अन्य डिव्हाइसेसवर तुम्ही Chrome मध्ये उघडलेले टॅब येथे दिसतील.</translation> @@ -1086,6 +1089,7 @@ <translation id="8788968922598763114">अखेरीस बंद केलेला टॅब पुन्हा उघडा</translation> <translation id="8798449543960971550">वाचलेले</translation> <translation id="8812260976093120287">काही वेबसाइटवर, तुम्ही आपल्या डिव्हाइसवर वरील समर्थित पेमेंट ॲप्ससह पेमेंट देऊ शकता.</translation> +<translation id="881688628773363275">पूर्वावलोकन टॅब आशय पाहण्यायोग्य नाही.</translation> <translation id="8820817407110198400">Bookmarks</translation> <translation id="883806473910249246">आशय डाउनलोड करताना एरर आली.</translation> <translation id="8840953339110955557">हे पेज ऑनलाइन आवृत्तीपेक्षा वेगळे असू शकते.</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 598c55d..7c21a0f 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
@@ -273,6 +273,7 @@ <translation id="2979025552038692506">चयन गरिएको इन्कोग्निटो ट्याब</translation> <translation id="2987620471460279764">अर्को यन्त्रबाट आदान प्रदान गरिएको पाठ सन्देश</translation> <translation id="2989523299700148168">भर्खरै हेरिएका</translation> +<translation id="2992473221983447149">फोटोका वर्णन</translation> <translation id="2996291259634659425">पासफ्रेज सिर्जना गर्नुहोस्</translation> <translation id="2996809686854298943">URL आवश्यक छ</translation> <translation id="3006881078666935414">उपयोगसम्बन्धी कुनै डेटा छैन</translation> @@ -285,6 +286,7 @@ <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> पुस्तक चिन्ह}other{<ph name="BOOKMARKS_COUNT_MANY" /> पुस्तक चिन्हहरू}}</translation> <translation id="3062802207422175757">Chrome मा तपाईंको रुचिका विषयसँग सम्बन्धित लेखहरू पढ्नुहोस्</translation> <translation id="3089395242580810162">इन्कोग्निटो ट्याबमा खोल्नुहोस्</translation> +<translation id="3098745985164956033">तपाईंलाई उपलब्ध गराइने वर्णनको गुणस्तर सुधार गर्न केही फोटोहरू Google मा पठाइन्छन्</translation> <translation id="3114507951000454849">आजको समाचार पढ्नुहोस् <ph name="NEWS_ICON" /></translation> <translation id="3123734510202723619">घोषणाहरू</translation> <translation id="3137521801621304719">इनकगनिटो मोडलाई छोड्नुहोस्</translation> @@ -774,6 +776,7 @@ <translation id="6545017243486555795">सबै डेटा खाली गर्नुहोस्</translation> <translation id="6560414384669816528">Sogou मार्फत खोजी गर्नुहोस्</translation> <translation id="656065428026159829">थप हेर्नुहोस्</translation> +<translation id="6565959834589222080">Wi-Fi उपलब्ध हुँदा मोबाइल डेटा प्रयोग गरिँदैन</translation> <translation id="6566259936974865419">Chrome ले तपाईंको <ph name="GIGABYTES" /> जि.बि. बचाएको छ</translation> <translation id="6573096386450695060">सधैँ अनुमति दिनुहोस्</translation> <translation id="6573431926118603307">तपाईँले आफ्ना अन्य यन्त्रहरूमा Chrome मा खोल्नुभएका ट्याबहरू यहाँ देखिनेछन्।</translation> @@ -1085,6 +1088,7 @@ <translation id="8788968922598763114">पछिल्लो पटक बन्द गरिएको ट्याब पुनः खोल्नुहोस्</translation> <translation id="8798449543960971550">पढिसकिएको</translation> <translation id="8812260976093120287">केही वेबसाइटहरूमा तपाईंले माथि समर्थन गरिएका भुक्तानी सम्बन्धी अनुप्रयोगहरूमार्फत आफ्नो यन्त्रमा भुक्तानी गर्न सक्नुहुन्छ।</translation> +<translation id="881688628773363275">ट्याबका सामग्री प्रिभ्यू गर्ने सुविधा उपलब्ध छैन।</translation> <translation id="8820817407110198400">बुकमार्कहरू</translation> <translation id="883806473910249246">उक्त सामग्री डाउलोड गर्ने क्रममा एउटा त्रुटि भयो।</translation> <translation id="8840953339110955557">यो पृष्ठ अनलाइन संस्करणभन्दा भिन्न हुन सक्छ।</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb index c1f4f239..a2977a5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -286,7 +286,7 @@ <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> favorito}one{<ph name="BOOKMARKS_COUNT_MANY" /> favorito}other{<ph name="BOOKMARKS_COUNT_MANY" /> favoritos}}</translation> <translation id="3062802207422175757">Artigos sobre seus interesses no Chrome</translation> <translation id="3089395242580810162">Abrir em guia anônima</translation> -<translation id="3098745985164956033">As imagens são enviadas ao Google para que possamos melhorar as descrições</translation> +<translation id="3098745985164956033">Algumas imagens são enviadas ao Google para que possamos melhorar as descrições</translation> <translation id="3114507951000454849">Leia as notícias de hoje <ph name="NEWS_ICON" /></translation> <translation id="3123734510202723619">Anúncios</translation> <translation id="3137521801621304719">Sair do modo de navegação anônima</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb index 4585c40..146aa06 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -273,6 +273,7 @@ <translation id="2979025552038692506">منتخب پوشیدگی ٹیب</translation> <translation id="2987620471460279764">دوسرے آلے سے اشتراک کردہ متن</translation> <translation id="2989523299700148168">حال ہی میں ملاحظہ کردہ</translation> +<translation id="2992473221983447149">تصویر کی تفصیلات</translation> <translation id="2996291259634659425">پاس فریز بنائیں</translation> <translation id="2996809686854298943">URL درکار ہے</translation> <translation id="3006881078666935414">ڈیٹا کا کوئی استعمال نہیں</translation> @@ -285,6 +286,7 @@ <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> بُک مارک}other{<ph name="BOOKMARKS_COUNT_MANY" /> بُک مارکس}}</translation> <translation id="3062802207422175757">Chrome پر آپ کی دلچسپیوں سے متعلق مضامین</translation> <translation id="3089395242580810162">پوشیدگی ٹیب میں کھولیں</translation> +<translation id="3098745985164956033">آپ کے لیے تفصیلات میں بہتری لانے کے لیے Google کو کچھ تصاویر بھیجی جاتی ہیں</translation> <translation id="3114507951000454849">آج کی خبریں پڑھیں <ph name="NEWS_ICON" /></translation> <translation id="3123734510202723619">اعلانات</translation> <translation id="3137521801621304719">پوشیدگی وضع ترک کریں</translation> @@ -775,6 +777,7 @@ <translation id="6545017243486555795">سبھی ڈیٹا صاف کریں</translation> <translation id="6560414384669816528">Sogou کے ساتھ تلاش کریں</translation> <translation id="656065428026159829">مزید دیکھیں</translation> +<translation id="6565959834589222080">دستیاب ہونے پر Wi-Fi کا استعمال کیا جاتا ہے</translation> <translation id="6566259936974865419">Chrome نے آپ کا <ph name="GIGABYTES" /> GB بچایا ہے</translation> <translation id="6573096386450695060">ہمیشہ اجازت دیں</translation> <translation id="6573431926118603307">اپنے دیگر آلات پر Chrome میں آپ نے جو ٹیبز کھولے ہیں وہ یہاں ظاہر ہوں گے۔</translation> @@ -1086,6 +1089,7 @@ <translation id="8788968922598763114">آخری بند کردہ ٹیب دوبارہ کھولیں</translation> <translation id="8798449543960971550">پڑھا ہوا</translation> <translation id="8812260976093120287">کچھ ویب سائٹس پر، آپ اپنے آلہ پر اوپر موجود تعاون یافتہ ادائیگی ایپس کے ساتھ ادائیگی کر سکتے ہیں۔</translation> +<translation id="881688628773363275">پیش منظر کے ٹیب کا مواد قابل ملاحظہ نہیں ہے۔</translation> <translation id="8820817407110198400">بُک مارکس</translation> <translation id="883806473910249246">مواد ڈاؤن لوڈ کرتے وقت ایک خرابی پیش آ گئی۔</translation> <translation id="8840953339110955557">یہ صفحہ آن لائن ورژن سے مختلف ہو سکتا ہے۔</translation>
diff --git a/chrome/browser/ui/app_list/app_context_menu.cc b/chrome/browser/ui/app_list/app_context_menu.cc index fcdb260..2168a0f 100644 --- a/chrome/browser/ui/app_list/app_context_menu.cc +++ b/chrome/browser/ui/app_list/app_context_menu.cc
@@ -4,6 +4,8 @@ #include "chrome/browser/ui/app_list/app_context_menu.h" +#include <utility> + #include "ash/public/cpp/app_menu_constants.h" #include "ash/public/cpp/shelf_model.h" #include "chrome/app/vector_icons/vector_icons.h" @@ -27,8 +29,6 @@ app_id_(app_id), controller_(controller) {} -AppContextMenu::~AppContextMenu() = default; - void AppContextMenu::GetMenuModel(GetMenuModelCallback callback) { auto menu_model = std::make_unique<ui::SimpleMenuModel>(this); BuildMenu(menu_model.get());
diff --git a/chrome/browser/ui/app_list/app_context_menu.h b/chrome/browser/ui/app_list/app_context_menu.h index 6dd21586..2547806 100644 --- a/chrome/browser/ui/app_list/app_context_menu.h +++ b/chrome/browser/ui/app_list/app_context_menu.h
@@ -10,7 +10,6 @@ #include "ash/public/cpp/app_menu_constants.h" #include "base/callback.h" -#include "base/macros.h" #include "ui/base/models/image_model.h" #include "ui/base/models/simple_menu_model.h" @@ -28,7 +27,9 @@ Profile* profile, const std::string& app_id, AppListControllerDelegate* controller); - ~AppContextMenu() override; + AppContextMenu(const AppContextMenu&) = delete; + AppContextMenu& operator=(const AppContextMenu&) = delete; + ~AppContextMenu() override = default; using GetMenuModelCallback = base::OnceCallback<void(std::unique_ptr<ui::SimpleMenuModel>)>; @@ -69,8 +70,6 @@ Profile* profile_; const std::string app_id_; AppListControllerDelegate* controller_; - - DISALLOW_COPY_AND_ASSIGN(AppContextMenu); }; } // namespace app_list
diff --git a/chrome/browser/ui/app_list/app_list_client_impl.h b/chrome/browser/ui/app_list/app_list_client_impl.h index 837f9eb..030fc0a 100644 --- a/chrome/browser/ui/app_list/app_list_client_impl.h +++ b/chrome/browser/ui/app_list/app_list_client_impl.h
@@ -16,8 +16,6 @@ #include "ash/public/cpp/app_list/app_list_client.h" #include "ash/public/cpp/shelf_types.h" #include "base/callback_forward.h" -#include "base/compiler_specific.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observer.h" #include "chrome/browser/ui/app_list/app_list_controller_delegate.h" @@ -43,6 +41,8 @@ public TemplateURLServiceObserver { public: AppListClientImpl(); + AppListClientImpl(const AppListClientImpl&) = delete; + AppListClientImpl& operator=(const AppListClientImpl&) = delete; ~AppListClientImpl() override; static AppListClientImpl* GetInstance(); @@ -187,8 +187,6 @@ bool app_list_visible_ = false; base::WeakPtrFactory<AppListClientImpl> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(AppListClientImpl); }; #endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_CLIENT_IMPL_H_
diff --git a/chrome/browser/ui/app_list/app_list_client_impl_browsertest.cc b/chrome/browser/ui/app_list/app_list_client_impl_browsertest.cc index e0ccb47c..9b1a995e 100644 --- a/chrome/browser/ui/app_list/app_list_client_impl_browsertest.cc +++ b/chrome/browser/ui/app_list/app_list_client_impl_browsertest.cc
@@ -10,7 +10,6 @@ #include "ash/public/cpp/app_list/app_list_switches.h" #include "base/command_line.h" #include "base/feature_list.h" -#include "base/macros.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/strings/strcat.h" @@ -425,13 +424,14 @@ class AppListClientGuestModeBrowserTest : public InProcessBrowserTest { public: - AppListClientGuestModeBrowserTest() {} + AppListClientGuestModeBrowserTest() = default; + AppListClientGuestModeBrowserTest(const AppListClientGuestModeBrowserTest&) = + delete; + AppListClientGuestModeBrowserTest& operator=( + const AppListClientGuestModeBrowserTest&) = delete; protected: void SetUpCommandLine(base::CommandLine* command_line) override; - - private: - DISALLOW_COPY_AND_ASSIGN(AppListClientGuestModeBrowserTest); }; void AppListClientGuestModeBrowserTest::SetUpCommandLine( @@ -458,6 +458,8 @@ AppListAppLaunchTest() : extensions::ExtensionBrowserTest() { histogram_tester_ = std::make_unique<base::HistogramTester>(); } + AppListAppLaunchTest(const AppListAppLaunchTest&) = delete; + AppListAppLaunchTest& operator=(const AppListAppLaunchTest&) = delete; ~AppListAppLaunchTest() override = default; // InProcessBrowserTest: @@ -482,8 +484,6 @@ private: AppListModelUpdater* model_updater_; - - DISALLOW_COPY_AND_ASSIGN(AppListAppLaunchTest); }; IN_PROC_BROWSER_TEST_F(AppListAppLaunchTest,
diff --git a/chrome/browser/ui/app_list/app_list_model_builder.cc b/chrome/browser/ui/app_list/app_list_model_builder.cc index f96b666..ffce635b 100644 --- a/chrome/browser/ui/app_list/app_list_model_builder.cc +++ b/chrome/browser/ui/app_list/app_list_model_builder.cc
@@ -14,9 +14,6 @@ const char* item_type) : controller_(controller), item_type_(item_type) {} -AppListModelBuilder::~AppListModelBuilder() { -} - void AppListModelBuilder::Initialize(app_list::AppListSyncableService* service, Profile* profile, AppListModelUpdater* model_updater) {
diff --git a/chrome/browser/ui/app_list/app_list_model_builder.h b/chrome/browser/ui/app_list/app_list_model_builder.h index e8323f77..9c541c1 100644 --- a/chrome/browser/ui/app_list/app_list_model_builder.h +++ b/chrome/browser/ui/app_list/app_list_model_builder.h
@@ -8,7 +8,6 @@ #include <memory> #include <string> -#include "base/macros.h" #include "chrome/browser/ui/app_list/app_list_model_updater.h" #include "chrome/browser/ui/app_list/app_list_syncable_service.h" @@ -23,7 +22,9 @@ // |controller| is owned by implementation of AppListService. AppListModelBuilder(AppListControllerDelegate* controller, const char* item_type); - virtual ~AppListModelBuilder(); + AppListModelBuilder(const AppListModelBuilder&) = delete; + AppListModelBuilder& operator=(const AppListModelBuilder&) = delete; + virtual ~AppListModelBuilder() = default; // Initialize to use app-list sync and sets |service_| to |service|. // |service| is the owner of this instance. @@ -71,8 +72,6 @@ // Global constant defined for each item type. const char* item_type_; - - DISALLOW_COPY_AND_ASSIGN(AppListModelBuilder); }; #endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_MODEL_BUILDER_H_
diff --git a/chrome/browser/ui/app_list/app_list_syncable_service.cc b/chrome/browser/ui/app_list/app_list_syncable_service.cc index ebf898b..e3a06c2 100644 --- a/chrome/browser/ui/app_list/app_list_syncable_service.cc +++ b/chrome/browser/ui/app_list/app_list_syncable_service.cc
@@ -5,13 +5,13 @@ #include "chrome/browser/ui/app_list/app_list_syncable_service.h" #include <algorithm> +#include <set> #include <utility> #include <vector> #include "base/bind.h" #include "base/command_line.h" #include "base/feature_list.h" -#include "base/macros.h" #include "base/one_shot_event.h" #include "base/stl_util.h" #include "base/values.h" @@ -235,7 +235,8 @@ DVLOG(2) << owner_ << ": ModelUpdaterObserver Added"; owner_->GetModelUpdater()->AddObserver(this); } - + ModelUpdaterObserver(const ModelUpdaterObserver&) = delete; + ModelUpdaterObserver& operator=(const ModelUpdaterObserver&) = delete; ~ModelUpdaterObserver() override { owner_->GetModelUpdater()->RemoveObserver(this); DVLOG(2) << owner_ << ": ModelUpdaterObserver Removed"; @@ -285,8 +286,6 @@ AppListSyncableService* owner_; std::string adding_item_id_; - - DISALLOW_COPY_AND_ASSIGN(ModelUpdaterObserver); }; // AppListSyncableService @@ -312,9 +311,7 @@ AppListSyncableService::AppListSyncableService(Profile* profile) : profile_(profile), extension_system_(extensions::ExtensionSystem::Get(profile)), - extension_registry_(extensions::ExtensionRegistry::Get(profile)), - initial_sync_data_processed_(false), - first_app_list_sync_(true) { + extension_registry_(extensions::ExtensionRegistry::Get(profile)) { if (g_model_updater_factory_callback_for_test_) model_updater_ = g_model_updater_factory_callback_for_test_->Run(); else
diff --git a/chrome/browser/ui/app_list/app_list_syncable_service.h b/chrome/browser/ui/app_list/app_list_syncable_service.h index 786a8e27..e2ffc91 100644 --- a/chrome/browser/ui/app_list/app_list_syncable_service.h +++ b/chrome/browser/ui/app_list/app_list_syncable_service.h
@@ -10,9 +10,9 @@ #include <map> #include <memory> #include <string> +#include <vector> #include "base/callback.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "base/one_shot_event.h" @@ -82,19 +82,22 @@ public: explicit ScopedModelUpdaterFactoryForTest( const ModelUpdaterFactoryCallback& factory); + ScopedModelUpdaterFactoryForTest(const ScopedModelUpdaterFactoryForTest&) = + delete; + ScopedModelUpdaterFactoryForTest& operator=( + const ScopedModelUpdaterFactoryForTest&) = delete; ~ScopedModelUpdaterFactoryForTest(); private: ModelUpdaterFactoryCallback factory_; - - DISALLOW_COPY_AND_ASSIGN(ScopedModelUpdaterFactoryForTest); }; using SyncItemMap = std::map<std::string, std::unique_ptr<SyncItem>>; // Populates the model when |profile|'s extension system is ready. explicit AppListSyncableService(Profile* profile); - + AppListSyncableService(const AppListSyncableService&) = delete; + AppListSyncableService& operator=(const AppListSyncableService&) = delete; ~AppListSyncableService() override; // Registers prefs to support local storage. @@ -345,8 +348,8 @@ // another. SyncItemMap pending_transfer_map_; syncer::SyncableService::StartSyncFlare flare_; - bool initial_sync_data_processed_; - bool first_app_list_sync_; + bool initial_sync_data_processed_ = false; + bool first_app_list_sync_ = true; std::string oem_folder_name_; // Callback to install default page breaks. // Only set for first time user for tablet form devices. @@ -358,8 +361,6 @@ base::OneShotEvent on_initialized_; base::WeakPtrFactory<AppListSyncableService> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(AppListSyncableService); }; } // namespace app_list
diff --git a/chrome/browser/ui/app_list/app_list_syncable_service_factory.h b/chrome/browser/ui/app_list/app_list_syncable_service_factory.h index c792173..5f1cc7f 100644 --- a/chrome/browser/ui/app_list/app_list_syncable_service_factory.h +++ b/chrome/browser/ui/app_list/app_list_syncable_service_factory.h
@@ -7,7 +7,6 @@ #include <memory> -#include "base/macros.h" #include "base/memory/singleton.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" @@ -32,6 +31,10 @@ // Marks AppListSyncableService to be used in tests. static void SetUseInTesting(bool use); + AppListSyncableServiceFactory(const AppListSyncableServiceFactory&) = delete; + AppListSyncableServiceFactory& operator=( + const AppListSyncableServiceFactory&) = delete; + private: friend struct base::DefaultSingletonTraits<AppListSyncableServiceFactory>; @@ -47,8 +50,6 @@ content::BrowserContext* context) const override; bool ServiceIsCreatedWithBrowserContext() const override; bool ServiceIsNULLWhileTesting() const override; - - DISALLOW_COPY_AND_ASSIGN(AppListSyncableServiceFactory); }; } // namespace app_list
diff --git a/chrome/browser/ui/app_list/app_list_syncable_service_unittest.cc b/chrome/browser/ui/app_list/app_list_syncable_service_unittest.cc index a846197..4a30dc9 100644 --- a/chrome/browser/ui/app_list/app_list_syncable_service_unittest.cc +++ b/chrome/browser/ui/app_list/app_list_syncable_service_unittest.cc
@@ -4,6 +4,9 @@ #include "chrome/browser/ui/app_list/app_list_syncable_service.h" +#include <algorithm> +#include <utility> + #include "ash/public/cpp/app_list/app_list_config.h" #include "ash/public/cpp/app_list/internal_app_id_constants.h" #include "base/bind.h" @@ -213,6 +216,9 @@ class AppListSyncableServiceTest : public AppListTestBase { public: AppListSyncableServiceTest() = default; + AppListSyncableServiceTest(const AppListSyncableServiceTest&) = delete; + AppListSyncableServiceTest& operator=(const AppListSyncableServiceTest&) = + delete; ~AppListSyncableServiceTest() override = default; void SetUp() override { @@ -303,8 +309,6 @@ std::unique_ptr< app_list::AppListSyncableService::ScopedModelUpdaterFactoryForTest> model_updater_factory_scope_; - - DISALLOW_COPY_AND_ASSIGN(AppListSyncableServiceTest); }; TEST_F(AppListSyncableServiceTest, OEMFolderForConflictingPos) {
diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h index 7249c5d9..e6d00ff 100644 --- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h +++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h
@@ -16,7 +16,6 @@ #include "base/callback.h" #include "base/files/file_path.h" -#include "base/macros.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" @@ -250,6 +249,8 @@ static void UprevCurrentIconsVersionForTesting(); + ArcAppListPrefs(const ArcAppListPrefs&) = delete; + ArcAppListPrefs& operator=(const ArcAppListPrefs&) = delete; ~ArcAppListPrefs() override; // Returns a list of all app ids, including ready and non-ready apps. @@ -604,8 +605,6 @@ base::OnceClosure app_list_refreshed_callback_; base::WeakPtrFactory<ArcAppListPrefs> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(ArcAppListPrefs); }; #endif // CHROME_BROWSER_UI_APP_LIST_ARC_ARC_APP_LIST_PREFS_H_
diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.cc b/chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.cc index b7d945c..5c60d13 100644 --- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.cc +++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.cc
@@ -51,8 +51,7 @@ DependsOn(NotificationDisplayServiceFactory::GetInstance()); } -ArcAppListPrefsFactory::~ArcAppListPrefsFactory() { -} +ArcAppListPrefsFactory::~ArcAppListPrefsFactory() = default; KeyedService* ArcAppListPrefsFactory::BuildServiceInstanceFor( content::BrowserContext* context) const {
diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h b/chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h index 5a57cf4..cb194bc1 100644 --- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h +++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h
@@ -8,7 +8,6 @@ #include <memory> #include <unordered_map> -#include "base/macros.h" #include "base/memory/singleton.h" #include "components/arc/mojom/app.mojom-forward.h" #include "components/arc/session/connection_holder.h" @@ -31,6 +30,8 @@ friend struct base::DefaultSingletonTraits<ArcAppListPrefsFactory>; ArcAppListPrefsFactory(); + ArcAppListPrefsFactory(const ArcAppListPrefsFactory&) = delete; + ArcAppListPrefsFactory& operator=(const ArcAppListPrefsFactory&) = delete; ~ArcAppListPrefsFactory() override; KeyedService* BuildServiceInstanceFor( @@ -45,8 +46,6 @@ std::unique_ptr< arc::ConnectionHolder<arc::mojom::AppInstance, arc::mojom::AppHost>>> sync_test_app_connection_holders_; - - DISALLOW_COPY_AND_ASSIGN(ArcAppListPrefsFactory); }; #endif // CHROME_BROWSER_UI_APP_LIST_ARC_ARC_APP_LIST_PREFS_FACTORY_H_
diff --git a/chrome/browser/ui/app_list/arc/arc_default_app_list.h b/chrome/browser/ui/app_list/arc/arc_default_app_list.h index 5f46538..22407e8 100644 --- a/chrome/browser/ui/app_list/arc/arc_default_app_list.h +++ b/chrome/browser/ui/app_list/arc/arc_default_app_list.h
@@ -15,7 +15,6 @@ #include "base/callback.h" #include "base/files/file_path.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/chromeos/arc/session/arc_session_manager_observer.h" @@ -58,6 +57,8 @@ using AppInfoMap = std::map<std::string, std::unique_ptr<AppInfo>>; ArcDefaultAppList(Profile* profile, base::OnceClosure ready_callback); + ArcDefaultAppList(const ArcDefaultAppList&) = delete; + ArcDefaultAppList& operator=(const ArcDefaultAppList&) = delete; ~ArcDefaultAppList() override; static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); @@ -123,8 +124,6 @@ base::RepeatingClosure barrier_closure_; base::WeakPtrFactory<ArcDefaultAppList> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(ArcDefaultAppList); }; #endif // CHROME_BROWSER_UI_APP_LIST_ARC_ARC_DEFAULT_APP_LIST_H_
diff --git a/chrome/browser/ui/app_list/chrome_app_list_item.h b/chrome/browser/ui/app_list/chrome_app_list_item.h index af2c97a..eb5dbc5 100644 --- a/chrome/browser/ui/app_list/chrome_app_list_item.h +++ b/chrome/browser/ui/app_list/chrome_app_list_item.h
@@ -10,7 +10,6 @@ #include <utility> #include "ash/public/cpp/app_list/app_list_types.h" -#include "base/macros.h" #include "chrome/browser/ui/app_list/app_context_menu.h" #include "chrome/browser/ui/app_list/app_list_syncable_service.h" #include "ui/gfx/image/image_skia.h" @@ -45,6 +44,8 @@ ChromeAppListItem(Profile* profile, const std::string& app_id, AppListModelUpdater* model_updater); + ChromeAppListItem(const ChromeAppListItem&) = delete; + ChromeAppListItem& operator=(const ChromeAppListItem&) = delete; virtual ~ChromeAppListItem(); // AppListControllerDelegate is not properly implemented in tests. Use mock @@ -141,8 +142,6 @@ std::unique_ptr<ash::AppListItemMetadata> metadata_; Profile* profile_; AppListModelUpdater* model_updater_ = nullptr; - - DISALLOW_COPY_AND_ASSIGN(ChromeAppListItem); }; #endif // CHROME_BROWSER_UI_APP_LIST_CHROME_APP_LIST_ITEM_H_
diff --git a/chrome/browser/ui/app_list/chrome_app_list_model_updater.h b/chrome/browser/ui/app_list/chrome_app_list_model_updater.h index ecf4a95c..2656f7e 100644 --- a/chrome/browser/ui/app_list/chrome_app_list_model_updater.h +++ b/chrome/browser/ui/app_list/chrome_app_list_model_updater.h
@@ -23,6 +23,9 @@ class ChromeAppListModelUpdater : public AppListModelUpdater { public: explicit ChromeAppListModelUpdater(Profile* profile); + ChromeAppListModelUpdater(const ChromeAppListModelUpdater&) = delete; + ChromeAppListModelUpdater& operator=(const ChromeAppListModelUpdater&) = + delete; ~ChromeAppListModelUpdater() override; void SetActive(bool active) override; @@ -116,8 +119,6 @@ bool search_engine_is_google_ = false; base::WeakPtrFactory<ChromeAppListModelUpdater> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(ChromeAppListModelUpdater); }; #endif // CHROME_BROWSER_UI_APP_LIST_CHROME_APP_LIST_MODEL_UPDATER_H_
diff --git a/chrome/browser/ui/app_list/chrome_app_list_model_updater_browsertest.cc b/chrome/browser/ui/app_list/chrome_app_list_model_updater_browsertest.cc index e0090c6..f3d29fa 100644 --- a/chrome/browser/ui/app_list/chrome_app_list_model_updater_browsertest.cc +++ b/chrome/browser/ui/app_list/chrome_app_list_model_updater_browsertest.cc
@@ -4,6 +4,7 @@ #include "ash/public/cpp/accelerators.h" #include "ash/public/cpp/test/app_list_test_api.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/stl_util.h" @@ -38,6 +39,8 @@ OemAppPositionTest() : LoginManagerTest() { login_mixin_.AppendRegularUsers(1); } + OemAppPositionTest(const OemAppPositionTest&) = delete; + OemAppPositionTest& operator=(const OemAppPositionTest&) = delete; ~OemAppPositionTest() override = default; // LoginManagerTest: @@ -66,9 +69,6 @@ } chromeos::LoginManagerMixin login_mixin_{&mixin_host_}; - - private: - DISALLOW_COPY_AND_ASSIGN(OemAppPositionTest); }; class AppPositionReorderingTest : public extensions::ExtensionBrowserTest {
diff --git a/chrome/browser/ui/app_list/search/search_result_ranker/app_list_launch_metrics_provider.h b/chrome/browser/ui/app_list/search/search_result_ranker/app_list_launch_metrics_provider.h index 8801533..36cd84a 100644 --- a/chrome/browser/ui/app_list/search/search_result_ranker/app_list_launch_metrics_provider.h +++ b/chrome/browser/ui/app_list/search/search_result_ranker/app_list_launch_metrics_provider.h
@@ -13,7 +13,6 @@ #include "base/callback_list.h" #include "base/files/file_path.h" #include "base/gtest_prod_util.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "chrome/browser/ui/app_list/search/search_result_ranker/app_list_launch_recorder.h" @@ -33,6 +32,9 @@ // logging events should be sent to AppListLaunchRecorder. class AppListLaunchMetricsProvider : public metrics::MetricsProvider { public: + AppListLaunchMetricsProvider(const AppListLaunchMetricsProvider&) = delete; + AppListLaunchMetricsProvider& operator=(const AppListLaunchMetricsProvider&) = + delete; ~AppListLaunchMetricsProvider() override; // metrics::MetricsProvider: @@ -69,8 +71,6 @@ SEQUENCE_CHECKER(sequence_checker_); base::WeakPtrFactory<AppListLaunchMetricsProvider> weak_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(AppListLaunchMetricsProvider); }; } // namespace app_list
diff --git a/chrome/browser/ui/app_list/search/search_result_ranker/app_list_launch_recorder.h b/chrome/browser/ui/app_list/search/search_result_ranker/app_list_launch_recorder.h index b5c0707..abcee868 100644 --- a/chrome/browser/ui/app_list/search/search_result_ranker/app_list_launch_recorder.h +++ b/chrome/browser/ui/app_list/search/search_result_ranker/app_list_launch_recorder.h
@@ -13,7 +13,6 @@ #include "base/bind.h" #include "base/callback_list.h" #include "base/containers/flat_map.h" -#include "base/macros.h" #include "base/no_destructor.h" #include "base/observer_list.h" #include "base/sequence_checker.h" @@ -53,6 +52,9 @@ static AppListLaunchRecorder* GetInstance(); + AppListLaunchRecorder(const AppListLaunchRecorder&) = delete; + AppListLaunchRecorder& operator=(const AppListLaunchRecorder&) = delete; + private: friend class base::NoDestructor<AppListLaunchRecorder>; friend class app_list::AppListLaunchMetricsProvider; @@ -98,8 +100,6 @@ LaunchEventCallbackList callback_list_; SEQUENCE_CHECKER(sequence_checker_); - - DISALLOW_COPY_AND_ASSIGN(AppListLaunchRecorder); }; } // namespace app_list
diff --git a/chrome/browser/ui/app_list/test/fake_app_list_model_updater.h b/chrome/browser/ui/app_list/test/fake_app_list_model_updater.h index 0ddc9c3..771bb5aeb 100644 --- a/chrome/browser/ui/app_list/test/fake_app_list_model_updater.h +++ b/chrome/browser/ui/app_list/test/fake_app_list_model_updater.h
@@ -19,6 +19,8 @@ class FakeAppListModelUpdater : public AppListModelUpdater { public: explicit FakeAppListModelUpdater(Profile* profile = nullptr); + FakeAppListModelUpdater(const FakeAppListModelUpdater&) = delete; + FakeAppListModelUpdater& operator=(const FakeAppListModelUpdater&) = delete; ~FakeAppListModelUpdater() override; // For AppListModel: @@ -91,8 +93,6 @@ const std::string& oem_folder_name, const syncer::StringOrdinal& preferred_oem_position); syncer::StringOrdinal GetOemFolderPos(); - - DISALLOW_COPY_AND_ASSIGN(FakeAppListModelUpdater); }; #endif // CHROME_BROWSER_UI_APP_LIST_TEST_FAKE_APP_LIST_MODEL_UPDATER_H_
diff --git a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc index 9b39a40..8b88592 100644 --- a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc +++ b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc
@@ -8,6 +8,7 @@ #include "ash/public/cpp/holding_space/holding_space_model.h" #include "ash/shell.h" #include "base/bind.h" +#include "base/files/file_util.h" #include "base/threading/thread_restrictions.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/policy/dlp/mock_dlp_content_manager.h"
diff --git a/chrome/browser/ui/ash/clipboard_image_model_request.cc b/chrome/browser/ui/ash/clipboard_image_model_request.cc index c9f740b1..559fd55 100644 --- a/chrome/browser/ui/ash/clipboard_image_model_request.cc +++ b/chrome/browser/ui/ash/clipboard_image_model_request.cc
@@ -180,6 +180,11 @@ } void ClipboardImageModelRequest::OnCopyComplete(const SkBitmap& bitmap) { + if (!deliver_image_model_callback_) { + Stop(); + return; + } + std::move(deliver_image_model_callback_) .Run(ui::ImageModel::FromImageSkia( gfx::ImageSkia::CreateFrom1xBitmap(bitmap)));
diff --git a/chrome/browser/ui/ash/clipboard_util.cc b/chrome/browser/ui/ash/clipboard_util.cc index 2929da4..0a227dc 100644 --- a/chrome/browser/ui/ash/clipboard_util.cc +++ b/chrome/browser/ui/ash/clipboard_util.cc
@@ -4,9 +4,14 @@ #include "chrome/browser/ui/ash/clipboard_util.h" +#include <stdint.h> +#include <memory> + #include "base/base64.h" +#include "base/callback.h" #include "base/files/file_util.h" #include "base/memory/ref_counted_memory.h" +#include "base/memory/scoped_refptr.h" #include "base/metrics/user_metrics.h" #include "base/strings/strcat.h" #include "base/threading/scoped_blocking_call.h" @@ -14,16 +19,44 @@ #include "content/public/browser/browser_thread.h" #include "services/data_decoder/public/cpp/decode_image.h" #include "ui/base/clipboard/clipboard.h" +#include "ui/base/clipboard/clipboard_buffer.h" +#include "ui/base/clipboard/clipboard_data.h" +#include "ui/base/clipboard/clipboard_non_backed.h" #include "ui/base/clipboard/scoped_clipboard_writer.h" namespace clipboard_util { namespace { -void CopyImageToClipboard(scoped_refptr<base::RefCountedString> png_data, - const SkBitmap& decoded_image) { +void CopyAndMaintainClipboard( + std::unique_ptr<ui::ClipboardData> data_with_image, + const std::string& markup_content, + scoped_refptr<base::RefCountedString> png_data, + const SkBitmap& decoded_image) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardBuffer::kCopyPaste); + data_with_image->set_markup_data(markup_content); + data_with_image->SetBitmapData(decoded_image); + ui::ClipboardNonBacked::GetForCurrentThread()->WriteClipboardData( + std::move(data_with_image)); +} + +/* + * `maintain_clipboard` indicates whether the clipboard state should attempt to + * be maintained. + * `clipboard_sequence` is the versioning of the clipboard when we start our + * copy operation. + * `callback` alerts whether or not the image was copied to the clipboard while + * meeting the `maintain_clipboard` state. If the image is copied it will return + * true, otherwise if the image is not copied because the `clipboard_sequence` + * does not match, it will return false. + * `decoded_image` is the image we are attempting to copy to the clipboard. + */ +void CopyImageToClipboard(bool maintain_clipboard, + uint64_t clipboard_sequence, + base::OnceCallback<void(bool)> callback, + scoped_refptr<base::RefCountedString> png_data, + const SkBitmap& decoded_image) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // Send both HTML and and Image formats to clipboard. HTML format is needed // by ARC, while Image is needed by Hangout. @@ -35,8 +68,30 @@ base::Base64Encode(base::as_bytes(base::make_span(png_data->data()))); std::string html = base::StrCat( {kImageClipboardFormatPrefix, encoded, kImageClipboardFormatSuffix}); - clipboard_writer.WriteHTML(base::UTF8ToUTF16(html), std::string()); - clipboard_writer.WriteImage(decoded_image); + + if (!maintain_clipboard) { + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardBuffer::kCopyPaste); + clipboard_writer.WriteHTML(base::UTF8ToUTF16(html), std::string()); + clipboard_writer.WriteImage(decoded_image); + std::move(callback).Run(true); + return; + } + + uint64_t current_sequence = + ui::ClipboardNonBacked::GetForCurrentThread()->GetSequenceNumber( + ui::ClipboardBuffer::kCopyPaste); + if (current_sequence != clipboard_sequence) { + // Clipboard data changed and this copy operation is no longer relevant. + std::move(callback).Run(false); + return; + } + std::unique_ptr<ui::ClipboardData> current_data = + std::make_unique<ui::ClipboardData>( + *ui::ClipboardNonBacked::GetForCurrentThread()->GetClipboardData( + nullptr)); + CopyAndMaintainClipboard(std::move(current_data), html, png_data, + decoded_image); + std::move(callback).Run(true); } } // namespace @@ -52,11 +107,17 @@ } content::GetUIThreadTaskRunner({})->PostTask( - FROM_HERE, base::BindOnce(&DecodeImageFileAndCopyToClipboard, png_data)); + FROM_HERE, base::BindOnce(&DecodeImageFileAndCopyToClipboard, + /*clipboard_sequence=*/0, + /*maintain_clipboard=*/false, png_data, + base::DoNothing::Once<bool>())); } void DecodeImageFileAndCopyToClipboard( - scoped_refptr<base::RefCountedString> png_data) { + uint64_t clipboard_sequence, + bool maintain_clipboard, + scoped_refptr<base::RefCountedString> png_data, + base::OnceCallback<void(bool)> callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // Decode the image in sandboxed process because |png_data| comes from @@ -65,6 +126,7 @@ std::vector<uint8_t>(png_data->data().begin(), png_data->data().end()), data_decoder::mojom::ImageCodec::DEFAULT, false, data_decoder::kDefaultMaxSizeInBytes, gfx::Size(), - base::BindOnce(&CopyImageToClipboard, png_data)); + base::BindOnce(&CopyImageToClipboard, maintain_clipboard, + clipboard_sequence, std::move(callback), png_data)); } } // namespace clipboard_util
diff --git a/chrome/browser/ui/ash/clipboard_util.h b/chrome/browser/ui/ash/clipboard_util.h index 5ef6085..ce7683a0 100644 --- a/chrome/browser/ui/ash/clipboard_util.h +++ b/chrome/browser/ui/ash/clipboard_util.h
@@ -5,6 +5,9 @@ #ifndef CHROME_BROWSER_UI_ASH_CLIPBOARD_UTIL_H_ #define CHROME_BROWSER_UI_ASH_CLIPBOARD_UTIL_H_ +#include <stdint.h> + +#include "base/callback_forward.h" #include "base/memory/ref_counted_memory.h" #include "base/memory/scoped_refptr.h" namespace base { @@ -18,8 +21,21 @@ void ReadFileAndCopyToClipboardLocal(const base::FilePath& local_file); // Takes an image file as a string and copies it to the system clipboard. +// +// `clipboard_sequence` - Clipboard version to determine whether the clipboard +// state has changed. A sequence of 0 is used to specify an invalid sequence. +// `maintain_clipboard` - Used to determine whether or not we care about +// maintaining the clipboard state or not. If this value is false, it is okay to +// pass a `clipboard_sequence` of 0. +// `png_data` - The image we want to copy to the clipboard as a string. +// `callback` - Reports if the copy was successful. Reasons that this could +// return false include that the sequence numbers do not match and when +// `maintain_clipboard` is true. void DecodeImageFileAndCopyToClipboard( - scoped_refptr<base::RefCountedString> png_data); + uint64_t clipboard_sequence, + bool maintain_clipboard, + scoped_refptr<base::RefCountedString> png_data, + base::OnceCallback<void(bool)> callback); } // namespace clipboard_util
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_browsertest_base.cc b/chrome/browser/ui/ash/holding_space/holding_space_browsertest_base.cc index 4c7048b4..6701755 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_browsertest_base.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_browsertest_base.cc
@@ -13,6 +13,7 @@ #include "ash/public/cpp/holding_space/holding_space_model.h" #include "ash/public/cpp/holding_space/holding_space_test_api.h" #include "base/bind_helpers.h" +#include "base/files/file_util.h" #include "base/scoped_observer.h" #include "base/unguessable_token.h" #include "chrome/browser/chromeos/file_manager/path_util.h"
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_browsertest.cc b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_browsertest.cc index 19fb2661f..be4933b 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_browsertest.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_browsertest.cc
@@ -12,6 +12,7 @@ #include "ash/public/cpp/holding_space/holding_space_model_observer.h" #include "base/bind_helpers.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/run_loop.h" #include "base/test/bind_test_util.h" #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_thumbnail_loader_browsertest.cc b/chrome/browser/ui/ash/holding_space/holding_space_thumbnail_loader_browsertest.cc index 1fdb80e..1d895ce 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_thumbnail_loader_browsertest.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_thumbnail_loader_browsertest.cc
@@ -7,6 +7,7 @@ #include <memory> #include "ash/public/cpp/ash_features.h" +#include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/path_service.h" #include "base/test/bind_test_util.h"
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc index e9361ded..82ab9e7 100644 --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc
@@ -1045,11 +1045,6 @@ return false; model->AddEntry(url, base::UTF16ToUTF8(title), reading_list::EntrySource::ADDED_VIA_CURRENT_APP); - // Close current tab. - int index = browser->tab_strip_model()->active_index(); - browser->tab_strip_model()->CloseWebContentsAt( - index, TabStripModel::CLOSE_CREATE_HISTORICAL_TAB | - TabStripModel::CLOSE_USER_GESTURE); return true; }
diff --git a/chrome/browser/ui/find_bar/find_bar_platform_helper_mac.mm b/chrome/browser/ui/find_bar/find_bar_platform_helper_mac.mm index 09898441..43c5859 100644 --- a/chrome/browser/ui/find_bar/find_bar_platform_helper_mac.mm +++ b/chrome/browser/ui/find_bar/find_bar_platform_helper_mac.mm
@@ -47,11 +47,16 @@ return; } - [[FindPasteboard sharedInstance] - setFindText:base::SysUTF16ToNSString(text)]; + { + base::AutoReset<bool> resetter(&sending_own_notification_, true); + [[FindPasteboard sharedInstance] + setFindText:base::SysUTF16ToNSString(text)]; + } } private: + bool sending_own_notification_ = false; + void UpdateFindBarControllerFromPasteboard() { content::WebContents* active_web_contents = find_bar_controller_->web_contents(); @@ -73,8 +78,10 @@ } } - NSString* find_text = [[FindPasteboard sharedInstance] findText]; - find_bar_controller_->SetText(base::SysNSStringToUTF16(find_text)); + if (!sending_own_notification_) { + NSString* find_text = [[FindPasteboard sharedInstance] findText]; + find_bar_controller_->SetText(base::SysNSStringToUTF16(find_text)); + } } id find_pasteboard_notification_observer_;
diff --git a/chrome/browser/ui/global_error/global_error_browsertest.cc b/chrome/browser/ui/global_error/global_error_browsertest.cc index 6d14650..10951d6 100644 --- a/chrome/browser/ui/global_error/global_error_browsertest.cc +++ b/chrome/browser/ui/global_error/global_error_browsertest.cc
@@ -6,6 +6,7 @@ #include "base/bind.h" #include "base/bind_helpers.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/run_loop.h" #include "build/build_config.h"
diff --git a/chrome/browser/ui/media_router/presentation_receiver_window_controller_browsertest.cc b/chrome/browser/ui/media_router/presentation_receiver_window_controller_browsertest.cc index d66f548..0d7b954 100644 --- a/chrome/browser/ui/media_router/presentation_receiver_window_controller_browsertest.cc +++ b/chrome/browser/ui/media_router/presentation_receiver_window_controller_browsertest.cc
@@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/macros.h" #include "base/path_service.h" #include "base/run_loop.h"
diff --git a/chrome/browser/ui/profile_picker.h b/chrome/browser/ui/profile_picker.h index 2b1d8da..4d21b30 100644 --- a/chrome/browser/ui/profile_picker.h +++ b/chrome/browser/ui/profile_picker.h
@@ -23,7 +23,10 @@ kProfileMenuManageProfiles = 1, kProfileMenuAddNewProfile = 2, kOpenNewWindowAfterProfileDeletion = 3, - kMaxValue = kOpenNewWindowAfterProfileDeletion, + // A new session was sarted while Chrome was already running (e.g. by + // clicking on the tray icon on Windows). + kNewSessionOnExistingProcess = 4, + kMaxValue = kNewSessionOnExistingProcess, }; // Shows the Profile picker for the given `entry_point` or re-activates an
diff --git a/chrome/browser/ui/search/local_ntp_backgrounds_browsertest.cc b/chrome/browser/ui/search/local_ntp_backgrounds_browsertest.cc index b1667d0..68edf3a 100644 --- a/chrome/browser/ui/search/local_ntp_backgrounds_browsertest.cc +++ b/chrome/browser/ui/search/local_ntp_backgrounds_browsertest.cc
@@ -4,6 +4,7 @@ #include <string> +#include "base/files/file_util.h" #include "build/build_config.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/extension_browsertest.h"
diff --git a/chrome/browser/ui/search/local_ntp_render_browsertest.cc b/chrome/browser/ui/search/local_ntp_render_browsertest.cc index bd1b42d..21e20d1 100644 --- a/chrome/browser/ui/search/local_ntp_render_browsertest.cc +++ b/chrome/browser/ui/search/local_ntp_render_browsertest.cc
@@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/no_destructor.h" #include "base/path_service.h" #include "base/run_loop.h"
diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc index cf46cfa8..4c2ff394 100644 --- a/chrome/browser/ui/startup/startup_browser_creator.cc +++ b/chrome/browser/ui/startup/startup_browser_creator.cc
@@ -898,7 +898,10 @@ StartupBrowserCreator::GetURLsFromCommandLine(command_line, cur_dir, last_used_profile); if (ShouldShowProfilePicker(command_line, urls_to_launch)) { - ProfilePicker::Show(ProfilePicker::EntryPoint::kOnStartup); + ProfilePicker::Show( + process_startup + ? ProfilePicker::EntryPoint::kOnStartup + : ProfilePicker::EntryPoint::kNewSessionOnExistingProcess); return true; } #endif // !defined(OS_CHROMEOS)
diff --git a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc index 7987cd3..26d69d1 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
@@ -10,6 +10,7 @@ #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/json/json_writer.h" #include "base/memory/ptr_util.h" #include "base/path_service.h"
diff --git a/chrome/browser/ui/tabs/tab_strip_model.cc b/chrome/browser/ui/tabs/tab_strip_model.cc index 034781a4..efb7c55d 100644 --- a/chrome/browser/ui/tabs/tab_strip_model.cc +++ b/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -2090,7 +2090,6 @@ void TabStripModel::AddToReadLaterImpl(const std::vector<int>& indices) { ReadingListModel* model = ReadingListModelFactory::GetForBrowserContext(profile_); - std::vector<WebContents*> closing_contents; if (!model || !model->loaded()) return; @@ -2102,11 +2101,8 @@ if (model->IsUrlSupported(url)) { model->AddEntry(url, base::UTF16ToUTF8(title), reading_list::EntrySource::ADDED_VIA_CURRENT_APP); - closing_contents.push_back(contents); } } - InternalCloseTabs(closing_contents, - CLOSE_CREATE_HISTORICAL_TAB | CLOSE_USER_GESTURE); } base::Optional<tab_groups::TabGroupId> TabStripModel::UngroupTab(int index) {
diff --git a/chrome/browser/ui/tabs/tab_strip_model.h b/chrome/browser/ui/tabs/tab_strip_model.h index b7777d5c..bbce058e 100644 --- a/chrome/browser/ui/tabs/tab_strip_model.h +++ b/chrome/browser/ui/tabs/tab_strip_model.h
@@ -465,7 +465,7 @@ // supported by read later. bool IsReadLaterSupportedForAny(const std::vector<int> indices); - // Saves tabs with url supported by Read Later and closes those tabs. + // Saves tabs with url supported by Read Later. void AddToReadLater(const std::vector<int>& indices); // TabGroupController:
diff --git a/chrome/browser/ui/tabs/tab_strip_model_unittest.cc b/chrome/browser/ui/tabs/tab_strip_model_unittest.cc index 94fb77a..82055c7 100644 --- a/chrome/browser/ui/tabs/tab_strip_model_unittest.cc +++ b/chrome/browser/ui/tabs/tab_strip_model_unittest.cc
@@ -4172,11 +4172,10 @@ TabStripModel* tabstrip = browser()->tab_strip_model(); EXPECT_EQ(tabstrip->count(), 2); - // Add first tab to Read Later and verify it has been added and the tab has - // been closed. + // Add first tab to Read Later and verify it has been added. GURL expected_url = tabstrip->GetWebContentsAt(0)->GetURL(); tabstrip->AddToReadLater({0}); EXPECT_EQ(reading_list_model->size(), 1u); EXPECT_NE(reading_list_model->GetEntryByURL(expected_url), nullptr); - EXPECT_EQ(tabstrip->count(), 1); + EXPECT_EQ(tabstrip->count(), 2); }
diff --git a/chrome/browser/ui/views/accessibility/accessibility_focus_highlight_browsertest.cc b/chrome/browser/ui/views/accessibility/accessibility_focus_highlight_browsertest.cc index eb877b90..bd56e5c 100644 --- a/chrome/browser/ui/views/accessibility/accessibility_focus_highlight_browsertest.cc +++ b/chrome/browser/ui/views/accessibility/accessibility_focus_highlight_browsertest.cc
@@ -4,6 +4,7 @@ #include "math.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "build/build_config.h" #include "cc/test/pixel_comparator.h"
diff --git a/chrome/browser/ui/views/accessibility/invert_bubble_view.cc b/chrome/browser/ui/views/accessibility/invert_bubble_view.cc index 1c1a6ec..164a0d9 100644 --- a/chrome/browser/ui/views/accessibility/invert_bubble_view.cc +++ b/chrome/browser/ui/views/accessibility/invert_bubble_view.cc
@@ -76,7 +76,6 @@ kLearnMoreUrl), vector_icons::kHelpOutlineIcon); button->SetTooltipText(l10n_util::GetStringUTF16(IDS_LEARN_MORE)); - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, button->GetFocusBehavior()); button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); SetExtraView(std::move(button));
diff --git a/chrome/browser/ui/views/autofill/payments/migratable_card_view.cc b/chrome/browser/ui/views/autofill/payments/migratable_card_view.cc index e5944eb..da7c2f6f 100644 --- a/chrome/browser/ui/views/autofill/payments/migratable_card_view.cc +++ b/chrome/browser/ui/views/autofill/payments/migratable_card_view.cc
@@ -199,8 +199,6 @@ kTrashCanIcon); delete_card_from_local_button->SetTooltipText(l10n_util::GetStringUTF16( IDS_AUTOFILL_LOCAL_CARD_MIGRATION_DIALOG_TRASH_CAN_BUTTON_TOOLTIP)); - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, - delete_card_from_local_button->GetFocusBehavior()); delete_card_from_local_button->SetFocusBehavior( FocusBehavior::ACCESSIBLE_ONLY); delete_card_from_local_button_ =
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc index af2af512..f2815225 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -160,7 +160,6 @@ SetHasInkDropActionOnClick(true); SetInkDropVisibleOpacity(kToolbarInkDropVisibleOpacity); - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); show_animation_ = std::make_unique<gfx::SlideAnimation>(this);
diff --git a/chrome/browser/ui/views/find_bar_host.cc b/chrome/browser/ui/views/find_bar_host.cc index 009b0b1..7c33c6d 100644 --- a/chrome/browser/ui/views/find_bar_host.cc +++ b/chrome/browser/ui/views/find_bar_host.cc
@@ -116,7 +116,8 @@ // input. Otherwise Up and Down arrow key strokes get eaten. "Nom Nom Nom". contents->ClearFocusedElement(); NativeWebKeyboardEvent event(key_event); - contents->GetRenderViewHost() + contents->GetMainFrame() + ->GetRenderViewHost() ->GetWidget() ->ForwardKeyboardEventWithLatencyInfo(event, *key_event.latency()); return true;
diff --git a/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc b/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc index b40a116e..d14b4bb 100644 --- a/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc +++ b/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc
@@ -121,24 +121,6 @@ } } - bool SendKeyPressAndWait(const Browser* browser, - ui::KeyboardCode key, - bool control, - bool shift, - bool alt, - bool command, - int type, - const content::NotificationSource& source) { - content::WindowedNotificationObserver observer(type, source); - - if (!ui_test_utils::SendKeyPressSync(browser, key, control, shift, alt, - command)) - return false; - - observer.Wait(); - return !testing::Test::HasFatalFailure(); - } - private: DISALLOW_COPY_AND_ASSIGN(FindInPageTest); }; @@ -771,3 +753,29 @@ // Find should be closed ASSERT_FALSE(IsFindBarVisible()); } + +// See http://crbug.com/1142027 +IN_PROC_BROWSER_TEST_F(FindInPageTest, MatchOrdinalStableWhileTyping) { + // Make sure Chrome is in the foreground, otherwise sending input + // won't do anything and the test will hang. + ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); + ui_test_utils::NavigateToURL(browser(), GURL("data:text/html,foo foo foo")); + auto* web_contents = browser()->tab_strip_model()->GetActiveWebContents(); + + browser()->GetFindBarController()->Show(); + EXPECT_TRUE(IsViewFocused(browser(), VIEW_ID_FIND_IN_PAGE_TEXT_FIELD)); + + ui_test_utils::FindResultWaiter waiter1(web_contents, 1 /*request_offset*/); + ASSERT_TRUE(ui_test_utils::SendKeyPressSync( + browser(), ui::VKEY_F, false, false, false, false)); + waiter1.Wait(); + EXPECT_EQ(1, waiter1.active_match_ordinal()); + EXPECT_EQ(3, waiter1.number_of_matches()); + + ui_test_utils::FindResultWaiter waiter2(web_contents, 1 /*request_offset*/); + ASSERT_TRUE(ui_test_utils::SendKeyPressSync( + browser(), ui::VKEY_O, false, false, false, false)); + waiter2.Wait(); + EXPECT_EQ(1, waiter2.active_match_ordinal()); + EXPECT_EQ(3, waiter2.number_of_matches()); +}
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index b6815bf3..e2eb18d 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -2637,7 +2637,9 @@ if (!web_contents) return; interactive_resize_in_progress_ = true; - web_contents->GetRenderViewHost()->NotifyMoveOrResizeStarted(); + web_contents->GetMainFrame() + ->GetRenderViewHost() + ->NotifyMoveOrResizeStarted(); } void BrowserView::OnWindowEndUserBoundsChange() {
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc index e55ec58..a3e770fc 100644 --- a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc +++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
@@ -557,6 +557,7 @@ tp->GetImageSkiaNamed(hot_image_id)); button->SetImage(views::Button::STATE_PRESSED, tp->GetImageSkiaNamed(pushed_image_id)); + button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); if (browser_view()->IsBrowserTypeNormal()) { // Get a custom processed version of the theme's background image so // that it appears to draw contiguously across all of the caption
diff --git a/chrome/browser/ui/views/frame/tab_strip_region_view.cc b/chrome/browser/ui/views/frame/tab_strip_region_view.cc index f37afbf3..7364b0b 100644 --- a/chrome/browser/ui/views/frame/tab_strip_region_view.cc +++ b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
@@ -42,6 +42,7 @@ views::ImageButton::VerticalAlignment::ALIGN_MIDDLE); scroll_button->SetHasInkDropActionOnClick(true); scroll_button->SetInkDropMode(views::Button::InkDropMode::ON); + scroll_button->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); return scroll_button; }
diff --git a/chrome/browser/ui/views/hats/hats_browsertest.cc b/chrome/browser/ui/views/hats/hats_browsertest.cc index b630ad9..9677aea 100644 --- a/chrome/browser/ui/views/hats/hats_browsertest.cc +++ b/chrome/browser/ui/views/hats/hats_browsertest.cc
@@ -6,6 +6,7 @@ #include <string> #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc index ada8dfc..b927429 100644 --- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
@@ -207,6 +207,7 @@ close_button_->SetBorder(views::CreateEmptyBorder( gfx::Insets(GetLayoutConstant(LOCATION_BAR_CHILD_INTERIOR_PADDING)))); close_button_->SizeToPreferredSize(); + close_button_->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); views::InstallCircleHighlightPathGenerator(close_button_); location_icon_view_ =
diff --git a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc index 425a66a..8cbbac9f 100644 --- a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc +++ b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
@@ -143,7 +143,6 @@ views::HighlightPathGenerator::Install( this, std::make_unique<HighlightPathGenerator>()); - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); UpdateBorder();
diff --git a/chrome/browser/ui/views/omnibox/omnibox_result_view.cc b/chrome/browser/ui/views/omnibox/omnibox_result_view.cc index 51444d4..0b54727 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_result_view.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
@@ -55,7 +55,6 @@ : ImageButton(std::move(callback)) { views::ConfigureVectorImageButton(this); - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/chrome/browser/ui/views/omnibox/omnibox_row_view.cc b/chrome/browser/ui/views/omnibox/omnibox_row_view.cc index f13c398..e8547d8 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_row_view.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_row_view.cc
@@ -60,8 +60,6 @@ &HeaderView::HeaderToggleButtonPressed, base::Unretained(this)))); mouse_enter_exit_handler_.ObserveMouseEnterExitOn(header_toggle_button_); views::InstallCircleHighlightPathGenerator(header_toggle_button_); - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, - header_toggle_button_->GetFocusBehavior()); header_toggle_button_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); header_toggle_button_focus_ring_ =
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc b/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc index 5ea0bc0e..4738618 100644 --- a/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc +++ b/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
@@ -6,6 +6,7 @@ #include "base/command_line.h" #include "base/feature_list.h" +#include "base/files/file_util.h" #include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/path_service.h"
diff --git a/chrome/browser/ui/views/profiles/profile_picker_view.cc b/chrome/browser/ui/views/profiles/profile_picker_view.cc index 9e99f70e..e7c949d 100644 --- a/chrome/browser/ui/views/profiles/profile_picker_view.cc +++ b/chrome/browser/ui/views/profiles/profile_picker_view.cc
@@ -71,6 +71,7 @@ } case ProfilePicker::EntryPoint::kProfileMenuManageProfiles: case ProfilePicker::EntryPoint::kOpenNewWindowAfterProfileDeletion: + case ProfilePicker::EntryPoint::kNewSessionOnExistingProcess: return base_url; case ProfilePicker::EntryPoint::kProfileMenuAddNewProfile: return base_url.Resolve("new-profile");
diff --git a/chrome/browser/ui/views/read_later/read_later_bubble_view.cc b/chrome/browser/ui/views/read_later/read_later_bubble_view.cc index aae8c79a..75ab6a5 100644 --- a/chrome/browser/ui/views/read_later/read_later_bubble_view.cc +++ b/chrome/browser/ui/views/read_later/read_later_bubble_view.cc
@@ -47,6 +47,3 @@ : WebBubbleDialogView(browser->profile(), anchor_view) {} ReadLaterBubbleView::~ReadLaterBubbleView() = default; - -void ReadLaterBubbleView::ReadingListModelLoaded( - const ReadingListModel* model) {}
diff --git a/chrome/browser/ui/views/read_later/read_later_bubble_view.h b/chrome/browser/ui/views/read_later/read_later_bubble_view.h index fd12bac5..aafda1ee 100644 --- a/chrome/browser/ui/views/read_later/read_later_bubble_view.h +++ b/chrome/browser/ui/views/read_later/read_later_bubble_view.h
@@ -14,8 +14,7 @@ // This bubble view displays a list of read-later entries. // This class is only used with the kReadLater feature. -class ReadLaterBubbleView : public views::WebBubbleDialogView, - public ReadingListModelObserver { +class ReadLaterBubbleView : public views::WebBubbleDialogView { public: // Displays the read-later dialog under |anchor_view|, attached to |browser|. static base::WeakPtr<ReadLaterBubbleView> Show(const Browser* browser, @@ -27,9 +26,6 @@ ~ReadLaterBubbleView() override; private: - // ReadingListModelObserver: - void ReadingListModelLoaded(const ReadingListModel* model) override; - base::WeakPtrFactory<ReadLaterBubbleView> weak_factory_{this}; };
diff --git a/chrome/browser/ui/views/tabs/new_tab_button.cc b/chrome/browser/ui/views/tabs/new_tab_button.cc index 5aabf533..c94ab7d 100644 --- a/chrome/browser/ui/views/tabs/new_tab_button.cc +++ b/chrome/browser/ui/views/tabs/new_tab_button.cc
@@ -73,7 +73,6 @@ views::HighlightPathGenerator::Install( this, std::make_unique<NewTabButton::HighlightPathGenerator>()); - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc index 677546e24..a906dda 100644 --- a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc +++ b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc
@@ -7,6 +7,7 @@ #include <string> #include "base/command_line.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/strings/string_util.h" #include "base/threading/thread_restrictions.h"
diff --git a/chrome/browser/ui/webui/policy_ui_browsertest.cc b/chrome/browser/ui/webui/policy_ui_browsertest.cc index 24e59e2..2cb49709 100644 --- a/chrome/browser/ui/webui/policy_ui_browsertest.cc +++ b/chrome/browser/ui/webui/policy_ui_browsertest.cc
@@ -9,6 +9,7 @@ #include <vector> #include "base/callback.h" +#include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/json/json_reader.h" #include "base/json/json_writer.h"
diff --git a/chrome/browser/ui/webui/settings_utils_linux.cc b/chrome/browser/ui/webui/settings_utils_linux.cc index d906ecc..0276b92 100644 --- a/chrome/browser/ui/webui/settings_utils_linux.cc +++ b/chrome/browser/ui/webui/settings_utils_linux.cc
@@ -145,9 +145,13 @@ void ShowNetworkProxySettings(content::WebContents* web_contents) { base::ThreadPool::PostTask( FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()}, - base::BindOnce(&DetectAndStartProxyConfigUtil, - web_contents->GetRenderViewHost()->GetProcess()->GetID(), - web_contents->GetRenderViewHost()->GetRoutingID())); + base::BindOnce( + &DetectAndStartProxyConfigUtil, + web_contents->GetMainFrame() + ->GetRenderViewHost() + ->GetProcess() + ->GetID(), + web_contents->GetMainFrame()->GetRenderViewHost()->GetRoutingID())); } } // namespace settings_utils
diff --git a/chrome/browser/ui/webui/webui_webview_browsertest.cc b/chrome/browser/ui/webui/webui_webview_browsertest.cc index 9e422f3..38f39d7c 100644 --- a/chrome/browser/ui/webui/webui_webview_browsertest.cc +++ b/chrome/browser/ui/webui/webui_webview_browsertest.cc
@@ -337,7 +337,7 @@ // Flush any pending events to make sure we start with a clean slate. content::RunAllPendingInMessageLoop(); content::RenderViewHost* const render_view_host = - embedder_web_contents->GetRenderViewHost(); + embedder_web_contents->GetMainFrame()->GetRenderViewHost(); gfx::NativeView view = embedder_web_contents->GetNativeView(); view->SetBounds(gfx::Rect(0, 0, 400, 400));
diff --git a/chrome/browser/ui/zoom/zoom_controller_browsertest.cc b/chrome/browser/ui/zoom/zoom_controller_browsertest.cc index 7664f4f..9322098 100644 --- a/chrome/browser/ui/zoom/zoom_controller_browsertest.cc +++ b/chrome/browser/ui/zoom/zoom_controller_browsertest.cc
@@ -87,7 +87,8 @@ host->Shutdown(0); crash_observer.Wait(); } - EXPECT_FALSE(web_contents->GetRenderViewHost()->IsRenderViewLive()); + EXPECT_FALSE( + web_contents->GetMainFrame()->GetRenderViewHost()->IsRenderViewLive()); // The following attempt to change the zoom level for a crashed tab should // fail.
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 2281a20..6c184d3 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-master-1603777504-e29f505cee8cadd0b5b5127539f147bff09e64be.profdata +chrome-linux-master-1603799921-18f2bb90aa116c4ca4ae138df9ceaff090340372.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index d5775a22..c8aef488 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-master-1603777504-1efb0ca1330464e38ca172c34d8ac2b307218a42.profdata +chrome-mac-master-1603799921-5641a8e4cf3ceccb7c3fad2e0b8caf839faa62b9.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 7ba86b4..745d78c 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-master-1603701931-6f855b80e1fee5d14d084f4dde5311562280349a.profdata +chrome-win64-master-1603767556-44fda54b3a92e9d2336119e8c5ad34567957992b.profdata
diff --git a/chrome/common/extensions/api/file_manager_private.idl b/chrome/common/extensions/api/file_manager_private.idl index 9d5acf1f8..a3600b0 100644 --- a/chrome/common/extensions/api/file_manager_private.idl +++ b/chrome/common/extensions/api/file_manager_private.idl
@@ -1089,7 +1089,7 @@ // |entry| Entry of the image to copy to the system clipboard. [nocompile] static void copyImageToClipboard([instanceof=Entry] object entry, - SimpleCallback callback); + BooleanCallback callback); // Starts to copy an entry. If the source is a directory, the copy is done // recursively.
diff --git a/chrome/common/extensions/api/file_manager_private_internal.idl b/chrome/common/extensions/api/file_manager_private_internal.idl index 01e0f4a..0f7b48b 100644 --- a/chrome/common/extensions/api/file_manager_private_internal.idl +++ b/chrome/common/extensions/api/file_manager_private_internal.idl
@@ -85,7 +85,7 @@ static void getFileTasks(DOMString[] urls, GetFileTasksCallback callback); static void getDownloadUrl(DOMString url, GetUrlCallback callback); - static void copyImageToClipboard(DOMString url, SimpleCallback callback); + static void copyImageToClipboard(DOMString url, BooleanCallback callback); static void startCopy(DOMString url, DOMString parentUrl, DOMString newName,
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 5e2a3b5..a1f7e1a 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -979,6 +979,7 @@ "../browser/chrome_navigation_browsertest.cc", "../browser/chrome_origin_trials_browsertest.cc", "../browser/chrome_plugin_browsertest.cc", + "../browser/chrome_private_network_request_browsertest.cc", "../browser/chrome_security_exploit_browsertest.cc", "../browser/chrome_service_worker_browsertest.cc", "../browser/chrome_worker_browsertest.cc", @@ -2689,6 +2690,7 @@ "../browser/extensions/api/settings_private/settings_private_browsertest_chromeos.cc", "../browser/extensions/api/vpn_provider/vpn_provider_apitest.cc", "../browser/extensions/chromeos_component_extensions_browsertest.cc", + "../browser/metrics/family_link_user_metrics_provider_browsertest.cc", "../browser/metrics/family_user_metrics_provider_browsertest.cc", "../browser/notifications/notification_platform_bridge_chromeos_browsertest.cc", "../browser/resources/chromeos/zip_archiver/test/zip_archiver_jstest.cc",
diff --git a/chrome/test/base/find_result_waiter.cc b/chrome/test/base/find_result_waiter.cc index 0f58860..d221f33 100644 --- a/chrome/test/base/find_result_waiter.cc +++ b/chrome/test/base/find_result_waiter.cc
@@ -10,10 +10,12 @@ namespace ui_test_utils { -FindResultWaiter::FindResultWaiter(content::WebContents* parent_tab) { +FindResultWaiter::FindResultWaiter(content::WebContents* parent_tab, + int request_offset) { find_in_page::FindTabHelper* find_tab_helper = find_in_page::FindTabHelper::FromWebContents(parent_tab); - current_find_request_id_ = find_tab_helper->current_find_request_id(); + current_find_request_id_ = find_tab_helper->current_find_request_id() + + request_offset; observer_.Add(find_tab_helper); }
diff --git a/chrome/test/base/find_result_waiter.h b/chrome/test/base/find_result_waiter.h index e2cd0171..7c3cf8d5 100644 --- a/chrome/test/base/find_result_waiter.h +++ b/chrome/test/base/find_result_waiter.h
@@ -28,12 +28,16 @@ // FindInPageWchar(); // FindResultWaiter observer(tab); // observer.Wait(); -// -// Always construct FindResultWaiter AFTER initiating the search. It captures -// the current search ID in the constructor and waits for it only. class FindResultWaiter : public find_in_page::FindResultObserver { public: - explicit FindResultWaiter(content::WebContents* parent_tab); + // |request_offset| will be added to the current find request ID; the + // resulting ID will be the only one waited on. Typically, FindResultWaiter + // is constructed AFTER initiating a search, with request_offset set to 0. In + // such cases you must be sure the find-result callback won't already have + // been called. Otherwise, you can construct FindResultWaiter BEFORE starting + // a search and set request_offset to 1 (or whatever offset is appropriate). + explicit FindResultWaiter(content::WebContents* parent_tab, + int request_offset = 0); FindResultWaiter(const FindResultWaiter&) = delete; FindResultWaiter& operator=(const FindResultWaiter&) = delete; ~FindResultWaiter() override;
diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_process_browser_test.cc index eeb342e..d79ae03 100644 --- a/chrome/test/base/in_process_browser_test.cc +++ b/chrome/test/base/in_process_browser_test.cc
@@ -31,6 +31,7 @@ #include "chrome/browser/devtools/devtools_window.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/browser/lifetime/termination_notification.h" +#include "chrome/browser/navigation_predictor/search_engine_preconnector.h" #include "chrome/browser/net/chrome_network_delegate.h" #include "chrome/browser/net/net_error_tab_helper.h" #include "chrome/browser/predictors/loading_predictor_config.h" @@ -220,6 +221,10 @@ #if defined(OS_MAC) bundle_swizzler_ = std::make_unique<ScopedBundleSwizzlerMac>(); #endif + + // Preconnecting can cause non-deterministic test behavior especially with + // various test fixtures that mock servers. + scoped_feature_list_.InitAndDisableFeature(features::kPreconnectToSearch); } InProcessBrowserTest::~InProcessBrowserTest() = default;
diff --git a/chrome/test/base/javascript_browser_test.cc b/chrome/test/base/javascript_browser_test.cc index e5fe6db..233d925e 100644 --- a/chrome/test/base/javascript_browser_test.cc +++ b/chrome/test/base/javascript_browser_test.cc
@@ -4,6 +4,7 @@ #include "chrome/test/base/javascript_browser_test.h" +#include "base/files/file_util.h" #include "base/path_service.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_restrictions.h"
diff --git a/chrome/test/base/web_ui_browser_test.cc b/chrome/test/base/web_ui_browser_test.cc index 01516bba..0504897f 100644 --- a/chrome/test/base/web_ui_browser_test.cc +++ b/chrome/test/base/web_ui_browser_test.cc
@@ -10,6 +10,7 @@ #include <vector> #include "base/bind.h" +#include "base/files/file_util.h" #include "base/lazy_instance.h" #include "base/memory/ref_counted_memory.h" #include "base/path_service.h"
diff --git a/chrome/test/data/chromeos/enterprise/policies b/chrome/test/data/chromeos/enterprise/policies index 455a35fe..510814c6 100644 --- a/chrome/test/data/chromeos/enterprise/policies +++ b/chrome/test/data/chromeos/enterprise/policies
@@ -23,7 +23,6 @@ u'DefaultImagesSetting': 2, u'DefaultJavaScriptSetting': 2, u'DefaultNotificationsSetting': 2, - u'DefaultPluginsSetting': 2, u'DefaultPopupsSetting': 2, u'DefaultSearchProviderEnabled': True, u'DefaultSearchProviderEncodings': [u'UTF-8'], @@ -84,7 +83,6 @@ u'DefaultImagesSetting': 1, u'DefaultJavaScriptSetting': 1, u'DefaultNotificationsSetting': 1, - u'DefaultPluginsSetting': 1, u'DefaultPopupsSetting': 1, u'DefaultSearchProviderEnabled': True, u'DefaultSearchProviderEncodings': [ @@ -155,7 +153,6 @@ u'DefaultSearchProviderSearchURL': u'http://search.my.company/search?q={searchTerms}', u'DefaultNotificationsSetting': 3, - u'DefaultPluginsSetting': 1, u'DefaultSearchProviderEncodings': [ u'["UTF-8"', u'"UTF-16"', @@ -274,7 +271,6 @@ u'DefaultImagesSetting': 2, u'DefaultJavaScriptSetting': 2, u'DefaultNotificationsSetting': 2, - u'DefaultPluginsSetting': 2, u'DefaultPopupsSetting': 2, u'DefaultSearchProviderEnabled': True, u'DefaultSearchProviderEncodings': [u'UTF-8'], @@ -335,7 +331,6 @@ u'DefaultImagesSetting': 1, u'DefaultJavaScriptSetting': 1, u'DefaultNotificationsSetting': 1, - u'DefaultPluginsSetting': 1, u'DefaultPopupsSetting': 1, u'DefaultSearchProviderEnabled': True, u'DefaultSearchProviderEncodings': [ @@ -406,7 +401,6 @@ u'DefaultSearchProviderSearchURL': u'http://search.my.company/search?q={searchTerms}', u'DefaultNotificationsSetting': 3, - u'DefaultPluginsSetting': 1, u'DefaultSearchProviderEncodings': [ u'["UTF-8"', u'"UTF-16"',
diff --git a/chrome/test/data/extensions/api_test/networking_private/chromeos/test.js b/chrome/test/data/extensions/api_test/networking_private/chromeos/test.js index dff9bd3..0a88d74d 100644 --- a/chrome/test/data/extensions/api_test/networking_private/chromeos/test.js +++ b/chrome/test/data/extensions/api_test/networking_private/chromeos/test.js
@@ -902,9 +902,7 @@ function getCaptivePortalStatus() { var networks = [['stub_ethernet_guid', 'Online'], ['stub_wifi1_guid', 'Offline'], - ['stub_wifi2_guid', 'Portal'], - ['stub_cellular1_guid', 'ProxyAuthRequired'], - ['stub_vpn1_guid', 'Unknown']]; + ['stub_wifi2_guid', 'Portal']]; networks.forEach(function(network) { var guid = network[0]; var expectedStatus = network[1]; @@ -919,7 +917,7 @@ var done = chrome.test.callbackAdded(); var listener = new privateHelpers.watchForCaptivePortalState( - 'wifi_guid', 'Online', done); + 'stub_wifi1_guid', 'Portal', done); chrome.test.sendMessage('notifyPortalDetectorObservers'); }, function unlockCellularSim() {
diff --git a/chrome/test/data/policy/policy_test_cases.json b/chrome/test/data/policy/policy_test_cases.json index cc2dc69..44eb804f4 100644 --- a/chrome/test/data/policy/policy_test_cases.json +++ b/chrome/test/data/policy/policy_test_cases.json
@@ -914,15 +914,7 @@ }, "DisabledPlugins.0": { - "note": "This policy is deprecated. This test tests its migration path.", - "os": ["win", "linux", "mac", "chromeos"], - "policy_pref_mapping_test": [ - { - "policies": { "DisabledPlugins": [ "*Flash*" ] }, - "prefs": { "profile.managed_default_content_settings.plugins": { "value": 2 } }, - "indicator_tests": [{ "pref": "profile.managed_default_content_settings.plugins", "selector": "[content-setting=plugins]", "value": "block" }] - } - ] + "note": "This policy is deprecated. This test tests its migration path." }, "DisabledPlugins.1": { @@ -937,15 +929,7 @@ }, "EnabledPlugins.0": { - "note": "This policy is deprecated. This test tests its migration path.", - "os": ["win", "linux", "mac", "chromeos"], - "policy_pref_mapping_test": [ - { - "policies": { "EnabledPlugins": [ "*Flash*" ] }, - "prefs": { "profile.managed_default_content_settings.plugins": {"value": 1 } }, - "indicator_tests": [{ "pref": "profile.managed_default_content_settings.plugins", "selector": "[content-setting=plugins]", "value": "allow" }] - } - ] + "note": "This policy is deprecated. This test tests its migration path." }, "EnabledPlugins.1": { @@ -2108,21 +2092,7 @@ }, "DefaultPluginsSetting": { - "os": ["win", "linux", "mac", "chromeos"], - "policy_pref_mapping_test": [ - { - "policies": { "DefaultPluginsSetting": 1 }, - "prefs": { "profile.managed_default_content_settings.plugins": { "value": 1 } }, - "indicator_tests": [{ "pref": "profile.managed_default_content_settings.plugins", "selector": "[content-setting=plugins]", "value": "allow" }], - "note": "TODO(bartfab): Flag this with can_be_recommended when http://crbug.com/106682 is fixed." - }, - { - "policies": { "DefaultPluginsSetting": 2 }, - "prefs": { "profile.managed_default_content_settings.plugins": { } }, - "indicator_tests" :[{ "pref": "profile.managed_default_content_settings.plugins", "selector": "[content-setting=plugins]", "value": "block" }], - "note": "TODO(bartfab): Flag this with can_be_recommended when http://crbug.com/106682 is fixed." - } - ] + "note": "Deprecated since Chrome 88. See https://crbug.com/1083496" }, "DefaultPopupsSetting": {
diff --git a/chrome/test/data/prefers-contrast.html b/chrome/test/data/prefers-contrast.html new file mode 100644 index 0000000..e677209 --- /dev/null +++ b/chrome/test/data/prefers-contrast.html
@@ -0,0 +1,11 @@ +<!DOCTYPE html> +<title>FAIL</title> +<script> + if (window.matchMedia("(prefers-contrast: more)").matches) { + document.title = "more"; + } else if (window.matchMedia("(prefers-contrast: less)").matches) { + document.title = "less"; + } else if (window.matchMedia("(prefers-contrast: no-preference)").matches) { + document.title = "no-preference"; + } +</script>
diff --git a/chrome/test/data/treat-as-public-address.html b/chrome/test/data/treat-as-public-address.html new file mode 100644 index 0000000..f7b3a8c --- /dev/null +++ b/chrome/test/data/treat-as-public-address.html
@@ -0,0 +1,7 @@ +<html> + <head> + <!-- Disable extra network request for /favicon.ico --> + <link rel="icon" href="data:,"> + </head> + <body></body> +</html>
diff --git a/chrome/test/data/treat-as-public-address.html.mock-http-headers b/chrome/test/data/treat-as-public-address.html.mock-http-headers new file mode 100644 index 0000000..374554ae1 --- /dev/null +++ b/chrome/test/data/treat-as-public-address.html.mock-http-headers
@@ -0,0 +1,2 @@ +HTTP/1.1 200 OK +Content-Security-Policy: treat-as-public-address
diff --git a/chrome/test/ppapi/ppapi_browsertest.cc b/chrome/test/ppapi/ppapi_browsertest.cc index c57e75f..c6b3d09b 100644 --- a/chrome/test/ppapi/ppapi_browsertest.cc +++ b/chrome/test/ppapi/ppapi_browsertest.cc
@@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/callback.h" +#include "base/files/file_util.h" #include "base/optional.h" #include "base/path_service.h" #include "base/stl_util.h"
diff --git a/chrome/test/ppapi/ppapi_test.cc b/chrome/test/ppapi/ppapi_test.cc index baf45be..86df070 100644 --- a/chrome/test/ppapi/ppapi_test.cc +++ b/chrome/test/ppapi/ppapi_test.cc
@@ -320,8 +320,11 @@ RunTest(test_case); blink::SyntheticWebTouchEvent touchEvent; touchEvent.PressPoint(5, 5); - RenderViewHost* rvh = - browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(); + RenderViewHost* rvh = browser() + ->tab_strip_model() + ->GetActiveWebContents() + ->GetMainFrame() + ->GetRenderViewHost(); auto watcher = content::RenderViewHostTester::CreateInputWatcher( rvh, blink::WebInputEvent::Type::kTouchStart);
diff --git a/chromecast/browser/accessibility/flutter/ax_tree_source_flutter.cc b/chromecast/browser/accessibility/flutter/ax_tree_source_flutter.cc index c844569..55842374 100644 --- a/chromecast/browser/accessibility/flutter/ax_tree_source_flutter.cc +++ b/chromecast/browser/accessibility/flutter/ax_tree_source_flutter.cc
@@ -662,20 +662,20 @@ focus_event.event_type = ax::mojom::Event::kFocus; focus_event.id = focused_id_; focus_event.event_from = ax::mojom::EventFrom::kNone; - - // Speak it. - SubmitTTS(name); } } } - // Detect any removed nodes with scopes_route flag. + // Clean up the cache for those nodes that should not be in the cache anymore. bool need_refocus = false; for (std::vector<int32_t>::iterator it = scopes_route_cache_.begin(); it != scopes_route_cache_.end();) { int32_t id = *it; - if (GetFromId(id) == nullptr) { - // This was removed. + FlutterSemanticsNode* scopes_route_node = GetFromId(id); + if (scopes_route_node == nullptr || !scopes_route_node->HasScopesRoute() || + FindRoutesNode(scopes_route_node) == nullptr) { + // This was removed in the latest tree update or there are no more + // RoutesNode child. it = scopes_route_cache_.erase(it++); need_refocus = true; } else {
diff --git a/chromecast/browser/accessibility/flutter/ax_tree_source_flutter_unittest.cc b/chromecast/browser/accessibility/flutter/ax_tree_source_flutter_unittest.cc index 3e0fd5c..0cd98da2 100644 --- a/chromecast/browser/accessibility/flutter/ax_tree_source_flutter_unittest.cc +++ b/chromecast/browser/accessibility/flutter/ax_tree_source_flutter_unittest.cc
@@ -726,17 +726,6 @@ // Tests a new node with scopes route will focus and speak // a child with names route set. TEST_F(AXTreeSourceFlutterTest, ScopesRoute) { - // Install a mock tts platform - auto* tts_controller = content::TtsController::GetInstance(); - content::MockTtsPlatformImpl mock_tts_platform; - tts_controller->SetTtsPlatform(&mock_tts_platform); - - // Setup some mocks required for tts platform impl - content::MockContentBrowserClient mock_content_browser_client; - content::MockContentClient client; - content::SetContentClient(&client); - content::SetBrowserClientForTesting(&mock_content_browser_client); - // Add node with scopes route and child with names route. Focus // should move to node with names route. // @@ -790,16 +779,9 @@ CallGetTreeData(&tree_data); ASSERT_EQ(6, tree_data.focus_id); - // Child 3 should have been spoken - ASSERT_TRUE(mock_tts_platform.GetLastSpokenUtterance() == child_6_label); - - mock_tts_platform.ClearLastSpokenUtterance(); - // Same tree should not speak the same scopes_route/names_route CallNotifyAccessibilityEvent(&event); - ASSERT_TRUE(mock_tts_platform.GetLastSpokenUtterance() == ""); - // Now setup another tree but with 5&6 removed. This should // make the tree source focus (but not speak) 3 @@ -828,11 +810,9 @@ CallGetTreeData(&tree_data); ASSERT_EQ(3, tree_data.focus_id); - // Nothings spoken - ASSERT_TRUE(mock_tts_platform.GetLastSpokenUtterance() == ""); + // Now step to have removed node 3 and re-add node 3 back in the tree. In this + // case, node 3 should be refocused and spoken. - // Finally, remove 2&3 - // OnAccessibilityEventRequest event3; event3.set_source_id(0); event3.set_window_id(1); @@ -841,8 +821,52 @@ root = event3.add_node_data(); root->set_node_id(0); + child1 = AddChild(&event3, root, 1, 0, 0, 1, 1, false); + child2 = AddChild(&event3, child1, 2, 0, 0, 1, 1, false); + + // Set scopes on child2 + boolean_properties = child2->mutable_boolean_properties(); + boolean_properties->set_scopes_route(true); + CallNotifyAccessibilityEvent(&event3); + OnAccessibilityEventRequest event4; + event4.set_source_id(0); + event4.set_window_id(1); + event4.set_event_type(OnAccessibilityEventRequest_EventType_CONTENT_CHANGED); + + root = event4.add_node_data(); + root->set_node_id(0); + + child1 = AddChild(&event4, root, 1, 0, 0, 1, 1, false); + child2 = AddChild(&event4, child1, 2, 0, 0, 1, 1, false); + child3 = AddChild(&event4, child2, 3, 0, 0, 1, 1, false); + child3->set_label(child_3_label); + + // Set scopes on child2, names on child3 + boolean_properties = child2->mutable_boolean_properties(); + boolean_properties->set_scopes_route(true); + boolean_properties = child3->mutable_boolean_properties(); + boolean_properties->set_names_route(true); + + CallNotifyAccessibilityEvent(&event4); + + // Focus moves to 3 + CallGetTreeData(&tree_data); + ASSERT_EQ(3, tree_data.focus_id); + + // Finally, remove 2 + // + OnAccessibilityEventRequest event5; + event5.set_source_id(0); + event5.set_window_id(1); + event5.set_event_type(OnAccessibilityEventRequest_EventType_CONTENT_CHANGED); + + root = event5.add_node_data(); + root->set_node_id(0); + + CallNotifyAccessibilityEvent(&event5); + CallGetTreeData(&tree_data); ASSERT_EQ(0, tree_data.focus_id); }
diff --git a/chromecast/ui/media_control_ui.cc b/chromecast/ui/media_control_ui.cc index 1d3be9a4..04aecd6 100644 --- a/chromecast/ui/media_control_ui.cc +++ b/chromecast/ui/media_control_ui.cc
@@ -239,6 +239,7 @@ button->SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER); button->SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE); button->SetSize(gfx::Size(height, height)); + button->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); SetButtonImage(button.get(), icon); return button;
diff --git a/chromeos/dbus/attestation/attestation_client.h b/chromeos/dbus/attestation/attestation_client.h index 20976b5..59bf8420 100644 --- a/chromeos/dbus/attestation/attestation_client.h +++ b/chromeos/dbus/attestation/attestation_client.h
@@ -6,6 +6,7 @@ #define CHROMEOS_DBUS_ATTESTATION_ATTESTATION_CLIENT_H_ #include <deque> +#include <vector> #include "base/callback.h" #include "base/component_export.h" @@ -110,6 +111,26 @@ // queried. virtual ::attestation::CreateCertificateRequestReply* mutable_certificate_request_reply() = 0; + + // Gets the history of `DeleteKeys()` requests. + virtual const std::vector<::attestation::DeleteKeysRequest>& + delete_keys_history() const = 0; + + // Clears the request history of `DeleteKeys()`. + virtual void ClearDeleteKeysHistory() = 0; + + // Sets returned enrollment ids, when ignoring/not ignoring cache, + // respectively. + virtual void set_enrollment_id_ignore_cache(const std::string& id) = 0; + virtual void set_cached_enrollment_id(const std::string& id) = 0; + // Sets the returned status of `GetEnrollmentId()` to be D-Bus error for + // `count` times to emulate D-Bus late availability. + virtual void set_enrollment_id_dbus_error_count(int count) = 0; + + // Gets the reply to the key info query as a fake database. + virtual ::attestation::GetKeyInfoReply* GetMutableKeyInfoReply( + const std::string& username, + const std::string& label) = 0; }; // Not copyable or movable.
diff --git a/chromeos/dbus/attestation/fake_attestation_client.cc b/chromeos/dbus/attestation/fake_attestation_client.cc index 04d85828..e0cfaa9 100644 --- a/chromeos/dbus/attestation/fake_attestation_client.cc +++ b/chromeos/dbus/attestation/fake_attestation_client.cc
@@ -57,7 +57,15 @@ void FakeAttestationClient::GetKeyInfo( const ::attestation::GetKeyInfoRequest& request, GetKeyInfoCallback callback) { - NOTIMPLEMENTED(); + ::attestation::GetKeyInfoReply reply; + auto iter = key_info_database_.find(request); + if (iter != key_info_database_.end()) { + reply = iter->second; + } else { + reply.set_status(::attestation::STATUS_INVALID_PARAMETER); + } + + PostProtoResponse(std::move(callback), reply); } void FakeAttestationClient::GetEndorsementInfo( @@ -228,13 +236,26 @@ void FakeAttestationClient::SetKeyPayload( const ::attestation::SetKeyPayloadRequest& request, SetKeyPayloadCallback callback) { - NOTIMPLEMENTED(); + ::attestation::GetKeyInfoRequest get_key_info_request; + get_key_info_request.set_username(request.username()); + get_key_info_request.set_key_label(request.key_label()); + auto iter = key_info_database_.find(get_key_info_request); + ::attestation::SetKeyPayloadReply reply; + if (iter == key_info_database_.end()) { + reply.set_status(::attestation::STATUS_INVALID_PARAMETER); + } else { + iter->second.set_payload(request.payload()); + } + PostProtoResponse(std::move(callback), reply); } void FakeAttestationClient::DeleteKeys( const ::attestation::DeleteKeysRequest& request, DeleteKeysCallback callback) { - NOTIMPLEMENTED(); + delete_keys_history_.push_back(request); + ::attestation::DeleteKeysReply reply; + reply.set_status(::attestation::STATUS_SUCCESS); + PostProtoResponse(std::move(callback), reply); } void FakeAttestationClient::ResetIdentity( @@ -246,7 +267,16 @@ void FakeAttestationClient::GetEnrollmentId( const ::attestation::GetEnrollmentIdRequest& request, GetEnrollmentIdCallback callback) { - NOTIMPLEMENTED(); + ::attestation::GetEnrollmentIdReply reply; + if (enrollment_id_dbus_error_count_ != 0) { + reply.set_status(::attestation::STATUS_DBUS_ERROR); + enrollment_id_dbus_error_count_--; + } else { + reply.set_status(::attestation::STATUS_SUCCESS); + reply.set_enrollment_id(request.ignore_cache() ? enrollment_id_ignore_cache_ + : enrollment_id_); + } + PostProtoResponse(std::move(callback), reply); } void FakeAttestationClient::GetCertifiedNvIndex( @@ -296,6 +326,38 @@ allowlisted_create_requests_.push_back(request); } +const std::vector<::attestation::DeleteKeysRequest>& +FakeAttestationClient::delete_keys_history() const { + return delete_keys_history_; +} + +void FakeAttestationClient::ClearDeleteKeysHistory() { + delete_keys_history_.clear(); +} + +void FakeAttestationClient::set_enrollment_id_ignore_cache( + const std::string& id) { + enrollment_id_ignore_cache_ = id; +} + +void FakeAttestationClient::set_cached_enrollment_id(const std::string& id) { + enrollment_id_ = id; +} + +void FakeAttestationClient::set_enrollment_id_dbus_error_count(int count) { + enrollment_id_dbus_error_count_ = count; +} + +::attestation::GetKeyInfoReply* FakeAttestationClient::GetMutableKeyInfoReply( + const std::string& username, + const std::string& label) { + ::attestation::GetKeyInfoRequest request; + request.set_username(username); + request.set_key_label(label); + // If there doesn't exist the entry yet, just create a new one. + return &(key_info_database_[request]); +} + AttestationClient::TestInterface* FakeAttestationClient::GetTestInterface() { return this; }
diff --git a/chromeos/dbus/attestation/fake_attestation_client.h b/chromeos/dbus/attestation/fake_attestation_client.h index 73960d2..89213534 100644 --- a/chromeos/dbus/attestation/fake_attestation_client.h +++ b/chromeos/dbus/attestation/fake_attestation_client.h
@@ -8,6 +8,8 @@ #include "chromeos/dbus/attestation/attestation_client.h" #include <deque> +#include <map> +#include <string> #include <vector> #include "base/component_export.h" @@ -106,6 +108,15 @@ ::attestation::KeyType key_type) override; ::attestation::CreateCertificateRequestReply* mutable_certificate_request_reply() override; + const std::vector<::attestation::DeleteKeysRequest>& delete_keys_history() + const override; + void ClearDeleteKeysHistory() override; + void set_enrollment_id_ignore_cache(const std::string& id) override; + void set_cached_enrollment_id(const std::string& id) override; + void set_enrollment_id_dbus_error_count(int count) override; + ::attestation::GetKeyInfoReply* GetMutableKeyInfoReply( + const std::string& username, + const std::string& label) override; AttestationClient::TestInterface* GetTestInterface() override; @@ -130,6 +141,30 @@ std::vector<int> certificate_indices_; // The count of certificates that has been issued. int certificate_count_ = 0; + + // Maintains the input request history of `DeleteKeys()`. + std::vector<::attestation::DeleteKeysRequest> delete_keys_history_; + + // Maintains building components reply to `GetEnrollmentId()`. + std::string enrollment_id_; + std::string enrollment_id_ignore_cache_; + int enrollment_id_dbus_error_count_ = 0; + + class GetKeyInfoRequestComparator { + public: + bool operator()(const ::attestation::GetKeyInfoRequest& r1, + const ::attestation::GetKeyInfoRequest& r2) const { + return r1.username() == r2.username() ? r1.key_label() < r2.key_label() + : r1.username() < r2.username(); + } + }; + // The fake key info database. std::map is chosen because we don't have to + // implement the hash function for the `GetKeyInfoRequest`, which could be + // expensive and contributes unreasonable overhead at smaller scale, anyway. + std::map<::attestation::GetKeyInfoRequest, + ::attestation::GetKeyInfoReply, + GetKeyInfoRequestComparator> + key_info_database_; }; } // namespace chromeos
diff --git a/chromeos/dbus/cryptohome/cryptohome_client.cc b/chromeos/dbus/cryptohome/cryptohome_client.cc index 2fbcae82..f936b495 100644 --- a/chromeos/dbus/cryptohome/cryptohome_client.cc +++ b/chromeos/dbus/cryptohome/cryptohome_client.cc
@@ -482,21 +482,6 @@ } // CryptohomeClient override. - void TpmAttestationGetEnrollmentId( - bool ignore_cache, - DBusMethodCallback<TpmAttestationDataResult> callback) override { - dbus::MethodCall method_call( - cryptohome::kCryptohomeInterface, - cryptohome::kCryptohomeTpmAttestationGetEnrollmentId); - dbus::MessageWriter writer(&method_call); - writer.AppendBool(ignore_cache); - proxy_->CallMethod( - &method_call, kTpmDBusTimeoutMs, - base::BindOnce(&CryptohomeClientImpl::OnTpmAttestationDataMethod, - weak_ptr_factory_.GetWeakPtr(), std::move(callback))); - } - - // CryptohomeClient override. void TpmAttestationIsEnrolled(DBusMethodCallback<bool> callback) override { dbus::MethodCall method_call( cryptohome::kCryptohomeInterface, @@ -755,39 +740,6 @@ } // CryptohomeClient override. - void TpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& id, - const std::string& key_prefix, - DBusMethodCallback<bool> callback) override { - dbus::MethodCall method_call( - cryptohome::kCryptohomeInterface, - cryptohome::kCryptohomeTpmAttestationDeleteKeys); - dbus::MessageWriter writer(&method_call); - bool is_user_specific = (key_type == attestation::KEY_USER); - writer.AppendBool(is_user_specific); - writer.AppendString(id.account_id()); - writer.AppendString(key_prefix); - CallBoolMethod(&method_call, std::move(callback)); - } - - // CryptohomeClient override. - void TpmAttestationDeleteKey(attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& id, - const std::string& key_name, - DBusMethodCallback<bool> callback) override { - dbus::MethodCall method_call( - cryptohome::kCryptohomeInterface, - cryptohome::kCryptohomeTpmAttestationDeleteKey); - dbus::MessageWriter writer(&method_call); - bool is_user_specific = (key_type == attestation::KEY_USER); - writer.AppendBool(is_user_specific); - writer.AppendString(id.account_id()); - writer.AppendString(key_name); - CallBoolMethod(&method_call, std::move(callback)); - } - - // CryptohomeClient override. void TpmGetVersion(DBusMethodCallback<TpmVersionInfo> callback) override { dbus::MethodCall method_call( cryptohome::kCryptohomeInterface,
diff --git a/chromeos/dbus/cryptohome/cryptohome_client.h b/chromeos/dbus/cryptohome/cryptohome_client.h index 564f7d30..e0191e9 100644 --- a/chromeos/dbus/cryptohome/cryptohome_client.h +++ b/chromeos/dbus/cryptohome/cryptohome_client.h
@@ -316,13 +316,6 @@ // succeeds. This method blocks until the call returns. virtual bool InstallAttributesIsFirstInstall(bool* is_first_install) = 0; - // Requests the device's enrollment identifier (EID). The |callback| will be - // called with the EID. If |ignore_cache| is true, the EID is calculated - // even if the attestation database already contains a cached version. - virtual void TpmAttestationGetEnrollmentId( - bool ignore_cache, - DBusMethodCallback<TpmAttestationDataResult> callback) = 0; - // Calls the TpmAttestationIsEnrolled dbus method. The callback is called // when the operation completes. virtual void TpmAttestationIsEnrolled(DBusMethodCallback<bool> callback) = 0; @@ -481,29 +474,6 @@ const std::string& payload, DBusMethodCallback<bool> callback) = 0; - // Deletes certified keys as specified by |key_type| and |key_prefix|. The - // |callback| will be called when the operation completes. If the operation - // succeeds, the callback |result| parameter will be true. If |key_type| is - // KEY_USER, a |id| must be provided. Otherwise |id| is ignored. - // All keys where the key name has a prefix matching |key_prefix| will be - // deleted. All meta-data associated with the key, including certificates, - // will also be deleted. - virtual void TpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& id, - const std::string& key_prefix, - DBusMethodCallback<bool> callback) = 0; - - // Deletes certified keys as specified by |key_type| and |key_name|. The - // |callback| will be called when the operation completes. If the operation - // succeeds, the callback |result| parameter will be true. If |key_type| is - // KEY_USER, a |id| must be provided. Otherwise |id| is ignored. - // Note that if the key does not exist, the operation will still succeed. - virtual void TpmAttestationDeleteKey(attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& id, - const std::string& key_name, - DBusMethodCallback<bool> callback) = 0; - // Asynchronously gets the underlying TPM version information and passes it to // the given callback. virtual void TpmGetVersion(DBusMethodCallback<TpmVersionInfo> callback) = 0;
diff --git a/chromeos/dbus/cryptohome/fake_cryptohome_client.cc b/chromeos/dbus/cryptohome/fake_cryptohome_client.cc index 089a71e..643ca05 100644 --- a/chromeos/dbus/cryptohome/fake_cryptohome_client.cc +++ b/chromeos/dbus/cryptohome/fake_cryptohome_client.cc
@@ -332,19 +332,6 @@ return true; } -void FakeCryptohomeClient::TpmAttestationGetEnrollmentId( - bool ignore_cache, - DBusMethodCallback<TpmAttestationDataResult> callback) { - auto result = - service_is_available_ - ? base::make_optional(TpmAttestationDataResult{ - true, ignore_cache ? tpm_attestation_enrollment_id_ignore_cache_ - : tpm_attestation_enrollment_id_}) - : base::nullopt; - base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce(std::move(callback), result)); -} - void FakeCryptohomeClient::TpmAttestationIsEnrolled( DBusMethodCallback<bool> callback) { auto result = service_is_available_ @@ -519,24 +506,6 @@ FROM_HERE, base::BindOnce(std::move(callback), result)); } -void FakeCryptohomeClient::TpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& cryptohome_id, - const std::string& key_prefix, - DBusMethodCallback<bool> callback) { - base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce(std::move(callback), true)); -} - -void FakeCryptohomeClient::TpmAttestationDeleteKey( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& cryptohome_id, - const std::string& key_name, - DBusMethodCallback<bool> callback) { - base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce(std::move(callback), true)); -} - void FakeCryptohomeClient::TpmGetVersion( DBusMethodCallback<TpmVersionInfo> callback) { base::ThreadTaskRunnerHandle::Get()->PostTask(
diff --git a/chromeos/dbus/cryptohome/fake_cryptohome_client.h b/chromeos/dbus/cryptohome/fake_cryptohome_client.h index dc28b6a75..36991ad 100644 --- a/chromeos/dbus/cryptohome/fake_cryptohome_client.h +++ b/chromeos/dbus/cryptohome/fake_cryptohome_client.h
@@ -99,9 +99,6 @@ void InstallAttributesIsReady(DBusMethodCallback<bool> callback) override; bool InstallAttributesIsInvalid(bool* is_invalid) override; bool InstallAttributesIsFirstInstall(bool* is_first_install) override; - void TpmAttestationGetEnrollmentId( - bool ignore_cache, - DBusMethodCallback<TpmAttestationDataResult> callback) override; void TpmAttestationIsEnrolled(DBusMethodCallback<bool> callback) override; void AsyncTpmAttestationCreateEnrollRequest( chromeos::attestation::PrivacyCAType pca_type, @@ -168,16 +165,6 @@ const std::string& key_name, const std::string& payload, DBusMethodCallback<bool> callback) override; - void TpmAttestationDeleteKeysByPrefix( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& cryptohome_id, - const std::string& key_prefix, - DBusMethodCallback<bool> callback) override; - void TpmAttestationDeleteKey( - attestation::AttestationKeyType key_type, - const cryptohome::AccountIdentifier& cryptohome_id, - const std::string& key_name, - DBusMethodCallback<bool> callback) override; void TpmGetVersion(DBusMethodCallback<TpmVersionInfo> callback) override; void GetKeyDataEx( const cryptohome::AccountIdentifier& cryptohome_id, @@ -313,15 +300,6 @@ cryptohome_error_ = error; } - void set_tpm_attestation_enrollment_id(bool ignore_cache, - const std::string& eid) { - if (ignore_cache) { - tpm_attestation_enrollment_id_ignore_cache_ = eid; - } else { - tpm_attestation_enrollment_id_ = eid; - } - } - void set_tpm_attestation_is_enrolled(bool enrolled) { tpm_attestation_is_enrolled_ = enrolled; } @@ -492,10 +470,6 @@ bool needs_dircrypto_migration_ = false; bool run_default_dircrypto_migration_ = true; - std::string tpm_attestation_enrollment_id_ignore_cache_ = - "6fcc0ebddec3db95cdcf82476d594f4d60db934c5b47fa6085c707b2a93e205b"; - std::string tpm_attestation_enrollment_id_ = - "6fcc0ebddec3db95cdcf82476d594f4d60db934c5b47fa6085c707b2a93e205b"; bool tpm_attestation_is_enrolled_ = true; bool tpm_attestation_does_key_exist_should_succeed_ = true; bool supports_low_entropy_credentials_ = false;
diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc index b51c87c..6221a48 100644 --- a/chromeos/network/network_state_handler.cc +++ b/chromeos/network/network_state_handler.cc
@@ -1898,8 +1898,10 @@ bool NetworkStateHandler::VerifyDefaultNetworkConnectionStateChange( NetworkState* network) { DCHECK(network->path() == default_network_path_); - if (network->IsConnectedState()) + if (network->IsConnectedState() || + NetworkState::StateIsPortalled(network->connection_state())) { return true; + } if (network->IsConnectingState()) { // Wait until the network is actually connected to notify that the default // network changed. @@ -1944,6 +1946,24 @@ notifying_network_observers_ = true; for (auto& observer : observers_) observer.DefaultNetworkChanged(default_network); + + if (default_network && + (default_network->portal_state() != default_network_portal_state_ || + default_network->proxy_config() != default_network_proxy_config_)) { + default_network_portal_state_ = default_network->portal_state(); + default_network_proxy_config_ = default_network->proxy_config().Clone(); + for (auto& observer : observers_) { + observer.PortalStateChanged(default_network, + default_network_portal_state_); + } + } else if (!default_network && (default_network_portal_state_ != + NetworkState::PortalState::kUnknown || + !default_network_proxy_config_.is_none())) { + default_network_portal_state_ = NetworkState::PortalState::kUnknown; + default_network_proxy_config_ = base::Value(); + for (auto& observer : observers_) + observer.PortalStateChanged(nullptr, NetworkState::PortalState::kUnknown); + } notifying_network_observers_ = false; }
diff --git a/chromeos/network/network_state_handler.h b/chromeos/network/network_state_handler.h index d86e394..503949e 100644 --- a/chromeos/network/network_state_handler.h +++ b/chromeos/network/network_state_handler.h
@@ -661,6 +661,13 @@ // List of interfaces on which portal check is enabled. std::string check_portal_list_; + // Tracks the default network portal state for triggering PortalStateChanged. + NetworkState::PortalState default_network_portal_state_ = + NetworkState::PortalState::kUnknown; + + // Tracks the default network proxy config for triggering PortalStateChanged. + base::Value default_network_proxy_config_; + // DHCP Hostname. std::string hostname_;
diff --git a/chromeos/network/network_state_handler_observer.cc b/chromeos/network/network_state_handler_observer.cc index d34baea..0add9b72 100644 --- a/chromeos/network/network_state_handler_observer.cc +++ b/chromeos/network/network_state_handler_observer.cc
@@ -17,6 +17,10 @@ void NetworkStateHandlerObserver::DefaultNetworkChanged( const NetworkState* network) {} +void NetworkStateHandlerObserver::PortalStateChanged( + const NetworkState* default_network, + NetworkState::PortalState portal_state) {} + void NetworkStateHandlerObserver::NetworkConnectionStateChanged( const NetworkState* network) {}
diff --git a/chromeos/network/network_state_handler_observer.h b/chromeos/network/network_state_handler_observer.h index 2c6c3a4e..a9b28053 100644 --- a/chromeos/network/network_state_handler_observer.h +++ b/chromeos/network/network_state_handler_observer.h
@@ -10,12 +10,12 @@ #include "base/component_export.h" #include "base/macros.h" +#include "chromeos/network/network_state.h" #include "chromeos/network/network_type_pattern.h" namespace chromeos { class DeviceState; -class NetworkState; // Observer class for all network state changes, including changes to // active (connecting or connected) services. @@ -35,9 +35,15 @@ // changed. This won't be called if the WiFi signal strength property // changes. If interested in those events, use NetworkPropertiesUpdated() // below. - // |network| will be NULL if there is no longer a default network. + // |network| will be null if there is no longer a default network. virtual void DefaultNetworkChanged(const NetworkState* network); + // The portal state or the proxy configuration of the default network changed. + // Note: |default_network| may be null if there is no default network, in + // which case |portal_state| will always be kUnknown. + virtual void PortalStateChanged(const NetworkState* default_network, + NetworkState::PortalState portal_state); + // The connection state of |network| changed. virtual void NetworkConnectionStateChanged(const NetworkState* network);
diff --git a/chromeos/network/network_state_handler_unittest.cc b/chromeos/network/network_state_handler_unittest.cc index 62e2af9..7a4ccfc 100644 --- a/chromeos/network/network_state_handler_unittest.cc +++ b/chromeos/network/network_state_handler_unittest.cc
@@ -119,6 +119,12 @@ << " State: " << default_network_connection_state_; } + void PortalStateChanged(const NetworkState* default_network, + NetworkState::PortalState portal_state) override { + default_network_portal_state_ = portal_state; + VLOG(1) << "PortalStateChanged: " << static_cast<int>(portal_state); + } + void NetworkConnectionStateChanged(const NetworkState* network) override { network_connection_state_[network->path()] = network->connection_state(); connection_state_changes_[network->path()]++; @@ -188,6 +194,9 @@ std::string default_network_connection_state() { return default_network_connection_state_; } + NetworkState::PortalState default_network_portal_state() { + return default_network_portal_state_; + } int PropertyUpdatesForService(const std::string& service_path) { return property_updates_[service_path]; @@ -220,6 +229,7 @@ std::vector<std::string> active_network_paths_; std::string default_network_; std::string default_network_connection_state_; + NetworkState::PortalState default_network_portal_state_; std::map<std::string, int> property_updates_; std::map<std::string, int> device_property_updates_; std::map<std::string, int> connection_state_changes_; @@ -1819,6 +1829,28 @@ EXPECT_EQ(2u, test_observer_->default_network_change_count()); } +TEST_F(NetworkStateHandlerTest, PortalStateChanged) { + // Remove Ethernet. + manager_test_->RemoveTechnology(shill::kTypeEthernet); + service_test_->RemoveService(kShillManagerClientStubDefaultService); + manager_test_->SetManagerProperty( + shill::kDefaultServiceProperty, + base::Value(kShillManagerClientStubDefaultWifi)); + base::RunLoop().RunUntilIdle(); + ASSERT_EQ(test_observer_->default_network(), + kShillManagerClientStubDefaultWifi); + + // Set WiFi to portal-suspected and ensure observer is triggered. + ASSERT_EQ(NetworkState::PortalState::kOnline, + test_observer_->default_network_portal_state()); + service_test_->SetServiceProperty(kShillManagerClientStubDefaultWifi, + shill::kStateProperty, + base::Value(shill::kStatePortalSuspected)); + base::RunLoop().RunUntilIdle(); + EXPECT_EQ(NetworkState::PortalState::kPortalSuspected, + test_observer_->default_network_portal_state()); +} + TEST_F(NetworkStateHandlerTest, RequestUpdate) { // Request an update for kShillManagerClientStubDefaultWifi. EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(
diff --git a/chromeos/strings/chromeos_strings_af.xtb b/chromeos/strings/chromeos_strings_af.xtb index 466cb83..294f059 100644 --- a/chromeos/strings/chromeos_strings_af.xtb +++ b/chromeos/strings/chromeos_strings_af.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Gedruk</translation> <translation id="1979103255016296513">Wagwoord moes al verander geword het</translation> <translation id="2049639323467105390">Die toestel word deur <ph name="DOMAIN" /> bestuur.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Kanselleer druktaak</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Skakel Bluetooth aan om toestelle in die omtrek te ontdek</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> pogings oor</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} poging oor}other{<ph name="ERROR_MESSAGE" /> {0} pogings oor}}</translation> <translation id="2517472476991765520">Skandeer</translation> <translation id="2805756323405976993">Programme</translation> <translation id="2872961005593481000">Skakel af</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Kies onmiddellik 'n nuwe een</translation> <translation id="4917889632206600977">Gestop – papier is op</translation> <translation id="4932733599132424254">Datum</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> bestuur hierdie gebruiker en kan oor 'n afstand instellings bestuur en gebruikeraktiwiteit monitor.</translation> <translation id="520299634122159966">Geen skandeerders is beskikbaar nie</translation> <translation id="5212543919916444558">Ek kry niks op jou skerm waarmee ek kan help nie. Probeer die mikrofoon tik om my enigiets te vra.</translation>
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb index 552ee649..7f11c09 100644 --- a/chromeos/strings/chromeos_strings_am.xtb +++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">ታትሟል</translation> <translation id="1979103255016296513">የይለፍ ቃል ለውጥ ማድረጊያ ጊዜው አልፏል</translation> <translation id="2049639323467105390">ይህ መሣሪያ በ<ph name="DOMAIN" /> ነው የሚቀናበረው።</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">የኅትመት ሥራን ሰርዝ</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">በአቅራቢያ ያሉ መሣሪያዎችን ለማግኘት ብሉቱዝን ያብሩ</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> ሙከራዎች ቀርተዋል</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} ሙከራ ቀርቷል}one{<ph name="ERROR_MESSAGE" /> {0} ሙከራዎች ቀርተዋል}other{<ph name="ERROR_MESSAGE" /> {0} ሙከራዎች ቀርተዋል}}</translation> <translation id="2517472476991765520">ቃኝ</translation> <translation id="2805756323405976993">መተግበሪያዎች</translation> <translation id="2872961005593481000">ዝጋ</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">ወዲያውኑ አዲስ ይምረጡ</translation> <translation id="4917889632206600977">ቆሟል - ወረቀት አልቋል</translation> <translation id="4932733599132424254">ቀን</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> እኚህን ተጠቃሚ ያስተዳድራል ኣና በርቀት ቅንብሮችን ሊያቀናብር እና የተጠቃሚ እንቅስቃሴን ሊቆጣጠር ይችላል።</translation> <translation id="520299634122159966">ምንም ቃኚዎች አይገኙም</translation> <translation id="5212543919916444558">እኔ ላግዝ የምችልበት ምንም ነገር በእርስዎ ማያ ገጽ ላይ አላገኘሁም። ማንኛውም ነገር እኔን ለመጠየቅ ማይክሮፎኑን መታ አድርገው ይሞክሩ።</translation>
diff --git a/chromeos/strings/chromeos_strings_as.xtb b/chromeos/strings/chromeos_strings_as.xtb index 0d79a52..4a78a2c 100644 --- a/chromeos/strings/chromeos_strings_as.xtb +++ b/chromeos/strings/chromeos_strings_as.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">প্ৰিণ্ট কৰা হ’ল</translation> <translation id="1979103255016296513">পাছৱর্ড সলনি কৰাৰ সময় উকলিছে</translation> <translation id="2049639323467105390">এই ডিভাইচটো <ph name="DOMAIN" />এ পৰিচালনা কৰে।</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">প্ৰিণ্টিঙৰ কাৰ্য বাতিল কৰক</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">ওচৰ-পাজৰৰ ডিভাইচসমূহ চাবলৈ ব্লুটুথ অন কৰক</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> টা প্ৰয়াস বাকী আছে</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} টা প্ৰয়াস বাকী আছে}one{<ph name="ERROR_MESSAGE" /> {0} টা প্ৰয়াস বাকী আছে}other{<ph name="ERROR_MESSAGE" /> {0} টা প্ৰয়াস বাকী আছে}}</translation> <translation id="2517472476991765520">স্কেন কৰক</translation> <translation id="2805756323405976993">এপ্</translation> <translation id="2872961005593481000">শ্বাট ডাউন কৰক</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">তৎক্ষণাত নতুন এটা বাছনি কৰক</translation> <translation id="4917889632206600977">বন্ধ হৈছে - কাগজ শেষ হৈছে</translation> <translation id="4932733599132424254">তাৰিখ</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" />এ এই ব্যৱহাৰকাৰীগৰাকীক পৰিচালনা কৰে আৰু হয়তো দূৰৰ পৰা ছেটিং পৰিচালনা কৰে আৰু ব্যৱহাৰকাৰীৰ কার্যকলাপ নিৰীক্ষণ কৰে।</translation> <translation id="520299634122159966">কোনো স্কেনাৰ নাই</translation> <translation id="5212543919916444558">আপোনাক সহায় কৰিব পৰাকৈ মই আপোনাৰ স্ক্ৰীণত একো বিচাৰি পোৱা নাই। মোক কিবা সুধিবলৈ মাইকটো টিপক।</translation>
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb index 24a1c422..20f4ad3 100644 --- a/chromeos/strings/chromeos_strings_az.xtb +++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Çap edilib</translation> <translation id="1979103255016296513">Parol dəyişikliyinin gecikməsi</translation> <translation id="2049639323467105390">Bu cihaz <ph name="DOMAIN" /> tərəfindən idarə olunur.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Çap işini ləğv edin</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Yaxınlıqdakı cihazları tapmaq üçün Bluetooth'u aktiv edin</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> cəhd qalıb</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} cəhd qalıb}other{<ph name="ERROR_MESSAGE" /> {0} cəhd qalıb}}</translation> <translation id="2517472476991765520">Skan edin</translation> <translation id="2805756323405976993">Tətbiq</translation> <translation id="2872961005593481000">Qapadın</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Dərhal yenisini seçin</translation> <translation id="4917889632206600977">Dayanıb - Kağız yoxdur</translation> <translation id="4932733599132424254">Tarix</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> bu istifadəçini idarə edir və ayarları məsafədən idarə edə və istifadəçinin fəaliyyətini izləyə bilər.</translation> <translation id="520299634122159966">Əlçatan skaner yoxdur</translation> <translation id="5212543919916444558">Ekranınızda kömək edə biləcəyim heç nə tapmadım. Məndən hər hansı bir şey soruşmaq üçün mikrofona klikləyin.</translation> <translation id="5222676887888702881">Hesabdan çıxın</translation>
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb index a5cec51..5109dc0 100644 --- a/chromeos/strings/chromeos_strings_be.xtb +++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Надрукавана</translation> <translation id="1979103255016296513">Пратэрмінавана змена пароля</translation> <translation id="2049639323467105390">Гэта прылада знаходзіцца пад кіраваннем <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Скасаваць заданне друку</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> DPI</translation> <translation id="2338501278241028356">Каб знайсці прылады паблізу, уключыце Bluetooth</translation> <translation id="2375079107209812402">Засталося спроб: <ph name="ATTEMPTS_LEFT" /></translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Засталася {0} спроба}one{<ph name="ERROR_MESSAGE" /> Засталася {0} спроба}few{<ph name="ERROR_MESSAGE" /> Засталося {0} спробы}many{<ph name="ERROR_MESSAGE" /> Засталося {0} спроб}other{<ph name="ERROR_MESSAGE" /> Засталося {0} спробы}}</translation> <translation id="2517472476991765520">Пошук</translation> <translation id="2805756323405976993">Праграмы</translation> <translation id="2872961005593481000">Завяршыць працу</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Неадкладна задайце новы</translation> <translation id="4917889632206600977">Спынена: скончылася папера</translation> <translation id="4932733599132424254">Дата</translation> +<translation id="5094480857972195099">Дамен <ph name="ENROLLMENT_DOMAIN" /> можа кіраваць наладамі гэтага карыстальніка і адсочваць яго дзеянні.</translation> <translation id="520299634122159966">Няма даступных сканераў</translation> <translation id="5212543919916444558">Я не магу знайсці на экране нічога, з чым я мог бы вам дапамагчы. Каб спытаць мяне аб чым-небудзь, паспрабуйце дакрануцца да мікрафона.</translation>
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb index 1abc239e..36b61c1 100644 --- a/chromeos/strings/chromeos_strings_bg.xtb +++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Отпечатано</translation> <translation id="1979103255016296513">Срокът за промяна на паролата е изтекъл</translation> <translation id="2049639323467105390">Това устройство се управлява от <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Анулиране на заданието за отпечатване</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> DPI</translation> <translation id="2338501278241028356">Включете Bluetooth, за да бъдат открити устройствата в близост</translation> <translation id="2375079107209812402">Остават <ph name="ATTEMPTS_LEFT" /> опита</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Остава {0} опит}other{<ph name="ERROR_MESSAGE" /> Остават {0} опита}}</translation> <translation id="2517472476991765520">Сканиране</translation> <translation id="2805756323405976993">Приложения</translation> <translation id="2872961005593481000">Изключване</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Изберете нова незабавно</translation> <translation id="4917889632206600977">Спряло – няма хартия</translation> <translation id="4932733599132424254">Дата</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> управлява този потребител и може отдалечено да контролира настройките и да наблюдава потребителската активност.</translation> <translation id="520299634122159966">Няма налични скенери</translation> <translation id="5212543919916444558">На екрана ви не намирам нищо, за което да мога да ви помогна. Докоснете иконата на микрофон, за да ме попитате каквото и да е.</translation>
diff --git a/chromeos/strings/chromeos_strings_bs.xtb b/chromeos/strings/chromeos_strings_bs.xtb index 4ae3fe83..92ede1c 100644 --- a/chromeos/strings/chromeos_strings_bs.xtb +++ b/chromeos/strings/chromeos_strings_bs.xtb
@@ -23,7 +23,7 @@ <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Uključite Bluetooth da otkrijete uređaje u blizini</translation> <translation id="2375079107209812402">Broj preostalih pokušaja: <ph name="ATTEMPTS_LEFT" /></translation> -<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Preostalo pokušaja: {0}}one{<ph name="ERROR_MESSAGE" /> Preostalo pokušaja: {0}}few{<ph name="ERROR_MESSAGE" /> Preostalo pokušaja: {0}}other{<ph name="ERROR_MESSAGE" /> Preostalo pokušaja: {0}}}</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Preostao je još {0} pokušaj}one{<ph name="ERROR_MESSAGE" /> Preostao je još {0} pokušaj}few{<ph name="ERROR_MESSAGE" /> Preostala su još {0} pokušaja}other{<ph name="ERROR_MESSAGE" /> Preostalo je još {0} pokušaja}}</translation> <translation id="2517472476991765520">Skeniraj</translation> <translation id="2805756323405976993">Aplikacije</translation> <translation id="2872961005593481000">Isključi</translation> @@ -61,7 +61,7 @@ <translation id="4890353053343094602">Odmah odaberite novu lozinku</translation> <translation id="4917889632206600977">Zaustavljeno – nestalo je papira</translation> <translation id="4932733599132424254">Datum</translation> -<translation id="5094480857972195099">Domena <ph name="ENROLLMENT_DOMAIN" /> upravlja ovim korisnikom i može daljinski upravljati postavkama i nadzirati aktivnost korisnika.</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> upravlja ovim korisnikom i može udaljeno upravljati postavkama i pratiti aktivnost korisnika.</translation> <translation id="520299634122159966">Nije dostupan nijedan skener</translation> <translation id="5212543919916444558">Ne mogu pronaći ništa na ekranu u vezi s čim mogu pomoći. Pokušajte dodirnuti mikrofon da me nešto pitate.</translation>
diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb index 60e1419..a8e5928 100644 --- a/chromeos/strings/chromeos_strings_ca.xtb +++ b/chromeos/strings/chromeos_strings_ca.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Imprès</translation> <translation id="1979103255016296513">Canvi de contrasenya vençut</translation> <translation id="2049639323467105390">Aquest dispositiu està gestionat per <ph name="DOMAIN" /></translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Cancel·la la tasca d'impressió</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> ppp</translation> <translation id="2338501278241028356">Activa el Bluetooth per detectar dispositius propers</translation> <translation id="2375079107209812402">Intents restants: <ph name="ATTEMPTS_LEFT" /></translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Queda {0} intent.}other{<ph name="ERROR_MESSAGE" /> Queden {0} intents.}}</translation> <translation id="2517472476991765520">Cerca</translation> <translation id="2805756323405976993">Aplicacions</translation> <translation id="2872961005593481000">Apaga</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Tria'n una de nova immediatament</translation> <translation id="4917889632206600977">S'ha aturat: no hi ha paper</translation> <translation id="4932733599132424254">Data</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> gestiona aquest usuari i és possible que gestioni les opcions de configuració i monitori l'activitat de l'usuari de manera remota.</translation> <translation id="520299634122159966">No hi ha cap escàner disponible</translation> <translation id="5212543919916444558">No he trobat res a la pantalla amb què et pugui ajudar. Toca el micròfon per demanar-me qualsevol cosa.</translation>
diff --git a/chromeos/strings/chromeos_strings_cs.xtb b/chromeos/strings/chromeos_strings_cs.xtb index 8f8365b..a68d7aee 100644 --- a/chromeos/strings/chromeos_strings_cs.xtb +++ b/chromeos/strings/chromeos_strings_cs.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Vytištěno</translation> <translation id="1979103255016296513">Uběhl termín pro změnu hesla</translation> <translation id="2049639323467105390">Zařízení je spravováno doménou <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Zrušit tiskovou úlohu</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Chcete-li objevit okolní zařízení, zapněte Bluetooth</translation> <translation id="2375079107209812402">Zbývající pokusy: <ph name="ATTEMPTS_LEFT" /></translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Zbývá {0} pokus}few{<ph name="ERROR_MESSAGE" /> Zbývají {0} pokusy}many{<ph name="ERROR_MESSAGE" /> Zbývá {0} pokusu}other{<ph name="ERROR_MESSAGE" /> Zbývá {0} pokusů}}</translation> <translation id="2517472476991765520">Vyhledat</translation> <translation id="2805756323405976993">Aplikace</translation> <translation id="2872961005593481000">Vypnout</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Ihned si zvolte nové</translation> <translation id="4917889632206600977">Zastaveno – došel papír</translation> <translation id="4932733599132424254">Datum</translation> +<translation id="5094480857972195099">Tohoto uživatele spravuje doména <ph name="ENROLLMENT_DOMAIN" />, která také může vzdáleně spravovat nastavení a sledovat jeho aktivitu.</translation> <translation id="520299634122159966">Nejsou k dispozici žádné skenery</translation> <translation id="5212543919916444558">Na obrazovce nevidím nic, s čím vám můžu pomoct. Zkuste klepnout na mikrofon a zeptat se.</translation>
diff --git a/chromeos/strings/chromeos_strings_el.xtb b/chromeos/strings/chromeos_strings_el.xtb index 45d4ebe..57560858 100644 --- a/chromeos/strings/chromeos_strings_el.xtb +++ b/chromeos/strings/chromeos_strings_el.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Εκτυπώθηκε</translation> <translation id="1979103255016296513">Εκπρόθεσμη αλλαγή κωδικού πρόσβασης</translation> <translation id="2049639323467105390">Η διαχείριση της συσκευής γίνεται από τον τομέα <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Ακύρωση εργασίας εκτύπωσης</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Ενεργοποιήστε το Bluetooth, για να εντοπίσετε κοντινές συσκευές</translation> <translation id="2375079107209812402">Απομένουν <ph name="ATTEMPTS_LEFT" /> προσπάθειες</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} προσπάθεια απομένει}other{<ph name="ERROR_MESSAGE" /> {0} προσπάθειες απομένουν}}</translation> <translation id="2517472476991765520">Σάρωση</translation> <translation id="2805756323405976993">Εφαρμογές </translation> <translation id="2872961005593481000">Τερματισμός λειτουργίας</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Επιλέξτε άμεσα έναν νέο</translation> <translation id="4917889632206600977">Διακοπή - Τελείωσε το χαρτί</translation> <translation id="4932733599132424254">Ημερομηνία</translation> +<translation id="5094480857972195099">Ο τομέας <ph name="ENROLLMENT_DOMAIN" /> διαχειρίζεται αυτόν τον χρήστη και ενδέχεται να διαχειρίζεται απομακρυσμένα τις ρυθμίσεις και να παρακολουθεί τη δραστηριότητα του χρήστη.</translation> <translation id="520299634122159966">Δεν υπάρχουν διαθέσιμοι σαρωτές.</translation> <translation id="5212543919916444558">Δεν βρέθηκε κάτι με το οποίο να μπορώ να σας βοηθήσω στην οθόνη σας. Πατήστε στο μικρόφωνο για να ρωτήσετε οτιδήποτε θέλετε.</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb index 1b87b36..bc911df0 100644 --- a/chromeos/strings/chromeos_strings_es-419.xtb +++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Impreso</translation> <translation id="1979103255016296513">Está pendiente el cambio de contraseña</translation> <translation id="2049639323467105390"><ph name="DOMAIN" /> administra esta cuenta.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Cancelar el trabajo de impresión</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> DPI</translation> <translation id="2338501278241028356">Activar Bluetooth para buscar los dispositivos cercanos</translation> <translation id="2375079107209812402">Intentos restantes: <ph name="ATTEMPTS_LEFT" /></translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Queda {0} intento restante.}other{<ph name="ERROR_MESSAGE" /> Quedan {0} intentos restantes.}}</translation> <translation id="2517472476991765520">Buscar</translation> <translation id="2805756323405976993">Aplicaciones</translation> <translation id="2872961005593481000">Apagar</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Elige una nueva de inmediato</translation> <translation id="4917889632206600977">Se detuvo: no hay papel</translation> <translation id="4932733599132424254">Fecha</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> administra a este usuario. También puede administrar la actividad del usuario y cambiar la configuración de forma remota.</translation> <translation id="520299634122159966">No hay escáneres disponibles</translation> <translation id="5212543919916444558">No hay nada en la pantalla con lo que pueda ayudarte. Intenta presionar el micrófono para hacerme una pregunta.</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb index 1a0212f..5ce0d75 100644 --- a/chromeos/strings/chromeos_strings_es.xtb +++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Impreso</translation> <translation id="1979103255016296513">Ya ha terminado el plazo para cambiar la contraseña</translation> <translation id="2049639323467105390">Este dispositivo está gestionado por <ph name="DOMAIN" /></translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Cancelar trabajo de impresión</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> PPP</translation> <translation id="2338501278241028356">Activa el Bluetooth para encontrar dispositivos cercanos</translation> <translation id="2375079107209812402">Intentos restantes: <ph name="ATTEMPTS_LEFT" /></translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Queda {0} intento.}other{<ph name="ERROR_MESSAGE" /> Quedan {0} intentos.}}</translation> <translation id="2517472476991765520">Buscar</translation> <translation id="2805756323405976993">Aplicaciones</translation> <translation id="2872961005593481000">Apagar</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Selecciona otra inmediatamente</translation> <translation id="4917889632206600977">Detenido: sin papel</translation> <translation id="4932733599132424254">Fecha</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> gestiona a este usuario, y es posible que gestione sus ajustes y supervise su actividad de forma remota.</translation> <translation id="520299634122159966">No hay escáneres disponibles</translation> <translation id="5212543919916444558">No encuentro nada en la pantalla con lo que pueda ayudarte. Toca el micrófono para pedirme algo.</translation> <translation id="5222676887888702881">Cerrar sesión</translation>
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb index 7a055e0..df585824 100644 --- a/chromeos/strings/chromeos_strings_fa.xtb +++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">چاپشده</translation> <translation id="1979103255016296513">مهلت تغییر گذرواژه به پایان رسید</translation> <translation id="2049639323467105390">این دستگاه توسط <ph name="DOMAIN" /> مدیریت میشود.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />٪</translation> <translation id="2161394479394250669">لغو کردن کار چاپ</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> نقطه در اینچ</translation> <translation id="2338501278241028356">برای کاوش دستگاههای همین اطراف، بلوتوث را روشن کنید</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> فرصت باقی مانده است</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} فرصت باقی مانده است}one{<ph name="ERROR_MESSAGE" /> {0} فرصت باقی مانده است}other{<ph name="ERROR_MESSAGE" /> {0} فرصت باقی مانده است}}</translation> <translation id="2517472476991765520">اسکن</translation> <translation id="2805756323405976993">برنامهها</translation> <translation id="2872961005593481000">خاموش کردن</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">انتخاب فوری موردی جدید</translation> <translation id="4917889632206600977">متوقف شد - کاغذ تمام شده است</translation> <translation id="4932733599132424254">تاریخ</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> این کاربر را مدیریت میکند و میتواند ازراهدور تنظیمات را مدیریت کند و بر فعالیت کاربر نظارت داشته باشد.</translation> <translation id="520299634122159966">اسکنری دردسترس نیست</translation> <translation id="5212543919916444558">در صفحهتان چیزی پیدا نمیکنم تا درمورد آن کمکتان کنم. برای درخواست از من، روی میکروفون ضربه بزنید.</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb index cc85d1a2..353b1eb6 100644 --- a/chromeos/strings/chromeos_strings_fi.xtb +++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Tulostettu</translation> <translation id="1979103255016296513">Salasanan vaihto myöhässä</translation> <translation id="2049639323467105390">Tätä laitetta hallinnoi <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Peruuta tulostustyö</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Löydä lähellä olevat laitteet ottamalla ensin Bluetooth käyttöön.</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> yritystä jäljellä</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} yritys jäljellä}other{<ph name="ERROR_MESSAGE" /> {0} yritystä jäljellä}}</translation> <translation id="2517472476991765520">Etsi</translation> <translation id="2805756323405976993">Sovellukset</translation> <translation id="2872961005593481000">Sammuta</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Valitse uusi välittömästi</translation> <translation id="4917889632206600977">Pysähtynyt – Paperi loppu</translation> <translation id="4932733599132424254">Päiväys</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> ylläpitää tätä käyttäjää ja voi muuttaa asetuksia ja seurata käyttäjän toimia etänä.</translation> <translation id="520299634122159966">Skannereita ei saatavilla</translation> <translation id="5212543919916444558">En löydä näytöltä mitään, minkä kanssa voisin auttaa sinua. Napauta mikrofonia, niin voit kysyä mitä haluat.</translation>
diff --git a/chromeos/strings/chromeos_strings_fr-CA.xtb b/chromeos/strings/chromeos_strings_fr-CA.xtb index d935c46..191429d 100644 --- a/chromeos/strings/chromeos_strings_fr-CA.xtb +++ b/chromeos/strings/chromeos_strings_fr-CA.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Imprimée</translation> <translation id="1979103255016296513">Le mot de passe est expiré; vous devez le changer</translation> <translation id="2049639323467105390">Cet appareil est géré par <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Annuler la tâche d'impression</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> ppp</translation> <translation id="2338501278241028356">Activer le Bluetooth pour découvrir les appareils à proximité</translation> <translation id="2375079107209812402">Il vous reste <ph name="ATTEMPTS_LEFT" /> tentatives</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Il reste {0} tentative}one{<ph name="ERROR_MESSAGE" /> Il reste {0} tentative}other{<ph name="ERROR_MESSAGE" /> Il reste {0} tentatives}}</translation> <translation id="2517472476991765520">Rechercher</translation> <translation id="2805756323405976993">Applications</translation> <translation id="2872961005593481000">Arrêter</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Choisissez-en un immédiatement</translation> <translation id="4917889632206600977">Tâche arrêtée : à court de papier</translation> <translation id="4932733599132424254">Date</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> gère cet utilisateur et peut gérer ses paramètres et faire le suivi de son activité à distance.</translation> <translation id="520299634122159966">Aucun numériseur disponible</translation> <translation id="5212543919916444558">Je ne trouve aucun élément sur votre écran pour lequel je peux vous aider. Essayez de toucher le micro pour me demander ce que vous souhaitez.</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb index 7c70ce01..467a4fea 100644 --- a/chromeos/strings/chromeos_strings_gl.xtb +++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Impreso</translation> <translation id="1979103255016296513">Produciuse un atraso no cambio de contrasinal</translation> <translation id="2049639323467105390">Este dispositivo está xestionado por <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Cancelar traballo de impresión</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> ppp</translation> <translation id="2338501278241028356">Activa o Bluetooth para detectar dispositivos situados nas proximidades</translation> <translation id="2375079107209812402">Quédanche <ph name="ATTEMPTS_LEFT" /> intentos</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Queda {0} intento}other{<ph name="ERROR_MESSAGE" /> Quedan {0} intentos}}</translation> <translation id="2517472476991765520">Buscar</translation> <translation id="2805756323405976993">Aplicacións</translation> <translation id="2872961005593481000">Pechar</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Escolle un novo inmediatamente</translation> <translation id="4917889632206600977">Detívose (esgotouse o papel)</translation> <translation id="4932733599132424254">Data</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> xestiona este usuario e pode xestionar a súa configuración e controlar a súa actividade de forma remota.</translation> <translation id="520299634122159966">Non hai ningún escáner dispoñible</translation> <translation id="5212543919916444558">Non atopo nada na pantalla co que che poida axudar. Proba a tocar o micrófono para preguntarme algo.</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb index 1dabe6b..d52911f8 100644 --- a/chromeos/strings/chromeos_strings_hi.xtb +++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">प्रिंट किया गया</translation> <translation id="1979103255016296513">पासवर्ड बदलने का समय निकल चुका है</translation> <translation id="2049639323467105390">यह डिवाइस <ph name="DOMAIN" /> द्वारा प्रबंधित है.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">प्रिंट करना रद्द करें</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> डीपीआई</translation> <translation id="2338501278241028356">आस-पास के डिवाइस खोजने के लिए ब्लूटूथ चालू करें</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> बार और कोशिश कर सकते हैं</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> आप {0} बार और कोशिश कर सकते हैं}one{<ph name="ERROR_MESSAGE" /> आप {0} बार और कोशिश कर सकते हैं}other{<ph name="ERROR_MESSAGE" /> आप {0} बार और कोशिश कर सकते हैं}}</translation> <translation id="2517472476991765520">स्कैन करें</translation> <translation id="2805756323405976993">ऐप्स</translation> <translation id="2872961005593481000">शट डाउन करें</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">तुरंत कोई नया पासवर्ड चुनें</translation> <translation id="4917889632206600977">बंद हो गया - काग़ज़ खत्म हो गया</translation> <translation id="4932733599132424254">तारीख</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> इस उपयोगकर्ता को प्रबंधित करता है और यह किसी दूसरी जगह से सेटिंग को प्रबंधित कर सकता है. साथ ही, यह उपयोगकर्ता गतिविधि की निगरानी कर सकता है.</translation> <translation id="520299634122159966">कोई भी स्कैनर उपलब्ध नहीं है</translation> <translation id="5212543919916444558">मुझे आपकी स्क्रीन पर ऐसा कुछ नहीं मिला जिसमें मैं आपकी सहायता कर पाऊं. मुझे कुछ पूछने के लिए माइक टैप करके देखें.</translation>
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb index 2e913b22..6ffd515c 100644 --- a/chromeos/strings/chromeos_strings_hu.xtb +++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Sikeres nyomtatás</translation> <translation id="1979103255016296513">Esedékes a jelszó frissítése</translation> <translation id="2049639323467105390">Ezt az eszközt a(z) <ph name="DOMAIN" /> domain kezeli.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Nyomtatási feladat megszakítása</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Kapcsolja be a Bluetooth-t a közeli eszközök felfedezéséhez</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> próbálkozás maradt</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} kísérlet maradt}other{<ph name="ERROR_MESSAGE" /> {0} kísérlet maradt}}</translation> <translation id="2517472476991765520">Keresés</translation> <translation id="2805756323405976993">Alkalmazások</translation> <translation id="2872961005593481000">Leállítás</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Azonnal válasszon új jelszót</translation> <translation id="4917889632206600977">Leállt – Kifogyott a papír</translation> <translation id="4932733599132424254">Dátum</translation> +<translation id="5094480857972195099">A(z) <ph name="ENROLLMENT_DOMAIN" /> kezeli ezt a felhasználót, és távolról kezelheti a beállításokat, illetve figyelheti a felhasználói tevékenységeket.</translation> <translation id="520299634122159966">Nincsenek rendelkezésre álló szkennerek</translation> <translation id="5212543919916444558">Nem találok semmi olyat a képernyőn, amellyel kapcsolatban segíthetnék. Koppintson a mikrofonra, és kérdezzen tőlem.</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb index 5e59570..bcc1564 100644 --- a/chromeos/strings/chromeos_strings_id.xtb +++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Tercetak</translation> <translation id="1979103255016296513">Perubahan sandi melewati batas waktu</translation> <translation id="2049639323467105390">Perangkat ini dikelola oleh <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Batalkan tugas pencetakan</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Aktifkan Bluetooth untuk menemukan perangkat di sekitar</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> upaya tersisa</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} percobaan lagi}other{<ph name="ERROR_MESSAGE" /> {0} percobaan lagi}}</translation> <translation id="2517472476991765520">Pindai</translation> <translation id="2805756323405976993">Apl</translation> <translation id="2872961005593481000">Matikan</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Segera pilih satu sandi baru</translation> <translation id="4917889632206600977">Dihentikan - Kertas habis</translation> <translation id="4932733599132424254">Tanggal</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> akan mengelola pengguna ini serta dapat mengelola setelan dan memantau aktivitas pengguna dari jarak jauh.</translation> <translation id="520299634122159966">Tidak ada pemindai yang tersedia</translation> <translation id="5212543919916444558">Di layar tidak ada apa pun yang membutuhkan bantuan saya. Ketuk mikrofon untuk bertanya apa saja.</translation>
diff --git a/chromeos/strings/chromeos_strings_is.xtb b/chromeos/strings/chromeos_strings_is.xtb index b79ae277..00f8dd1 100644 --- a/chromeos/strings/chromeos_strings_is.xtb +++ b/chromeos/strings/chromeos_strings_is.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Prentað</translation> <translation id="1979103255016296513">Breyting á aðgangsorði komin fram yfir tíma</translation> <translation id="2049639323467105390">Þessu tæki er stjórnað af <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Hætta við prentverk</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Kveiktu á Bluetooth til að uppgötva nálæg tæki</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> tilraunir eftir</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} tilraun eftir}one{<ph name="ERROR_MESSAGE" /> {0} tilraun eftir}other{<ph name="ERROR_MESSAGE" /> {0} tilraunir eftir}}</translation> <translation id="2517472476991765520">Leita</translation> <translation id="2805756323405976993">Forrit</translation> <translation id="2872961005593481000">Slökkva</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Veldu nýtt án tafar</translation> <translation id="4917889632206600977">Stöðvað – pappír vantar</translation> <translation id="4932733599132424254">Dagsetning</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> hefur umsjón með þessum notanda og getur stjórnað stillingum og skoðað notendavirkni með fjartengingu.</translation> <translation id="520299634122159966">Engir skannar tiltækir</translation> <translation id="5212543919916444558">Ég finn ekkert á skjánum sem ég get aðstoðað þig með. Prófaðu að ýta á hljóðnemann til að spyrja mig að hverju sem er.</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb index ab63aa5a..3c02df6 100644 --- a/chromeos/strings/chromeos_strings_ka.xtb +++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">დაბეჭდილი</translation> <translation id="1979103255016296513">პაროლის შეცვლა დაგვიანებულია</translation> <translation id="2049639323467105390">ეს მოწყობილობა იმართება <ph name="DOMAIN" />-ის მიერ.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">ბეჭდვის დავალების გაუქმება</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">ახლომდებარე მოწყობილობების საპოვნელად ჩართეთ Bluetooth</translation> <translation id="2375079107209812402">დარჩენილია <ph name="ATTEMPTS_LEFT" /> მცდელობა</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> დარჩენილია {0} მცდელობა}other{<ph name="ERROR_MESSAGE" /> დარჩენილია {0} მცდელობა}}</translation> <translation id="2517472476991765520">სკანირება</translation> <translation id="2805756323405976993">პროგრამები</translation> <translation id="2872961005593481000">გამორთვა</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">დაუყოვნებლივ აირჩიეთ ახალი</translation> <translation id="4917889632206600977">გაჩერდა — ქაღალდი გათავდა</translation> <translation id="4932733599132424254">თარიღი</translation> +<translation id="5094480857972195099">ამ მომხმარებელს მართავს <ph name="ENROLLMENT_DOMAIN" />, რომელსაც შეუძლია პარამეტრების დისტანციურად მართვა და მომხმარებლის აქტივობის მონიტორინგი.</translation> <translation id="520299634122159966">სკანერები მიუწვდომელია</translation> <translation id="5212543919916444558">თქვენს ეკრანზე ვერაფერი მოიძებნა, რითაც თქვენს დახმარებას შევძლებდი. გთხოვთ, შეეხოთ მიკროფონს და მკითხოთ, რაც გსურთ.</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb index dca00d38..d5dbcf7 100644 --- a/chromeos/strings/chromeos_strings_km.xtb +++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">បានបោះពុម្ព</translation> <translation id="1979103255016296513">ការផ្លាស់ប្ដូរពាក្យសម្ងាត់បានផុតកំណត់ហើយ</translation> <translation id="2049639323467105390">ឧបករណ៍នេះត្រូវបានគ្រប់គ្រងដោយ <ph name="DOMAIN" />។</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">បោះបង់ការងារបោះពុម្ព</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">បើកប៊្លូធូសដើម្បីស្វែងរកឧបករណ៍ដែលនៅជិត</translation> <translation id="2375079107209812402">អាចព្យាយាមបាន <ph name="ATTEMPTS_LEFT" /> ដងទៀត</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> អាចព្យាយាមបាន {0} ដងទៀត}other{<ph name="ERROR_MESSAGE" /> អាចព្យាយាមបាន {0} ដងទៀត}}</translation> <translation id="2517472476991765520">ស្កេន</translation> <translation id="2805756323405976993">កម្មវិធី</translation> <translation id="2872961005593481000">បិទ</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">សូមជ្រើសរើសពាក្យសម្ងាត់ថ្មីភ្លាមៗ</translation> <translation id="4917889632206600977">បានឈប់ - អស់ក្រដាស</translation> <translation id="4932733599132424254">កាលបរិច្ឆេទ</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> គ្រប់គ្រងអ្នកប្រើប្រាស់នេះ និងអាចតាមដានសកម្មភាពអ្នកប្រើប្រាស់ និងគ្រប់គ្រងការកំណត់ពីចម្ងាយបាន។</translation> <translation id="520299634122159966">មិនមានឧបករណ៍ស្កេនទេ</translation> <translation id="5212543919916444558">ខ្ញុំរកមិនឃើញអ្វីដែលខ្ញុំអាចជួយបាននៅលើអេក្រង់របស់អ្នកទេ។ សាកល្បងចុចមីក្រូហ្វូន ដើម្បីសួរខ្ញុំអំពីអ្វីម្យ៉ាង។</translation> <translation id="5222676887888702881">ចាកចេញ</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb index 02ef9531..c8010ea 100644 --- a/chromeos/strings/chromeos_strings_ko.xtb +++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">인쇄됨</translation> <translation id="1979103255016296513">비밀번호 변경 기한 지남</translation> <translation id="2049639323467105390">기기는 <ph name="DOMAIN" />에서 관리합니다.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">인쇄 작업 취소</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" />dpi</translation> <translation id="2338501278241028356">블루투스를 사용 설정하여 근처 기기 탐색</translation> <translation id="2375079107209812402">남은 시도 <ph name="ATTEMPTS_LEFT" />회</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0}회 더 시도할 수 있습니다.}other{<ph name="ERROR_MESSAGE" /> {0}회 더 시도할 수 있습니다.}}</translation> <translation id="2517472476991765520">검색</translation> <translation id="2805756323405976993">앱</translation> <translation id="2872961005593481000">종료</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">지금 바로 새 비밀번호를 선택하세요.</translation> <translation id="4917889632206600977">중지됨 - 용지 부족</translation> <translation id="4932733599132424254">날짜</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" />에서 이 사용자를 관리하고 원격으로 설정을 관리하며 사용자 활동을 모니터링할 수 있습니다.</translation> <translation id="520299634122159966">사용 가능한 스캐너 없음</translation> <translation id="5212543919916444558">화면에 도움을 드릴 수 있는 항목이 보이지 않습니다. 마이크를 탭하여 무엇이든지 물어보세요.</translation>
diff --git a/chromeos/strings/chromeos_strings_ky.xtb b/chromeos/strings/chromeos_strings_ky.xtb index ffa09d8..2762474 100644 --- a/chromeos/strings/chromeos_strings_ky.xtb +++ b/chromeos/strings/chromeos_strings_ky.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Басып чыгарылды</translation> <translation id="1979103255016296513">Сырсөздү өзгөртүү мөөнөтү бүттү</translation> <translation id="2049639323467105390">Бул түзмөктү <ph name="DOMAIN" /> башкарат.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Басып чыгарууну токтотуу</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Жакын жердеги түзмөктөрдү табуу үчүн Bluetooth'ду күйгүзүңүз</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> аракет калды</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} аракет калды}other{<ph name="ERROR_MESSAGE" /> {0} аракет калды}}</translation> <translation id="2517472476991765520">Скандоо</translation> <translation id="2805756323405976993">Колдонмолор</translation> <translation id="2872961005593481000">Жабуу</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Дароо жаңы сырсөз тандаңыз</translation> <translation id="4917889632206600977">Токтоду – Кагаз түгөнүп калды</translation> <translation id="4932733599132424254">Күнү</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> алыстан жөндөөлөрдү башкарып, колдонуучунун аракеттерин көзөмөлдөй алат.</translation> <translation id="520299634122159966">Жеткиликтүү сканерлер жок</translation> <translation id="5212543919916444558">Экраныңызда эч нерсе көрүнгөн жок. Мага суроо берүү үчүн микрофонду таптап коюңуз.</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb index 60656b86f..2a52bc52 100644 --- a/chromeos/strings/chromeos_strings_lv.xtb +++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Izdrukāts</translation> <translation id="1979103255016296513">Paroles maiņa ir nokavēta</translation> <translation id="2049639323467105390">Šo ierīci pārvalda vietne <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Atcelt drukas uzdevumu</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> DPI</translation> <translation id="2338501278241028356">Ieslēdziet Bluetooth, lai atklātu tuvumā esošas ierīces</translation> <translation id="2375079107209812402">Vēl <ph name="ATTEMPTS_LEFT" /> mēģinājumi</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Atlicis {0} mēģinājums.}zero{<ph name="ERROR_MESSAGE" />. Atlikuši {0} mēģinājumi.}one{<ph name="ERROR_MESSAGE" />. Atlicis {0} mēģinājums.}other{<ph name="ERROR_MESSAGE" />. Atlikuši {0} mēģinājumi.}}</translation> <translation id="2517472476991765520">Meklēt</translation> <translation id="2805756323405976993">Lietotnes</translation> <translation id="2872961005593481000">Beidzēt</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Nekavējoties izvēlieties jaunu</translation> <translation id="4917889632206600977">Apturēts — beidzies papīrs</translation> <translation id="4932733599132424254">Datums</translation> +<translation id="5094480857972195099">Šis lietotājs tiek pārvaldīts domēnā <ph name="ENROLLMENT_DOMAIN" />, un tajā var tikt attālināti pārvaldīti iestatījumi un uzraudzītas lietotāja darbības.</translation> <translation id="520299634122159966">Nav pieejamu skeneru</translation> <translation id="5212543919916444558">Ekrānā neredzu neko, ar ko varētu palīdzēt. Pieskarieties mikrofonam, lai uzdotu man jautājumu.</translation>
diff --git a/chromeos/strings/chromeos_strings_mk.xtb b/chromeos/strings/chromeos_strings_mk.xtb index 2eb29fd..01dbf21 100644 --- a/chromeos/strings/chromeos_strings_mk.xtb +++ b/chromeos/strings/chromeos_strings_mk.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Отпечатено</translation> <translation id="1979103255016296513">Измина рокот за промена на лозинката</translation> <translation id="2049639323467105390">Овој уред е управуван од <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Откажи го налогот за печатење</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Вклучете Bluetooth за да откриете места во близина</translation> <translation id="2375079107209812402">Преостануваат <ph name="ATTEMPTS_LEFT" /> обиди</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Уште {0} обид}one{<ph name="ERROR_MESSAGE" /> Уште {0} обиди}other{<ph name="ERROR_MESSAGE" /> Уште {0} обиди}}</translation> <translation id="2517472476991765520">Скенирај</translation> <translation id="2805756323405976993">Апликации</translation> <translation id="2872961005593481000">Исклучи</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Веднаш изберете нова</translation> <translation id="4917889632206600977">Запрено - нема хартија</translation> <translation id="4932733599132424254">Датум</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> управува со корисников и може далечински да управува со поставките и да ја набљудува неговата активност.</translation> <translation id="520299634122159966">Нема достапни скенери</translation> <translation id="5212543919916444558">Не можам да најдам ништо на екранот со што би можел ви помогнам. Допрете го микрофонот за да ме прашате нешто.</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb index 52397002..3351287 100644 --- a/chromeos/strings/chromeos_strings_ml.xtb +++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">പ്രിന്റ് ചെയ്തു</translation> <translation id="1979103255016296513">പാസ്വേഡ് മാറ്റേണ്ട സമയം കഴിഞ്ഞു</translation> <translation id="2049639323467105390">ഈ ഉപകരണം മാനേജ് ചെയ്യുന്നത് <ph name="DOMAIN" /> ആണ്.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">പ്രിന്റ് ജോലി റദ്ദാക്കുക</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">സമീപത്തുള്ള ഉപകരണങ്ങൾ കണ്ടെത്താൻ Bluetooth ഓണാക്കുക</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> ശ്രമങ്ങൾ ശേഷിക്കുന്നു</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} ശ്രമം ശേഷിക്കുന്നു}other{<ph name="ERROR_MESSAGE" /> {0} ശ്രമങ്ങൾ ശേഷിക്കുന്നു}}</translation> <translation id="2517472476991765520">സ്കാൻ ചെയ്യുക</translation> <translation id="2805756323405976993">ആപ്സ്</translation> <translation id="2872961005593481000">അടയ്ക്കുക</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">പുതിയ പാസ്വേഡ് പെട്ടെന്ന് തിരഞ്ഞെടുക്കുക</translation> <translation id="4917889632206600977">പ്രിന്റ് ജോലി നിർത്തി - പേപ്പറില്ല</translation> <translation id="4932733599132424254">തീയതി</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> ആണ് ഈ ഉപയോക്താവിനെ മാനേജ് ചെയ്യുന്നത്, ഇത് വിദൂരമായി ക്രമീകരണം മാനേജ് ചെയ്യുകയും ഉപയോക്തൃ ആക്റ്റിവിറ്റി നിരീക്ഷിക്കുകയും ചെയ്തേക്കാം.</translation> <translation id="520299634122159966">ലഭ്യമായ സ്കാനറുകളൊന്നുമില്ല</translation> <translation id="5212543919916444558">എനിക്ക് സഹായിക്കാനാവുന്ന ഒന്നും നിങ്ങളുടെ സ്ക്രീനിൽ കണ്ടെത്താനാവുന്നില്ല. എന്നോട് എന്തെങ്കിലും ആവശ്യപ്പെടാൻ മൈക്ക് ടാപ്പ് ചെയ്യുന്നത് പരീക്ഷിക്കൂ.</translation> <translation id="5222676887888702881">സൈൻ ഔട്ട് ചെയ്യുക</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb index 4be7d279..eab83531 100644 --- a/chromeos/strings/chromeos_strings_ms.xtb +++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Dicetak</translation> <translation id="1979103255016296513">Kata laluan perlu ditukar</translation> <translation id="2049639323467105390">Peranti ini diuruskan oleh <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Batalkan tugas cetak</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Hidupkan Bluetooth untuk menemui peranti berdekatan</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> percubaan lagi</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} percubaan lagi}other{<ph name="ERROR_MESSAGE" /> {0} percubaan lagi}}</translation> <translation id="2517472476991765520">Imbas</translation> <translation id="2805756323405976993">Apl</translation> <translation id="2872961005593481000">Mematikan</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Pilih kata laluan baharu secepat mungkin</translation> <translation id="4917889632206600977">Dihentikan - Kehabisan kertas</translation> <translation id="4932733599132424254">Tarikh</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> mengurus pengguna ini dan mungkin mengurus tetapan dan memantau aktiviti pengguna dari jauh.</translation> <translation id="520299634122159966">Tiada pengimbas tersedia</translation> <translation id="5212543919916444558">Saya tidak menemui apa-apa pada skrin anda yang boleh saya bantu. Cuba ketik mikrofon untuk bertanyakan sebarang perkara kepada saya.</translation>
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb index 230f4d4..522a1f7 100644 --- a/chromeos/strings/chromeos_strings_my.xtb +++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">ပုံနှိပ်ထုတ်ပြီးပြီ</translation> <translation id="1979103255016296513">စကားဝှက်ပြောင်းလဲမှု သက်တမ်းကုန်သွားပါပြီ</translation> <translation id="2049639323467105390">ဤစက်ပစ္စည်းကို <ph name="DOMAIN" /> မှစီမံသည်။</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">ပရင့်ထုတ်ရန်ဖိုင် မထုတ်တော့ပါ</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">အနီးတဝိုက်ရှိ စက်ပစ္စည်းများကို ရှာဖွေရန် ဘလူးတုသ်ကို ဖွင့်ပါ</translation> <translation id="2375079107209812402">လုပ်ဆောင်ခွင့် <ph name="ATTEMPTS_LEFT" /> ကြိမ် ကျန်သည်</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} ကြိမ် ကြိုးပမ်းနိုင်သည်}other{<ph name="ERROR_MESSAGE" /> {0} ကြိမ် ကြိုးပမ်းနိုင်သည်}}</translation> <translation id="2517472476991765520">ရှာဖွေရန်</translation> <translation id="2805756323405976993">အက်ပ်များ</translation> <translation id="2872961005593481000">ပိတ်ရန်</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">ချက်ချင်း အသစ်တစ်ခု ရွေးပါ</translation> <translation id="4917889632206600977">ရပ်သွားသည် - စာရွက်ကုန်နေသည်</translation> <translation id="4932733599132424254">ရက်စွဲ</translation> +<translation id="5094480857972195099">ဤအသုံးပြုသူကို <ph name="ENROLLMENT_DOMAIN" /> က စီမံသည့်အတွက် ဆက်တင်များကို အဝေးထိန်းစီမံပြီး အသုံးပြုသူ၏လုပ်ဆောင်ချက်ကို စောင့်ကြည့်နိုင်သည်။</translation> <translation id="520299634122159966">စကင်ဖတ်စနစ်များ မရနိုင်ပါ</translation> <translation id="5212543919916444558">သင့်မျက်နှာပြင်တွင် ကျွန်ုပ်ကူညီနိုင်သည့် အကြောင်းအရာများကို မတွေ့ပါ။ မိုက်ကို တို့ပြီး နှစ်သက်ရာ မေးနိုင်ပါသည်။</translation> <translation id="5222676887888702881">ထွက်ခွာရန်</translation>
diff --git a/chromeos/strings/chromeos_strings_or.xtb b/chromeos/strings/chromeos_strings_or.xtb index 3e26d96..6716041 100644 --- a/chromeos/strings/chromeos_strings_or.xtb +++ b/chromeos/strings/chromeos_strings_or.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">ପ୍ରିଣ୍ଟ କରାଯାଇଛି</translation> <translation id="1979103255016296513">ପାସ୍ୱାର୍ଡ ପରିବର୍ତ୍ତନର ସମୟ ବିଳମ୍ବ ହୋଇଯାଇଛି</translation> <translation id="2049639323467105390">ଏହି ଡିଭାଇସ୍ <ph name="DOMAIN" /> ଦ୍ୱାରା ପରିଚାଳିତ ହେଉଛି।</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">ପ୍ରିଣ୍ଟ କାର୍ଯ୍ୟକୁ ବାତିଲ୍ କରନ୍ତୁ</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">ଆଖପାଖରେ ଥିବା ଡିଭାଇସ୍ଗୁଡ଼ିକୁ ଖୋଜିବାକୁ ବ୍ଲୁଟୁଥ୍ ଚାଲୁ କରନ୍ତୁ</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" />ଟି ପ୍ରଚେଷ୍ଟା ବାକି ଅଛି</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0}ଟି ପ୍ରଚେଷ୍ଟା ବାକି ଅଛି}other{<ph name="ERROR_MESSAGE" />{0}ଟି ପ୍ରଚେଷ୍ଟା ବାକି ଅଛି}}</translation> <translation id="2517472476991765520">ସ୍କାନ୍ କରନ୍ତୁ</translation> <translation id="2805756323405976993">ଆପ୍ସ</translation> <translation id="2872961005593481000">ବନ୍ଦ କରନ୍ତୁ</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">ତୁରନ୍ତ ଏକ ନୂଆ ବାଛନ୍ତୁ</translation> <translation id="4917889632206600977">ବନ୍ଦ ହୋଇଯାଇଛି - କାଗଜ ସରିଯାଇଛି</translation> <translation id="4932733599132424254">ତାରିଖ</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> ଏହି ଉପଯୋଗକର୍ତ୍ତାଙ୍କୁ ପରିଚାଳନା କରେ ଏବଂ ରିମୋଟ୍ ଭାବେ ସେଟିଂସ୍ ପରିଚାଳନା ଏବଂ ଉପଯୋଗକର୍ତ୍ତା କାର୍ଯ୍ୟକଳାପ ନିରୀକ୍ଷଣ କରିପାରେ।</translation> <translation id="520299634122159966">କୌଣସି ସ୍କାନର୍ ଉପଲବ୍ଧ ନାହିଁ</translation> <translation id="5212543919916444558">ଆପଣଙ୍କର ସ୍କ୍ରିନ୍ରେ ମୁଁ କିଛି ଖୋଜିପାଇଲି ନାହିଁ ଯାହାଦ୍ୱାରା ମୁଁ ଆପଣଙ୍କୁ ସାହାଯ୍ୟ କରିପାରିବି। ମୋତେ ଯାହା କିଛି ପଚାରିବା ପାଇଁ ମାଇକ୍ ଟାପ୍ କରି ଦେଖନ୍ତୁ।</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb index 37218e4..5cde6a2 100644 --- a/chromeos/strings/chromeos_strings_pt-BR.xtb +++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Impresso</translation> <translation id="1979103255016296513">O prazo para a alteração de senha foi ultrapassado</translation> <translation id="2049639323467105390">Este dispositivo é gerenciado por <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Cancelar trabalho de impressão</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Ativar o Bluetooth para descobrir dispositivos nas proximidades</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> tentativas restantes</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} tentativa restante}one{<ph name="ERROR_MESSAGE" /> {0} tentativa restante}other{<ph name="ERROR_MESSAGE" /> {0} tentativas restantes}}</translation> <translation id="2517472476991765520">Verificar</translation> <translation id="2805756323405976993">Apps</translation> <translation id="2872961005593481000">Desligar</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Escolha uma nova imediatamente</translation> <translation id="4917889632206600977">Parado (sem papel)</translation> <translation id="4932733599132424254">Data</translation> +<translation id="5094480857972195099">O <ph name="ENROLLMENT_DOMAIN" /> gerencia o usuário e pode gerenciar configurações e monitorar a atividade do usuário remotamente.</translation> <translation id="520299634122159966">Não há scanners disponíveis</translation> <translation id="5212543919916444558">Não foi possível encontrar na sua tela nada com o que eu possa ajudar. Tente tocar no microfone para me pedir algo.</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb index db664536..bd267ea 100644 --- a/chromeos/strings/chromeos_strings_ro.xtb +++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Printată</translation> <translation id="1979103255016296513">Ai depășit timpul limită pentru schimbarea parolei</translation> <translation id="2049639323467105390">Acest dispozitiv este gestionat de <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Anulează sarcina de printare</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Pentru a descoperi dispozitivele din apropiere, activează Bluetooth</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> încercări rămase</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} încercare rămasă}few{<ph name="ERROR_MESSAGE" /> {0} încercări rămase}other{<ph name="ERROR_MESSAGE" /> {0} de încercări rămase}}</translation> <translation id="2517472476991765520">Scanează</translation> <translation id="2805756323405976993">Aplicații</translation> <translation id="2872961005593481000">Închide</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Alege imediat una nouă</translation> <translation id="4917889632206600977">Oprită – Hârtie epuizată</translation> <translation id="4932733599132424254">Data</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> gestionează acest utilizator și poate să gestioneze de la distanță setările și să monitorizeze activitatea utilizatorului.</translation> <translation id="520299634122159966">Nu sunt disponibile scanere</translation> <translation id="5212543919916444558">Nu găsesc conținut pe ecran în privința căruia te-aș putea ajuta. Atinge microfonul și întreabă orice dorești.</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb index d3b3cc4..2e68a93f 100644 --- a/chromeos/strings/chromeos_strings_ru.xtb +++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Напечатано</translation> <translation id="1979103255016296513">Истек срок изменения пароля</translation> <translation id="2049639323467105390">Это устройство находится в домене <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Отменить задание печати</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> DPI</translation> <translation id="2338501278241028356">Включите Bluetooth, чтобы найти устройства</translation> <translation id="2375079107209812402">Осталось попыток: <ph name="ATTEMPTS_LEFT" />.</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Осталась {0} попытка.}one{<ph name="ERROR_MESSAGE" /> Осталась {0} попытка.}few{<ph name="ERROR_MESSAGE" /> Осталось {0} попытки.}many{<ph name="ERROR_MESSAGE" /> Осталось {0} попыток.}other{<ph name="ERROR_MESSAGE" /> Осталось {0} попытки.}}</translation> <translation id="2517472476991765520">Искать</translation> <translation id="2805756323405976993">Сервисы</translation> <translation id="2872961005593481000">Завершить работу</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Смените пароль как можно скорее.</translation> <translation id="4917889632206600977">Печать прервана: нет бумаги</translation> <translation id="4932733599132424254">Дата</translation> +<translation id="5094480857972195099">Это управляемый аккаунт. Администратор (<ph name="ENROLLMENT_DOMAIN" />) может отслеживать действия пользователя, а также удаленно изменять настройки.</translation> <translation id="520299634122159966">Нет доступных сканеров.</translation> <translation id="5212543919916444558">Я не нашла на экране ничего подходящего. Попробуйте озвучить запрос, нажав на значок микрофона.</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb index 8ee004a..c0f20d3b 100644 --- a/chromeos/strings/chromeos_strings_sl.xtb +++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Natisnjeno</translation> <translation id="1979103255016296513">Rok za spremembo gesla je potekel</translation> <translation id="2049639323467105390">To napravo upravlja <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Preklic tiskalnega opravila</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> pik na palec</translation> <translation id="2338501278241028356">Vklopite Bluetooth, če želite odkriti naprave v bližini</translation> <translation id="2375079107209812402">Na voljo imate še toliko poskusov: <ph name="ATTEMPTS_LEFT" /></translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Še {0} poskus}one{<ph name="ERROR_MESSAGE" /> Še {0} poskus}two{<ph name="ERROR_MESSAGE" /> Še {0} poskusa}few{<ph name="ERROR_MESSAGE" /> Še {0} poskusi}other{<ph name="ERROR_MESSAGE" /> Še {0} poskusov}}</translation> <translation id="2517472476991765520">Išči</translation> <translation id="2805756323405976993">Aplikacije</translation> <translation id="2872961005593481000">Zaustavitev</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Takoj izberite novo</translation> <translation id="4917889632206600977">Ustavljeno – zmanjkalo je papirja</translation> <translation id="4932733599132424254">Datum</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> upravlja tega uporabnika in lahko na daljavo upravlja nastavitve ter nadzira dejavnost uporabnika.</translation> <translation id="520299634122159966">Ni razpoložljivih optičnih bralnikov</translation> <translation id="5212543919916444558">Na zaslonu ni ničesar uporabnega. Poskusite vprašati tako, da se dotaknete mikrofona.</translation>
diff --git a/chromeos/strings/chromeos_strings_sq.xtb b/chromeos/strings/chromeos_strings_sq.xtb index 26123c1..bcaade6d 100644 --- a/chromeos/strings/chromeos_strings_sq.xtb +++ b/chromeos/strings/chromeos_strings_sq.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Printuar</translation> <translation id="1979103255016296513">Afati i ndryshimit të fjalëkalimit ka kaluar</translation> <translation id="2049639323467105390">Kjo pajisje menaxhohet nga <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Anulo printimin</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Aktivizo "Bluetooth-in" për të zbuluar pajisjet në afërsi</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> përpjekje të mbetura</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} përpjekje e mbetur}other{<ph name="ERROR_MESSAGE" /> {0} përpjekje të mbetura}}</translation> <translation id="2517472476991765520">Skano</translation> <translation id="2805756323405976993">Aplikacionet</translation> <translation id="2872961005593481000">Ndërprit punën</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Zgjidh një të re menjëherë</translation> <translation id="4917889632206600977">Ndaloi - Nuk ka letër</translation> <translation id="4932733599132424254">Data</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> menaxhon këtë përdorues dhe mund të menaxhojë në distancë cilësimet dhe të monitorojë aktivitetin e përdoruesit.</translation> <translation id="520299634122159966">Nuk ka skanerë</translation> <translation id="5212543919916444558">Nuk mund të gjej diçka në ekranin tënd me të cilën mund të të ndihmoj. Provo të trokasësh te mikrofoni për të më kërkuar diçka.</translation> <translation id="5222676887888702881">Dil</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb index ead3f0a7..d740887 100644 --- a/chromeos/strings/chromeos_strings_sv.xtb +++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Utskrivet</translation> <translation id="1979103255016296513">Tiden för att ändra lösenordet har gått ut</translation> <translation id="2049639323467105390">Den här enheten hanteras av <ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" /> %</translation> <translation id="2161394479394250669">Avbryt utskriftsjobb</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> DPI</translation> <translation id="2338501278241028356">Aktivera Bluetooth så att det går att upptäcka enheter i närheten</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> försök kvar</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} försök kvar}other{<ph name="ERROR_MESSAGE" /> {0} försök kvar}}</translation> <translation id="2517472476991765520">Sök</translation> <translation id="2805756323405976993">Appar</translation> <translation id="2872961005593481000">Stäng av</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Välj ett nytt omedelbart</translation> <translation id="4917889632206600977">Har stoppats – slut på papper</translation> <translation id="4932733599132424254">Datum</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> hanterar denna användare och kan fjärrhantera inställningar och övervaka användaraktivitet.</translation> <translation id="520299634122159966">Det finns inga tillgängliga skannrar</translation> <translation id="5212543919916444558">Det finns inget på skärmen som jag kan hjälpa till med. Tryck på mikrofonen och fråga om något.</translation>
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb index a4121c7b..05b46788 100644 --- a/chromeos/strings/chromeos_strings_sw.xtb +++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Imechapishwa</translation> <translation id="1979103255016296513">Muda wa kubadilisha nenosiri umeisha</translation> <translation id="2049639323467105390">Kifaa hiki kinadhibitiwa na <ph name="DOMAIN" /> .</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Ghairi kazi ya kuchapisha</translation> <translation id="2326139988748364651">Dpi <ph name="RESOLUTION_VALUE" /></translation> <translation id="2338501278241028356">Washa Bluetooth ili ugundue vifaa vilivyo karibu</translation> <translation id="2375079107209812402">Umebakisha mara <ph name="ATTEMPTS_LEFT" /> za kujaribu</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> umebakisha mara {0} ya kujaribu}other{<ph name="ERROR_MESSAGE" /> umebakisha mara {0} za kujaribu}}</translation> <translation id="2517472476991765520">Tafuta</translation> <translation id="2805756323405976993">Programu</translation> <translation id="2872961005593481000">Zima</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Chagua nenosiri jipya mara moja</translation> <translation id="4917889632206600977">Imesimama - Karatasi zimeisha</translation> <translation id="4932733599132424254">Tarehe</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> inamdhibiti mtumiaji huyu na huenda ikadhibiti mipangilio na kufuatilia shughuli za mtumiaji kwa mbali.</translation> <translation id="520299634122159966">Hakuna vichanganuzi vinavyopatikana</translation> <translation id="5212543919916444558">Sijapata swali lolote kwenye skrini yako. Jaribu kugonga maikrofoni ili uniulize chochote.</translation> <translation id="5222676887888702881">Ondoka</translation>
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb index cc71808c..5c26fd6 100644 --- a/chromeos/strings/chromeos_strings_th.xtb +++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">พิมพ์แล้ว</translation> <translation id="1979103255016296513">เลยเวลาเปลี่ยนรหัสผ่านแล้ว</translation> <translation id="2049639323467105390">อุปกรณ์นี้ได้รับการจัดการโดย <ph name="DOMAIN" /></translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">ยกเลิกงานพิมพ์</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">เปิดบลูทูธเพื่อค้นหาอุปกรณ์ใกล้เคียง</translation> <translation id="2375079107209812402">ลองได้อีก <ph name="ATTEMPTS_LEFT" /> ครั้ง</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> ลองได้อีก {0} ครั้ง}other{<ph name="ERROR_MESSAGE" /> ลองได้อีก {0} ครั้ง}}</translation> <translation id="2517472476991765520">สแกน</translation> <translation id="2805756323405976993">แอป</translation> <translation id="2872961005593481000">ปิด</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">อย่ารอช้า รีบเลือกรหัสผ่านใหม่</translation> <translation id="4917889632206600977">หยุดพิมพ์ - กระดาษหมด</translation> <translation id="4932733599132424254">วันที่</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> จัดการผู้ใช้รายนี้อยู่และอาจจัดการการตั้งค่าและตรวจสอบกิจกรรมของผู้ใช้จากระยะไกล</translation> <translation id="520299634122159966">ไม่มีเครื่องสแกนที่ใช้ได้</translation> <translation id="5212543919916444558">ฉันไม่พบสิ่งที่จะช่วยได้ในหน้าจอ ลองแตะไมโครโฟนเพื่อถามเรื่องอะไรก็ได้</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb index a168e222..1ee8da3 100644 --- a/chromeos/strings/chromeos_strings_tr.xtb +++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Yazdırıldı</translation> <translation id="1979103255016296513">Şifre değişikliği zamanı geçti</translation> <translation id="2049639323467105390">Bu cihaz <ph name="DOMAIN" /> tarafından yönetiliyor.</translation> +<translation id="2141644705054017895">%<ph name="PERCENTAGE_VALUE" /></translation> <translation id="2161394479394250669">Yazdırma işini iptal et</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Yakındaki cihazları keşfetmek için Bluetooth'u aç</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> deneme hakkınız kaldı</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} deneme hakkınız kaldı}other{<ph name="ERROR_MESSAGE" /> {0} deneme hakkınız kaldı}}</translation> <translation id="2517472476991765520">Tara</translation> <translation id="2805756323405976993">Uygulamalar</translation> <translation id="2872961005593481000">Kapat</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Hemen yeni bir tane seçin</translation> <translation id="4917889632206600977">Durduruldu - Kağıt bitti</translation> <translation id="4932733599132424254">Tarih</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" />, bu kullanıcıyı yönetir ve hem ayarları uzaktan yönetebilir hem de kullanıcı etkinliğini izleyebilir.</translation> <translation id="520299634122159966">Kullanılabilir tarayıcı yok</translation> <translation id="5212543919916444558">Ekranınızda size yardımcı olabileceğim bir şey bulamıyorum. Bana bir şey sormak için mikrofona dokunmayı deneyin.</translation>
diff --git a/chromeos/strings/chromeos_strings_uz.xtb b/chromeos/strings/chromeos_strings_uz.xtb index 95c8e52e..a0664b9 100644 --- a/chromeos/strings/chromeos_strings_uz.xtb +++ b/chromeos/strings/chromeos_strings_uz.xtb
@@ -2,6 +2,7 @@ <!DOCTYPE translationbundle> <translationbundle lang="uz"> <translation id="1018656279737460067">Bekor qilindi</translation> +<translation id="1075811647922107217">Sahifa hajmi</translation> <translation id="1195447618553298278">Noma’lum xatolik.</translation> <translation id="1330426557709298164">JPG</translation> <translation id="1413240736185167732">Bajarilmadi - Filtr ishlamadi</translation> @@ -18,10 +19,12 @@ <translation id="1947737735496445907">Chop etildi</translation> <translation id="1979103255016296513">Parolni almashtirish muddati tugadi</translation> <translation id="2049639323467105390">Bu qurilma <ph name="DOMAIN" /> tomonidan boshqariladi</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Chop etish vazifasini bekor qilish</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Yaqin-atrofdagi qurilmalarni aniqlash uchun Bluetooth adapterini yoqing</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> ta urinish qoldi</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} ta urinish qoldi}other{<ph name="ERROR_MESSAGE" /> {0} ta urinish qoldi}}</translation> <translation id="2517472476991765520">Qidiruv</translation> <translation id="2805756323405976993">Ilovalar</translation> <translation id="2872961005593481000">Ishni tamomlash</translation> @@ -59,6 +62,7 @@ <translation id="4890353053343094602">Tezda yangi parol tanlang</translation> <translation id="4917889632206600977">Toʻxtatildi – Qogʻoz tugadi</translation> <translation id="4932733599132424254">Sana</translation> +<translation id="5094480857972195099"><ph name="ENROLLMENT_DOMAIN" /> bu foydalanuvchi faoliyatini masofadan kuzatishi va boshqarishi mumkin.</translation> <translation id="520299634122159966">Skanerlar topilmadi</translation> <translation id="5212543919916444558">Ekranda men yordam bera oladigan hech narsa topilmadi. Mikrofon ustiga bosing va savolni ayting.</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb index 483f5da..9f491e7 100644 --- a/chromeos/strings/chromeos_strings_vi.xtb +++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Đã in</translation> <translation id="1979103255016296513">Đã quá hạn thay đổi mật khẩu</translation> <translation id="2049639323467105390">Thiết bị này được <ph name="DOMAIN" /> quản lý.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Hủy lệnh in</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Bật Bluetooth để khám phá các thiết bị lân cận</translation> <translation id="2375079107209812402">Còn <ph name="ATTEMPTS_LEFT" /> lần thử</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Bạn còn {0} lần thử}other{<ph name="ERROR_MESSAGE" /> Bạn còn {0} lần thử}}</translation> <translation id="2517472476991765520">Quét</translation> <translation id="2805756323405976993">Ứng dụng</translation> <translation id="2872961005593481000">Tắt</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Chọn ngay một mật khẩu mới</translation> <translation id="4917889632206600977">Đã dừng – Hết giấy</translation> <translation id="4932733599132424254">Ngày Tháng</translation> +<translation id="5094480857972195099">Miền <ph name="ENROLLMENT_DOMAIN" /> quản lý người dùng này và có thể quản lý từ xa các tùy chọn cài đặt cũng như giám sát hoạt động của người dùng.</translation> <translation id="520299634122159966">Chưa có máy quét nào</translation> <translation id="5212543919916444558">Tôi không tìm thấy nội dung nào trên màn hình để có thể trợ giúp cho bạn. Hãy thử nhấn vào micrô để hỏi tôi bất cứ điều gì.</translation>
diff --git a/chromeos/strings/chromeos_strings_zu.xtb b/chromeos/strings/chromeos_strings_zu.xtb index 4df54205..837db5e9 100644 --- a/chromeos/strings/chromeos_strings_zu.xtb +++ b/chromeos/strings/chromeos_strings_zu.xtb
@@ -18,10 +18,12 @@ <translation id="1947737735496445907">Kuphrintiwe</translation> <translation id="1979103255016296513">Ukushintsha iphasiwedi kudlulelwe isikhathi</translation> <translation id="2049639323467105390">Idivayisi iphethwe yi-<ph name="DOMAIN" />.</translation> +<translation id="2141644705054017895"><ph name="PERCENTAGE_VALUE" />%</translation> <translation id="2161394479394250669">Khansela umsebenzi wokuphrinta</translation> <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation> <translation id="2338501278241028356">Vula i-Bluetooth ukuze uthole amadivayisi aseduze</translation> <translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> imizamo esele</translation> +<translation id="2463748424736466148">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> kusele umzamo ongu-{0}}one{<ph name="ERROR_MESSAGE" /> kusele imizamo engu-{0}}other{<ph name="ERROR_MESSAGE" /> kusele imizamo engu-{0}}}</translation> <translation id="2517472476991765520">Skena</translation> <translation id="2805756323405976993">Izinhlelo zokusebenza</translation> <translation id="2872961005593481000">Cisha</translation> @@ -59,6 +61,7 @@ <translation id="4890353053343094602">Khetha elisha elilodwa ngokushesha</translation> <translation id="4917889632206600977">Imile - Iphepha liphelile</translation> <translation id="4932733599132424254">Idethi</translation> +<translation id="5094480857972195099">I-<ph name="ENROLLMENT_DOMAIN" /> iphatha lo msebenzisi futhi ingaphatha amasethingi isekudeni futhi iqaphe umsebenzi womsebenzisi.</translation> <translation id="520299634122159966">Awekho amaskena atholakalayo</translation> <translation id="5212543919916444558">Angikwazi ukuthola lutho kusikrini sakho engingasiza ngakho. Zama ukuthepha imakrofoni ukuze ungibuze noma yini.</translation>
diff --git a/components/autofill/android/provider/autofill_provider_android.cc b/components/autofill/android/provider/autofill_provider_android.cc index f8a1fee..3947787 100644 --- a/components/autofill/android/provider/autofill_provider_android.cc +++ b/components/autofill/android/provider/autofill_provider_android.cc
@@ -86,8 +86,7 @@ // Focus or field value change will also trigger the query, so it should be // ignored if the form is same. - if (ShouldStartNewSession(handler, form)) - StartNewSession(handler, form, field, bounding_box); + MaybeStartNewSession(handler, form, field, bounding_box); JNIEnv* env = AttachCurrentThread(); ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); @@ -105,18 +104,24 @@ } } -bool AutofillProviderAndroid::ShouldStartNewSession( +void AutofillProviderAndroid::MaybeStartNewSession( AutofillHandlerProxy* handler, - const FormData& form) { - // Only start a new session when form or handler is changed, the change of - // handler indicates query from other frame and a new session is needed. - return !IsCurrentlyLinkedForm(form) || !IsCurrentlyLinkedHandler(handler); -} + const FormData& form, + const FormFieldData& field, + const gfx::RectF& bounding_box) { + // Don't start a new session when the new form is similar to the old form, the + // new handler is the same as the current handler, and the coordinates of the + // relevant form field haven't changed. + if (form_ && form_->SimilarFormAs(form) && + IsCurrentlyLinkedHandler(handler)) { + size_t index; + if (form_->GetFieldIndex(field, &index) && + handler->driver()->TransformBoundingBoxToViewportCoordinates( + form.fields[index].bounds) == form_->form().fields[index].bounds) { + return; + } + } -void AutofillProviderAndroid::StartNewSession(AutofillHandlerProxy* handler, - const FormData& form, - const FormFieldData& field, - const gfx::RectF& bounding_box) { JNIEnv* env = AttachCurrentThread(); ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); if (obj.is_null()) @@ -221,8 +226,7 @@ const FormData& form, const FormFieldData& field, const gfx::RectF& bounding_box) { - if (ShouldStartNewSession(handler, form)) - StartNewSession(handler, form, field, bounding_box); + MaybeStartNewSession(handler, form, field, bounding_box); FireFormFieldDidChanged(handler, form, field, bounding_box); }
diff --git a/components/autofill/android/provider/autofill_provider_android.h b/components/autofill/android/provider/autofill_provider_android.h index fdb537a..618517c 100644 --- a/components/autofill/android/provider/autofill_provider_android.h +++ b/components/autofill/android/provider/autofill_provider_android.h
@@ -100,13 +100,12 @@ gfx::RectF ToClientAreaBound(const gfx::RectF& bounding_box); - bool ShouldStartNewSession(AutofillHandlerProxy* handler, - const FormData& form); - - void StartNewSession(AutofillHandlerProxy* handler, - const FormData& form, - const FormFieldData& field, - const gfx::RectF& bounding_box); + // Starts a new session, but only if |form| or |handler| doesn't match the + // current session. + void MaybeStartNewSession(AutofillHandlerProxy* handler, + const FormData& form, + const FormFieldData& field, + const gfx::RectF& bounding_box); void Reset();
diff --git a/components/autofill/android/provider/form_data_android.h b/components/autofill/android/provider/form_data_android.h index 8882a788..96002f62 100644 --- a/components/autofill/android/provider/form_data_android.h +++ b/components/autofill/android/provider/form_data_android.h
@@ -54,7 +54,7 @@ void ApplyHeuristicFieldType(const FormStructure& form); - const FormData& form_for_testing() { return form_; } + const FormData& form() { return form_; } private: // Same as the form passed in from constructor, but FormFieldData's bounds is
diff --git a/components/autofill/content/renderer/OWNERS b/components/autofill/content/renderer/OWNERS index 15f8279c..39dfee9 100644 --- a/components/autofill/content/renderer/OWNERS +++ b/components/autofill/content/renderer/OWNERS
@@ -1,7 +1,2 @@ -per-file *password*=dvadym@chromium.org -per-file *password*=kolos@chromium.org -per-file *password*=vasilii@chromium.org - -per-file *username*=dvadym@chromium.org -per-file *username*=kolos@chromium.org -per-file *username*=vasilii@chromium.org +per-file *password*=file://components/password_manager/OWNERS +per-file *username*=file://components/password_manager/OWNERS
diff --git a/components/autofill/core/common/BUILD.gn b/components/autofill/core/common/BUILD.gn index 001a7e89..eadd1c94 100644 --- a/components/autofill/core/common/BUILD.gn +++ b/components/autofill/core/common/BUILD.gn
@@ -51,7 +51,6 @@ "password_form.h", "password_form_fill_data.cc", "password_form_fill_data.h", - "password_form_generation_data.cc", "password_form_generation_data.h", "password_generation_util.cc", "password_generation_util.h",
diff --git a/components/autofill/core/common/OWNERS b/components/autofill/core/common/OWNERS index 219017c1..04e7201 100644 --- a/components/autofill/core/common/OWNERS +++ b/components/autofill/core/common/OWNERS
@@ -1,5 +1,3 @@ -per-file *password*=dvadym@chromium.org -per-file *password*=kolos@chromium.org -per-file *password*=vasilii@chromium.org +per-file *password*=file://components/password_manager/OWNERS per-file autofill_payments_features.*=file://components/autofill/core/browser/payments/OWNERS
diff --git a/components/autofill/core/common/password_form_generation_data.cc b/components/autofill/core/common/password_form_generation_data.cc deleted file mode 100644 index 04cccb19f..0000000 --- a/components/autofill/core/common/password_form_generation_data.cc +++ /dev/null
@@ -1,44 +0,0 @@ -// Copyright (c) 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "components/autofill/core/common/password_form_generation_data.h" - -#include <utility> - -namespace autofill { - -PasswordFormGenerationData::PasswordFormGenerationData() = default; - -PasswordFormGenerationData::PasswordFormGenerationData( - FieldRendererId new_password_renderer_id, - FieldRendererId confirmation_password_renderer_id) - : new_password_renderer_id(new_password_renderer_id), - confirmation_password_renderer_id(confirmation_password_renderer_id) {} - -#if defined(OS_IOS) -PasswordFormGenerationData::PasswordFormGenerationData( - FormRendererId form_renderer_id, - FieldRendererId new_password_renderer_id, - FieldRendererId confirmation_password_renderer_id) - : form_renderer_id(form_renderer_id), - new_password_renderer_id(new_password_renderer_id), - confirmation_password_renderer_id(confirmation_password_renderer_id) {} - -PasswordFormGenerationData::PasswordFormGenerationData( - const PasswordFormGenerationData&) = default; - -PasswordFormGenerationData& PasswordFormGenerationData::operator=( - const PasswordFormGenerationData&) = default; - -PasswordFormGenerationData::PasswordFormGenerationData( - PasswordFormGenerationData&&) = default; - -PasswordFormGenerationData& PasswordFormGenerationData::operator=( - PasswordFormGenerationData&&) = default; - -PasswordFormGenerationData::~PasswordFormGenerationData() = default; - -#endif - -} // namespace autofill
diff --git a/components/autofill/core/common/password_form_generation_data.h b/components/autofill/core/common/password_form_generation_data.h index 2618629d4..7c22909 100644 --- a/components/autofill/core/common/password_form_generation_data.h +++ b/components/autofill/core/common/password_form_generation_data.h
@@ -5,32 +5,15 @@ #ifndef COMPONENTS_AUTOFILL_CORE_COMMON_PASSWORD_FORM_GENERATION_DATA_H_ #define COMPONENTS_AUTOFILL_CORE_COMMON_PASSWORD_FORM_GENERATION_DATA_H_ -#include <stdint.h> - -#include "base/optional.h" #include "build/build_config.h" #include "components/autofill/core/common/renderer_id.h" -#include "url/gurl.h" namespace autofill { // Structure used for sending information from browser to renderer about on // which fields password should be generated. struct PasswordFormGenerationData { - PasswordFormGenerationData(); - PasswordFormGenerationData(FieldRendererId new_password_renderer_id, - FieldRendererId confirmation_password_renderer_id); #if defined(OS_IOS) - PasswordFormGenerationData(FormRendererId form_renderer_id, - FieldRendererId new_password_renderer_id, - FieldRendererId confirmation_password_renderer_id); - - PasswordFormGenerationData(const PasswordFormGenerationData&); - PasswordFormGenerationData& operator=(const PasswordFormGenerationData&); - PasswordFormGenerationData(PasswordFormGenerationData&&); - PasswordFormGenerationData& operator=(PasswordFormGenerationData&&); - ~PasswordFormGenerationData(); - FormRendererId form_renderer_id; #endif FieldRendererId new_password_renderer_id;
diff --git a/components/autofill_assistant/browser/selector.cc b/components/autofill_assistant/browser/selector.cc index e3a884a..d3601f8 100644 --- a/components/autofill_assistant/browser/selector.cc +++ b/components/autofill_assistant/browser/selector.cc
@@ -55,6 +55,14 @@ std::make_tuple(b.pseudo_element_content().pseudo_type(), b.pseudo_element_content().content()); + case SelectorProto::Filter::kCssStyle: + return std::make_tuple(a.css_style().property(), + a.css_style().pseudo_element(), + a.css_style().value()) < + std::make_tuple(b.css_style().property(), + b.css_style().pseudo_element(), + b.css_style().value()); + case SelectorProto::Filter::kBoundingBox: case SelectorProto::Filter::kEnterFrame: case SelectorProto::Filter::kPickOne: @@ -220,6 +228,7 @@ case SelectorProto::Filter::kValue: case SelectorProto::Filter::kPseudoType: case SelectorProto::Filter::kPseudoElementContent: + case SelectorProto::Filter::kCssStyle: case SelectorProto::Filter::kLabelled: case SelectorProto::Filter::kClosest: case SelectorProto::Filter::kMatchCssSelector: @@ -323,6 +332,14 @@ << "~=" << f.pseudo_element_content().content(); return out; + case SelectorProto::Filter::kCssStyle: + if (!f.css_style().pseudo_element().empty()) { + out << f.css_style().pseudo_element() << " "; + } + out << "style." << f.css_style().property() + << "~=" << f.css_style().value(); + return out; + case SelectorProto::Filter::kBoundingBox: out << "bounding_box"; return out;
diff --git a/components/autofill_assistant/browser/service.proto b/components/autofill_assistant/browser/service.proto index 3eaf479..42f7950 100644 --- a/components/autofill_assistant/browser/service.proto +++ b/components/autofill_assistant/browser/service.proto
@@ -902,6 +902,8 @@ // // Note that this just filters out elements. It doesn't select the // pseudo-element; use pseudo_type for that. + // + // Deprecated: prefer css_style. This should be removed in Chrome M89. PseudoElementContent pseudo_element_content = 8; // Go from label to the labelled control. Only works starting with current @@ -931,6 +933,10 @@ // Only keep results that match the given CSS selector. string match_css_selector = 11; + + // Only keep elements whose computed style match the given filter. This is + // based on Window.computedStyle() + CssStyleFilter css_style = 12; } } @@ -952,6 +958,35 @@ optional TextFilter content = 2; } + // Only keep elements whose computed style match the given filter. This is + // based on Window.computedStyle() + // + // See + // https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle + message CssStyleFilter { + // CSS property name. + optional string property = 3; + + // Name of the pseudo-element whose style should be checked. Leave it unset + // or set to the empty string to check the style of the real element. + // + // This is the pseudoElt argument of JavaScript's + // window.getComputedStyle(element, [, pseudoElt]). + optional string pseudo_element = 4; + + // By default the text filter in |value| must match. Set this to false to + // require the text condition not to match. + optional bool should_match = 5 [default = true]; + + // CSS property value match. + // + // Valid computed CSS properties always have a value, even if it's a default + // value. The default value depends on the property. + optional TextFilter value = 6; + + reserved 1, 2; + } + // Filter elements by their position on the page, relative to a given target // element. message ProximityFilter {
diff --git a/components/autofill_assistant/browser/web/element_finder.cc b/components/autofill_assistant/browser/web/element_finder.cc index c840c54a..9ef622b 100644 --- a/components/autofill_assistant/browser/web/element_finder.cc +++ b/components/autofill_assistant/browser/web/element_finder.cc
@@ -158,6 +158,23 @@ return true; } + case SelectorProto::Filter::kCssStyle: { + std::string re_var = AddRegexpInstance(filter.css_style().value()); + std::string property = AddArgument(filter.css_style().property()); + std::string element = AddArgument(filter.css_style().pseudo_element()); + AddLine("elements = elements.filter((e) => {"); + AddLine(" const s = window.getComputedStyle(e, "); + AddLine({" ", element, " === '' ? null : ", element, ");"}); + AddLine({" const match = ", re_var, ".test(s[", property, "]);"}); + if (filter.css_style().should_match()) { + AddLine(" return match;"); + } else { + AddLine(" return !match;"); + } + AddLine("});"); + return true; + } + case SelectorProto::Filter::kLabelled: AddLine(R"(elements = elements.flatMap((e) => { if (e.tagName != 'LABEL') return []; @@ -363,8 +380,9 @@ case SelectorProto::Filter::kValue: case SelectorProto::Filter::kBoundingBox: case SelectorProto::Filter::kPseudoElementContent: - case SelectorProto::Filter::kLabelled: - case SelectorProto::Filter::kMatchCssSelector: { + case SelectorProto::Filter::kMatchCssSelector: + case SelectorProto::Filter::kCssStyle: + case SelectorProto::Filter::kLabelled: { std::vector<std::string> matches; if (!ConsumeAllMatchesOrFail(matches)) return;
diff --git a/components/autofill_assistant/browser/web/web_controller_browsertest.cc b/components/autofill_assistant/browser/web/web_controller_browsertest.cc index cacc9a2..98d1dc58 100644 --- a/components/autofill_assistant/browser/web/web_controller_browsertest.cc +++ b/components/autofill_assistant/browser/web/web_controller_browsertest.cc
@@ -1139,6 +1139,41 @@ RunLaxElementCheck(selector, false); } +IN_PROC_BROWSER_TEST_F(WebControllerBrowserTest, + PseudoElementContentWithCssStyle) { + Selector selector({"#with_inner_text span"}); + auto* style = selector.proto.add_filters()->mutable_css_style(); + style->set_property("content"); + style->set_pseudo_element("before"); + style->mutable_value()->set_re2("\"before\""); + RunLaxElementCheck(selector, true); + + style->mutable_value()->set_re2("\"nomatch\""); + RunLaxElementCheck(selector, false); +} + +IN_PROC_BROWSER_TEST_F(WebControllerBrowserTest, CssVisibility) { + Selector selector({"#button"}); + auto* style = selector.proto.add_filters()->mutable_css_style(); + style->set_property("visibility"); + style->mutable_value()->set_re2("visible"); + + EXPECT_TRUE(content::ExecJs(shell(), R"( + document.getElementById("button").style.visibility = 'hidden'; +)")); + RunLaxElementCheck(selector, false); + style->set_should_match(false); + RunLaxElementCheck(selector, true); + + EXPECT_TRUE(content::ExecJs(shell(), R"( + document.getElementById("button").style.visibility = 'visible'; +)")); + style->set_should_match(true); + RunLaxElementCheck(selector, true); + style->set_should_match(false); + RunLaxElementCheck(selector, false); +} + IN_PROC_BROWSER_TEST_F(WebControllerBrowserTest, InnerTextThenCss) { // There are two divs containing "Section with text", but only one has a // button, which removes #button.
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java index bedf11c..f121a63b 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java
@@ -95,7 +95,6 @@ } editor.putString( String.valueOf(parsed.getTaskId()), getEmptySerializedScheduledTaskProto()); - BackgroundTaskSchedulerUma.getInstance().reportMigrationToProto(parsed.getTaskId()); } editor.apply(); }
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma.java index 90d3677d..953d852 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma.java
@@ -160,12 +160,6 @@ cacheEvent("Android.BackgroundTaskScheduler.TaskRescheduled", 0); } - /** Reports metrics for migrating scheduled tasks to Protocol Buffer data format. */ - public void reportMigrationToProto(int taskId) { - cacheEvent("Android.BackgroundTaskScheduler.MigrationToProto", - toUmaEnumValueFromTaskId(taskId)); - } - @Override public void reportTaskStartedNative(int taskId, boolean serviceManagerOnlyMode) { int umaEnumValue = toUmaEnumValueFromTaskId(taskId);
diff --git a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefsTest.java b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefsTest.java index ee6938a..206f31b 100644 --- a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefsTest.java +++ b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefsTest.java
@@ -8,10 +8,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; import android.content.SharedPreferences; import android.os.Build; @@ -19,9 +15,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentMatchers; -import org.mockito.MockitoAnnotations; -import org.mockito.Spy; import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; @@ -42,9 +35,6 @@ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) public class BackgroundTaskSchedulerPrefsTest { - @Spy - private BackgroundTaskSchedulerUma mUmaSpy; - private TaskInfo mTask1; private TaskInfo mTask2; @@ -57,10 +47,6 @@ @Before public void setUp() { - MockitoAnnotations.initMocks(this); - BackgroundTaskSchedulerUma.setInstanceForTesting(mUmaSpy); - doNothing().when(mUmaSpy).assertNativeIsLoaded(); - TaskInfo.TimingInfo timingInfo1 = TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TimeUnit.DAYS.toMillis(1)).build(); mTask1 = TaskInfo.createTask(TaskIds.TEST, timingInfo1).build(); @@ -213,13 +199,6 @@ editor.apply(); BackgroundTaskSchedulerPrefs.migrateStoredTasksToProto(); - verify(mUmaSpy, times(1)) - .cacheEvent(eq("Android.BackgroundTaskScheduler.MigrationToProto"), - ArgumentMatchers.eq(BackgroundTaskSchedulerUma.BACKGROUND_TASK_TEST)); - verify(mUmaSpy, times(1)) - .cacheEvent(eq("Android.BackgroundTaskScheduler.MigrationToProto"), - ArgumentMatchers.eq( - BackgroundTaskSchedulerUma.BACKGROUND_TASK_OFFLINE_PAGES)); Set<Integer> taskIds = BackgroundTaskSchedulerPrefs.getScheduledTaskIds(); assertTrue(taskIds.contains(mTask1.getTaskId())); @@ -230,12 +209,5 @@ .getClass()); BackgroundTaskSchedulerPrefs.migrateStoredTasksToProto(); - verify(mUmaSpy, times(1)) - .cacheEvent(eq("Android.BackgroundTaskScheduler.MigrationToProto"), - ArgumentMatchers.eq(BackgroundTaskSchedulerUma.BACKGROUND_TASK_TEST)); - verify(mUmaSpy, times(1)) - .cacheEvent(eq("Android.BackgroundTaskScheduler.MigrationToProto"), - ArgumentMatchers.eq( - BackgroundTaskSchedulerUma.BACKGROUND_TASK_OFFLINE_PAGES)); } }
diff --git a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUmaTest.java b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUmaTest.java index cefc5d2..20d04de2 100644 --- a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUmaTest.java +++ b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUmaTest.java
@@ -308,16 +308,6 @@ @Test @Feature({"BackgroundTaskScheduler"}) - public void testReportMigrationToProto() { - doNothing().when(mUmaSpy).cacheEvent(anyString(), anyInt()); - BackgroundTaskSchedulerUma.getInstance().reportMigrationToProto(TaskIds.TEST); - verify(mUmaSpy, times(1)) - .cacheEvent(eq("Android.BackgroundTaskScheduler.MigrationToProto"), - ArgumentMatchers.eq(BackgroundTaskSchedulerUma.BACKGROUND_TASK_TEST)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) public void testReportTaskStartedNativeFullBrowser() { doNothing().when(mUmaSpy).cacheEvent(anyString(), anyInt()); mExternalUma.reportTaskStartedNative(TaskIds.DOWNLOAD_SERVICE_JOB_ID, false);
diff --git a/components/content_settings/core/browser/content_settings_default_provider.cc b/components/content_settings/core/browser/content_settings_default_provider.cc index 687b4c8f..fe4ed64 100644 --- a/components/content_settings/core/browser/content_settings_default_provider.cc +++ b/components/content_settings/core/browser/content_settings_default_provider.cc
@@ -161,10 +161,6 @@ IntToContentSetting(prefs_->GetInteger( GetPrefName(ContentSettingsType::IMAGES))), CONTENT_SETTING_NUM_SETTINGS); - UMA_HISTOGRAM_ENUMERATION("ContentSettings.DefaultPluginsSetting", - IntToContentSetting(prefs_->GetInteger( - GetPrefName(ContentSettingsType::PLUGINS))), - CONTENT_SETTING_NUM_SETTINGS); #endif #if !defined(OS_IOS)
diff --git a/components/content_settings/core/browser/content_settings_policy_provider.cc b/components/content_settings/core/browser/content_settings_policy_provider.cc index 14d7f21e..b74c280a 100644 --- a/components/content_settings/core/browser/content_settings_policy_provider.cc +++ b/components/content_settings/core/browser/content_settings_policy_provider.cc
@@ -147,7 +147,6 @@ prefs::kManagedDefaultInsecureContentSetting}, {ContentSettingsType::NOTIFICATIONS, prefs::kManagedDefaultNotificationsSetting}, - {ContentSettingsType::PLUGINS, prefs::kManagedDefaultPluginsSetting}, {ContentSettingsType::POPUPS, prefs::kManagedDefaultPopupsSetting}, {ContentSettingsType::BLUETOOTH_GUARD, prefs::kManagedDefaultWebBluetoothGuardSetting}, @@ -219,8 +218,6 @@ CONTENT_SETTING_DEFAULT); registry->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, CONTENT_SETTING_DEFAULT); - registry->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, - CONTENT_SETTING_DEFAULT); registry->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, CONTENT_SETTING_DEFAULT); registry->RegisterIntegerPref(prefs::kManagedDefaultWebBluetoothGuardSetting, @@ -310,7 +307,6 @@ prefs::kManagedDefaultNotificationsSetting, callback); pref_change_registrar_.Add( prefs::kManagedDefaultMediaStreamSetting, callback); - pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback); pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback); pref_change_registrar_.Add(prefs::kManagedDefaultWebBluetoothGuardSetting, callback); @@ -547,13 +543,6 @@ prefs_->IsManagedPreference(entry.pref_name)); base::AutoLock auto_lock(lock_); int setting = prefs_->GetInteger(entry.pref_name); - // TODO(wfh): Remove once HDB is enabled by default. - if (entry.pref_name == prefs::kManagedDefaultPluginsSetting) { - static constexpr base::Feature kIgnoreDefaultPluginsSetting = { - "IgnoreDefaultPluginsSetting", base::FEATURE_DISABLED_BY_DEFAULT}; - if (base::FeatureList::IsEnabled(kIgnoreDefaultPluginsSetting)) - setting = CONTENT_SETTING_DEFAULT; - } if (setting == CONTENT_SETTING_DEFAULT) { value_map_.DeleteValue(ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(),
diff --git a/components/content_settings/core/common/pref_names.cc b/components/content_settings/core/common/pref_names.cc index 1567a52..614d27e 100644 --- a/components/content_settings/core/common/pref_names.cc +++ b/components/content_settings/core/common/pref_names.cc
@@ -37,8 +37,6 @@ "profile.managed_default_content_settings.notifications"; const char kManagedDefaultMediaStreamSetting[] = "profile.managed_default_content_settings.media_stream"; -const char kManagedDefaultPluginsSetting[] = - "profile.managed_default_content_settings.plugins"; const char kManagedDefaultPopupsSetting[] = "profile.managed_default_content_settings.popups"; const char kManagedDefaultSensorsSetting[] =
diff --git a/components/content_settings/core/common/pref_names.h b/components/content_settings/core/common/pref_names.h index 68e1f95..afcbdad 100644 --- a/components/content_settings/core/common/pref_names.h +++ b/components/content_settings/core/common/pref_names.h
@@ -23,7 +23,6 @@ extern const char kManagedDefaultImagesSetting[]; extern const char kManagedDefaultInsecureContentSetting[]; extern const char kManagedDefaultJavaScriptSetting[]; -extern const char kManagedDefaultPluginsSetting[]; extern const char kManagedDefaultPopupsSetting[]; extern const char kManagedDefaultGeolocationSetting[]; extern const char kManagedDefaultNotificationsSetting[];
diff --git a/components/dom_distiller/standalone/content_extractor_browsertest.cc b/components/dom_distiller/standalone/content_extractor_browsertest.cc index 8c645002..b3380e9 100644 --- a/components/dom_distiller/standalone/content_extractor_browsertest.cc +++ b/components/dom_distiller/standalone/content_extractor_browsertest.cc
@@ -11,6 +11,7 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/containers/id_map.h" +#include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/location.h" #include "base/memory/scoped_refptr.h"
diff --git a/components/enterprise/browser/reporting/report_scheduler.cc b/components/enterprise/browser/reporting/report_scheduler.cc index 4929bfc..4e5b3e7 100644 --- a/components/enterprise/browser/reporting/report_scheduler.cc +++ b/components/enterprise/browser/reporting/report_scheduler.cc
@@ -30,6 +30,30 @@ base::TimeDelta::FromHours(24); // Default upload interval is 24 hours. const int kMaximumRetry = 10; // Retry 10 times takes about 15 to 19 hours. +bool IsBrowserVersionUploaded(ReportScheduler::ReportTrigger trigger) { + switch (trigger) { + case ReportScheduler::kTriggerTimer: + case ReportScheduler::kTriggerUpdate: + case ReportScheduler::kTriggerNewVersion: + return true; + case ReportScheduler::kTriggerNone: + case ReportScheduler::kTriggerExtensionRequest: + return false; + } +} + +bool IsExtensionRequestUploaded(ReportScheduler::ReportTrigger trigger) { + switch (trigger) { + case ReportScheduler::kTriggerTimer: + case ReportScheduler::kTriggerExtensionRequest: + return true; + case ReportScheduler::kTriggerNone: + case ReportScheduler::kTriggerUpdate: + case ReportScheduler::kTriggerNewVersion: + return false; + } +} + } // namespace ReportScheduler::Delegate::Delegate() = default; @@ -81,6 +105,10 @@ OnReportEnabledPrefChanged(); } +ReportScheduler::Delegate* ReportScheduler::GetDelegateForTesting() { + return delegate_.get(); +} + void ReportScheduler::RegisterPrefObserver() { pref_change_registrar_.Init(delegate_->GetLocalState()); pref_change_registrar_.Add( @@ -119,6 +147,7 @@ void ReportScheduler::Stop() { request_timer_.Stop(); delegate_->StopWatchingUpdates(); + delegate_->StopWatchingExtensionRequest(); } bool ReportScheduler::SetupBrowserPolicyClientRegistration() { @@ -180,6 +209,10 @@ VLOG(1) << "Generating basic enterprise report upon new version."; report_type = kBrowserVersion; break; + case kTriggerExtensionRequest: + VLOG(1) << "Generating extension request partially report."; + report_type = kExtensionRequest; + break; } report_generator_->Generate( @@ -218,7 +251,11 @@ // Schedule the next report for success. Reset uploader to reset failure // count. report_uploader_.reset(); - delegate_->SaveLastUploadVersion(); + if (IsBrowserVersionUploaded(active_trigger_)) + delegate_->OnBrowserVersionUploaded(); + + if (IsExtensionRequestUploaded(active_trigger_)) + delegate_->OnExtensionRequestUploaded(); FALLTHROUGH; case ReportUploader::kTransientError: // Stop retrying and schedule the next report to avoid stale report. @@ -231,6 +268,7 @@ } break; case ReportUploader::kPersistentError: + Stop(); // No future upload until Chrome relaunch or pref change event. break; } @@ -246,12 +284,21 @@ // Timer-triggered reports are a superset of those triggered by an update or a // new version, so favor them and consider that they serve all purposes. - uint32_t pending_triggers = std::exchange(pending_triggers_, 0); - ReportTrigger trigger = kTriggerTimer; - if ((pending_triggers & kTriggerTimer) == 0) { - trigger = (pending_triggers & kTriggerUpdate) != 0 ? kTriggerUpdate - : kTriggerNewVersion; + + ReportTrigger trigger; + if ((pending_triggers_ & kTriggerTimer) != 0) { + // Timer-triggered reports contain data of all other report types. + trigger = kTriggerTimer; + pending_triggers_ = 0; + } else if ((pending_triggers_ & kTriggerExtensionRequest) != 0) { + trigger = kTriggerExtensionRequest; + pending_triggers_ -= kTriggerExtensionRequest; + } else { + trigger = (pending_triggers_ & kTriggerUpdate) != 0 ? kTriggerUpdate + : kTriggerNewVersion; + pending_triggers_ = 0; } + GenerateAndUploadReport(trigger); } @@ -264,7 +311,8 @@ kTimer = 1, kUpdate = 2, kNewVersion = 3, - kMaxValue = kNewVersion + kExtensionRequest = 4, + kMaxValue = kExtensionRequest } sample = Sample::kNone; switch (trigger) { case kTriggerNone: @@ -278,6 +326,9 @@ case kTriggerNewVersion: sample = Sample::kNewVersion; break; + case kTriggerExtensionRequest: + sample = Sample::kExtensionRequest; + break; } base::UmaHistogramEnumeration("Enterprise.CloudReportingUploadTrigger", sample);
diff --git a/components/enterprise/browser/reporting/report_scheduler.h b/components/enterprise/browser/reporting/report_scheduler.h index 93ca3e26..8137c35 100644 --- a/components/enterprise/browser/reporting/report_scheduler.h +++ b/components/enterprise/browser/reporting/report_scheduler.h
@@ -36,10 +36,11 @@ // The trigger leading to report generation. Values are bitmasks in the // |pending_triggers_| bitfield. enum ReportTrigger : uint32_t { - kTriggerNone = 0, // No trigger. - kTriggerTimer = 1U << 0, // The periodic timer expired. - kTriggerUpdate = 1U << 1, // An update was detected. - kTriggerNewVersion = 1U << 2, // A new version is running. + kTriggerNone = 0, // No trigger. + kTriggerTimer = 1U << 0, // The periodic timer expired. + kTriggerUpdate = 1U << 1, // An update was detected. + kTriggerNewVersion = 1U << 2, // A new version is running. + kTriggerExtensionRequest = 1U << 3, // Pending extension requests updated. }; using ReportTriggerCallback = base::RepeatingCallback<void(ReportTrigger)>; @@ -55,11 +56,17 @@ void SetReportTriggerCallback(ReportTriggerCallback callback); virtual PrefService* GetLocalState() = 0; + + // Browser version virtual void StartWatchingUpdatesIfNeeded( base::Time last_upload, base::TimeDelta upload_interval) = 0; virtual void StopWatchingUpdates() = 0; - virtual void SaveLastUploadVersion() = 0; + virtual void OnBrowserVersionUploaded() = 0; + + // Extension request + virtual void StopWatchingExtensionRequest() = 0; + virtual void OnExtensionRequestUploaded() = 0; protected: ReportTriggerCallback trigger_report_callback_; @@ -87,6 +94,8 @@ void OnDMTokenUpdated(); + Delegate* GetDelegateForTesting(); + private: // Observes CloudReportingEnabled policy. void RegisterPrefObserver();
diff --git a/components/exo/surface.cc b/components/exo/surface.cc index fb9675ed..e41a7da 100644 --- a/components/exo/surface.cc +++ b/components/exo/surface.cc
@@ -259,15 +259,20 @@ // Call all frame callbacks with a null frame time to indicate that they // have been cancelled. - frame_callbacks_.splice(frame_callbacks_.end(), pending_frame_callbacks_); - for (const auto& frame_callback : frame_callbacks_) + state_.frame_callbacks.splice(state_.frame_callbacks.end(), + cached_state_.frame_callbacks); + state_.frame_callbacks.splice(state_.frame_callbacks.end(), + pending_state_.frame_callbacks); + for (const auto& frame_callback : state_.frame_callbacks) frame_callback.Run(base::TimeTicks()); // Call all presentation callbacks with a null presentation time to indicate // that they have been cancelled. - presentation_callbacks_.splice(presentation_callbacks_.end(), - pending_presentation_callbacks_); - for (const auto& presentation_callback : presentation_callbacks_) + state_.presentation_callbacks.splice(state_.presentation_callbacks.end(), + cached_state_.presentation_callbacks); + state_.presentation_callbacks.splice(state_.presentation_callbacks.end(), + pending_state_.presentation_callbacks); + for (const auto& presentation_callback : state_.presentation_callbacks) presentation_callback.Run(gfx::PresentationFeedback()); WMHelper::GetInstance()->ResetDragDropDelegate(window_.get()); @@ -287,72 +292,73 @@ buffer ? buffer->gfx_buffer() : nullptr, "app_id", GetApplicationId(window_.get())); has_pending_contents_ = true; - pending_buffer_.Reset(buffer ? buffer->AsWeakPtr() : base::WeakPtr<Buffer>()); - pending_state_.offset = offset; + pending_state_.buffer.Reset(buffer ? buffer->AsWeakPtr() + : base::WeakPtr<Buffer>()); + pending_state_.basic_state.offset = offset; } gfx::Vector2d Surface::GetBufferOffset() { - return state_.offset; + return state_.basic_state.offset; } bool Surface::HasPendingAttachedBuffer() const { - return pending_buffer_.buffer() != nullptr; + return pending_state_.buffer.buffer() != nullptr; } void Surface::Damage(const gfx::Rect& damage) { TRACE_EVENT1("exo", "Surface::Damage", "damage", damage.ToString()); - pending_damage_.Union(damage); + pending_state_.damage.Union(damage); } void Surface::RequestFrameCallback(const FrameCallback& callback) { TRACE_EVENT0("exo", "Surface::RequestFrameCallback"); - pending_frame_callbacks_.push_back(callback); + pending_state_.frame_callbacks.push_back(callback); } void Surface::RequestPresentationCallback( const PresentationCallback& callback) { TRACE_EVENT0("exo", "Surface::RequestPresentationCallback"); - pending_presentation_callbacks_.push_back(callback); + pending_state_.presentation_callbacks.push_back(callback); } void Surface::SetOpaqueRegion(const cc::Region& region) { TRACE_EVENT1("exo", "Surface::SetOpaqueRegion", "region", region.ToString()); - pending_state_.opaque_region = region; + pending_state_.basic_state.opaque_region = region; } void Surface::SetInputRegion(const cc::Region& region) { TRACE_EVENT1("exo", "Surface::SetInputRegion", "region", region.ToString()); - pending_state_.input_region = region; + pending_state_.basic_state.input_region = region; } void Surface::ResetInputRegion() { TRACE_EVENT0("exo", "Surface::ResetInputRegion"); - pending_state_.input_region = base::nullopt; + pending_state_.basic_state.input_region = base::nullopt; } void Surface::SetInputOutset(int outset) { TRACE_EVENT1("exo", "Surface::SetInputOutset", "outset", outset); - pending_state_.input_outset = outset; + pending_state_.basic_state.input_outset = outset; } void Surface::SetBufferScale(float scale) { TRACE_EVENT1("exo", "Surface::SetBufferScale", "scale", scale); - pending_state_.buffer_scale = scale; + pending_state_.basic_state.buffer_scale = scale; } void Surface::SetBufferTransform(Transform transform) { TRACE_EVENT1("exo", "Surface::SetBufferTransform", "transform", static_cast<int>(transform)); - pending_state_.buffer_transform = transform; + pending_state_.basic_state.buffer_transform = transform; } void Surface::AddSubSurface(Surface* sub_surface) { @@ -480,33 +486,34 @@ void Surface::SetViewport(const gfx::Size& viewport) { TRACE_EVENT1("exo", "Surface::SetViewport", "viewport", viewport.ToString()); - pending_state_.viewport = viewport; + pending_state_.basic_state.viewport = viewport; } void Surface::SetCrop(const gfx::RectF& crop) { TRACE_EVENT1("exo", "Surface::SetCrop", "crop", crop.ToString()); - pending_state_.crop = crop; + pending_state_.basic_state.crop = crop; } void Surface::SetOnlyVisibleOnSecureOutput(bool only_visible_on_secure_output) { TRACE_EVENT1("exo", "Surface::SetOnlyVisibleOnSecureOutput", "only_visible_on_secure_output", only_visible_on_secure_output); - pending_state_.only_visible_on_secure_output = only_visible_on_secure_output; + pending_state_.basic_state.only_visible_on_secure_output = + only_visible_on_secure_output; } void Surface::SetBlendMode(SkBlendMode blend_mode) { TRACE_EVENT1("exo", "Surface::SetBlendMode", "blend_mode", static_cast<int>(blend_mode)); - pending_state_.blend_mode = blend_mode; + pending_state_.basic_state.blend_mode = blend_mode; } void Surface::SetAlpha(float alpha) { TRACE_EVENT1("exo", "Surface::SetAlpha", "alpha", alpha); - pending_state_.alpha = alpha; + pending_state_.basic_state.alpha = alpha; } void Surface::SetFrame(SurfaceFrameType type) { @@ -550,7 +557,7 @@ TRACE_EVENT1("exo", "Surface::SetColorSpace", "color_space", color_space.ToString()); - pending_state_.color_space = color_space; + pending_state_.basic_state.color_space = color_space; } void Surface::SetParent(Surface* parent, const gfx::Point& position) { @@ -593,22 +600,45 @@ TRACE_EVENT1("exo", "Surface::SetAcquireFence", "fence_fd", gpu_fence ? gpu_fence->GetGpuFenceHandle().owned_fd.get() : -1); - pending_acquire_fence_ = std::move(gpu_fence); + pending_state_.acquire_fence = std::move(gpu_fence); } bool Surface::HasPendingAcquireFence() const { - return !!pending_acquire_fence_; + return !!pending_state_.acquire_fence; } void Surface::Commit() { TRACE_EVENT1("exo", "Surface::Commit", "buffer_id", - pending_buffer_.buffer() ? pending_buffer_.buffer()->gfx_buffer() - : nullptr); + pending_state_.buffer.buffer() + ? pending_state_.buffer.buffer()->gfx_buffer() + : nullptr); for (auto& observer : observers_) observer.OnCommit(this); needs_commit_surface_ = true; + + // Transfer pending state to cached state. + cached_state_.basic_state = pending_state_.basic_state; + pending_state_.basic_state.only_visible_on_secure_output = false; + has_cached_contents_ |= has_pending_contents_; + has_pending_contents_ = false; + cached_state_.buffer = std::move(pending_state_.buffer); + cached_state_.acquire_fence = std::move(pending_state_.acquire_fence); + cached_state_.frame_callbacks.splice(cached_state_.frame_callbacks.end(), + pending_state_.frame_callbacks); + cached_state_.damage.Union(pending_state_.damage); + pending_state_.damage.Clear(); + + // Existing presentation callbacks in the cached state when a new pending + // state is merged in should end up delivered as "discarded". + for (const auto& presentation_callback : cached_state_.presentation_callbacks) + presentation_callback.Run(gfx::PresentationFeedback()); + cached_state_.presentation_callbacks.clear(); + cached_state_.presentation_callbacks.splice( + cached_state_.presentation_callbacks.end(), + pending_state_.presentation_callbacks); + if (delegate_) delegate_->OnSurfaceCommit(); else @@ -634,45 +664,53 @@ // https://crbug.com/779704 bool needs_full_damage = sub_surfaces_changed_ || - pending_state_.opaque_region != state_.opaque_region || - pending_state_.buffer_scale != state_.buffer_scale || - pending_state_.buffer_transform != state_.buffer_transform || - pending_state_.viewport != state_.viewport || - pending_state_.crop != state_.crop || - pending_state_.only_visible_on_secure_output != - state_.only_visible_on_secure_output || - pending_state_.blend_mode != state_.blend_mode || - pending_state_.alpha != state_.alpha || - pending_state_.color_space != state_.color_space || - pending_state_.is_tracking_occlusion != state_.is_tracking_occlusion; + cached_state_.basic_state.opaque_region != + state_.basic_state.opaque_region || + cached_state_.basic_state.buffer_scale != + state_.basic_state.buffer_scale || + cached_state_.basic_state.buffer_transform != + state_.basic_state.buffer_transform || + cached_state_.basic_state.viewport != state_.basic_state.viewport || + cached_state_.basic_state.crop != state_.basic_state.crop || + cached_state_.basic_state.only_visible_on_secure_output != + state_.basic_state.only_visible_on_secure_output || + cached_state_.basic_state.blend_mode != state_.basic_state.blend_mode || + cached_state_.basic_state.alpha != state_.basic_state.alpha || + cached_state_.basic_state.color_space != + state_.basic_state.color_space || + cached_state_.basic_state.is_tracking_occlusion != + state_.basic_state.is_tracking_occlusion; bool needs_update_buffer_transform = - pending_state_.buffer_scale != state_.buffer_scale || - pending_state_.buffer_transform != state_.buffer_transform; + cached_state_.basic_state.buffer_scale != + state_.basic_state.buffer_scale || + cached_state_.basic_state.buffer_transform != + state_.basic_state.buffer_transform; #if defined(OS_CHROMEOS) bool needs_output_protection = - pending_state_.only_visible_on_secure_output != - state_.only_visible_on_secure_output; + cached_state_.basic_state.only_visible_on_secure_output != + state_.basic_state.only_visible_on_secure_output; #endif // defined(OS_CHROMEOS) - bool pending_invert_y = false; + bool cached_invert_y = false; // If the current state is fully transparent, the last submitted frame will // not include the TextureDrawQuad for the resource, so the resource might // have been released and needs to be updated again. - if (!state_.alpha && pending_state_.alpha) + if (!state_.basic_state.alpha && cached_state_.basic_state.alpha) needs_update_resource_ = true; - state_ = pending_state_; - pending_state_.only_visible_on_secure_output = false; + state_.basic_state = cached_state_.basic_state; + cached_state_.basic_state.only_visible_on_secure_output = false; window_->SetEventTargetingPolicy( - (state_.input_region.has_value() && state_.input_region->IsEmpty()) + (state_.basic_state.input_region.has_value() && + state_.basic_state.input_region->IsEmpty()) ? aura::EventTargetingPolicy::kDescendantsOnly : aura::EventTargetingPolicy::kTargetAndDescendants); - if (state_.is_tracking_occlusion) { + if (state_.basic_state.is_tracking_occlusion) { // TODO(edcourtney): Currently, it doesn't seem to be possible to stop // tracking the occlusion state once started, but it would be nice to stop // if the tracked occlusion region becomes empty. @@ -686,51 +724,56 @@ std::make_unique<ash::OutputProtectionDelegate>(window_.get()); } - uint32_t protection_mask = state_.only_visible_on_secure_output - ? display::CONTENT_PROTECTION_METHOD_HDCP - : display::CONTENT_PROTECTION_METHOD_NONE; + uint32_t protection_mask = + state_.basic_state.only_visible_on_secure_output + ? display::CONTENT_PROTECTION_METHOD_HDCP + : display::CONTENT_PROTECTION_METHOD_NONE; output_protection_->SetProtection(protection_mask, base::DoNothing()); } #endif // defined(OS_CHROMEOS) // We update contents if Attach() has been called since last commit. - if (has_pending_contents_) { - has_pending_contents_ = false; + if (has_cached_contents_) { + has_cached_contents_ = false; bool current_invert_y = - current_buffer_.buffer() && current_buffer_.buffer()->y_invert(); - pending_invert_y = - pending_buffer_.buffer() && pending_buffer_.buffer()->y_invert(); - if (current_invert_y != pending_invert_y) + state_.buffer.buffer() && state_.buffer.buffer()->y_invert(); + cached_invert_y = cached_state_.buffer.buffer() && + cached_state_.buffer.buffer()->y_invert(); + if (current_invert_y != cached_invert_y) needs_update_buffer_transform = true; - current_buffer_ = std::move(pending_buffer_); - acquire_fence_ = std::move(pending_acquire_fence_); - if (state_.alpha) + state_.buffer = std::move(cached_state_.buffer); + state_.acquire_fence = std::move(cached_state_.acquire_fence); + if (state_.basic_state.alpha) needs_update_resource_ = true; } // Either we didn't have a pending acquire fence, or we had one along with - // a new buffer, and it was already moved to acquire_fence_. Note that + // a new buffer, and it was already moved to state_.acquire_fence. Note that // it is a commit-time client error to commit a fence without a buffer. - DCHECK(!pending_acquire_fence_); + DCHECK(!cached_state_.acquire_fence); if (needs_update_buffer_transform) - UpdateBufferTransform(pending_invert_y); + UpdateBufferTransform(cached_invert_y); - // Move pending frame callbacks to the end of |frame_callbacks_|. - frame_callbacks_.splice(frame_callbacks_.end(), pending_frame_callbacks_); + // Move pending frame callbacks to the end of |state_.frame_callbacks|. + state_.frame_callbacks.splice(state_.frame_callbacks.end(), + cached_state_.frame_callbacks); // Move pending presentation callbacks to the end of - // |presentation_callbacks_|. - presentation_callbacks_.splice(presentation_callbacks_.end(), - pending_presentation_callbacks_); + // |state_.presentation_callbacks|. + state_.presentation_callbacks.splice(state_.presentation_callbacks.end(), + cached_state_.presentation_callbacks); UpdateContentSize(); // Synchronize window hierarchy. This will position and update the stacking // order of all sub-surfaces after committing all pending state of // sub-surface descendants. + // Changes to sub_surface stack is immediately applied to pending, which + // will be copied to active directly when parent surface is committed, + // skipping the cached state. if (sub_surfaces_changed_) { sub_surfaces_.clear(); aura::Window* stacking_target = nullptr; @@ -753,24 +796,24 @@ gfx::Rect output_rect(content_size_); if (needs_full_damage) { - damage_ = output_rect; + state_.damage = output_rect; } else { - // pending_damage_ is in Surface coordinates. - damage_.Swap(&pending_damage_); - damage_.Intersect(output_rect); + // cached_state_.damage is in Surface coordinates. + state_.damage.Swap(&cached_state_.damage); + state_.damage.Intersect(output_rect); } - pending_damage_.Clear(); + cached_state_.damage.Clear(); } surface_hierarchy_content_bounds_ = gfx::Rect(content_size_); - if (state_.input_region) { - hit_test_region_ = *state_.input_region; + if (state_.basic_state.input_region) { + hit_test_region_ = *state_.basic_state.input_region; hit_test_region_.Intersect(surface_hierarchy_content_bounds_); } else { hit_test_region_ = surface_hierarchy_content_bounds_; } - int outset = state_.input_outset; + int outset = state_.basic_state.input_outset; if (outset > 0) { gfx::Rect input_rect = surface_hierarchy_content_bounds_; input_rect.Inset(-outset, -outset); @@ -793,10 +836,10 @@ std::list<FrameCallback>* frame_callbacks, std::list<PresentationCallback>* presentation_callbacks) { // Move frame callbacks to the end of |frame_callbacks|. - frame_callbacks->splice(frame_callbacks->end(), frame_callbacks_); + frame_callbacks->splice(frame_callbacks->end(), state_.frame_callbacks); // Move presentation callbacks to the end of |presentation_callbacks|. presentation_callbacks->splice(presentation_callbacks->end(), - presentation_callbacks_); + state_.presentation_callbacks); for (const auto& sub_surface_entry : base::Reversed(sub_surfaces_)) { auto* sub_surface = sub_surface_entry.first; @@ -895,16 +938,16 @@ bool Surface::FillsBoundsOpaquely() const { return !current_resource_has_alpha_ || - state_.blend_mode == SkBlendMode::kSrc || - state_.opaque_region.Contains(gfx::Rect(content_size_)); + state_.basic_state.blend_mode == SkBlendMode::kSrc || + state_.basic_state.opaque_region.Contains(gfx::Rect(content_size_)); } void Surface::SetOcclusionTracking(bool tracking) { - pending_state_.is_tracking_occlusion = tracking; + pending_state_.basic_state.is_tracking_occlusion = tracking; } bool Surface::IsTrackingOcclusion() { - return state_.is_tracking_occlusion; + return state_.basic_state.is_tracking_occlusion; } void Surface::SetSurfaceHierarchyContentBoundsForTest( @@ -936,6 +979,10 @@ buffer_->OnDetach(); } +Surface::ExtendedState::ExtendedState() = default; + +Surface::ExtendedState::~ExtendedState() = default; + Surface::BufferAttachment& Surface::BufferAttachment::operator=( BufferAttachment&& other) { if (buffer_) @@ -973,26 +1020,27 @@ void Surface::UpdateResource(FrameSinkResourceManager* resource_manager) { DCHECK(needs_update_resource_); needs_update_resource_ = false; - if (current_buffer_.buffer()) { - if (current_buffer_.buffer()->ProduceTransferableResource( - resource_manager, std::move(acquire_fence_), - state_.only_visible_on_secure_output, ¤t_resource_)) { + if (state_.buffer.buffer()) { + if (state_.buffer.buffer()->ProduceTransferableResource( + resource_manager, std::move(state_.acquire_fence), + state_.basic_state.only_visible_on_secure_output, + ¤t_resource_)) { current_resource_has_alpha_ = - FormatHasAlpha(current_buffer_.buffer()->GetFormat()); + FormatHasAlpha(state_.buffer.buffer()->GetFormat()); // Planar buffers are sampled as RGB. Technically, the driver is supposed // to preserve the colorspace, so we could still pass the primaries and // transfer function. However, we don't actually pass the colorspace // to the driver, and it's unclear what drivers would actually do if we // did. So in effect, the colorspace is undefined. if (NumberOfPlanesForLinearBufferFormat( - current_buffer_.buffer()->GetFormat()) > 1) { - current_resource_.color_space = state_.color_space; + state_.buffer.buffer()->GetFormat()) > 1) { + current_resource_.color_space = state_.basic_state.color_space; } } else { current_resource_.id = 0; // Use the buffer's size, so the AppendContentsToFrame() will append // a SolidColorDrawQuad with the buffer's size. - current_resource_.size = current_buffer_.size(); + current_resource_.size = state_.buffer.size(); current_resource_has_alpha_ = false; } } else { @@ -1004,7 +1052,7 @@ void Surface::UpdateBufferTransform(bool y_invert) { SkMatrix buffer_matrix; - switch (state_.buffer_transform) { + switch (state_.basic_state.buffer_transform) { case Transform::NORMAL: buffer_matrix.setIdentity(); break; @@ -1020,9 +1068,9 @@ } if (y_invert) buffer_matrix.preScale(1, -1, 0.5f, 0.5f); - if (state_.buffer_scale != 0) - buffer_matrix.postScale(1.0f / state_.buffer_scale, - 1.0f / state_.buffer_scale); + if (state_.basic_state.buffer_scale != 0) + buffer_matrix.postScale(1.0f / state_.basic_state.buffer_scale, + 1.0f / state_.basic_state.buffer_scale); buffer_transform_ = gfx::Transform(buffer_matrix); } @@ -1036,7 +1084,7 @@ // Surface bounds are in DIPs, but |damage_rect| and |output_rect| are in // pixels, so we need to scale by the |device_scale_factor|. - gfx::Rect damage_rect = damage_.bounds(); + gfx::Rect damage_rect = state_.damage.bounds(); if (!damage_rect.IsEmpty()) { // Outset damage by 1 DIP to as damage is in surface coordinate space and // client might not be aware of |device_scale_factor| and the @@ -1057,7 +1105,7 @@ render_pass->damage_rect.Union(gfx::ToEnclosedRect(scaled_damage)); } } - damage_.Clear(); + state_.damage.Clear(); gfx::PointF scale(content_size_.width(), content_size_.height()); @@ -1069,19 +1117,19 @@ quad_rect = gfx::Rect(embedded_surface_size_); scale = gfx::PointF(1.0f, 1.0f); - if (!state_.crop.IsEmpty()) { + if (!state_.basic_state.crop.IsEmpty()) { // In order to crop an AxB rect to CxD we need to scale by A/C, B/D. // We achieve clipping by scaling it up and then drawing only in the // output rectangle. - scale.Scale(content_size_.width() / state_.crop.width(), - content_size_.height() / state_.crop.height()); + scale.Scale(content_size_.width() / state_.basic_state.crop.width(), + content_size_.height() / state_.basic_state.crop.height()); - auto offset = state_.crop.origin().OffsetFromOrigin(); + auto offset = state_.basic_state.crop.origin().OffsetFromOrigin(); translate = gfx::Vector2dF(-offset.x() * scale.x(), -offset.y() * scale.y()); } } else { - scale.Scale(state_.buffer_scale); + scale.Scale(state_.basic_state.buffer_scale); } // Compute the total transformation from post-transform buffer coordinates to @@ -1099,29 +1147,31 @@ quad_to_target_transform.ConcatTransform( gfx::Transform(viewport_to_target_matrix)); - bool are_contents_opaque = !current_resource_has_alpha_ || - state_.blend_mode == SkBlendMode::kSrc || - state_.opaque_region.Contains(output_rect); + bool are_contents_opaque = + !current_resource_has_alpha_ || + state_.basic_state.blend_mode == SkBlendMode::kSrc || + state_.basic_state.opaque_region.Contains(output_rect); viz::SharedQuadState* quad_state = render_pass->CreateAndAppendSharedQuadState(); - quad_state->SetAll( - quad_to_target_transform, quad_rect /*quad_layer_rect=*/, - quad_rect /*visible_quad_layer_rect=*/, - gfx::RRectF() /*rounded_corner_bounds=*/, gfx::Rect() /*clip_rect=*/, - false /*is_clipped=*/, are_contents_opaque, state_.alpha /*opacity=*/, - SkBlendMode::kSrcOver /*blend_mode=*/, 0 /*sorting_context_id=*/); + quad_state->SetAll(quad_to_target_transform, quad_rect /*quad_layer_rect=*/, + quad_rect /*visible_quad_layer_rect=*/, + gfx::RRectF() /*rounded_corner_bounds=*/, + gfx::Rect() /*clip_rect=*/, false /*is_clipped=*/, + are_contents_opaque, state_.basic_state.alpha /*opacity=*/, + SkBlendMode::kSrcOver /*blend_mode=*/, + 0 /*sorting_context_id=*/); quad_state->no_damage = damage_rect.IsEmpty(); if (current_resource_.id) { gfx::RectF uv_crop(gfx::SizeF(1, 1)); - if (!state_.crop.IsEmpty()) { + if (!state_.basic_state.crop.IsEmpty()) { // The crop rectangle is a post-transformation rectangle. To get the UV // coordinates, we need to convert it to normalized buffer coordinates and // pass them through the inverse of the buffer transformation. - uv_crop = gfx::RectF(state_.crop); - gfx::Size transformed_buffer_size( - ToTransformedSize(current_resource_.size, state_.buffer_transform)); + uv_crop = gfx::RectF(state_.basic_state.crop); + gfx::Size transformed_buffer_size(ToTransformedSize( + current_resource_.size, state_.basic_state.buffer_transform)); if (!transformed_buffer_size.IsEmpty()) uv_crop.Scale(1.f / transformed_buffer_size.width(), 1.f / transformed_buffer_size.height()); @@ -1147,7 +1197,7 @@ } if (latest_embedded_surface_id_.is_valid() && !embedded_surface_size_.IsEmpty()) { - if (!state_.crop.IsEmpty()) { + if (!state_.basic_state.crop.IsEmpty()) { quad_state->is_clipped = true; quad_state->clip_rect = output_rect; } @@ -1162,7 +1212,7 @@ // A resource was still produced for this so we still need to release it // later. frame->resource_list.push_back(current_resource_); - } else if (state_.alpha) { + } else if (state_.basic_state.alpha) { // Texture quad is only needed if buffer is not fully transparent. viz::TextureDrawQuad* texture_quad = render_pass->CreateAndAppendDrawQuad<viz::TextureDrawQuad>(); @@ -1173,7 +1223,7 @@ /* premultiplied_alpha=*/true, uv_crop.origin(), uv_crop.bottom_right(), background_color, vertex_opacity, /* y_flipped=*/false, /* nearest_neighbor=*/false, - state_.only_visible_on_secure_output, + state_.basic_state.only_visible_on_secure_output, gfx::ProtectedVideoType::kClear); if (current_resource_.is_overlay_candidate) texture_quad->set_resource_size_in_pixels(current_resource_.size); @@ -1189,20 +1239,21 @@ void Surface::UpdateContentSize() { gfx::Size content_size; - if (!state_.viewport.IsEmpty()) { - content_size = state_.viewport; - } else if (!state_.crop.IsEmpty()) { - DLOG_IF(WARNING, - !base::IsValueInRangeForNumericType<int>(state_.crop.width()) || - !base::IsValueInRangeForNumericType<int>(state_.crop.height())) - << "Crop rectangle size (" << state_.crop.size().ToString() + if (!state_.basic_state.viewport.IsEmpty()) { + content_size = state_.basic_state.viewport; + } else if (!state_.basic_state.crop.IsEmpty()) { + DLOG_IF(WARNING, !base::IsValueInRangeForNumericType<int>( + state_.basic_state.crop.width()) || + !base::IsValueInRangeForNumericType<int>( + state_.basic_state.crop.height())) + << "Crop rectangle size (" << state_.basic_state.crop.size().ToString() << ") most be expressible using integers when viewport is not set"; - content_size = gfx::ToCeiledSize(state_.crop.size()); + content_size = gfx::ToCeiledSize(state_.basic_state.crop.size()); } else { - content_size = gfx::ToCeiledSize( - gfx::ScaleSize(gfx::SizeF(ToTransformedSize(current_buffer_.size(), - state_.buffer_transform)), - 1.0f / state_.buffer_scale)); + content_size = gfx::ToCeiledSize(gfx::ScaleSize( + gfx::SizeF(ToTransformedSize(state_.buffer.size(), + state_.basic_state.buffer_transform)), + 1.0f / state_.basic_state.buffer_scale)); } // Enable/disable sub-surface based on if it has contents. @@ -1221,7 +1272,7 @@ } void Surface::OnWindowOcclusionChanged() { - if (!state_.is_tracking_occlusion) + if (!state_.basic_state.is_tracking_occlusion) return; for (SurfaceObserver& observer : observers_)
diff --git a/components/exo/surface.h b/components/exo/surface.h index a544f828..5a05621 100644 --- a/components/exo/surface.h +++ b/components/exo/surface.h
@@ -287,7 +287,7 @@ bool FillsBoundsOpaquely() const; bool HasPendingDamageForTesting(const gfx::Rect& damage) const { - return pending_damage_.Contains(damage); + return pending_state_.damage.Contains(damage); } // Set occlusion tracking region for surface. @@ -346,6 +346,26 @@ DISALLOW_COPY_AND_ASSIGN(BufferAttachment); }; + struct ExtendedState { + ExtendedState(); + ~ExtendedState(); + + State basic_state; + + // The buffer that will become the content of surface. + BufferAttachment buffer; + // The damage region to schedule paint for. + cc::Region damage; + // These lists contain the callbacks to notify the client when it is a good + // time to start producing a new frame. + std::list<FrameCallback> frame_callbacks; + // These lists contain the callbacks to notify the client when surface + // contents have been presented. + std::list<PresentationCallback> presentation_callbacks; + // The acquire gpu fence to associate with the surface buffer. + std::unique_ptr<gfx::GpuFence> acquire_fence; + }; + friend class subtle::PropertyHelper; // Updates current_resource_ with a new resource id corresponding to the @@ -367,7 +387,7 @@ void UpdateContentSize(); // This returns true when the surface has some contents assigned to it. - bool has_contents() const { return !current_buffer_.size().IsEmpty(); } + bool has_contents() const { return !state_.buffer.size().IsEmpty(); } // This window has the layer which contains the Surface contents. std::unique_ptr<aura::Window> window_; @@ -381,43 +401,19 @@ // This is the bounds of the last committed surface hierarchy contents. gfx::Rect surface_hierarchy_content_bounds_; - // This is true when Attach() has been called and new contents should take - // effect next time Commit() is called. + // This is true when Attach() has been called and new contents should be + // cached next time Commit() is called. bool has_pending_contents_ = false; + // This is true when new contents are cached and should take effect next time + // synchronized CommitSurfaceHierarchy() is called. + bool has_cached_contents_ = false; - // The buffer that will become the content of surface when Commit() is called. - BufferAttachment pending_buffer_; - - // The damage region to schedule paint for when Commit() is called. - cc::Region pending_damage_; - - // The damage region which will be used by - // AppendSurfaceHierarchyContentsToFrame() to generate frame. - cc::Region damage_; - - // These lists contains the callbacks to notify the client when it is a good - // time to start producing a new frame. These callbacks move to - // |frame_callbacks_| when Commit() is called. Later they are moved to - // |active_frame_callbacks_| when the effect of the Commit() is scheduled to - // be drawn. They fire at the first begin frame notification after this. - std::list<FrameCallback> pending_frame_callbacks_; - std::list<FrameCallback> frame_callbacks_; - - // These lists contains the callbacks to notify the client when surface - // contents have been presented. These callbacks move to - // |presentation_callbacks_| when Commit() is called. Later they are moved to - // |swapping_presentation_callbacks_| when the effect of the Commit() is - // scheduled to be drawn and then moved to |swapped_presentation_callbacks_| - // after receiving VSync parameters update for the previous frame. They fire - // at the next VSync parameters update after that. - std::list<PresentationCallback> pending_presentation_callbacks_; - std::list<PresentationCallback> presentation_callbacks_; - + // This is the state that has yet to be cached. + ExtendedState pending_state_; // This is the state that has yet to be committed. - State pending_state_; - + ExtendedState cached_state_; // This is the state that has been committed. - State state_; + ExtendedState state_; // Cumulative input region of surface and its sub-surfaces. cc::Region hit_test_region_; @@ -430,21 +426,12 @@ SubSurfaceEntryList pending_sub_surfaces_; SubSurfaceEntryList sub_surfaces_; - // The buffer that is currently set as content of surface. - BufferAttachment current_buffer_; - // The last resource that was sent to a surface. viz::TransferableResource current_resource_; // Whether the last resource that was sent to a surface has an alpha channel. bool current_resource_has_alpha_ = false; - // The acquire gpu fence to associate with the surface buffer when Commit() - // is called. - std::unique_ptr<gfx::GpuFence> pending_acquire_fence_; - // The acquire gpu fence that is currently associated with the surface buffer. - std::unique_ptr<gfx::GpuFence> acquire_fence_; - // This is true if a call to Commit() as been made but // CommitSurfaceHierarchy() has not yet been called. bool needs_commit_surface_ = false;
diff --git a/components/exo/surface_unittest.cc b/components/exo/surface_unittest.cc index 98b4d94..fe5bfbe 100644 --- a/components/exo/surface_unittest.cc +++ b/components/exo/surface_unittest.cc
@@ -260,6 +260,128 @@ } } +TEST_P(SurfaceTest, SubsurfaceDamageSynchronizedCommitBehavior) { + gfx::Size buffer_size(256, 512); + auto buffer = std::make_unique<Buffer>( + exo_test_helper()->CreateGpuMemoryBuffer(buffer_size)); + auto surface = std::make_unique<Surface>(); + auto shell_surface = std::make_unique<ShellSurface>(surface.get()); + surface->Attach(buffer.get()); + gfx::Size child_buffer_size(64, 128); + auto child_buffer = std::make_unique<Buffer>( + exo_test_helper()->CreateGpuMemoryBuffer(child_buffer_size)); + auto child_surface = std::make_unique<Surface>(); + auto sub_surface = + std::make_unique<SubSurface>(child_surface.get(), surface.get()); + // Set commit behavior to synchronized. + sub_surface->SetCommitBehavior(true); + child_surface->Attach(child_buffer.get()); + child_surface->Commit(); + surface->Commit(); + base::RunLoop().RunUntilIdle(); + + { + // Initial frame has full damage. + const viz::CompositorFrame& frame = + GetFrameFromSurface(shell_surface.get()); + const gfx::Rect scaled_damage = gfx::ToNearestRect(gfx::ScaleRect( + gfx::RectF(gfx::Rect(buffer_size)), device_scale_factor())); + EXPECT_EQ(scaled_damage, frame.render_pass_list.back()->damage_rect); + } + + const gfx::RectF subsurface_damage(32, 32, 16, 16); + const gfx::RectF subsurface_damage2(0, 0, 16, 16); + int margin = ceil(device_scale_factor()); + + child_surface->Damage(gfx::ToNearestRect(subsurface_damage)); + EXPECT_TRUE(child_surface->HasPendingDamageForTesting( + gfx::ToNearestRect(subsurface_damage))); + // Subsurface damage is cached. + child_surface->Commit(); + EXPECT_FALSE(child_surface->HasPendingDamageForTesting( + gfx::ToNearestRect(subsurface_damage))); + base::RunLoop().RunUntilIdle(); + + { + // Subsurface damage should not be propagated at all. + const viz::CompositorFrame& frame = + GetFrameFromSurface(shell_surface.get()); + const gfx::Rect scaled_damage = gfx::ToNearestRect(gfx::ScaleRect( + gfx::RectF(gfx::Rect(buffer_size)), device_scale_factor())); + EXPECT_EQ(scaled_damage, frame.render_pass_list.back()->damage_rect); + } + + // Damage but do not commit. + child_surface->Damage(gfx::ToNearestRect(subsurface_damage2)); + EXPECT_TRUE(child_surface->HasPendingDamageForTesting( + gfx::ToNearestRect(subsurface_damage2))); + // Apply subsurface damage from cached state, not pending state. + surface->Commit(); + base::RunLoop().RunUntilIdle(); + + { + // Subsurface damage in cached state should be propagated. + const viz::CompositorFrame& frame = + GetFrameFromSurface(shell_surface.get()); + const gfx::Rect scaled_damage = gfx::ToNearestRect( + gfx::ScaleRect(subsurface_damage, device_scale_factor())); + EXPECT_TRUE(scaled_damage.ApproximatelyEqual( + frame.render_pass_list.back()->damage_rect, margin)); + } +} + +TEST_P(SurfaceTest, SubsurfaceDamageDesynchronizedCommitBehavior) { + gfx::Size buffer_size(256, 512); + auto buffer = std::make_unique<Buffer>( + exo_test_helper()->CreateGpuMemoryBuffer(buffer_size)); + auto surface = std::make_unique<Surface>(); + auto shell_surface = std::make_unique<ShellSurface>(surface.get()); + surface->Attach(buffer.get()); + gfx::Size child_buffer_size(64, 128); + auto child_buffer = std::make_unique<Buffer>( + exo_test_helper()->CreateGpuMemoryBuffer(child_buffer_size)); + auto child_surface = std::make_unique<Surface>(); + auto sub_surface = + std::make_unique<SubSurface>(child_surface.get(), surface.get()); + // Set commit behavior to desynchronized. + sub_surface->SetCommitBehavior(false); + child_surface->Attach(child_buffer.get()); + child_surface->Commit(); + surface->Commit(); + base::RunLoop().RunUntilIdle(); + + { + // Initial frame has full damage. + const viz::CompositorFrame& frame = + GetFrameFromSurface(shell_surface.get()); + const gfx::Rect scaled_damage = gfx::ToNearestRect(gfx::ScaleRect( + gfx::RectF(gfx::Rect(buffer_size)), device_scale_factor())); + EXPECT_EQ(scaled_damage, frame.render_pass_list.back()->damage_rect); + } + + const gfx::RectF subsurface_damage(32, 32, 16, 16); + int margin = ceil(device_scale_factor()); + + child_surface->Damage(gfx::ToNearestRect(subsurface_damage)); + EXPECT_TRUE(child_surface->HasPendingDamageForTesting( + gfx::ToNearestRect(subsurface_damage))); + // Subsurface damage is applied. + child_surface->Commit(); + EXPECT_FALSE(child_surface->HasPendingDamageForTesting( + gfx::ToNearestRect(subsurface_damage))); + base::RunLoop().RunUntilIdle(); + + { + // Subsurface damage should be propagated. + const viz::CompositorFrame& frame = + GetFrameFromSurface(shell_surface.get()); + const gfx::Rect scaled_damage = gfx::ToNearestRect( + gfx::ScaleRect(subsurface_damage, device_scale_factor())); + EXPECT_TRUE(scaled_damage.ApproximatelyEqual( + frame.render_pass_list.back()->damage_rect, margin)); + } +} + void SetFrameTime(base::TimeTicks* result, base::TimeTicks frame_time) { *result = frame_time; }
diff --git a/components/guest_view/browser/guest_view_base.cc b/components/guest_view/browser/guest_view_base.cc index 66a137d..7921483 100644 --- a/components/guest_view/browser/guest_view_base.cc +++ b/components/guest_view/browser/guest_view_base.cc
@@ -421,7 +421,7 @@ void GuestViewBase::DidDetach() { GuestViewManager::FromBrowserContext(browser_context_)->DetachGuest(this); StopTrackingEmbedderZoomLevel(); - owner_web_contents()->GetRenderViewHost()->Send( + owner_web_contents()->GetMainFrame()->GetRenderViewHost()->Send( new GuestViewMsg_GuestDetached(element_instance_id_)); element_instance_id_ = kInstanceIDNone; if (ShouldDestroyOnDetach()) @@ -567,7 +567,8 @@ } void GuestViewBase::DidStopLoading() { - content::RenderViewHost* rvh = web_contents()->GetRenderViewHost(); + content::RenderViewHost* rvh = + web_contents()->GetMainFrame()->GetRenderViewHost(); if (IsPreferredSizeModeEnabled()) rvh->EnablePreferredSizeMode();
diff --git a/components/metrics/metrics_reporting_service.cc b/components/metrics/metrics_reporting_service.cc index ea9fd9c5..2670cba 100644 --- a/components/metrics/metrics_reporting_service.cc +++ b/components/metrics/metrics_reporting_service.cc
@@ -87,10 +87,13 @@ } } -void MetricsReportingService::LogSuccess(size_t log_size) { +void MetricsReportingService::LogSuccessLogSize(size_t log_size) { UMA_HISTOGRAM_COUNTS_10000("UMA.LogSize.OnSuccess", log_size / 1024); } +void MetricsReportingService::LogSuccessMetadata( + const std::string& staged_log) {} + void MetricsReportingService::LogLargeRejection(size_t log_size) { }
diff --git a/components/metrics/metrics_reporting_service.h b/components/metrics/metrics_reporting_service.h index 3304b045..e6b23a1 100644 --- a/components/metrics/metrics_reporting_service.h +++ b/components/metrics/metrics_reporting_service.h
@@ -55,7 +55,8 @@ void LogResponseOrErrorCode(int response_code, int error_code, bool was_https) override; - void LogSuccess(size_t log_size) override; + void LogSuccessLogSize(size_t log_size) override; + void LogSuccessMetadata(const std::string& staged_log) override; void LogLargeRejection(size_t log_size) override; MetricsLogStore metrics_log_store_;
diff --git a/components/metrics/reporting_service.cc b/components/metrics/reporting_service.cc index f374a8d..6131d4b1 100644 --- a/components/metrics/reporting_service.cc +++ b/components/metrics/reporting_service.cc
@@ -181,9 +181,11 @@ if (log_store()->has_staged_log()) { // Provide boolean for error recovery (allow us to ignore response_code). bool discard_log = false; - const size_t log_size = log_store()->staged_log().length(); + const std::string& staged_log = log_store()->staged_log(); + const size_t log_size = staged_log.length(); if (upload_succeeded) { - LogSuccess(log_size); + LogSuccessLogSize(log_size); + LogSuccessMetadata(staged_log); } else if (log_size > max_retransmit_size_) { LogLargeRejection(log_size); discard_log = true;
diff --git a/components/metrics/reporting_service.h b/components/metrics/reporting_service.h index d46f954..acddc48 100644 --- a/components/metrics/reporting_service.h +++ b/components/metrics/reporting_service.h
@@ -90,7 +90,8 @@ virtual void LogResponseOrErrorCode(int response_code, int error_code, bool was_https) {} - virtual void LogSuccess(size_t log_size) {} + virtual void LogSuccessLogSize(size_t log_size) {} + virtual void LogSuccessMetadata(const std::string& staged_log) {} virtual void LogLargeRejection(size_t log_size) {} // If recording is enabled, begins uploading the next completed log from
diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc index 089547cc..34fd30e 100644 --- a/components/network_session_configurator/browser/network_session_configurator.cc +++ b/components/network_session_configurator/browser/network_session_configurator.cc
@@ -483,11 +483,13 @@ if (found_obsolete_version) { UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.FinchObsoleteVersion", true); // OQV prefix stands for Obsolete QUIC Version. + // OQV_quic_versions. static base::debug::CrashKeyString* quic_versions_key = base::debug::AllocateCrashKeyString( "OQV_quic_versions", base::debug::CrashKeySize::Size32); base::debug::ScopedCrashKeyString quic_versions_scoped_key( quic_versions_key, trial_versions_str); + // OQV_time. static base::debug::CrashKeyString* time_key = base::debug::AllocateCrashKeyString( "OQV_time", base::debug::CrashKeySize::Size32); @@ -497,6 +499,7 @@ 3600; // Only provide granularity of 1h. std::string time_string = base::NumberToString(seconds_since_epoch); base::debug::ScopedCrashKeyString time_scoped_key(time_key, time_string); + // OQV_finch_seed. static base::debug::CrashKeyString* finch_seed_key = base::debug::AllocateCrashKeyString( "OQV_finch_seed", base::debug::CrashKeySize::Size32); @@ -506,6 +509,54 @@ } base::debug::ScopedCrashKeyString finch_scoped_key(finch_seed_key, finch_seed); + // OQV_seed_expiry. + static base::debug::CrashKeyString* seed_expiry_key = + base::debug::AllocateCrashKeyString( + "OQV_seed_expiry", base::debug::CrashKeySize::Size32); + base::HistogramBase* histogram_seed_expiry = + base::LinearHistogram::FactoryGet( + "Variations.CreateTrials.SeedExpiry", 1, 3, 4, + base::HistogramBase::kUmaTargetedHistogramFlag); + std::unique_ptr<base::HistogramSamples> samples_seed_expiry = + histogram_seed_expiry->SnapshotSamples(); + std::string seed_expiry_string = + "c" + base::NumberToString(samples_seed_expiry->TotalCount()) + "s" + + base::NumberToString(samples_seed_expiry->sum()); + base::debug::ScopedCrashKeyString seed_expiry_scoped_key( + seed_expiry_key, seed_expiry_string); + // OQV_seed_freshness. + static base::debug::CrashKeyString* seed_freshness_key = + base::debug::AllocateCrashKeyString( + "OQV_seed_freshness", base::debug::CrashKeySize::Size32); + base::HistogramBase* histogram_seed_freshness = + base::Histogram::FactoryGet( + "Variations.SeedFreshness", 1, + base::TimeDelta::FromDays(30).InMinutes(), 50, + base::HistogramBase::kUmaTargetedHistogramFlag); + std::unique_ptr<base::HistogramSamples> samples_seed_freshness = + histogram_seed_freshness->SnapshotSamples(); + std::string seed_freshness_string = + "c" + base::NumberToString(samples_seed_freshness->TotalCount()) + + "s" + base::NumberToString(samples_seed_freshness->sum()); + base::debug::ScopedCrashKeyString seed_freshness_scoped_key( + seed_freshness_key, seed_freshness_string); + // OQV_finch_safe. + static base::debug::CrashKeyString* finch_safe_key = + base::debug::AllocateCrashKeyString( + "OQV_finch_safe", base::debug::CrashKeySize::Size32); + base::HistogramBase* histogram_finch_safe = + base::BooleanHistogram::FactoryGet( + "Variations.SafeMode.FellBackToSafeMode2", + base::HistogramBase::kUmaTargetedHistogramFlag); + std::unique_ptr<base::HistogramSamples> samples_finch_safe = + histogram_finch_safe->SnapshotSamples(); + std::string finch_safe_string = + "c" + base::NumberToString(samples_finch_safe->TotalCount()) + "s" + + base::NumberToString(samples_finch_safe->sum()); + base::debug::ScopedCrashKeyString finch_safe_scoped_key( + finch_safe_key, finch_safe_string); + // Now save all this state into a fake crash. See b/167728915 and + // crbug.com/1139877 for analysis details. base::debug::DumpWithoutCrashing(); } trial_versions = filtered_versions;
diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc index f3c5897..13201d8 100644 --- a/components/password_manager/core/browser/password_form_manager.cc +++ b/components/password_manager/core/browser/password_form_manager.cc
@@ -795,21 +795,15 @@ return; if (observed_password_form->is_new_password_reliable && !IsBlacklisted()) { + driver_->FormEligibleForGenerationFound({ #if defined(OS_IOS) - driver_->FormEligibleForGenerationFound( - {/*form_renderer_id*/ observed_password_form->form_data - .unique_renderer_id, - /*new_password_element_renderer_id*/ - observed_password_form->new_password_element_renderer_id, - /*confirmation_password_element_renderer_id*/ - observed_password_form->confirmation_password_element_renderer_id}); -#else - driver_->FormEligibleForGenerationFound( - {/*new_password_renderer_id*/ - observed_password_form->new_password_element_renderer_id, - /*confirmation_password_renderer_id*/ - observed_password_form->confirmation_password_element_renderer_id}); + .form_renderer_id = observed_password_form->form_data.unique_renderer_id, #endif + .new_password_renderer_id = + observed_password_form->new_password_element_renderer_id, + .confirmation_password_renderer_id = + observed_password_form->confirmation_password_element_renderer_id, + }); } #if defined(OS_IOS)
diff --git a/components/password_manager/ios/shared_password_controller_unittest.mm b/components/password_manager/ios/shared_password_controller_unittest.mm index f8c552c..65622a3 100644 --- a/components/password_manager/ios/shared_password_controller_unittest.mm +++ b/components/password_manager/ios/shared_password_controller_unittest.mm
@@ -315,9 +315,9 @@ IsGenerationEnabled) .WillOnce(Return(true)); - autofill::PasswordFormGenerationData form_generation_data( + autofill::PasswordFormGenerationData form_generation_data = { form_query.uniqueFormID, form_query.uniqueFieldID, - form_query.uniqueFieldID); + form_query.uniqueFieldID}; [controller_ formEligibleForGenerationFound:form_generation_data]; __block BOOL completion_was_called = NO; [controller_ @@ -340,8 +340,8 @@ TEST_F(SharedPasswordControllerTest, SuggestsGeneratedPassword) { autofill::FormRendererId form_id(0); autofill::FieldRendererId field_id(1); - autofill::PasswordFormGenerationData form_generation_data(form_id, field_id, - field_id); + autofill::PasswordFormGenerationData form_generation_data = { + form_id, field_id, field_id}; [controller_ formEligibleForGenerationFound:form_generation_data]; FormSuggestion* suggestion = [FormSuggestion @@ -370,8 +370,8 @@ TEST_F(SharedPasswordControllerTest, PresavesGeneratedPassword) { autofill::FormRendererId form_id(0); autofill::FieldRendererId field_id(1); - autofill::PasswordFormGenerationData form_generation_data(form_id, field_id, - field_id); + autofill::PasswordFormGenerationData form_generation_data = { + form_id, field_id, field_id}; [controller_ formEligibleForGenerationFound:form_generation_data]; FormSuggestion* suggestion = [FormSuggestion
diff --git a/components/payments/content/payment_request.cc b/components/payments/content/payment_request.cc index e64682de..4198010 100644 --- a/components/payments/content/payment_request.cc +++ b/components/payments/content/payment_request.cc
@@ -301,7 +301,11 @@ spec_->details().total->amount->value, false /*completed*/); } - display_handle_->Show(weak_ptr_factory_.GetWeakPtr()); + // If an app store billing payment method is one of the payment methods being + // requested, then don't show any user interface until its known whether it's + // possible to skip UI directly into an app store billing payment app. + if (!spec_->IsAppStoreBillingAlsoRequested()) + display_handle_->Show(weak_ptr_factory_.GetWeakPtr()); state_->set_is_show_user_gesture(is_show_user_gesture_); state_->AreRequestedMethodsSupported( @@ -387,8 +391,14 @@ spec_->details().total->amount->value, false /*completed*/); if (SatisfiesSkipUIConstraints()) { Pay(); - } else if (spec_->request_shipping()) { - state_->SelectDefaultShippingAddressAndNotifyObservers(); + } else { + // If not skipping UI, then make sure that the browser payment sheet is + // being displayed. + if (!display_handle_->was_shown()) + display_handle_->Show(weak_ptr_factory_.GetWeakPtr()); + + if (spec_->request_shipping()) + state_->SelectDefaultShippingAddressAndNotifyObservers(); } } } @@ -590,8 +600,13 @@ } if (methods_supported) { - if (SatisfiesSkipUIConstraints()) + if (SatisfiesSkipUIConstraints()) { Pay(); + } else if (!display_handle_->was_shown()) { + // If not skipping UI, then make sure that the browser payment sheet is + // being displayed. + display_handle_->Show(weak_ptr_factory_.GetWeakPtr()); + } } else { VLOG(2) << "PaymentRequest (" << *spec_->details().id << "): requested method not supported."; @@ -827,6 +842,13 @@ VLOG(2) << "PaymentRequest (" << *spec_->details().id << "): paying with app: " << state_->selected_app()->GetLabel(); + if (!display_handle_->was_shown() && + state_->selected_app()->type() != PaymentApp::Type::NATIVE_MOBILE_APP) { + // If not paying with a native mobile app (such as app store billing), then + // make sure that the browser payment sheet is being displayed. + display_handle_->Show(weak_ptr_factory_.GetWeakPtr()); + } + state_->selected_app()->SetPaymentHandlerHost( payment_handler_host_->AsWeakPtr()); state_->GeneratePaymentResponse();
diff --git a/components/payments/content/payment_request_display_manager.cc b/components/payments/content/payment_request_display_manager.cc index e92fe71..92a2166 100644 --- a/components/payments/content/payment_request_display_manager.cc +++ b/components/payments/content/payment_request_display_manager.cc
@@ -26,6 +26,7 @@ base::WeakPtr<PaymentRequest> request) { DCHECK(request); DCHECK(delegate_); + was_shown_ = true; delegate_->ShowDialog(request); }
diff --git a/components/payments/content/payment_request_display_manager.h b/components/payments/content/payment_request_display_manager.h index 5a1cec4..5225810 100644 --- a/components/payments/content/payment_request_display_manager.h +++ b/components/payments/content/payment_request_display_manager.h
@@ -43,9 +43,13 @@ void DisplayPaymentHandlerWindow(const GURL& url, PaymentHandlerOpenWindowCallback callback); + // Returns true after Show() was called. + bool was_shown() const { return was_shown_; } + private: PaymentRequestDisplayManager* display_manager_; ContentPaymentRequestDelegate* delegate_; + bool was_shown_ = false; DISALLOW_COPY_AND_ASSIGN(DisplayHandle); };
diff --git a/components/payments/content/payment_request_spec.cc b/components/payments/content/payment_request_spec.cc index f5362a8..95cbaa8 100644 --- a/components/payments/content/payment_request_spec.cc +++ b/components/payments/content/payment_request_spec.cc
@@ -111,6 +111,8 @@ ToString(request_payer_phone()), ToString(request_shipping())}, nullptr)}; } + + app_store_billing_methods_.insert(methods::kGooglePlayBilling); } PaymentRequestSpec::~PaymentRequestSpec() {} @@ -366,6 +368,12 @@ methods::kSecurePaymentConfirmation; } +bool PaymentRequestSpec::IsAppStoreBillingAlsoRequested() const { + return !base::STLSetIntersection<std::set<std::string>>( + app_store_billing_methods_, payment_method_identifiers_set_) + .empty(); +} + base::WeakPtr<PaymentRequestSpec> PaymentRequestSpec::AsWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); }
diff --git a/components/payments/content/payment_request_spec.h b/components/payments/content/payment_request_spec.h index f9c2cb8d..768ff33 100644 --- a/components/payments/content/payment_request_spec.h +++ b/components/payments/content/payment_request_spec.h
@@ -207,6 +207,10 @@ bool IsSecurePaymentConfirmationRequested() const; + // Returns true if one of the payment methods being requested is an app store + // billing method, such as "https://play.google.com/billing". + bool IsAppStoreBillingAlsoRequested() const; + base::WeakPtr<PaymentRequestSpec> AsWeakPtr(); private: @@ -256,9 +260,9 @@ // |supported_card_networks_set_| to check merchant support. std::set<std::string> basic_card_specified_networks_; - // A list of supported url-based payment method identifers specified by the + // A list of supported url-based payment method identifiers specified by the // merchant. This encompasses one of the two types of payment method - // identifers, the other being standardized payment method identifiers i.e., + // identifiers, the other being standardized payment method identifiers i.e., // basic-card. std::vector<GURL> url_payment_method_identifiers_; @@ -289,6 +293,8 @@ base::string16 retry_error_message_; mojom::PayerErrorsPtr payer_errors_; + std::set<std::string> app_store_billing_methods_; + base::WeakPtrFactory<PaymentRequestSpec> weak_ptr_factory_{this}; DISALLOW_COPY_AND_ASSIGN(PaymentRequestSpec);
diff --git a/components/performance_manager/embedder/performance_manager_lifetime.h b/components/performance_manager/embedder/performance_manager_lifetime.h index 0959417..ee195fb 100644 --- a/components/performance_manager/embedder/performance_manager_lifetime.h +++ b/components/performance_manager/embedder/performance_manager_lifetime.h
@@ -26,6 +26,10 @@ PerformanceManagerLifetime(Decorators, GraphCreatedCallback); ~PerformanceManagerLifetime(); + // Allows specifying an additional callback that will be invoked in tests. + static void SetAdditionalGraphCreatedCallbackForTesting( + GraphCreatedCallback graph_created_callback); + private: std::unique_ptr<PerformanceManager> performance_manager_; std::unique_ptr<PerformanceManagerRegistry> performance_manager_registry_;
diff --git a/components/performance_manager/graph/policies/process_priority_policy_unittest.cc b/components/performance_manager/graph/policies/process_priority_policy_unittest.cc index c4bf268..aff325e 100644 --- a/components/performance_manager/graph/policies/process_priority_policy_unittest.cc +++ b/components/performance_manager/graph/policies/process_priority_policy_unittest.cc
@@ -112,7 +112,7 @@ // Set the active contents in the RenderViewHostTestHarness. SetContents(CreateTestWebContents()); - auto* rvh = web_contents()->GetRenderViewHost(); + auto* rvh = web_contents()->GetMainFrame()->GetRenderViewHost(); DCHECK(rvh); auto* rph = rvh->GetProcess(); DCHECK(rph);
diff --git a/components/performance_manager/performance_manager_lifetime.cc b/components/performance_manager/performance_manager_lifetime.cc index 52e7cb2..8ccbcb8 100644 --- a/components/performance_manager/performance_manager_lifetime.cc +++ b/components/performance_manager/performance_manager_lifetime.cc
@@ -5,6 +5,7 @@ #include "components/performance_manager/embedder/performance_manager_lifetime.h" #include "base/bind.h" +#include "base/no_destructor.h" #include "base/notreached.h" #include "build/build_config.h" #include "components/performance_manager/decorators/frame_visibility_decorator.h" @@ -27,6 +28,12 @@ namespace { +GraphCreatedCallback* GetAdditionalGraphCreatedCallback() { + static base::NoDestructor<GraphCreatedCallback> + additional_graph_created_callback; + return additional_graph_created_callback.get(); +} + void DefaultGraphCreatedCallback( GraphCreatedCallback external_graph_created_callback, GraphImpl* graph) { @@ -43,13 +50,19 @@ #if !defined(OS_ANDROID) graph->PassToGraph(std::make_unique<SiteDataRecorder>()); #endif + + // Run graph created callbacks. std::move(external_graph_created_callback).Run(graph); + if (*GetAdditionalGraphCreatedCallback()) + std::move(*GetAdditionalGraphCreatedCallback()).Run(graph); } void NullGraphCreatedCallback( GraphCreatedCallback external_graph_created_callback, GraphImpl* graph) { std::move(external_graph_created_callback).Run(graph); + if (*GetAdditionalGraphCreatedCallback()) + std::move(*GetAdditionalGraphCreatedCallback()).Run(graph); } base::OnceCallback<void(GraphImpl*)> AddDecorators( @@ -84,6 +97,12 @@ std::move(performance_manager_)); } +// static +void PerformanceManagerLifetime::SetAdditionalGraphCreatedCallbackForTesting( + GraphCreatedCallback graph_created_callback) { + *GetAdditionalGraphCreatedCallback() = std::move(graph_created_callback); +} + std::unique_ptr<PerformanceManager> CreatePerformanceManagerWithDefaultDecorators( GraphCreatedCallback graph_created_callback) {
diff --git a/components/performance_manager/test_support/performance_manager_browsertest_harness.cc b/components/performance_manager/test_support/performance_manager_browsertest_harness.cc index 28b82af..c7991fbe 100644 --- a/components/performance_manager/test_support/performance_manager_browsertest_harness.cc +++ b/components/performance_manager/test_support/performance_manager_browsertest_harness.cc
@@ -6,6 +6,7 @@ #include "base/bind_helpers.h" #include "base/run_loop.h" +#include "components/performance_manager/embedder/performance_manager_lifetime.h" #include "content/public/common/content_switches.h" #include "content/shell/browser/shell.h" #include "content/shell/browser/shell_content_browser_client.h" @@ -20,6 +21,16 @@ PerformanceManagerBrowserTestHarness::~PerformanceManagerBrowserTestHarness() = default; +void PerformanceManagerBrowserTestHarness::SetUp() { + PerformanceManagerLifetime::SetAdditionalGraphCreatedCallbackForTesting( + base::BindLambdaForTesting( + [self = this](Graph* graph) { self->OnGraphCreated(graph); })); + + // The PM gets initialized in the following, so this must occur after + // setting the callback. + Super::SetUp(); +} + void PerformanceManagerBrowserTestHarness::PreRunTestOnMainThread() { Super::PreRunTestOnMainThread(); @@ -37,6 +48,8 @@ "PerformanceManagerInstrumentation"); } +void PerformanceManagerBrowserTestHarness::OnGraphCreated(Graph* graph) {} + content::Shell* PerformanceManagerBrowserTestHarness::CreateShell() { content::Shell* shell = CreateBrowser(); return shell;
diff --git a/components/performance_manager/test_support/performance_manager_browsertest_harness.h b/components/performance_manager/test_support/performance_manager_browsertest_harness.h index d727c6d..2ce7df204 100644 --- a/components/performance_manager/test_support/performance_manager_browsertest_harness.h +++ b/components/performance_manager/test_support/performance_manager_browsertest_harness.h
@@ -5,10 +5,15 @@ #ifndef COMPONENTS_PERFORMANCE_MANAGER_TEST_SUPPORT_PERFORMANCE_MANAGER_BROWSERTEST_HARNESS_H_ #define COMPONENTS_PERFORMANCE_MANAGER_TEST_SUPPORT_PERFORMANCE_MANAGER_BROWSERTEST_HARNESS_H_ +#include "base/run_loop.h" +#include "base/test/bind_test_util.h" +#include "components/performance_manager/public/performance_manager.h" #include "content/public/test/content_browser_test.h" namespace performance_manager { +class Graph; + // Like PerformanceManagerTestHarness, but for browser tests. Full process // trees and live RFHs, etc, are created. Meant to be used from // components_browsertests and browser_tests. @@ -24,10 +29,17 @@ const PerformanceManagerBrowserTestHarness&) = delete; ~PerformanceManagerBrowserTestHarness() override; + // gtest::Test: + void SetUp() override; + // content::BrowserTestBase: void PreRunTestOnMainThread() override; void SetUpCommandLine(base::CommandLine* command_line) override; + // An additional seam that gets invoked as part of the PM initialization. This + // will be invoked on the PM sequence. + virtual void OnGraphCreated(Graph* graph); + // Creates a content shell with its own window, hosting a single tab that is // navigated to about:blank. The WebContents will have the PM helpers // attached. Ownership of the shell rests with this object. Note that such a @@ -40,6 +52,21 @@ // Waits for an ongoing navigation to terminate on the given |contents|. void WaitForLoad(content::WebContents* contents); + + // Helper function for running a task on the graph, and waiting for it to + // complete. The signature of OnGraphCallback is expected to be void(Graph*). + template <typename OnGraphCallback> + void RunInGraph(OnGraphCallback on_graph_callback) { + base::RunLoop run_loop; + PerformanceManager::CallOnGraph( + FROM_HERE, + base::BindLambdaForTesting([quit_loop = run_loop.QuitClosure(), + &on_graph_callback](Graph* graph) { + on_graph_callback(graph); + quit_loop.Run(); + })); + run_loop.Run(); + } }; } // namespace performance_manager
diff --git a/components/performance_manager/worker_watcher.cc b/components/performance_manager/worker_watcher.cc index 4f72e27..ccc1ea95 100644 --- a/components/performance_manager/worker_watcher.cc +++ b/components/performance_manager/worker_watcher.cc
@@ -356,117 +356,19 @@ int64_t version_id, const std::string& client_uuid, const content::ServiceWorkerClientInfo& client_info) { - switch (client_info.type()) { - case blink::mojom::ServiceWorkerClientType::kWindow: { - // For window clients, it is necessary to wait until the navigation has - // committed to a render frame host. - bool inserted = client_frames_awaiting_commit_.insert(client_uuid).second; - DCHECK(inserted); - break; - } - case blink::mojom::ServiceWorkerClientType::kDedicatedWorker: { - blink::DedicatedWorkerToken dedicated_worker_token = - client_info.GetDedicatedWorkerToken(); - - bool inserted = service_worker_clients_[version_id] - .emplace(client_uuid, dedicated_worker_token) - .second; - DCHECK(inserted); - - // If the service worker is already started, connect it to the client. - WorkerNodeImpl* service_worker_node = GetServiceWorkerNode(version_id); - if (service_worker_node) - ConnectDedicatedWorkerClient(service_worker_node, - dedicated_worker_token); - break; - } - case blink::mojom::ServiceWorkerClientType::kSharedWorker: { - blink::SharedWorkerToken shared_worker_token = - client_info.GetSharedWorkerToken(); - - bool inserted = service_worker_clients_[version_id] - .emplace(client_uuid, shared_worker_token) - .second; - DCHECK(inserted); - - // If the service worker is already started, connect it to the client. - WorkerNodeImpl* service_worker_node = GetServiceWorkerNode(version_id); - if (service_worker_node) - ConnectSharedWorkerClient(service_worker_node, shared_worker_token); - break; - } - case blink::mojom::ServiceWorkerClientType::kAll: - NOTREACHED(); - break; - } + // TODO(pmonette): Handle service worker clients. } void WorkerWatcher::OnControlleeRemoved(int64_t version_id, const std::string& client_uuid) { - // Nothing to do for a frame client whose navigation never committed. - size_t removed = client_frames_awaiting_commit_.erase(client_uuid); - if (removed) { -#if DCHECK_IS_ON() - // |client_uuid| should not be part of this service worker's clients. - auto it = service_worker_clients_.find(version_id); - if (it != service_worker_clients_.end()) - DCHECK(!base::Contains(it->second, client_uuid)); -#endif // DCHECK_IS_ON() - return; - } - - // First get clients for this worker. - auto it = service_worker_clients_.find(version_id); - DCHECK(it != service_worker_clients_.end()); - - base::flat_map<std::string /*client_uuid*/, ServiceWorkerClient>& clients = - it->second; - - auto it2 = clients.find(client_uuid); - DCHECK(it2 != clients.end()); - const ServiceWorkerClient client = it2->second; - clients.erase(it2); - - if (clients.empty()) - service_worker_clients_.erase(it); - - // Now disconnect the client if the service worker is still running. - WorkerNodeImpl* worker_node = GetServiceWorkerNode(version_id); - if (!worker_node) - return; - - switch (client.type()) { - case blink::mojom::ServiceWorkerClientType::kWindow: - DisconnectFrameClient(worker_node, client.GetRenderFrameHostId()); - break; - case blink::mojom::ServiceWorkerClientType::kDedicatedWorker: - DisconnectDedicatedWorkerClient(worker_node, - client.GetDedicatedWorkerToken()); - break; - case blink::mojom::ServiceWorkerClientType::kSharedWorker: - DisconnectSharedWorkerClient(worker_node, client.GetSharedWorkerToken()); - break; - case blink::mojom::ServiceWorkerClientType::kAll: - NOTREACHED(); - break; - } + // TODO(pmonette): Handle service worker clients. } void WorkerWatcher::OnControlleeNavigationCommitted( int64_t version_id, const std::string& client_uuid, content::GlobalFrameRoutingId render_frame_host_id) { - size_t removed = client_frames_awaiting_commit_.erase(client_uuid); - DCHECK_EQ(removed, 1u); - - bool inserted = service_worker_clients_[version_id] - .emplace(client_uuid, render_frame_host_id) - .second; - DCHECK(inserted); - - WorkerNodeImpl* service_worker_node = GetServiceWorkerNode(version_id); - if (service_worker_node) - ConnectFrameClient(service_worker_node, render_frame_host_id); + // TODO(pmonette): Handle service worker clients. } void WorkerWatcher::ConnectFrameClient(
diff --git a/components/performance_manager/worker_watcher_unittest.cc b/components/performance_manager/worker_watcher_unittest.cc index 5a9736b..24b15d2 100644 --- a/components/performance_manager/worker_watcher_unittest.cc +++ b/components/performance_manager/worker_watcher_unittest.cc
@@ -306,7 +306,7 @@ // Starts an existing service worker. void StartServiceWorker(int64_t version_id, int worker_process_id); - // Stops a service shared worker. + // Destroys a service shared worker. void StopServiceWorker(int64_t version_id); // Adds a new client to an existing service worker and returns its generated @@ -826,7 +826,10 @@ } // This test creates one service worker with one client frame. -TEST_F(WorkerWatcherTest, ServiceWorkerFrameClient) { +// +// TODO(pmonette): Enable this test when the WorkerWatcher starts tracking +// service worker clients. +TEST_F(WorkerWatcherTest, DISABLED_ServiceWorkerFrameClient) { int render_process_id = process_node_source()->CreateProcessNode(); // Create and start the service worker. @@ -874,6 +877,8 @@ EXPECT_TRUE(graph->NodeInGraph(worker_node)); EXPECT_EQ(worker_node->worker_type(), WorkerNode::WorkerType::kService); EXPECT_EQ(worker_node->process_node(), process_node); + + // Now is it correctly hooked up. EXPECT_TRUE(IsWorkerClient(worker_node, client_frame_node)); })); @@ -922,7 +927,9 @@ service_worker_context()->DestroyServiceWorker(service_worker_version_id); } -TEST_F(WorkerWatcherTest, AllTypesOfServiceWorkerClients) { +// TODO(pmonette): Enable this test when the WorkerWatcher starts tracking +// service worker clients. +TEST_F(WorkerWatcherTest, DISABLED_AllTypesOfServiceWorkerClients) { int render_process_id = process_node_source()->CreateProcessNode(); // Create and start the service worker. @@ -994,7 +1001,11 @@ // starts after it has been assigned a client. In this case, the clients are not // connected to the service worker until it starts. It also tests that when the // service worker stops, its existing clients are also disconnected. -TEST_F(WorkerWatcherTest, ServiceWorkerStartsAndStopsWithExistingClients) { +// +// TODO(pmonette): Enable this test when the WorkerWatcher starts tracking +// service worker clients. +TEST_F(WorkerWatcherTest, + DISABLED_ServiceWorkerStartsAndStopsWithExistingClients) { int render_process_id = process_node_source()->CreateProcessNode(); // Create the worker. @@ -1297,7 +1308,9 @@ EXPECT_TRUE(graph->NodeInGraph(service_worker_node)); EXPECT_TRUE(IsWorkerClient(dedicated_worker_node, client_frame_node)); EXPECT_TRUE(IsWorkerClient(shared_worker_node, client_frame_node)); - EXPECT_TRUE(IsWorkerClient(service_worker_node, client_frame_node)); + // TODO(pmonette): Change this to EXPECT_TRUE() when the WorkerWatcher + // starts tracking service worker clients. + EXPECT_FALSE(IsWorkerClient(service_worker_node, client_frame_node)); })); frame_node_source()->DeleteFrameNode(render_frame_host_id);
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json index 2c6f1c3..91c7bb56 100644 --- a/components/policy/resources/policy_templates.json +++ b/components/policy/resources/policy_templates.json
@@ -1444,13 +1444,9 @@ 'id': 273, 'caption': '''Enable network prediction''', 'tags': [], - 'desc': '''Enables network prediction in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> and prevents users from changing this setting. + 'desc': '''This policy controls network prediction in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>. It controls DNS prefetching, TCP, and SSL preconnection and prerendering of webpages. - This controls DNS prefetching, TCP and SSL preconnection and prerendering of web pages. - - If you set this policy, users cannot change or override this setting in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>. - - If this policy is left not set, network prediction will be enabled but the user will be able to change it.''', + If you set the policy, users can't change it. Leaving it unset turns on network prediction, but the user can change it.''', }, { 'name': 'WPADQuickCheckEnabled', @@ -1466,11 +1462,11 @@ 'id': 261, 'caption': '''Enable WPAD optimization''', 'tags': ['system-security'], - 'desc': '''Allows to turn off WPAD (Web Proxy Auto-Discovery) optimization in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>. + 'desc': '''Setting the policy to Enabled or leaving it unset turns on WPAD (Web Proxy Auto-Discovery) optimization in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>. - If this policy is set to false, WPAD optimization is disabled causing <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> to wait longer for DNS-based WPAD servers. If the policy is not set or is enabled, WPAD optimization is enabled. + Setting the policy to Disabled turns off WPAD optimization, causing <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> to wait longer for DNS-based WPAD servers. - Independent of whether or how this policy is set, the WPAD optimization setting cannot be changed by users.''', + Whether or not this policy is set, users can't change the WPAD optimization setting.''', }, { 'name': 'DisableSpdy', @@ -3880,13 +3876,9 @@ 'id': 295, 'caption': '''Captive portal authentication ignores proxy''', 'tags': [], - 'desc': '''This policy allows <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> to bypass any proxy for captive portal authentication. + 'desc': '''Setting the policy to Enabled lets <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> bypass any proxy for captive portal authentication. These authentication webpages, starting from the captive portal sign-in page until Chrome detects a successful internet connection, open in a separate window, ignoring all policy settings and restrictions for the current user. This policy only takes effect if a proxy is set up (by policy, extension, or the user in chrome://settings). - This policy only takes effect if a proxy is configured (for example through policy, by the user in chrome://settings, or by extensions). - - If you enable this setting, any captive portal authentication pages (i.e. all web pages starting from captive portal signin page until <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> detects successful internet connection) will be displayed in a separate window ignoring all policy settings and restrictions for the current user. - - If you disable this setting or leave it unset, any captive portal authentication pages will be shown in a (regular) new browser tab, using the current user's proxy settings.''', + Setting the policy to Disabled or leaving it unset means any captive portal authentication pages are shown in a (regular) new browser tab, using the current user's proxy settings.''', }, { 'name': 'ProxyMode', @@ -5508,7 +5500,7 @@ 'caption': '''Click to play''', }, ], - 'supported_on': ['chrome.*:10-', 'chrome_os:11-'], + 'supported_on': ['chrome.*:10-87', 'chrome_os:11-87'], 'features': { 'dynamic_refresh': True, 'per_profile': True, @@ -5517,7 +5509,8 @@ 'id': 51, 'caption': '''Default <ph name="FLASH_PLUGIN_NAME">Flash</ph> setting''', 'tags': [], - 'desc': '''Setting the policy to 1 lets you set whether all websites can automatically run the <ph name="FLASH_PLUGIN_NAME">Flash</ph> plugin. Setting the policy to 2 denies this plugin for all websites. Click to play lets the <ph name="FLASH_PLUGIN_NAME">Flash</ph> plugin run, but users click on the placeholder to start it. + 'deprecated': True, + 'desc': '''This policy is deprecated in M88, Flash is no longer supported by Chrome. Setting the policy to 1 lets you set whether all websites can automatically run the <ph name="FLASH_PLUGIN_NAME">Flash</ph> plugin. Setting the policy to 2 denies this plugin for all websites. Click to play lets the <ph name="FLASH_PLUGIN_NAME">Flash</ph> plugin run, but users click on the placeholder to start it. Leaving the policy unset uses <ph name="BLOCK_PLUGINS_POLICY_NAME">BlockPlugins</ph> and lets users change this setting. @@ -7833,15 +7826,9 @@ 'id': 92, 'caption': '''Maximal number of concurrent connections to the proxy server''', 'tags': [], - 'desc': '''Specifies the maximal number of simultaneous connections to the proxy server. + 'desc': '''Setting the policy specifies the maximal number of simultaneous connections to the proxy server. Some proxy servers can't handle a high number of concurrent connections per client, which is solved by setting this policy to a lower value. The value should be lower than 100 and higher than 6. Some web apps are known to consume many connections with hanging GETs, so setting a value below 32 may lead to browser networking hangs if there are too many web apps with hanging connections open. Lower below the default at your own risk. - Some proxy servers can not handle high number of concurrent connections per client and this can be solved by setting this policy to a lower value. - - The value of this policy should be lower than 100 and higher than 6 and the default value is 32. - - Some web apps are known to consume many connections with hanging GETs, so lowering below 32 may lead to browser networking hangs if too many such web apps are open. Lower below the default at your own risk. - - If this policy is left not set the default value will be used which is 32.''', + Leaving the policy unset means a default of 32 is used.''', }, { 'name': 'HideWebStorePromo', @@ -8147,7 +8134,7 @@ 'id': 107, 'caption': '''User-level network configuration''', 'tags': ['full-admin-access'], - 'desc': '''Allows pushing network configuration to be applied per-user to a <ph name="PRODUCT_OS_NAME">$2<ex>Chromium OS</ex></ph> device. The network configuration is a JSON-formatted string as defined by the Open Network Configuration format.''', + 'desc': '''Setting the policy allows pushing network configuration per-user for each <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> device. The network configuration is a JSON-formatted string, as defined by the Open Network Configuration format.''', 'arc_support': 'Android apps can use the network configurations and CA certificates set via this policy, but do not have access to some configuration options.', }, { @@ -8165,7 +8152,7 @@ 'id': 108, 'caption': '''Device-level network configuration''', 'tags': ['full-admin-access'], - 'desc': '''Allows pushing network configuration to be applied for all users of a <ph name="PRODUCT_OS_NAME">$2<ex>Chromium OS</ex></ph> device. The network configuration is a JSON-formatted string as defined by the Open Network Configuration format.''', + 'desc': '''Setting the policy allows pushing network configuration for all users of a <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> device. The network configuration is a JSON-formatted string, as defined by the Open Network Configuration format.''', 'arc_support': 'Android apps can use the network configurations and CA certificates set via this policy, but do not have access to some configuration options.', }, { @@ -9428,7 +9415,9 @@ 'id': 126, 'caption': '''Enable data roaming''', 'tags': [], - 'desc': '''Determines whether data roaming should be enabled for the device. If set to true, data roaming is allowed. If left unconfigured or set to false, data roaming will be not available.''', + 'desc': '''Setting the policy to Enabled allows data roaming for the device. + + Setting the policy to Disabled or leaving it unset renders data roaming unavailable.''', }, { 'name': 'DeviceMetricsReportingEnabled', @@ -14002,8 +13991,9 @@ 'id': 301, 'caption': '''Allow QUIC protocol''', 'tags': [], - 'desc': '''If this policy is set to true or not set usage of QUIC protocol in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> is allowed. - If this policy is set to false usage of QUIC protocol is disallowed.''', + 'desc': '''Setting the policy to Enabled or leaving it unset allows the use of QUIC protocol in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>. + + Setting the policy to Disabled disallows the use of QUIC protocol.''', }, { 'name': 'KeyPermissions', @@ -14517,12 +14507,7 @@ 'owners': ['kirtika@chromium.org', 'pmarko@chromium.org'], 'device_only': True, 'caption': '''Enable throttling network bandwidth''', - 'desc': '''Allows enabling or disabling network throttling. - This applies to all users, and to all interfaces on the device. Once set, - the throttling persists until the policy is changed to disable it. - - If set to false, there is no throttling. - If set to true, the system is throttled to achieve the provided upload and download rates (in kbits/s).''', + 'desc': '''Setting the policy turns network throttling on or off. This means that the system is throttled to achieve the provided upload and download rates (in kbits/s). It applies to all users and interfaces on the device.''', 'type': 'dict', 'schema': { 'type': 'object', @@ -14557,13 +14542,11 @@ 'owners': ['matthewmwang@chromium.org'], 'device_only': True, 'caption': '''Enable 802.11r Fast Transition''', - 'desc': '''Allows enabling or disabling Fast Transition. - This applies to all users, and to all interfaces on the device. - In order for Fast Transition to be used, both this setting and the per-network ONC property need to be enabled. - Once set, Fast Transition persists until the policy is changed to disable it. + 'desc': '''Setting the policy to Enabled means that Fast Transition is used when the wireless access point supports it. It applies to all users and interfaces on the device. - If this policy is not set or set to false, Fast Transition is not used. - If set to true, Fast Transition is used when the wireless access point supports it.''', + Setting the policy to Disabled or leaving it unset means that Fast Transition isn't used. + + Note: To use Fast Transition, also turn on the per-network ONC property.''', 'type': 'main', 'schema': { 'type': 'boolean' }, 'supported_on': ['chrome_os:72-'], @@ -14580,9 +14563,9 @@ 'owners': ['apotapchuk@chromium.org'], 'device_only': True, 'caption': '''Enable WiFi''', - 'desc': ''' - If the policy is set to false, <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> will disable WiFi and users cannot enable it back. - If the policy is set to true or left unset, users will be able to enable or disable WiFi as they wish.''', + 'desc': '''Setting the policy to Disabled means <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> turns off Wi-Fi, and users can't change it. + + Setting the policy to Enabled or leaving it unset lets users turn Wi-Fi on or off.''', 'type': 'main', 'schema': { 'type': 'boolean' }, 'supported_on': ['chrome_os:75-'], @@ -14598,18 +14581,15 @@ 'name': 'DeviceDockMacAddressSource', 'owners': ['lamzin@google.com'], 'caption': '''Device MAC address source when docked''', - 'desc': ''' - Configures which MAC (media access control) address will be used when a dock is connected to the device. + 'desc': '''Setting the policy lets the administrator change the MAC (media access control) address when connecting a device to the dock. When a dock is connected to some device models, by default, the device's MAC address helps identify the device on Ethernet. - When a dock is connected to some device models, the device's designated dock MAC address is used to identify the device on Ethernet by default. This policy allows the administrator to change the source of the MAC address while docked. + If 'DeviceDockMacAddress' is selected or the policy is left unset, the device's designated dock MAC address will be used. - If 'DeviceDockMacAddress' is selected or the policy is left unset, the device's designated dock MAC address will be used. + If 'DeviceNicMacAddress' is selected, the device's NIC (network interface controller) MAC address will be used. - If 'DeviceNicMacAddress' is selected, the device's NIC (network interface controller) MAC address will be used. + If 'DockNicMacAddress' is selected, the dock's NIC MAC address will be used. - If 'DockNicMacAddress' is selected, the dock's NIC MAC address will be used. - - This setting can not be changed by the user.''', + Users can't change this setting.''', 'type': 'int-enum', 'schema': { 'type': 'integer', @@ -17100,13 +17080,9 @@ 'id': 403, 'caption': '''Device network hostname template''', 'tags': [], - 'desc': '''Determine the hostname of the device used in DHCP requests. + 'desc': '''Setting the policy to a string applies the string as the device hostname during DHCP request. The string can have variables <ph name="ASSET_ID_PLACEHOLDER">${ASSET_ID}</ph>, <ph name="SERIAL_NUM_PLACEHOLDER">${SERIAL_NUM}</ph>, <ph name="MAC_ADDR_PLACEHOLDER">${MAC_ADDR}</ph>, <ph name="MACHINE_NAME_PLACEHOLDER">${MACHINE_NAME}</ph>, <ph name="LOCATION_PLACEHOLDER">${LOCATION}</ph> to be replaced with values on the device before using it as a hostname. The resulting substitution should be a valid hostname (per RFC 1035, section 3.1). - If this policy is set to a non empty string, that string will be used as the device hostname during DHCP request. - - The string can contain variables <ph name="ASSET_ID_PLACEHOLDER">${ASSET_ID}</ph>, <ph name="SERIAL_NUM_PLACEHOLDER">${SERIAL_NUM}</ph>, <ph name="MAC_ADDR_PLACEHOLDER">${MAC_ADDR}</ph>, <ph name="MACHINE_NAME_PLACEHOLDER">${MACHINE_NAME}</ph>, <ph name="LOCATION_PLACEHOLDER">${LOCATION}</ph> that would be replaced with values on the device before using as a hostname. Resulting substitution should be a valid hostname (per RFC 1035, section 3.1). - - If this policy is not set, or the value after substitution is not a valid hostname, no hostname will be set in DHCP request. ''' + Leaving the policy unset or if the value after substitution isn't a valid hostname, no hostname is set in DHCP request.''' }, { 'name': 'AbusiveExperienceInterventionEnforce', @@ -19064,15 +19040,9 @@ 'id': 485, 'caption': '''Allow the user to manage VPN connections''', 'tags': [], - 'desc': '''Allow the user to manage VPN connections. + 'desc': '''Setting the policy to Enabled or leaving it unset lets users manage (disconnect or modify) VPN connections. If the VPN connection is created using a VPN app, the UI inside the app isn't affected. So, users might still be able to use the app to modify the VPN connection. Use this policy with the Always on VPN feature, which lets the admin decide to establish a VPN connection when starting a device. - If this policy is set to false, all <ph name="PRODUCT_NAME">$2<ex>Google Chrome OS</ex></ph> user interfaces that would allow the user to disconnect or modify VPN connections are disabled. - - If this policy is unset or set to true, users can disconnect or modify VPN connections as usual. - - If the VPN connection is created via a VPN app, the UI inside the app remains unaffected by this policy. Therefore, the user might still be able to use the app to modify the VPN connection. - - This policy is meant to be used together with the "Always on VPN" feature, that lets the admin decide to establish a VPN connection on boot.''', + Setting the policy to Disabled turns off the <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> user interfaces that would let the user disconnect or modify VPN connections.''', }, { 'id': 489,
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index e50ca16a..6202e75 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -412,6 +412,11 @@ Die URL-Muster haben das gleiche Format wie die Richtlinie "<ph name="URL_BLOCKLIST_POLICY_NAME" />", die unter https://www.chromium.org/administrators/url-blacklist-filter-format beschrieben ist. </translation> <translation id="1645793986494086629">Schema:</translation> +<translation id="1647558381546345298">Wenn Sie diese Richtlinie festlegen, wird die Cache-Größe konfiguriert, die <ph name="PRODUCT_NAME" /> zum Speichern von Mediendateien im Cache auf dem Datenträger verwendet unabhängig davon, ob der Nutzer den Parameter "--media-cache-size" angegeben hat oder nicht. Der in dieser Richtlinie angegebene Wert ist keine feste Grenze, sondern ein Richtwert für das Caching-System. Werte, die kleiner als einige Megabyte sind, werden aufgerundet. + + Wird der Wert dieser Richtlinie auf 0 gesetzt, wird die Standard-Cache-Größe verwendet und Nutzer können sie nicht ändern. + + Wird diese Richtlinie nicht festgelegt, wird die Standardgröße verwendet und der Nutzer kann diese mit dem Parameter "--disk-cache-size" ändern.</translation> <translation id="1648816843164517573">Liste der Namen, die vom HSTS-Richtliniencheck ausgenommen sind</translation> <translation id="1654087023995670109">Gastmodus im Browser erzwingen</translation> <translation id="1655229863189977773">Cache-Größe für Datenträger in Byte festlegen</translation> @@ -775,13 +780,6 @@ Diese Richtlinie sollte nicht für Geräte verwendet werden, die öffentlich zugänglich sind. Wenn die Richtlinie auf "True" gesetzt oder nicht konfiguriert ist, bleibt die Datenschutzwarnung in der automatisch gestarteten verwalteten Gastsitzung angepinnt, bis der Nutzer sie schließt.</translation> -<translation id="228665601367357543">Sie können eine Liste mit URL-Mustern erstellen, die die Websites angeben, denen automatisch die Berechtigung für den Zugriff auf ein USB-Gerät mit den angegebenen Anbieter- und Produkt-IDs gewährt wird. Damit die Richtlinie gültig ist, müssen für jeden Eintrag auf der Liste die Felder „devices“ und „urls“ angegeben sein. Jeder Eintrag im Feld „devices“ kann ein Feld „vendor_id“ und „product_id“ haben. Bei Weglassen des Felds „vendor_id“ wird eine Richtlinie erstellt, die für jedes Gerät gilt. Bei Weglassen des Felds „product_id“ wird eine Richtlinie erstellt, die für jedes Gerät mit der angegebenen Anbieter-ID gilt. Eine Richtlinie, die ein Feld „product_id“ ohne das Feld „vendor_id“ hat, ist ungültig. - - Im USB-Berechtigungsmodell werden die anfragende und die einbettende URL (d. h. die URL der Frame-Website der obersten Ebene) verwendet, um der anfragenden URL die Berechtigung für den Zugriff auf das USB-Gerät zu erteilen. Wird die anfragende Website in einen iFrame geladen, kann die anfragende URL von der einbettenden URL abweichen. Deshalb darf das Feld „urls“ bis zu zwei durch ein Komma voneinander getrennte Strings enthalten, die diese URLs angeben. Wenn Sie nur eine URL angeben, wird der Zugriff auf die entsprechenden USB-Geräte gewährt, wenn die URL der anfragenden Website dieser URL entspricht, wobei der Einbettungsstatus keine Rolle spielt. Die URLs im Feld „urls“ müssen gültig sein, da die Richtlinie andernfalls ignoriert wird. - - Wenn die Richtlinie nicht konfiguriert ist, gilt <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" />, sofern diese Einstellung konfiguriert ist. Falls nicht, wird die persönliche Einstellung des Nutzers verwendet. - - URL-Muster in dieser Richtlinie dürfen nicht im Widerspruch zu den über <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> konfigurierten URLs stehen. Andernfalls hat diese Richtlinie Vorrang vor <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> und <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Mit dieser Richtlinie wird festgelegt, ob Versionsinformationen wie die Betriebssystemversion, das Betriebssystem, die Architektur des Betriebssystems, die <ph name="PRODUCT_NAME" />-Version und der <ph name="PRODUCT_NAME" />-Release-Channel gesendet werden. Wenn die Richtlinie <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> deaktiviert oder nicht konfiguriert ist, wird diese Richtlinie ignoriert. @@ -1313,6 +1311,7 @@ Wenn die Richtlinie nicht konfiguriert oder keine gültige URL angegeben ist, wird sie von <ph name="PRODUCT_NAME" /> nicht als Regelquelle für den Browserwechsel verwendet. Hinweis: Diese Richtlinie verweist auf eine XML-Datei im selben Format wie die Richtlinie "<ph name="IEEM_SITELIST_POLICY" />" von <ph name="IE_PRODUCT_NAME" />. Sie lädt Regeln aus einer XML-Datei, ohne diese Regeln mit <ph name="IE_PRODUCT_NAME" /> zu teilen. Weitere Informationen zur Richtlinie "<ph name="IEEM_SITELIST_POLICY" />" von <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> +<translation id="2949765875529121431">Wenn die Richtlinie konfiguriert ist, wird eine Liste mit Hostnamen angegeben, die vom HSTS-Richtliniencheck ausgenommen sind. Dieser Richtliniencheck kann Anfragen von http auf https upgraden. Für diese Richtlinie sind nur Single-Label-Hostnamen zulässig. Hostnamen müssen kanonisiert werden: Alle IDNs müssen in ihr A-Label-Format konvertiert und alle ASCII-Buchstaben kleingeschrieben werden. Diese Richtlinie gilt nur für die angegebenen Hostnamen, aber nicht für Subdomains der angegebenen Namen.</translation> <translation id="2952347049958405264">Einschränkungen:</translation> <translation id="2957047180944828740">Gibt an, ob unsichere Websites Anfragen an eher private Netzwerk-Endpunkte senden dürfen</translation> <translation id="2957506574938329824">Keine Website darf Zugriff auf Bluetooth-Geräte über die Web Bluetooth API anfordern</translation> @@ -1421,6 +1420,9 @@ Unabhängig davon, ob und wie die Richtlinie festgelegt ist, kann die WPAD-Optimierung nicht von Nutzern verändert werden.</translation> <translation id="3072045631333522102">Bildschirmschoner für die Anmeldeseite im Händlermodus</translation> +<translation id="3072788420987305247">Wenn die Richtlinie aktiviert oder nicht konfiguriert ist, wird die Mediensteuerung auf dem Sperrbildschirm angezeigt, wenn Nutzer das Gerät sperren, während Medien wiedergegeben werden. + + Ist die Richtlinie deaktiviert, wird die Mediensteuerung auf dem Sperrbildschirm ausgeschaltet.</translation> <translation id="3072847235228302527">Nutzungsbedingungen für ein lokales Gerätekonto festlegen</translation> <translation id="3086995894968271156">Konfigurieren von Cast Receiver in <ph name="PRODUCT_NAME" />.</translation> <translation id="3091832372132789233">Lädt den Akku von Geräten auf, die vorwiegend an eine externe Stromquelle angeschlossen werden.</translation> @@ -1818,7 +1820,6 @@ <translation id="3631099945620529777">Wenn diese Richtlinie auf "false" gesetzt ist, ist die Schaltfläche "Prozess beenden" im Task-Manager deaktiviert. Ist sie auf "true" gesetzt oder nicht konfiguriert, kann der Nutzer Prozesse im Task-Manager beenden.</translation> -<translation id="3639444551396586995">Unsichere Ereignisse in Chrome an Google melden</translation> <translation id="3643284063603988867">Funktion zum Speichern des Passworts aktivieren</translation> <translation id="3646859102161347133">Lupentyp festlegen</translation> <translation id="3647212518036289905">Wenn diese Richtlinie konfiguriert ist, wird festgelegt, welche GSSAPI-Bibliothek für die HTTP-Authentifizierung verwendet werden soll. Geben Sie entweder nur den Namen einer Bibliothek oder einen vollständigen Pfad an. @@ -1838,13 +1839,6 @@ Diese Richtlinie wird im Rahmen der Registrierung von Cloud-Richtlinien auf Computern verwendet und kann unter Windows über die Registrierung oder per GPO, auf einem Mac per plist und unter Linux über eine JSON-Richtliniendatei festgelegt werden.</translation> <translation id="3660562134618097814">SAML-IdP-Cookies bei der Anmeldung übertragen</translation> -<translation id="3669373349666208904">Wenn die Richtlinie auf "True" gesetzt ist, dürfen Seiten Pop-ups zeigen, während die Seiten entfernt werden. - - Wenn die Richtlinie auf "False" gesetzt oder nicht konfiguriert ist, können Seiten keine Pop-ups zeigen, während die Seiten entfernt werden. - - Diese Richtlinie wird in Chrome 88 entfernt. - - Weitere Informationen unter https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Wenn die Richtlinie aktiviert ist, wird die "Neuer Tab"-Seite als Startseite des Nutzers verwendet; die Startseiten-URL wird ignoriert. Ist diese Richtlinie deaktiviert, wird die "Neuer Tab"-Seite nie als Startseite verwendet, es sei denn, die Startseiten-URL des Nutzers ist chrome://newtab. Wenn Sie diese Richtlinie konfigurieren, können Nutzer den Typ ihrer Startseite in <ph name="PRODUCT_NAME" /> nicht ändern. Wenn die Richtlinie nicht konfiguriert ist, können Nutzer auswählen, ob die "Neuer Tab"-Seite als Startseite verwendet werden soll. @@ -2081,15 +2075,6 @@ <translation id="4020682745012723568">In das Nutzerprofil übertragene Cookies sind für Android-Apps nicht zugänglich.</translation> <translation id="402759845255257575">Ausführung von JavaScript für keine Website zulassen</translation> <translation id="4027608872760987929">Standardsuchmaschine aktivieren</translation> -<translation id="4044054366426171256">Mit dieser Richtlinie werden die erforderlichen Domainnamen der Hosts für den Remotezugriff konfiguriert. Außerdem wird verhindert, dass Nutzer diese ändern. - - Wenn diese Einstellung aktiviert und für eine oder mehrere Domains konfiguriert ist, können Hosts nur über Konten gemeinsam genutzt werden, die unter einem der angegebenen Domainnamen registriert sind. - - Ist sie deaktiviert oder nicht konfiguriert oder ist eine leere Liste festgelegt, können Hosts über alle Konten gemeinsam genutzt werden. - - Sofern vorhanden, wird "RemoteAccessHostDomain" mit dieser Einstellung überschrieben. - - Siehe auch "RemoteAccessHostClientDomainList".</translation> <translation id="4056910949759281379">SPDY-Protokoll deaktivieren</translation> <translation id="4061590579642538878">Informationen über Absturzberichte melden.</translation> <translation id="4075675819066819571">Ablage auf der linken Seite des Bildschirms anzeigen</translation> @@ -2160,6 +2145,11 @@ <translation id="4157003184375321727">Betriebssystem- und Firmware-Version melden</translation> <translation id="4157594634940419685">Zugriff auf native CUPS-Drucker erlauben</translation> <translation id="4160962198980004898">Quelle für die Geräte-MAC-Adresse bei angedocktem Gerät</translation> +<translation id="4166174702671320480">Ist diese Richtlinie aktiviert, werden Richtlinien aus atomischen Gruppen, die eine andere Quelle als die Quelle mit der höchsten Priorität der entsprechenden Gruppe haben, ignoriert. + + Wenn die Richtlinie deaktiviert ist, wird keine Richtlinie aufgrund ihrer Quelle ignoriert. Richtlinien werden dann nur ignoriert, wenn ein Konflikt besteht und sie nicht die höchste Priorität haben. + + Wird diese Richtlinie von einer cloudbasierten Quelle konfiguriert, kann sie nicht auf bestimmte einzelne Nutzer ausgerichtet werden.</translation> <translation id="4169692397912242417">Hiermit wird die Bedienungshilfe "gesprochenes Feedback" auf dem Anmeldebildschirm aktiviert. Wird diese Richtlinie auf "true" gesetzt, ist das gesprochene Feedback auf dem Anmeldebildschirm immer aktiviert. @@ -2540,10 +2530,6 @@ <translation id="4874982543810021567">WebUSB auf diesen Websites blockieren</translation> <translation id="4876805738539874299">SSL-Höchstversion aktiviert</translation> <translation id="4887274746092315609">Erlaubt SAML-Nutzern das Ändern des Passworts während einer Sitzung</translation> -<translation id="4887863670424903990">Wenn diese Richtlinie aktiviert ist, werden unsichere Ereignisse in <ph name="PRODUCT_NAME" /> zur Analyse an Google gesendet, darunter die Wiederverwendung von Passwörtern, der Download von Malware, Interstitials, Verstöße gegen die Richtlinie zum Schutz von sensiblen Daten usw. Einige dieser Ereignisse, etwa Verstöße gegen die Richtlinie zum Schutz von sensiblen Daten, sind abhängig von anderen Richtlinien, mit denen entsprechende Überprüfungen aktiviert werden. - - Wenn diese Richtlinie deaktiviert oder nicht konfiguriert ist, werden unsichere Ereignisse in <ph name="PRODUCT_NAME" /> nicht gemeldet. - </translation> <translation id="4894290482695457375">Wenn "<ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" />" aktiviert und "<ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" />" konfiguriert ist, wird <ph name="PRODUCT_NAME" /> unter allen IP-Adressen und nicht nur unter privaten RFC1918-/RFC4193-Adressen mit Cast-Geräten verbunden. Ist die Richtlinie deaktiviert, wird <ph name="PRODUCT_NAME" /> nur unter RFC1918-/RFC4193-Adressen mit Cast-Geräten verbunden. @@ -3332,9 +3318,6 @@ Clients für den Remotezugriff sind von dieser Richtlinieneinstellung nicht betroffen. Diese verwenden immer "chromoting-client.talkgadget.google.com" für den Zugriff auf das TalkGadget.</translation> <translation id="5890063326284543943">Verwendung der Serial API steuern</translation> -<translation id="5893553533827140852">Wenn diese Einstellung aktiviert ist, wird für Anfragen zur Gnubby-Authentifizierung ein Proxy über eine Remote-Host-Verbindung verwendet. - -Wenn diese Einstellung deaktiviert oder nicht konfiguriert ist, wird kein Proxy für Anfragen zur Gnubby-Authentifizierung verwendet.</translation> <translation id="5897913798715600338">Lädt den Akku mit Schnellladetechnologie auf.</translation> <translation id="5898486742390981550">Wenn mehrere Nutzer angemeldet sind, kann nur der Hauptnutzer Android-Apps verwenden.</translation> <translation id="5901427587865226597">Nur Duplexdruck</translation> @@ -3365,6 +3348,9 @@ <translation id="5951418260805607969">Benachrichtigung anzeigen, wenn nur wenig Speicherplatz verfügbar ist</translation> <translation id="5961137303188584693">MAC-Adresse der im Gerät verbauten NIC</translation> <translation id="5966615072639944554">Erweiterungen, die die Remote Attestation API zur Bestätigung der Nutzeridentität verwenden dürfen</translation> +<translation id="5975765799383881158">Wenn die Richtlinie aktiviert oder nicht konfiguriert ist, können Nutzer über das Menü > „Hilfe“ > „Problem melden“ oder die entsprechende Tastenkombination Feedback an Google senden. + + Ist die Richtlinie deaktiviert, können Nutzer kein Feedback an Google senden.</translation> <translation id="5997543603646547632">Standardmäßig 24-Stunden-Uhr verwenden</translation> <translation id="5997846976342452720">Angeben, ob Plug-in-Suchfunktion deaktiviert werden soll (eingestellt)</translation> <translation id="5998198091336830580">Diese Richtlinie ist Teil der folgenden Atomic-Gruppe (nur Richtlinien aus der Quelle mit der höchsten Priorität in der Gruppe werden angewendet):</translation> @@ -3675,7 +3661,6 @@ Die Muster für diese Richtlinie dürfen allerdings keine "/path"- oder "@query"-Elemente enthalten. Muster, die "/path"- oder "@query"-Elemente enthalten, werden ignoriert.</translation> <translation id="6464074037294098618">"Automatisches Ausfüllen" für Adressen aktivieren</translation> <translation id="6467613372414922590">Hosts für natives Messaging, die ohne Berechtigung des Administrators installiert wurden, auf Nutzerebene zulassen</translation> -<translation id="6468980648680553776">Diese Richtlinie wurde eingestellt. Verwenden Sie stattdessen "RemoteAccessHostClientDomainList".</translation> <translation id="6473623140202114570">Hiermit wird die Liste der Domains konfiguriert, auf denen durch Safe Browsing keine Warnungen ausgelöst werden.</translation> <translation id="647698599569353771">Aktivieren von Nearby Share zulassen.</translation> <translation id="6485813825811798133">Wenn diese Richtlinie konfiguriert ist, können Sie eine Liste mit URL-Mustern erstellen, die angeben, welche Websites Nutzer nicht um Lesezugriff auf Dateien oder Verzeichnisse im Dateisystem des Host-Betriebssystems über die File System API bitten dürfen. @@ -3966,6 +3951,11 @@ Wenn die Richtlinie deaktiviert ist, wird stattdessen eine Fehlermeldung angezeigt,</translation> <translation id="6821268164692776674"><ph name="CLOUD_PRINT_NAME" />- und "In Google Drive speichern"-Ziele</translation> +<translation id="682408981080798691">Ist die Richtlinie aktiviert oder nicht konfiguriert, wird die Renderer-Codeintegrität aktiviert. + + Wird die Richtlinie deaktiviert, hat dies negative Auswirkungen auf die Sicherheit und Stabilität von <ph name="PRODUCT_NAME" />, da dann unbekannter und potenziell schädlicher Code in den Rendererprozessen von <ph name="PRODUCT_NAME" /> geladen werden kann. Die Richtlinie sollte nur deaktiviert werden, wenn Kompatibilitätsprobleme mit Drittanbieter-Software auftreten, die innerhalb der Rendererprozesse von <ph name="PRODUCT_NAME" /> ausgeführt werden muss. + + Hinweis: Weitere Informationen zu Prozessschutzrichtlinien finden Sie unter ( https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies ).</translation> <translation id="6833023569065717572">Wenn die Richtlinie auf "True" gesetzt ist, wird auf dem Gerät das 24-Stunden-Uhrzeitformat verwendet. Wird die Richtlinie auf "False" gesetzt, dann wird auf dem Gerät das 12-Stunden-Uhrzeitformat verwendet. @@ -4511,17 +4501,6 @@ <translation id="747014869399137701">Wenn die Richtlinie auf "1" gesetzt ist, können Websites Desktop-Benachrichtigungen anzeigen. Wenn die Richtlinie auf "2" gesetzt ist, werden Desktop-Benachrichtigungen blockiert. Wenn sie nicht konfiguriert ist, gilt die Richtlinie <ph name="ASK_NOTIFICATIONS_POLICY_NAME" />, aber Nutzer können diese Einstellung ändern.</translation> -<translation id="7471828226549672843">Standardmäßig werden die Nutzungsbedingungen bei der ersten Ausführung von CCT angezeigt. Wenn diese Richtlinie deaktiviert ist, wird das Dialogfeld mit den Nutzungsbedingungen weder bei der ersten Ausführung noch bei weiteren angezeigt. Wenn die Richtlinie aktiviert oder nicht konfiguriert ist, wird das Dialogfeld mit den Nutzungsbedingungen bei der ersten Ausführung angezeigt. Beachten Sie Folgendes: - - – Diese Richtlinie funktioniert nur bei vollständig verwalteten Android-Geräten, die von Unified Endpoint Management-Anbietern konfiguriert werden können. - - – Wenn die Richtlinie deaktiviert ist, hat die BrowserSignin-Richtlinie keine Auswirkungen. - - – Wenn die Richtlinie deaktiviert ist, werden keine Messwerte an den Server gesendet. - - – Wenn die Richtlinie deaktiviert ist, sind die Browserfunktionen eingeschränkt. - - – Wenn die Richtlinie deaktiviert ist, müssen Administratoren Endnutzer dieses Geräts darüber informieren.</translation> <translation id="747275827471712187">Auf diesen Websites das alte "<ph name="ATTRIBUTE_SAMESITE_NAME" />"-Verhalten für Cookies wiederherstellen</translation> <translation id="7476621944304431784">Wenn diese Einstellung aktiviert ist, können Nutzer WLAN-Konfigurationen zwischen <ph name="PRODUCT_OS_NAME" />-Gerät(en) und einem verbundenen Android-Smartphone synchronisieren. Damit die WLAN-Konfigurationen synchronisiert werden können, muss diese Funktion durch die Nutzer eingerichtet und explizit freigeschaltet werden. @@ -4557,15 +4536,6 @@ Ist die Richtlinie nicht konfiguriert, erkennt <ph name="IE_PRODUCT_NAME" /> den Pfad zur ausführbaren Datei von <ph name="PRODUCT_NAME" /> automatisch, wenn <ph name="PRODUCT_NAME" /> über Internet Explorer geöffnet wird. Hinweis: Wenn das Add-in "Unterstützung älterer Browser" für <ph name="IE_PRODUCT_NAME" /> nicht installiert ist, hat die Richtlinie keine Auswirkung.</translation> -<translation id="7506758875409719208">Mit dieser Richtlinie werden die erforderlichen Domainnamen der Clients für den Remotezugriff konfiguriert. Außerdem wird verhindert, dass Nutzer diese ändern. - - Wenn diese Einstellung aktiviert und für eine oder mehrere Domains konfiguriert ist, können nur Clients aus einer der angegebenen Domains eine Verbindung zum Host herstellen. - - Ist sie deaktiviert oder nicht konfiguriert oder ist eine leere Liste festgelegt, wird die Standardrichtlinie für den Verbindungstyp angewendet. Zu Zwecken der Remote-Unterstützung können Clients aus jeder beliebigen Domain eine Verbindung zum Host herstellen, bei einem stetigen Remotezugriff kann nur der Hosteigentümer eine Verbindung herstellen. - - Sofern vorhanden, wird "RemoteAccessHostClientDomain" mit dieser Einstellung überschrieben. - - Siehe auch "RemoteAccessHostDomainList".</translation> <translation id="7507131973617884092">Wenn die Richtlinie konfiguriert ist, wird für jeden der benannten Ursprünge in einer durch Kommas getrennten Liste ein eigener Prozess ausgeführt. Dabei werden auch durch Subdomains benannte Ursprünge isoliert. Wenn Sie z. B. https://example.com/ angeben, wird auch https://foo.example.com/ als Teil der Website https://example.com/ isoliert. Ist sie deaktiviert oder nicht konfiguriert, können Nutzer diese Einstellung ändern. @@ -5034,7 +5004,6 @@ Wenn der Ruhemodus aktiviert wird, kann separat konfiguriert werden, ob <ph name="PRODUCT_OS_NAME" /> den Bildschirm vorher sperren soll oder nicht.</translation> <translation id="8214600119442850823">Konfiguriert den Passwortmanager.</translation> -<translation id="8217516105848565518">Diese Richtlinie wurde eingestellt. Bitte verwenden Sie stattdessen "RemoteAccessHostDomainList".</translation> <translation id="8219777886736887686">Mit dieser Richtlinie wird festgelegt, welcher Befehl zum Öffnen von URLs in einem alternativen Browser verwendet werden soll. Die Richtlinie kann mit <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> oder einem Dateipfad konfiguriert werden. Wenn für die Richtlinie ein Dateipfad festgelegt ist, wird diese Datei als ausführbare Datei verwendet. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> und <ph name="EDGE_VALUE_PLACEHOLDER" /> sind nur unter <ph name="MS_WIN_NAME" /> verfügbar, <ph name="SAFARI_VALUE_PLACEHOLDER" /> nur unter <ph name="MS_WIN_NAME" /> und <ph name="MAC_OS_NAME" />. Ist die Richtlinie nicht konfiguriert, wird eine plattformspezifische Standardeinstellung verwendet: <ph name="IE_PRODUCT_NAME" /> für <ph name="MS_WIN_NAME" /> oder <ph name="SAFARI_PRODUCT_NAME" /> für <ph name="MAC_OS_NAME" />. Unter <ph name="LINUX_OS_NAME" /> wird kein alternativer Browser geöffnet.</translation>
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index dc82870..2eca219 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -189,6 +189,7 @@ Si habilitas esta configuración, SafeSearch en Búsqueda de Google y el modo restringido moderado en YouTube estarán activos siempre. Si inhabilitas esta configuración o no estableces un valor, no se aplicarán SafeSearch en la Búsqueda de Google ni el modo restringido moderado en YouTube.</translation> +<translation id="134745581157553029">Si estableces la política "DeviceArcDataSnapshotHours", se podrán tomar instantáneas de los datos de ARC. Además, se podrá definir que se actualicen de forma automática las instantáneas de los datos de ARC en los intervalos de tiempo definidos. Si se inicia un intervalo, se requiere que se actualice la instantánea de datos de ARC y ningún usuario accedió, no se notificará al usuario cuando se inicie la actualización. Si hay una sesión de usuario activa, el usuario verá la notificación de la IU. Este deberá aceptar el proceso para que se reinicie el dispositivo y se actualice la instantánea de los datos de ARC. Nota: Durante el proceso de actualización, no se podrá usar el dispositivo.</translation> <translation id="1353416417709895349">Inhabilita las revisiones de intercepción de DNS y las barras de información de "http://intranetsite/" para "quisiste decir".</translation> <translation id="1353985065430729216">Si estableces la política, podrás definir una lista de patrones de URL donde se especifiquen los sitios que pueden acceder a sensores, como los de movimiento o luz. @@ -422,7 +423,7 @@ Los patrones de URL deben tener un formato conforme a lo especificado en la política "<ph name="URL_BLOCKLIST_POLICY_NAME" />", documentada en https://www.chromium.org/administrators/url-blacklist-filter-format. </translation> <translation id="1645793986494086629">Esquema:</translation> -<translation id="1647558381546345298">Si estableces la política, se configurará el tamaño del almacenamiento en caché que use <ph name="PRODUCT_NAME" /> para guardar en el disco los archivos multimedia almacenados en caché, independientemente de que los usuarios hayan especificado o no la marca --media-cache-size. El valor especificado en esta política no establece un límite estricto, sino una sugerencia para el sistema de almacenamiento en caché. Se redondearán hacia arriba los valores que estén apenas unos megabytes por debajo. +<translation id="1647558381546345298">Si estableces la política, se configurará el tamaño del almacenamiento en caché que use <ph name="PRODUCT_NAME" /> para guardar en el disco los archivos multimedia almacenados en caché, independientemente de que los usuarios hayan especificado o no la marca --media-cache-size. El valor especificado en esta política no establece un límite estricto, sino una sugerencia para el sistema de almacenamiento en caché. Se podrían redondear hacia arriba los valores por debajo de un gigabyte según las necesidades del navegador. Si estableces la política en 0, se utilizará el tamaño predeterminado de almacenamiento en caché. Los usuarios no podrán cambiarlo. @@ -475,6 +476,7 @@ Si estableces la política, se especificarán las extensiones que se exceptúan de la lista de extensiones prohibidas. Si quieres prohibir todas las extensiones, usa el valor <ph name="ALL_EXTENSIONS" /> en <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />. Así, los usuarios solo podrán instalar las extensiones permitidas explícitamente. De forma predeterminada, se permiten todas las extensiones. Sin embargo, si prohibiste extensiones mediante una política, usa la lista de extensiones permitidas para cambiar esa política.</translation> <translation id="1781356041596378058">Esta política también controla el acceso a las Opciones para programador de Android. Si habilitas esta política, los usuarios no podrán acceder a las Opciones para programador. Si estableces esta política como falsa o no la estableces, los usuarios podrán acceder a las Opciones para programador al presionar siete veces el número de compilación en la app de Configuración de Android.</translation> +<translation id="1787790976045065845">Esta política solo tiene efecto cuando se establece la política <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> como <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> o <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />, y un usuario quien se autentica mediante una tarjeta inteligente quita esa tarjeta. Luego, esta política especificará el tiempo (expresado en segundos) durante el cual se muestra una notificación con la que se informa al usuario sobre la acción inminente. Esta notificación bloquea la pantalla. La acción ocurrirá solo cuando caduque esta notificación. El usuario puede impedir que ocurra la acción. Para hacerlo, este debe volver a insertar la tarjeta inteligente antes de que caduque la notificación. Si estableces esta política en cero, no se mostrará ninguna notificación y la acción ocurrirá de forma inmediata.</translation> <translation id="1793346220873697538">Desactiva la impresión con PIN de forma predeterminada</translation> <translation id="179694024208061102">Si habilitas esta política, <ph name="PRODUCT_NAME" /> intentará ejecutar algunas URL en un navegador alternativo, como <ph name="IE_PRODUCT_NAME" />. Esta función está configurada conforme a las políticas del grupo <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />. @@ -800,13 +802,6 @@ No se debe usar esta política para dispositivos utilizados por el público en general. Si estableces la política como verdadera o no la estableces, se fijará la notificación de advertencia de privacidad de la sesión de invitado administrada con inicio automático hasta que el usuario la descarte.</translation> -<translation id="228665601367357543">Te permite establecer una lista de patrones de URL que indiquen los sitios a los cuales se les otorga permiso automáticamente para acceder a un dispositivo USB con los ID del producto y del proveedor especificados. Para que la política sea válida, cada elemento de la lista debe tener los campos "devices" y "urls". Cada elemento del campo "devices" puede tener los campos "vendor_id" y "product_id". Si omites el campo "vendor_id", se creará una política que funcione con cualquier dispositivo. Si omites el campo "product_id", se creará una política que funcione con cualquier dispositivo que tenga el ID de proveedor especificado. Las políticas que tengan el campo "product_id", pero que no tengan el campo "vendor_id" no serán válidas. - - El modelo de permiso de USB utiliza la URL de solicitud y la URL de incorporación (del sitio de marco de nivel superior) para permitir que la URL de solicitud acceda al dispositivo USB. Es posible que la URL de solicitud difiera de la URL de incorporación cuando el sitio que solicita el permiso se carga en un iframe. Así, el campo "urls" puede incluir hasta 2 strings separadas por coma para especificar ambas URL. Si solo especificas una, se otorgará acceso a los dispositivos USB correspondientes cuando la URL del sitio que solicita el permiso coincida con la URL especificada, independientemente del estado de incorporación. Las URL incluidas en el campo "urls" deben ser válidas; de lo contrario, se ignorará la política. - - Si no estableces la política, se aplicará <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> (si se establece). De lo contrario, se aplicará la configuración personal del usuario. - - Los patrones de URL que se especifiquen en esta política no deben entrar en conflicto con los que se configuren a través de <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. Si ese es el caso, prevalecerá esta política por sobre <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> y <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Esta política controla el envío de los datos sobre la versión, como la arquitectura, la plataforma y la versión del SO, así como la versión de <ph name="PRODUCT_NAME" /> y el canal de <ph name="PRODUCT_NAME" />. Si no estableces la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o la inhabilitas, se ignorará. @@ -1006,6 +1001,15 @@ Si no estableces la política, no se mostrarán las Condiciones del Servicio. La política debe establecerse en una URL de la cual <ph name="PRODUCT_OS_NAME" /> pueda descargar las Condiciones del Servicio. Estas deberán estar en texto sin formato y ofrecerse como texto sin formato tipo MIME. No se puede incluir lenguaje de marcado.</translation> +<translation id="2500699707048942472">La función de envío automático de PIN cambia la manera en la que se ingresan los PIN en el Sistema operativo Chrome. + En lugar de mostrar el mismo campo de texto que se utiliza para ingresar contraseñas, esta + función mostrará una IU especial que le indicará al usuario con claridad la cantidad de + dígitos necesarios para el PIN. Como resultado, la longitud del PIN del usuario + se almacenará por fuera de los datos encriptados del usuario. Solo admite PIN que tengan + entre 6 y 12 dígitos. + + Si estableces esta política como falsa, los usuarios no podrán habilitar + la función en la página Configuración.</translation> <translation id="2502467045153796624">Comportamiento del cambio a una versión inferior del canal</translation> <translation id="250670737672448119">Habilita la función de accesibilidad de resaltar el signo de intercalación. @@ -1336,7 +1340,7 @@ Si no la estableces (o determinas una URL no válida), <ph name="PRODUCT_NAME" /> no utilizará la política como fuente de reglas para cambiar de navegador. Nota: Esta política redirecciona a un archivo XML en el mismo formato que la política <ph name="IEEM_SITELIST_POLICY" /> de <ph name="IE_PRODUCT_NAME" />. De esta manera, se cargan reglas de un archivo XML sin la necesidad de compartirlas con <ph name="IE_PRODUCT_NAME" />. Obtén más información sobre la política <ph name="IEEM_SITELIST_POLICY" /> de <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> -<translation id="2949765875529121431">Si estableces la política, se especificará una lista de nombres de host que están exentos de la revisión de la política de HSTS que podrían actualizar solicitudes de HTTP a HTTPS. En esta política, solo se permiten nombres de host con una sola etiqueta. Los nombres de host deben estar canonicalizados: debe convertirse cualquier IDN a su formato de etiqueta A y todas las letras en formato ASCII deben estar en minúscula. Esta política solo se aplica a los nombres de host específicos de la lista; no se aplica a los subdominios de estos nombres.</translation> +<translation id="2949765875529121431">Si estableces la política, se especificará una lista de nombres de host que están exentos de la verificación de la política de HSTS, que podría cambiar las solicitudes de HTTP a HTTPS. En esta política, solo se permiten nombres de host con una sola etiqueta. Los nombres de host deben estar canonicalizados: debe convertirse cualquier IDN a su formato de etiqueta A y todas las letras en formato ASCII deben estar en minúscula. Esta política solo se aplica a los nombres de host específicos de la lista; no se aplica a los subdominios de estos nombres.</translation> <translation id="2952347049958405264">Restricciones:</translation> <translation id="2957047180944828740">Especifica si se permite que los sitios web no seguros envíen solicitudes a extremos de red más privados</translation> <translation id="2957506574938329824">No permitir que ningún sitio solicite acceso a dispositivos Bluetooth mediante la API de Bluetooth web</translation> @@ -1531,11 +1535,6 @@ * 4, se actualizará el firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" /> después de la inscripción, antes de que el usuario acceda. Si no estableces la política, no estará disponible la actualización del firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" />.</translation> -<translation id="3235677869770186098">Si estableces la política, podrás definir una lista de los patrones de URL que indiquen los sitios a los cuales se les otorga permiso automáticamente para acceder a un dispositivo USB con los ID del producto y del proveedor especificados en la pantalla de acceso. Para que la política sea válida, cada elemento de la lista debe tener los campos "devices" y "urls". Cada elemento del campo "devices" puede tener los campos "vendor_id" y "product_id". Si omites el campo "vendor_id", se creará una política que funcione con cualquier dispositivo. Si omites el campo "product_id", se creará una política que funcione con cualquier dispositivo que tenga el ID de proveedor especificado. Las políticas que tengan el campo "product_id", pero que no tengan el campo "vendor_id" no serán válidas. - - El modelo de permisos de USB utiliza las URL de incorporación y solicitud para permitir que la URL de solicitud acceda al dispositivo USB. Esa URL puede no ser la misma que la de incorporación cuando se carga el sitio que solicita permiso en un iframe. Por lo tanto, el campo de las URL puede incluir hasta 2 strings separadas por coma para especificar las URL de incorporación y solicitud respectivamente. Si solo se especifica una URL, se otorgará el acceso a los dispositivos USB correspondientes cuando la URL del sitio que lo solicita coincida con esta URL más allá del estado de incorporación. Las URL deben ser válidas; de lo contrario, se ignorará la política. - - Si no estableces la política, se usará el valor predeterminado general para todos los sitios (sin acceso automático).</translation> <translation id="3236046242843493070">Patrones de URL desde los que se pueden instalar secuencias de comandos de usuario, aplicaciones y extensiones</translation> <translation id="3240609035816615922">Política de acceso para la configuración de las impresoras</translation> <translation id="324062325008698789">Configura una lista de impresoras</translation> @@ -1848,7 +1847,6 @@ <translation id="3631099945620529777">Si se configura como falsa, se inhabilitará el botón "Finalizar proceso" en el Administrador de tareas. Si se configura como verdadera o no se configura, el usuario podrá finalizar procesos en el Administrador de tareas.</translation> -<translation id="3639444551396586995">Permite a Chrome informar a Google de eventos no seguros</translation> <translation id="3643284063603988867">Habilita la función "Recordar contraseña"</translation> <translation id="3646859102161347133">Establece el tipo de lupa.</translation> <translation id="3647212518036289905">Si estableces la política, esta especificará qué biblioteca GSSAPI se debe usar para la autenticación HTTP. Puedes establecerla asignándole un nombre de biblioteca o una ruta completa. @@ -1868,13 +1866,6 @@ La inscripción en la política de nube para el alcance de máquinas usa esta política en el escritorio. Se puede configurar mediante el registro o GPO en Windows, plist en Mac y el archivo de políticas JSON en Linux.</translation> <translation id="3660562134618097814">Transferir cookies del IdP de SAML durante el acceso</translation> -<translation id="3669373349666208904">Si estableces la política como verdadera, las páginas podrán mostrar ventanas emergentes mientras se descargan. - - Si estableces la política como falsa o no la estableces, las páginas no podrán mostrar ventanas emergentes mientras se descargan. - - Se quitará esta política en Chrome 88. - - Consulta https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Si habilitas la política, se establecerá la página Nueva pestaña como la página principal del usuario y se ignorarán las demás URL de página principal. Si inhabilitas la política, la página principal no será la página Nueva pestaña, a menos que se establezca chrome://newtab como la URL de la página principal del usuario. Si estableces la política, los usuarios no podrán cambiar la página principal en <ph name="PRODUCT_NAME" />. Si no la estableces, el usuario decidirá si la página Nueva pestaña es la página principal. @@ -2113,15 +2104,6 @@ <translation id="4020682745012723568">Las apps de Android no pueden acceder a las cookies transferidas al perfil del usuario.</translation> <translation id="402759845255257575">No permitir que los sitios ejecuten JavaScript.</translation> <translation id="4027608872760987929">Habilitar el proveedor de búsqueda predeterminado</translation> -<translation id="4044054366426171256">Configura los nombres de dominios de host obligatorios que se aplicarán en los hosts de acceso remoto y evita que los usuarios los cambien. - - Si se habilita esta configuración y se establece en uno o más dominios, los hosts solo podrán compartirse mediante cuentas registradas en uno de los nombres de dominio especificados. - - Si se inhabilita esta configuración, no se establece o se establece como una lista vacía, podrán compartirse los hosts mediante una cuenta. - - Esta configuración anulará RemoteAccessHostDomain, si se aplica. - - Consulta también RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">Inhabilitar el protocolo SPDY</translation> <translation id="4061590579642538878">Proporciona datos sobre los informes de fallas</translation> <translation id="4075675819066819571">Ubicar la biblioteca en el lado izquierdo de la pantalla</translation> @@ -2577,10 +2559,6 @@ <translation id="4874982543810021567">Bloquea WebUSB en estos sitios</translation> <translation id="4876805738539874299">Versión de SSL máxima habilitada</translation> <translation id="4887274746092315609">Habilita una página para cambiar la contraseña dentro de la sesión para usuarios de SAML</translation> -<translation id="4887863670424903990">Si se habilita esta política, <ph name="PRODUCT_NAME" /> informará a Google de eventos no seguros para que se analicen, como la reutilización de contraseñas, las descargas de software malicioso, pantallas intersticiales o el incumplimiento de las normas relacionadas con la protección de datos sensibles. Algunos eventos no seguros, como el incumplimiento de las normas relacionadas con la protección de datos sensibles, dependen de otras políticas que posibilitan esas comprobaciones. - - Si se inhabilita esta política o no se establece, <ph name="PRODUCT_NAME" /> no informará eventos no seguros. - </translation> <translation id="4894290482695457375">A menos que inhabilites <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" />, si habilitas <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" />, se conectará <ph name="PRODUCT_NAME" /> a dispositivos Cast en todas las direcciones IP, no solo en las direcciones privadas RFC1918/RFC4193. Si inhabilitas la política, se conectará <ph name="PRODUCT_NAME" /> a dispositivos Cast solo en las direcciones RFC1918/RFC4193. @@ -3360,9 +3338,6 @@ La configuración de esta política no afecta a los clientes de acceso remoto. Ellos siempre utilizarán "chromoting-client.talkgadget.google.com" para acceder a TalkGadget.</translation> <translation id="5890063326284543943">Controla el uso de la API de Serial</translation> -<translation id="5893553533827140852">Si esta opción está habilitada, las solicitudes de autenticación gnubby se representarán a través de una conexión de host remota. - - Si esta opción está inhabilitada o no está configurada, no se representarán solicitudes de autenticación gnubby.</translation> <translation id="5897913798715600338">Usar la tecnología de carga rápida para la batería</translation> <translation id="5898486742390981550">Cuando varios usuarios accedieron a sus cuentas, solo el usuario principal puede usar las apps de Android.</translation> <translation id="5901427587865226597">Solo impresión doble</translation> @@ -3707,7 +3682,6 @@ Sin embargo, los patrones de coincidencia de orígenes para esta política no pueden incluir los elementos "/path" o "@query". Se ignorará cualquier patrón que contenga alguno de estos elementos.</translation> <translation id="6464074037294098618">Habilitar "Autocompletar" para las direcciones</translation> <translation id="6467613372414922590">Permite el uso de hosts de mensajería nativa en el nivel de usuario (instalados sin permisos de administrador).</translation> -<translation id="6468980648680553776">Esta política es obsoleta. Usa la política RemoteAccessHostClientDomainList en su lugar.</translation> <translation id="6473623140202114570">Configura la lista de dominios donde la Navegación segura no activa advertencias.</translation> <translation id="647698599569353771">Permite habilitar Compartir con Nearby.</translation> <translation id="6485813825811798133">Si estableces la política, podrás definir una lista de patrones de URL donde se especifiquen los sitios que no pueden pedirle a los usuarios, mediante la API de File System, acceso de lectura a los archivos o directorios que se encuentren en el sistema de archivos del sistema operativo del host. @@ -3999,7 +3973,7 @@ Si inhabilitas la política, se mostrará un mensaje de error en lugar de la solicitud de configuración de red.</translation> <translation id="6821268164692776674">Destinos <ph name="CLOUD_PRINT_NAME" /> y "Guardar en Google Drive"</translation> -<translation id="682408981080798691">Si habilitas la política o no la estableces, se activará la integridad del código del renderizador. +<translation id="682408981080798691">Si habilitas la política o no la estableces, se activará la Integridad del código del renderizador. Si la inhabilitas, se reducirá la estabilidad y la seguridad de <ph name="PRODUCT_NAME" />, ya que se permitirá cargar código desconocido y potencialmente hostil en los procesos del renderizador de <ph name="PRODUCT_NAME" />. Desactiva la política solo si hay problemas de compatibilidad con software de terceros que deba ejecutarse en los procesos del renderizador de <ph name="PRODUCT_NAME" />. @@ -4547,17 +4521,6 @@ <translation id="747014869399137701">Si estableces la política en 1, los sitios web podrán mostrar notificaciones de escritorio. Si la estableces en 2, se rechazarán las notificaciones de escritorio. Si no la estableces, se aplicará la política <ph name="ASK_NOTIFICATIONS_POLICY_NAME" />, pero los usuarios podrán cambiar esta configuración.</translation> -<translation id="7471828226549672843">De forma predeterminada, se muestran las Condiciones del Servicio cuando se ejecuta CCT por primera vez. Si inhabilitas esta política, no se mostrará el diálogo de las Condiciones del Servicio en la primera ejecución ni en las subsiguientes. Si la habilitas o no la estableces, se mostrará el diálogo de las Condiciones del Servicio en la primera ejecución. Ten en cuenta las siguientes salvedades: - - - Esta política solo funciona en dispositivos Android completamente administrados que pueden ser configurados por proveedores de administración unificada de extremos (UEM). - - - Si inhabilitas esta política, la política BrowserSignin no tendrá ningún efecto. - - - Si inhabilitas esta política, no se enviarán métricas al servidor. - - - Si inhabilitas esta política, las funciones del navegador estarán limitadas. - - - Si inhabilitas esta política, los administradores deberán comunicárselo a los usuarios finales del dispositivo.</translation> <translation id="747275827471712187">Revierte el comportamiento de las cookies en estos sitios conforme al atributo heredado <ph name="ATTRIBUTE_SAMESITE_NAME" /></translation> <translation id="7476621944304431784">Si habilitas esta configuración, los usuarios podrán sincronizar los ajustes de la red Wi-Fi entre sus dispositivos con <ph name="PRODUCT_OS_NAME" /> y un teléfono Android conectado. Para poder sincronizar los ajustes de la red Wi-Fi, los usuarios deben habilitar esta función de forma explícita completando un flujo de configuración. @@ -4594,15 +4557,6 @@ Si no estableces la política, <ph name="IE_PRODUCT_NAME" /> detectará la propia ruta ejecutable de <ph name="PRODUCT_NAME" /> de forma automática cuando se ejecuta <ph name="PRODUCT_NAME" /> desde Internet Explorer. Nota: Si no está instalado el complemento de Compatibilidad con navegadores heredados para <ph name="IE_PRODUCT_NAME" />, esta política no tendrá ningún efecto.</translation> -<translation id="7506758875409719208">Configura los nombres de dominio de cliente obligatorios que se aplicarán en los clientes de acceso remoto y evita que los usuarios los cambien. - - Si se habilita esta configuración y se establece en uno o más dominios, solo los clientes de uno de los dominios especificados podrán conectarse al host. - - Si se inhabilita esta configuración, no se establece o se establece como una lista vacía, se aplicará la política predeterminada para el tipo de conexión. Para la asistencia remota, esta política permite que los clientes de cualquier dominio se conecten al host. Solo el propietario del host puede conectarse para acceder de forma remota en cualquier momento. - - Esta configuración anulará RemoteAccessHostClientDomain, si se aplica. - - Consulta también RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Si estableces la política, se ejecutarán en su propios procesos los orígenes designados en una lista de elementos separados por comas. Además, se aislarán los orígenes designados a partir de subdominios. Por ejemplo, si especificas https://example.com/, también se aislará https://foo.example.com/ como parte del sitio https://example.com/. Si la inhabilitas o no la estableces, los usuarios podrán cambiar esta configuración. @@ -5074,7 +5028,6 @@ Si la acción es la suspensión, se podrá configurar <ph name="PRODUCT_OS_NAME" /> por separado para que la pantalla se bloquee o no antes de la suspensión.</translation> <translation id="8214600119442850823">Configura el administrador de contraseñas.</translation> -<translation id="8217516105848565518">Esta política es obsoleta. Usa la política RemoteAccessHostDomainList en su lugar.</translation> <translation id="8219777886736887686">Si la estableces, esta política controla el comando que se utilizará para abrir las URL en un navegador alternativo. La política puede establecerse para que las URL se abran en <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> o una ruta de archivos. Si la estableces para que las URL se abran en una ruta de archivos, el archivo se usará como ejecutable. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> y <ph name="EDGE_VALUE_PLACEHOLDER" /> solo están disponibles en <ph name="MS_WIN_NAME" />, y <ph name="SAFARI_VALUE_PLACEHOLDER" /> solo está disponible en <ph name="MS_WIN_NAME" /> y <ph name="MAC_OS_NAME" />. Si no estableces la política, se utilizará el valor predeterminado de la plataforma: <ph name="IE_PRODUCT_NAME" /> para <ph name="MS_WIN_NAME" /> o <ph name="SAFARI_PRODUCT_NAME" /> para <ph name="MAC_OS_NAME" />. En <ph name="LINUX_OS_NAME" />, se producirá un error al intentar ejecutar un navegador alternativo.</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index fb7874c..ca5483f 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -189,6 +189,7 @@ Si habilitas esta opción, la función Búsqueda Segura estará siempre activa en la Búsqueda de Google y el modo restringido moderado lo estará en YouTube. Si inhabilitas esta opción o si no se le asigna ningún valor, la función Búsqueda Segura no se aplicará en la Búsqueda de Google ni se aplicará el modo en YouTube.</translation> +<translation id="134745581157553029">Si se establece la política DeviceArcDataSnapshotHours, se activa el mecanismo de vista general de datos de ARC. Además, se puede iniciar automáticamente la actualización de la vista general de datos de ARC durante los intervalos de tiempo definidos. Cuando comienza un intervalo, si se necesita una actualización de vista general de datos de ARC y ningún usuario ha iniciado sesión, se inicia el proceso de actualización de la vista general de los datos de ARC sin notificar al usuario. Si la sesión del usuario está activa, se muestra la notificación en la UI, que se tiene que aceptar para poder reiniciar el dispositivo e iniciar el proceso de actualización de los datos de ARC. Nota: El uso del dispositivo se bloquea durante el proceso de actualización de la vista general de los datos de ARC.</translation> <translation id="1353416417709895349">Inhabilitar las comprobaciones de interceptación de DNS y las barras de información aclaratorias "http://intranetsite/".</translation> <translation id="1353985065430729216">Si estableces esta política, podrás definir una lista de patrones de URL donde se especifiquen los sitios web que pueden acceder a los sensores, como los de luz o movimiento. @@ -474,6 +475,7 @@ Si se define esta política, se especificará qué extensiones están exentas de la lista de extensiones prohibidas. En <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />, usa el valor <ph name="ALL_EXTENSIONS" /> para prohibir todas las extensiones. De ese modo, los usuarios solo podrán instalar extensiones que estén permitidas de forma explícita. De forma predeterminada, se permiten todas las extensiones. Sin embargo, si has prohibido las extensiones mediante una política, usa la lista de extensiones permitidas para cambiar esa política.</translation> <translation id="1781356041596378058">Esta política también controla el acceso a las Opciones para Desarrolladores de Android. Si se asigna el valor true a esta política, los usuarios no podrán acceder a las Opciones para Desarrolladores. Si se le asigna el valor false o no se configura, los usuarios podrán tocar siete veces el número de compilación en la aplicación Ajustes de Android para acceder a esas opciones.</translation> +<translation id="1787790976045065845">Esta política solo tiene validez si se le asigna el valor <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> o <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> a la política <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> y un usuario que se autentica mediante una tarjeta inteligente quita dicha tarjeta. Esta política especifica durante cuántos segundos se muestra una notificación que informa al usuario de la acción que tendrá lugar a continuación. La notificación bloquea la pantalla. La acción solo se realizará una vez que caduque la notificación. El usuario puede impedir que se produzca la acción volviendo a insertar la tarjeta inteligente antes de que caduque la notificación. Si se le asigna el valor cero a esta política, no se mostrará ninguna notificación y la acción ocurrirá inmediatamente.</translation> <translation id="1793346220873697538">Inhabilitar la impresión con PIN de forma predeterminada</translation> <translation id="179694024208061102">Si se asigna el valor "Habilitada" a esta política, <ph name="PRODUCT_NAME" /> intentará abrir algunas URL en un navegador alternativo, como <ph name="IE_PRODUCT_NAME" />. Esta función se configura a través de las políticas del grupo de <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />. @@ -804,13 +806,6 @@ Esta política no debería aplicarse en dispositivos utilizados por el público general. Si se le asigna el valor "True" o no se le asigna ningún valor, la notificación de advertencia de privacidad en la sesión de invitado administrada e iniciada automáticamente quedará fijada hasta que el usuario la cierre.</translation> -<translation id="228665601367357543">Te permite establecer una lista con patrones de URL donde se especifique qué sitios web obtienen permiso para acceder a un dispositivo USB automáticamente con los ID de proveedor y producto determinados. Cada elemento de la lista debe contener un campo "devices" y un campo "urls" para que la política sea válida. Cada elemento del campo "devices" puede incluir un campo "vendor_id" y un campo "product_id". Si se omite el campo "vendor_id", se creará una política para cualquier dispositivo. Si se omite el campo "product_id", se creará una política para cualquier dispositivo con el ID de proveedor proporcionado. Las políticas que tengan un campo "product_id" pero que no tengan un campo "vendor_id" no son válidas. - - El modelo de permisos USB usa la URL solicitante y la URL de inserción (del sitio web marco de nivel superior) para permitir a la URL solicitante que acceda al dispositivo USB. La URL solicitante puede ser distinta a la de inserción si el sitio web solicitante se carga en un iframe. Por lo tanto, el campo "urls" puede contener un máximo de 2 cadenas delimitadas por una coma para especificar estas URL. Si solo especificas una, se otorgará acceso a los dispositivos USB correspondientes cuando la URL del sitio web solicitante coincida con esta URL, independientemente del estado de inserción. Las URL del campo "urls" deben ser URL válidas. De lo contrario, la política se ignorará. - - Si no se le asigna un valor a la política, se aplicará <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> si se ha definido previamente. Si no, se aplicará la configuración personal del usuario. - - Los patrones de URL de esta política no deben entrar en conflicto con los de la política <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. Si lo hacen, esta política prevalece sobre <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> y <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Esta política determina si se recoge información de versiones, como la versión, la plataforma o la arquitectura del SO, la versión de <ph name="PRODUCT_NAME" /> y el canal de <ph name="PRODUCT_NAME" />. Si no se establece la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o se inhabilita, esta se ignorará. @@ -1010,6 +1005,15 @@ Si no se establece la política, los Términos del Servicio no aparecerán. La política debe establecerse especificando la URL desde la que <ph name="PRODUCT_OS_NAME" /> puede descargar los Términos del Servicio. Los Términos del Servicio deben estar en texto sin formato y publicarse con el tipo de MIME "text/plain". No se permiten etiquetas.</translation> +<translation id="2500699707048942472">La función de introducir PINs automáticamente cambia la forma en la que se introducen los PIN en Chrome OS. + 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 + dígitos necesita el PIN. Por lo tanto, la longitud del PIN del usuario + se almacenará fuera de los datos cifrados del usuario. Solo es compatible con los PIN + que tienen de 6 a 12 dígitos. + + Si se asigna el valor "false" a esta política, los usuarios no podrán habilitar + esta función en la página de configuración.</translation> <translation id="2502467045153796624">Comportamiento del cambio a una versión inferior</translation> <translation id="250670737672448119">Habilita la función de accesibilidad de resaltado del símbolo de intercalación de texto. @@ -1536,11 +1540,6 @@ * 4, el firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" /> se actualizará tras el registro, antes del inicio de sesión del usuario. Si no se define esta política, la actualización de firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" /> no estará disponible.</translation> -<translation id="3235677869770186098">Habilitar esta política te permite añadir una lista con patrones de URL que especifica qué sitios web obtendrán permiso automáticamente para acceder a un dispositivo USB con el ID de proveedor y de producto establecidos en la pantalla de inicio de sesión. Para que la política sea válida, cada elemento de la lista debe tener los campos "devices" y "urls". Cada elemento del campo "devices" puede tener un campo "vendor_id" y un campo "product_id". Si se omite el campo "vendor_id", se creará una política que incluirá cualquier dispositivo. Si se omite el campo "product_id", se creará una política que incluirá cualquier dispositivo con el ID de proveedor establecido. Una política con campo "product_id", pero sin campo "vendor_id", no es válida. - - El modelo de permisos USB usa la URL solicitante y la de inserción para permitir a la primera acceder al dispositivo USB. La URL solicitante puede ser distinta a la de inserción si el sitio web solicitante está en un iframe. Por tanto, el campo "urls" puede tener hasta 2 cadenas de URL separadas por una coma para especificar la URL solicitante y la de inserción (en este orden). Si solo se especifica una URL, se otorgará acceso a los dispositivos USB correspondientes cuando la URL del sitio web solicitante coincida con esa URL, independientemente del estado de inserción. Las URL deben ser válidas; si no, se ignorará la política. - - Si no se establece esta política, se usará el valor predeterminado global para todos los sitios web (sin acceso automático).</translation> <translation id="3236046242843493070">Patrones de URL desde los que se puede instalar secuencias de comandos de usuario, aplicaciones y extensiones</translation> <translation id="3240609035816615922">Política de acceso a la configuración de impresoras.</translation> <translation id="324062325008698789">Configura una lista de impresoras.</translation> @@ -1856,7 +1855,6 @@ <translation id="3631099945620529777">Si se asigna el valor "False" a esta política, se inhabilita el botón Finalizar proceso en el administrador de tareas. Si se le asigna el valor "True" o no se configura, el usuario puede finalizar procesos en el administrador de tareas.</translation> -<translation id="3639444551396586995">Permite a Chrome informar de eventos inseguros a Google</translation> <translation id="3643284063603988867">Habilitar la función "Recordar contraseña"</translation> <translation id="3646859102161347133">Establecer el tipo de lupa</translation> <translation id="3647212518036289905">Si se define esta política, especificará qué biblioteca GSSAPI se debe usar para la autenticación HTTP. Puedes definirla como un nombre de biblioteca o una ruta completa. @@ -1876,13 +1874,6 @@ El registro automático de políticas de permisos de nube utiliza esta política en el escritorio y se puede configurar mediante el registro o el GPO en Windows, mediante plist en Mac y mediante el archivo de políticas JSON en Linux.</translation> <translation id="3660562134618097814">Transferir las cookies del proveedor de identidad SAML durante el inicio de sesión</translation> -<translation id="3669373349666208904">Si se asigna el valor "Verdadero" a esta política, las páginas podrán mostrar ventanas emergentes mientras se descargan. - - Si se le asigna el valor "Falso" o no se le asigna ningún valor, las páginas no podrán mostrar ventanas emergentes mientras se descargan. - - Esta política se eliminará de la versión 88 de Chrome. - - Visita https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Si se habilita esta política, se establecerá la página Nueva pestaña como la página principal del usuario, independientemente de la ubicación de la URL de la página principal. Si se inhabilita esta política, la página principal del usuario nunca será la página Nueva pestaña, a menos que se defina chrome://newtab como la URL de su página principal. Si se le asigna un valor a esta política, los usuarios no podrán cambiar su tipo de página principal en <ph name="PRODUCT_NAME" />. Si no se le asigna ningún valor, los usuarios podrán elegir si quieren establecer la página Nueva pestaña como su página principal. @@ -2121,15 +2112,6 @@ <translation id="4020682745012723568">Las aplicaciones para Android no pueden acceder a las cookies transferidas al perfil del usuario.</translation> <translation id="402759845255257575">No permitir que ningún sitio ejecute JavaScript</translation> <translation id="4027608872760987929">Habilitar proveedor de búsquedas predeterminadas</translation> -<translation id="4044054366426171256">Permite configurar los nombres de dominio del host obligatorios que se aplicarán a los hosts de acceso remoto e impide que los usuarios los modifiquen. - - Si se habilita esta opción y se le asignan uno o más dominios, los hosts solo se podrán compartir con cuentas registradas en uno de los nombres de dominio especificados. - - Si se inhabilita esta opción, no se establece o se le asigna una lista vacía, los hosts se podrán compartir con cualquier cuenta. - - Esta opción anulará RemoteAccessHostDomain (si está presente). - - Consulta también RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">Inhabilitar protocolo SPDY</translation> <translation id="4061590579642538878">Proporcionar información de informes sobre fallos</translation> <translation id="4075675819066819571">Colocar la estantería en la parte izquierda de la pantalla</translation> @@ -2585,10 +2567,6 @@ <translation id="4874982543810021567">Bloquear WebUSB en estos sitios web</translation> <translation id="4876805738539874299">Versión máxima de SSL habilitada</translation> <translation id="4887274746092315609">Habilita una página para cambiar la contraseña dentro de la sesión para usuarios de SAML</translation> -<translation id="4887863670424903990">Si se habilita esta política, <ph name="PRODUCT_NAME" /> informará a Google sobre los eventos no seguros que se detecten (como la reutilización de contraseñas, las descargas de software malicioso, los intersticiales, la infracción de las normas de protección de datos sensibles, etc.) para que se analicen. Algunos eventos no seguros, como la infracción de las normas de protección de datos sensibles, dependen de otras políticas que habilitan esas comprobaciones. - - Si no se define esta política o se inhabilita, <ph name="PRODUCT_NAME" /> no informará sobre los eventos no seguros. - </translation> <translation id="4894290482695457375">A no ser que se le asigne el valor "Inhabilitada" a la política <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" />, si se le asigna el valor "Habilitada" a <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" />,<ph name="PRODUCT_NAME" /> se conectará con todos los dispositivos de emisión de todas las direcciones IP, no solo con las direcciones privadas de RFC 1918 o RFC 4193. Si se le asigna el valor "Inhabilitada", <ph name="PRODUCT_NAME" /> solo se conectará con dispositivos de emisión en direcciones de RFC 1918 o RFC 4193. @@ -3378,9 +3356,6 @@ La configuración de esta política no afecta a los clientes de acceso remoto, ya que siempre utilizan "chromoting-client.talkgadget.google.com" para acceder a TalkGadget.</translation> <translation id="5890063326284543943">Controlar el uso de la API Serial</translation> -<translation id="5893553533827140852">Si esta opción está habilitada, las solicitudes de autenticación gnubby se representarán a través de una conexión de host remota. - - Si esta opción está inhabilitada o no está configurada, no se representarán solicitudes de autenticación gnubby.</translation> <translation id="5897913798715600338">Carga la batería usando la tecnología de carga rápida.</translation> <translation id="5898486742390981550">Si varios usuarios han iniciado sesión, solo podrá utilizar las aplicaciones para Android el usuario principal.</translation> <translation id="5901427587865226597">Solo impresión por las dos caras</translation> @@ -3725,7 +3700,6 @@ Sin embargo, los patrones de esta política que coinciden con el origen no pueden contener los elementos /path ni @query. Se ignorarán todos los patrones que contengan un elemento /path o @query.</translation> <translation id="6464074037294098618">Habilitar la función Autocompletar para direcciones</translation> <translation id="6467613372414922590">Permitir hosts de mensajes nativos en el nivel de usuario (instalados sin permisos de administrador)</translation> -<translation id="6468980648680553776">Esta política está obsoleta. Sustitúyela por la política RemoteAccessHostClientDomainList.</translation> <translation id="6473623140202114570">Configura la lista de dominios en los que la Navegación segura no activará advertencias.</translation> <translation id="647698599569353771">Permite habilitar Compartir con Nearby.</translation> <translation id="6485813825811798133">Si se establece esta política, podrás definir una lista de patrones de URL donde se especifique qué sitios web no pueden pedir a los usuarios que les otorguen acceso de lectura a archivos o directorios del sistema de archivos del sistema operativo del host a través de la API File System. @@ -4569,17 +4543,6 @@ <translation id="747014869399137701">Si se asigna el valor 1 a esta política, los sitios web podrán mostrar notificaciones de escritorio. Si se le asigna el valor 2, se denegarán las notificaciones de escritorio. Si no se le asigna ningún valor, se aplicará la política <ph name="ASK_NOTIFICATIONS_POLICY_NAME" />, pero los usuarios podrán cambiar esta opción.</translation> -<translation id="7471828226549672843">De forma predeterminada, se mostrarán los Términos del Servicio la primera vez que se ejecute CCT. Si se asigna el valor "Inhabilitada" a esta política, no se mostrará el cuadro de diálogo de Términos del Servicio la primera vez que se ejecute ni posteriormente. Si se le asigna el valor "Habilitada" o no se le asigna ninguno, se mostrará el cuadro de diálogo de Términos del Servicio la primera vez que se ejecute. A continuación se describen otras advertencias: - - - Esta política solo funciona en dispositivos Android totalmente gestionados que puedan configurar los proveedores de Unified Endpoint Management (gestión unificada de terminales). - - - Si se inhabilita esta política, la política BrowserSignin no tendrá ningún efecto. - - - Si se inhabilita esta política, no se enviarán métricas al servidor. - - - Si se inhabilita esta política, las funciones del navegador estarán limitadas. - - - Si se inhabilita esta política, los administradores deberán comunicárselo a los usuarios finales del dispositivo.</translation> <translation id="747275827471712187">Volver a la configuración antigua de comportamiento de cookies de <ph name="ATTRIBUTE_SAMESITE_NAME" /> en estos sitios web</translation> <translation id="7476621944304431784">Si se habilita esta opción, los usuarios podrán sincronizar las configuraciones de la red Wi‑Fi en sus dispositivos <ph name="PRODUCT_OS_NAME" /> y en un teléfono Android conectado. Para poder sincronizar las configuraciones de la red Wi‑Fi, los usuarios deben aceptar explícitamente esta función completando un proceso de configuración. @@ -4616,15 +4579,6 @@ Si no se asigna ningún valor a esta política, <ph name="IE_PRODUCT_NAME" /> detectará automáticamente la ruta ejecutable de <ph name="PRODUCT_NAME" /> al iniciar <ph name="PRODUCT_NAME" /> desde Internet Explorer. Nota: Si no está instalado el complemento de compatibilidad con navegadores antiguos en <ph name="IE_PRODUCT_NAME" />, esta política no tendrá efecto.</translation> -<translation id="7506758875409719208">Permite configurar los nombres de dominio de cliente obligatorios que se aplicarán a los clientes de acceso remoto e impide que los usuarios los modifiquen. - - Si se habilita esta opción y se le asignan uno o más dominios, solo se podrán conectar al host los clientes de uno de los dominios especificados. - - Si se inhabilita esta opción, no se establece o se le asigna una lista vacía, se aplicará la política predeterminada para el tipo de conexión. Para la asistencia remota, esta opción permite que los clientes de cualquier dominio puedan conectarse al host. En el caso del acceso remoto en cualquier momento, solo puede conectarse el propietario del host. - - Está opción anulará RemoteAccessHostClientDomain si está presente. - - Consulta también RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Si se define esta política, cada uno de los orígenes especificados en una lista de elementos separados por comas se ejecutará en un proceso propio y se aislarán los orígenes de los subdominios correspondientes. Por ejemplo, especificar https://example.com/ aísla https://foo.example.com/ como parte del sitio web https://example.com/. Si se desactiva o no se le asigna ningún valor, los usuarios podrán cambiar esta opción. @@ -5099,7 +5053,6 @@ Si la acción es la suspensión, <ph name="PRODUCT_OS_NAME" /> se puede configurar por separado para bloquear o no la pantalla antes de entrar en modo de suspensión.</translation> <translation id="8214600119442850823">Permite configurar el Gestor de contraseñas.</translation> -<translation id="8217516105848565518">Esta política está obsoleta. Sustitúyela por la política RemoteAccessHostDomainList.</translation> <translation id="8219777886736887686">Esta política controla el comando que se utilizará para abrir URLs en un navegador alternativo. Se le puede asignar uno de estos valores: <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> o una ruta de archivo. Si se asigna una ruta de archivo a esta política, el archivo se usará como ejecutable. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> y <ph name="EDGE_VALUE_PLACEHOLDER" /> solo están disponibles en <ph name="MS_WIN_NAME" />, y <ph name="SAFARI_VALUE_PLACEHOLDER" /> solo está disponible en <ph name="MS_WIN_NAME" /> y <ph name="MAC_OS_NAME" />. Si no se asigna ningún valor a esta política, se usará el navegador predeterminado según el sistema operativo: <ph name="IE_PRODUCT_NAME" /> en <ph name="MS_WIN_NAME" /> o <ph name="SAFARI_PRODUCT_NAME" /> en <ph name="MAC_OS_NAME" />. No se podrá abrir ningún navegador alternativo en <ph name="LINUX_OS_NAME" />.</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 37a8f9d..595c0c61 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -810,13 +810,6 @@ Notez que cette règle ne doit pas être appliquée aux appareils utilisés par le grand public. Si cette règle est définie sur "True" ou qu'elle n'est pas configurée, les avertissements liés à la confidentialité dans les sessions Invité gérées lancées automatiquement sont épinglés jusqu'à ce que les utilisateurs les ferment.</translation> -<translation id="228665601367357543">Permet d'établir une liste de formats d'URL indiquant les sites qui sont automatiquement autorisés à accéder à un appareil USB avec les ID produit et ID de fournisseur indiqués. Pour que la règle soit valide, chaque élément de la liste doit contenir un champ "devices" et un champ "urls". Chaque élément du champ "devices" peut contenir à son tour un champ "vendor_id" et un champ "product_id". Si vous ne renseignez pas le champ "vendor_id", la règle qui est créée correspond à tous les appareils. Si vous ne renseignez pas le champ "product_id", la règle qui est créée correspond à tous les appareils ayant l'ID de fournisseur donné. Une règle contenant un champ "product_id", mais pas de champ "vendor_id", n'est pas valide. - - Le modèle d'autorisation USB utilise l'URL de requête et l'URL d'intégration (du site du cadre de premier niveau) pour permettre à l'URL de requête d'accéder à l'appareil USB. L'URL de requête peut être différente de l'URL d'intégration si le site à l'origine de la demande est chargé dans un iFrame. Le champ "urls" peut de ce fait contenir jusqu'à deux chaînes d'URL séparées par une virgule, afin d'indiquer ces URL. Si vous ne spécifiez qu'une seule URL, l'accès aux appareils USB concernés est autorisé si l'URL du site à l'origine de la demande correspond à cette URL, quel que soit l'état d'intégration. Si les URL indiquées dans le champ "urls" ne sont pas valides, la règle est ignorée. - - Si cette règle n'est pas configurée, la règle <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> s'applique, à condition qu'elle soit définie. Si ce n'est pas le cas, le paramètre spécifié par l'utilisateur s'applique. - - Les formats d'URL de cette règle ne doivent pas entrer en conflit avec ceux qui ont été définis dans la règle <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. En cas de conflit, cette règle prévaut sur <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> et <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Cette règle détermine si les informations de version doivent être enregistrées. Cela concerne, par exemple, la version, la plate-forme et l'architecture du système d'exploitation, la version de <ph name="PRODUCT_NAME" /> et le canal de <ph name="PRODUCT_NAME" />. Cette règle est ignorée si la règle <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> n'est pas définie ou si elle est désactivée. @@ -1542,11 +1535,6 @@ * 4, le micrologiciel <ph name="TPM_FIRMWARE_UPDATE_TPM" /> est mis à jour après l'inscription, avant que l'utilisateur se connecte. Si cette règle n'est pas configurée, la mise à jour du micrologiciel <ph name="TPM_FIRMWARE_UPDATE_TPM" /> n'est pas disponible.</translation> -<translation id="3235677869770186098">Cette règle permet d'établir la liste des formats d'URL pour lesquels les sites sont automatiquement autorisés à se connecter à un périphérique USB à l'aide des identifiants du produit et du fournisseur indiqués sur l'écran de connexion. Pour que la règle soit valide, chaque élément de la liste doit contenir un champ "devices" et un champ "urls". Chaque élément du champ "devices" peut contenir à son tour un champ "vendor_id" et un champ "product_id". Si vous ne renseignez pas le champ "vendor_id", la règle qui est créée correspond à tous les appareils. Si vous ne renseignez pas le champ "product_id", la règle qui est créée correspond à tous les appareils ayant l'ID de fournisseur donné. Une règle contenant un champ "product_id", mais pas de champ "vendor_id", n'est pas valide. - - Le modèle d'autorisation USB utilise l'URL de requête et l'URL d'intégration pour permettre à l'URL de requête d'accéder à l'appareil USB. L'URL de requête peut être différente de l'URL d'intégration si le site à l'origine de la demande est chargé dans un iFrame. Le champ "urls" peut de ce fait contenir jusqu'à deux chaînes d'URL séparées par une virgule afin d'indiquer l'URL de requête et l'URL d'intégration, respectivement. Si une seule URL est spécifiée, l'accès aux périphériques USB concernés est autorisé si l'URL du site à l'origine de la demande correspond à cette URL, quel que soit l'état d'intégration. Si les URL ne sont pas valides, la règle est ignorée. - - Si cette règle n'est pas définie, la valeur globale par défaut est utilisée pour tous les sites (aucun accès automatique).</translation> <translation id="3236046242843493070">Formats d'URL à partir desquelles autoriser les sources d'installation des extensions, des applications et des scripts d'utilisateur</translation> <translation id="3240609035816615922">Règle d'accès à la configuration des imprimantes.</translation> <translation id="324062325008698789">Configurer une liste d'imprimantes</translation> @@ -1857,7 +1845,6 @@ <translation id="3631099945620529777">Si cette règle est définie sur "false", le bouton "Arrêter le processus" est désactivé dans le gestionnaire de tâches. Si cette règle est définie sur "true" ou si elle n'est pas configurée, l'utilisateur peut mettre fin à des processus dans le gestionnaire de tâches.</translation> -<translation id="3639444551396586995">Autoriser Chrome à signaler à Google les événements à risque</translation> <translation id="3643284063603988867">Activer la fonctionnalité "Mémoriser le mot de passe"</translation> <translation id="3646859102161347133">Définir le type de loupe</translation> <translation id="3647212518036289905">Permet de spécifier la bibliothèque GSSAPI à utiliser pour l'authentification HTTP. Vous pouvez indiquer le nom de la bibliothèque ou son chemin d'accès complet. @@ -1877,13 +1864,6 @@ Cette règle est utilisée pour l'activation de la règle relative au cloud au niveau de la machine (pour les ordinateurs de bureau). Elle peut être définie sur le registre ou les GPO sur Windows, le fichier plist sur Mac, et le fichier de règle JSON sur Linux.</translation> <translation id="3660562134618097814">Transférer des cookies de fournisseurs d'identité SAML lors de la connexion</translation> -<translation id="3669373349666208904">Si cette règle est définie sur "True", les pages sont autorisées à afficher des pop-up pendant qu'elles se déchargent. - - Si cette règle est définie sur "False" ou si elle n'est pas configurée, les pages ne peuvent pas afficher de pop-up pendant qu'elles se déchargent. - - Cette règle sera supprimée dans Chrome 88. - - Pour en savoir plus, consultez l'article https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Si cette règle est activée, la page "Nouvel onglet" est définie comme page d'accueil de l'utilisateur. Toute URL de page d'accueil est ignorée. Si cette règle est désactivée, la page d'accueil de l'utilisateur ne sera jamais la page "Nouvel onglet", sauf si l'URL de la page d'accueil est définie sur "chrome://newtab". Si cette règle est configurée, les utilisateurs ne peuvent pas modifier leur type de page d'accueil dans <ph name="PRODUCT_NAME" />. Si elle n'est pas configurée, l'utilisateur peut choisir lui-même d'utiliser la page "Nouvel onglet" comme page d'accueil. @@ -2122,15 +2102,6 @@ <translation id="4020682745012723568">Les applications Android n'ont pas accès aux cookies transférés vers le profil de l'utilisateur.</translation> <translation id="402759845255257575">Interdire à tous les sites d'exécuter JavaScript</translation> <translation id="4027608872760987929">Activer le moteur de recherche par défaut</translation> -<translation id="4044054366426171256">Cette règle configure les noms de domaines obligatoires de l'hôte qui sont imposés aux hôtes d'accès à distance et empêche les utilisateurs d'y apporter des modifications. - - Si ce paramètre est activé et défini sur un ou plusieurs domaines, les hôtes ne peuvent être partagés qu'à l'aide des comptes enregistrés sur les noms de domaines spécifiés. - - Si ce paramètre est désactivé, s'il n'est pas configuré ou s'il est défini sur une liste vide, les hôtes peuvent être partagés via n'importe quel compte. - - Ce paramètre ignore la règle RemoteAccessHostDomain, le cas échéant. - - Voir aussi RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">Désactiver le protocole SPDY</translation> <translation id="4061590579642538878">Transmettre les informations liées aux rapports d'erreur.</translation> <translation id="4075675819066819571">Placer l'étagère sur le côté gauche de l'écran</translation> @@ -2586,10 +2557,6 @@ <translation id="4874982543810021567">Bloquer WebUSB sur ces sites</translation> <translation id="4876805738539874299">Version SSL maximale activée</translation> <translation id="4887274746092315609">Affiche une page permettant aux utilisateurs SAML de changer de mot de passe en cours de session</translation> -<translation id="4887863670424903990">Si cette règle est activée, <ph name="PRODUCT_NAME" /> signale à Google, pour analyse, les événements à risque tels que la réutilisation de mots de passe, les téléchargements de logiciels malveillants, les interstitiels et les non-respects des règles de protection des données sensibles. Certains événements à risque, comme les non-respects des règles de protection des données sensibles, dépendent d'autres règles en vertu desquelles de telles vérifications sont activées. - - Si cette règle est désactivée ou si elle n'est pas définie, <ph name="PRODUCT_NAME" /> ne signale pas les événements à risque. - </translation> <translation id="4894290482695457375">Tant que la règle <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> n'est pas désactivée, le fait d'activer la règle <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> connecte <ph name="PRODUCT_NAME" /> aux appareils Cast pour toutes les adresses IP, et pas seulement les adresses privées décrites dans la RFC 1918 ou la RFC 4193. Si cette règle est désactivée, <ph name="PRODUCT_NAME" /> ne se connecte aux appareils Cast que sur les adresses privées décrites dans la RFC 1918 ou la RFC 4193. @@ -3377,9 +3344,6 @@ Les clients d'accès à distance ne sont pas concernés par la configuration de cette règle. Ils utilisent toujours "chromoting-client.talkgadget.google.com" pour accéder à TalkGadget.</translation> <translation id="5890063326284543943">Contrôler l'utilisation de l'API Serial</translation> -<translation id="5893553533827140852">Si ce paramètre est activé, les demandes d'authentification gnubby seront envoyées par un proxy via une connexion hôte à distance. - - S'il est désactivé ou n'est pas configuré, ces demandes ne seront pas envoyées par un proxy.</translation> <translation id="5897913798715600338">Recharge de la batterie à l'aide d'une technologie de recharge rapide.</translation> <translation id="5898486742390981550">Lorsque plusieurs personnes sont connectées, l'utilisateur principal est le seul à pouvoir se servir des applications Android.</translation> <translation id="5901427587865226597">Impression recto verso seulement</translation> @@ -3721,7 +3685,6 @@ Toutefois, dans le cadre de cette règle, ces formats ne doivent pas inclure les éléments "/path" ni "@query". Tout format qui inclut l'élément "/path" ou "@query" est ignoré.</translation> <translation id="6464074037294098618">Activer la saisie automatique pour les adresses</translation> <translation id="6467613372414922590">Autoriser les hôtes de messagerie natifs au niveau de l'utilisateur (installés sans l'autorisation d'un administrateur)</translation> -<translation id="6468980648680553776">Cette règle est obsolète. Veuillez utiliser RemoteAccessHostClientDomainList.</translation> <translation id="6473623140202114570">Configurez la liste des domaines sur lesquels la navigation sécurisée ne déclenchera aucun avertissement.</translation> <translation id="647698599569353771">Autorisez l'activation du Partage à proximité.</translation> <translation id="6485813825811798133">Permet d'établir la liste des formats d'URL pour lesquels les sites ne sont pas autorisés à demander aux utilisateurs l'accès en lecture aux fichiers ou répertoires figurant dans le système de fichiers du système d'exploitation hôte via l'API File System. @@ -4558,17 +4521,6 @@ <translation id="747014869399137701">Si cette règle est définie sur "1", les sites Web peuvent afficher des notifications sur le bureau. Si cette règle est définie sur "2", les sites ne sont pas autorisés à afficher ces notifications. Si cette règle n'est pas configurée, la règle <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> s'applique. Toutefois, les utilisateurs peuvent modifier ce paramètre.</translation> -<translation id="7471828226549672843">Par défaut, les conditions d'utilisation sont affichées la première fois que des onglets personnalisés Chrome sont exécutés. Si cette règle est désactivée, la boîte de dialogue des conditions d'utilisation ne s'affiche ni à la première exécution, ni lors des suivantes. Si cette règle est activée ou qu'elle n'est pas configurée, la boîte de dialogue des conditions d'utilisation s'affiche à la première exécution. Notez également les points suivants : - - - Cette règle ne peut être appliquée que sur des appareils Android entièrement gérés qui peuvent être configurés par des fournisseurs UEM (Unified Endpoint Management, gestion unifiée des points de terminaison). - - - Si cette règle est désactivée, la règle BrowserSignin n'a aucune incidence. - - - Si cette règle est désactivée, les statistiques ne sont pas transmises au serveur. - - - Si cette règle est désactivée, les fonctionnalités du navigateur sont limitées. - - - Si cette règle est désactivée, les administrateurs doivent le signaler aux utilisateurs finaux de l'appareil.</translation> <translation id="747275827471712187">Rétablir l'ancien comportement <ph name="ATTRIBUTE_SAMESITE_NAME" /> pour les cookies sur ces sites</translation> <translation id="7476621944304431784">Si ce paramètre est activé, les utilisateurs seront autorisés à synchroniser les configurations du réseau Wi-Fi entre leurs appareils <ph name="PRODUCT_OS_NAME" /> et un téléphone Android connecté. Pour pouvoir synchroniser les configurations du réseau Wi-Fi, les utilisateurs doivent au préalable activer explicitement cette fonctionnalité en suivant une procédure de configuration. @@ -4606,15 +4558,6 @@ Si cette règle n'est pas configurée, <ph name="IE_PRODUCT_NAME" /> détecte automatiquement le chemin d'accès au fichier exécutable de <ph name="PRODUCT_NAME" /> lors du lancement de <ph name="PRODUCT_NAME" /> depuis Internet Explorer. Remarque : Si le module complémentaire Legacy Browser Support pour <ph name="IE_PRODUCT_NAME" /> n'est pas installé, cette règle n'a aucune incidence.</translation> -<translation id="7506758875409719208">Cette règle configure les noms de domaines obligatoires du client qui sont imposés aux clients d'accès à distance et empêche les utilisateurs d'y apporter des modifications. - - Si ce paramètre est activé et défini sur un ou plusieurs domaines, seuls les clients de l'un des domaines indiqués peuvent se connecter à l'hôte. - - Si ce paramètre est désactivé, s'il n'est pas configuré ou s'il est défini sur une liste vide, la règle par défaut pour le type de connexion concerné est appliquée. Dans le cadre d'une assistance à distance, cela permet aux clients de n'importe quel domaine de se connecter à l'hôte. Concernant l'accès à distance à tout moment, seul le propriétaire de l'hôte peut se connecter. - - Ce paramètre remplace RemoteAccessHostClientDomain, le cas échéant. - - Voir aussi RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Si cette règle est activée, chacune des origines définies et répertoriées dans une liste d'éléments séparés par une virgule exécute son propre processus et isole les origines par sous-domaines. Par exemple, si vous indiquez https://example.com/, https://foo.example.com/ est isolé en tant que partie du site https://example.com/. Si cette règle est désactivée ou qu'elle n'est pas configurée, les utilisateurs peuvent modifier ce paramètre. @@ -5091,7 +5034,6 @@ Dans ce cas, <ph name="PRODUCT_OS_NAME" /> peut être configuré séparément pour verrouiller ou non l'écran avant l'arrêt provisoire.</translation> <translation id="8214600119442850823">Configure le gestionnaire de mot de passe.</translation> -<translation id="8217516105848565518">Cette règle est obsolète. Veuillez utiliser RemoteAccessHostDomainList.</translation> <translation id="8219777886736887686">Permet de spécifier la commande à utiliser pour ouvrir les URL dans un navigateur secondaire. Cette règle peut être définie sur le navigateur <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" /> ou <ph name="EDGE_VALUE_PLACEHOLDER" />, ou sur un chemin d'accès à un fichier. Si elle est définie sur un chemin d'accès à un fichier, ce dernier est utilisé comme fichier exécutable. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> et <ph name="EDGE_VALUE_PLACEHOLDER" /> ne sont disponibles que sous <ph name="MS_WIN_NAME" />, tandis que <ph name="SAFARI_VALUE_PLACEHOLDER" /> n'est disponible que sous <ph name="MS_WIN_NAME" /> et <ph name="MAC_OS_NAME" />. Si cette règle n'est pas configurée, l'URL s'ouvre par défaut dans un navigateur spécifique à la plate-forme : <ph name="IE_PRODUCT_NAME" /> sous <ph name="MS_WIN_NAME" /> ou <ph name="SAFARI_PRODUCT_NAME" /> sous <ph name="MAC_OS_NAME" />. Sous <ph name="LINUX_OS_NAME" />, le lancement d'un navigateur secondaire entraîne une erreur.</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index 1fdf7bb..9e04a799 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -188,6 +188,7 @@ Jika setelan ini diaktifkan, SafeSearch di Google Penelusuran dan Mode Terbatas Menengah di YouTube akan selalu aktif. Jika setelan ini dinonaktifkan atau tidak ditetapkan ke suatu nilai, SafeSearch di Google Penelusuran dan Mode Terbatas di YouTube tidak akan diberlakukan.</translation> +<translation id="134745581157553029">Jika kebijakan "DeviceArcDataSnapshotHours" disetel, mekanisme pembuatan snapshot data ARC akan diaktifkan. Dengan begitu, pembaruan snapshot data ARC dapat otomatis dimulai selama interval waktu yang ditentukan. Jika interval dimulai, pembaruan snapshot data ARC akan diperlukan dan tidak ada pengguna yang login. Pada saat itu, proses pembaruan snapshot data ARC akan dimulai tanpa notifikasi pengguna. Jika sesi pengguna aktif, notifikasi UI akan ditampilkan dan harus diterima untuk memulai ulang perangkat dan memulai proses pembaruan snapshot data ARC. Catatan: penggunaan perangkat akan diblokir selama proses pembaruan snapshot data ARC.</translation> <translation id="1353416417709895349">Nonaktifkan pemeriksaan intersepsi DNS dan infobar "Mungkin maksud Anda http://intranetsite/".</translation> <translation id="1353985065430729216">Jika menyetel kebijakan, Anda akan dapat membuat daftar pola URL yang menentukan situs mana yang dapat mengakses sensor seperti sensor gerakan dan cahaya. @@ -474,6 +475,7 @@ Menyetel kebijakan akan menentukan ekstensi mana yang dikecualikan dari daftar ekstensi terlarang. Gunakan nilai <ph name="ALL_EXTENSIONS" /> untuk <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> guna melarang semua ekstensi, dan pengguna hanya dapat menginstal ekstensi yang diizinkan secara eksplisit. Secara default, semua ekstensi akan diizinkan. Namun, jika Anda melarang ekstensi berdasarkan kebijakan, gunakan daftar ekstensi yang diizinkan untuk mengubah kebijakan tersebut.</translation> <translation id="1781356041596378058">Kebijakan ini juga mengontrol akses ke Opsi Developer Android. Jika Anda menyetel kebijakan ini ke true, pengguna tidak dapat mengakses Opsi Developer. Jika Anda menyetel kebijakan ini ke false atau tidak menyetel kebijakan ini, pengguna dapat mengakses Opsi Developer dengan mengetuk tujuh kali nomor versi di aplikasi setelan Android.</translation> +<translation id="1787790976045065845">Kebijakan ini hanya berlaku jika kebijakan <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> disetel ke <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> atau <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />, dan pengguna yang melakukan autentikasi melalui smart card menghapus smart card tersebut. Kemudian, kebijakan ini menentukan berapa detik notifikasi yang memberi tahu pengguna tentang tindakan mendatang akan ditampilkan. Notifikasi ini memblokir layar. Tindakan hanya akan dilakukan setelah notifikasi ini berakhir. Pengguna dapat mencegah tindakan terjadi dengan memasukkan kembali smart card sebelum notifikasi berakhir. Jika kebijakan ini disetel ke nol, tidak akan ada notifikasi yang ditampilkan dan tindakan akan segera dilakukan.</translation> <translation id="1793346220873697538">Nonaktifkan pencetakan PIN secara default</translation> <translation id="179694024208061102">Jika kebijakan disetel ke Aktif, <ph name="PRODUCT_NAME" /> akan mencoba membuka beberapa URL dalam browser alternatif, seperti <ph name="IE_PRODUCT_NAME" />. Fitur ini disetel menggunakan kebijakan dalam grup <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />. @@ -804,13 +806,6 @@ Kebijakan ini tidak boleh digunakan untuk perangkat yang digunakan secara umum. Jika kebijakan disetel ke Benar (True) atau tidak disetel, notifikasi peringatan privasi di sesi tamu terkelola yang diluncurkan otomatis akan terus ditampilkan hingga pengguna menutupnya.</translation> -<translation id="228665601367357543">Memungkinkan Anda menetapkan daftar pola URL yang menentukan situs mana yang otomatis diizinkan untuk mengakses perangkat USB dengan ID vendor dan produk tertentu. Setiap item daftar harus memiliki kolom "devices" dan "urls" agar kebijakan menjadi valid. Setiap item di kolom "devices" dapat memiliki kolom "vendor_id" dan "product_id". Jika kolom "vendor_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun. Jika kolom "product_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun yang memiliki ID vendor tertentu. Kebijakan yang memiliki kolom "product_id" tanpa kolom "vendor_id" menjadi tidak valid. - - Model izin USB menggunakan URL peminta dan URL sematan (dari situs bingkai level teratas) untuk mengizinkan URL peminta mengakses perangkat USB. URL peminta mungkin berbeda dengan URL sematan saat situs peminta dimuat dalam iframe. Jadi, kolom "urls" dapat berisi hingga dua string yang dipisahkan dengan koma untuk menentukan URL ini. Jika Anda hanya menentukan satu, akses ke perangkat USB terkait akan diizinkan saat URL situs peminta cocok dengan URL ini, terlepas dari status sematan. URL dalam "urls" harus berupa URL yang valid. Jika tidak, kebijakan akan diabaikan. - - Tidak menyetel kebijakan berarti <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> akan berlaku, jika disetel. Jika tidak, setelan pribadi pengguna akan digunakan. - - Pola URL dalam kebijakan ini tidak boleh bertentangan dengan pola URL yang dikonfigurasi melalui <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. Jika bertentangan, kebijakan ini akan lebih diprioritaskan daripada <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> dan <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Kebijakan ini mengontrol apakah informasi versi akan dilaporkan atau tidak, misalnya versi OS, platform OS, arsitektur OS, versi <ph name="PRODUCT_NAME" />, dan saluran <ph name="PRODUCT_NAME" />. Jika kebijakan <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> tidak disetel atau disetel ke nonaktif, kebijakan ini akan diabaikan. @@ -1010,6 +1005,15 @@ Jika kebijakan tidak disetel, Persyaratan Layanan tidak akan muncul. Kebijakan harus disetel ke URL tempat <ph name="PRODUCT_OS_NAME" /> dapat mendownload Persyaratan Layanan. Persyaratan Layanan harus berupa teks biasa, yang ditayangkan sebagai text/plain jenis MIME. Markup tidak diizinkan.</translation> +<translation id="2500699707048942472">Fitur kirim otomatis PIN akan mengubah cara memasukkan PIN di Chrome OS. + Fitur ini akan menampilkan UI khusus yang dengan jelas memperlihatkan kepada pengguna berapa + digit yang diperlukan untuk PIN mereka, + bukan menampilkan kolom teks yang sama dengan yang digunakan untuk input sandi. Sebagai konsekuensi, panjang PIN pengguna + akan disimpan di luar data pengguna yang dienkripsi. Hanya mendukung PIN yang terdiri dari + 6 hingga 12 digit. + + Jika kebijakan ini disetel ke salah (false), pengguna tidak akan memiliki opsi untuk mengaktifkan + fitur tersebut di halaman Setelan.</translation> <translation id="2502467045153796624">Perilaku downgrade saluran rilis</translation> <translation id="250670737672448119">Mengaktifkan fitur aksesibilitas sorotan tanda sisipan. @@ -1453,7 +1457,7 @@ <translation id="3072045631333522102">Tirai layar untuk digunakan pada layar masuk dalam mode eceran</translation> <translation id="3072788420987305247">Jika kebijakan disetel ke Aktif atau tidak disetel, kontrol media akan ditampilkan di layar kunci ketika pengguna mengunci perangkat saat media sedang diputar. - Jika kebijakan disetel ke Nonaktif, kontrol media akan diaktifkan dan layar kunci akan dinonaktifkan.</translation> + Jika kebijakan disetel ke Nonaktif, kontrol media di layar kunci akan dinonaktifkan.</translation> <translation id="3072847235228302527">Menyetel Persyaratan Layanan untuk akun lokal perangkat</translation> <translation id="3086995894968271156">Mengonfigurasi Penerima Cast di <ph name="PRODUCT_NAME" />.</translation> <translation id="3091832372132789233">Mengisi daya baterai untuk perangkat yang terutama terhubung ke sumber daya eksternal.</translation> @@ -1536,11 +1540,6 @@ * 4, firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" /> akan diupdate setelah pendaftaran, sebelum pengguna login. Jika kebijakan tidak disetel, update firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" /> tidak akan tersedia.</translation> -<translation id="3235677869770186098">Menyetel kebijakan memungkinkan Anda menetapkan daftar pola URL yang menentukan situs mana yang otomatis diizinkan untuk mengakses perangkat USB dengan ID vendor dan produk tertentu di layar login. Setiap item dalam daftar memerlukan kolom "devices" dan "urls" agar kebijakan menjadi valid. Setiap item di kolom "devices" dapat memiliki kolom "vendor_id" dan "product_id". Jika kolom "vendor_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun. Jika kolom "product_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun yang memiliki ID vendor tertentu. Kebijakan yang memiliki kolom "product_id" tanpa kolom "vendor_id" menjadi tidak valid. - - Model izin USB menggunakan URL peminta dan sematan untuk mengizinkan URL peminta mengakses perangkat USB. URL peminta dapat berbeda dengan URL sematan saat situs peminta dimuat dalam iframe. Jadi, kolom urls dapat memiliki hingga dua string URL yang dipisahkan dengan koma untuk menentukan URL peminta dan URL sematan masing-masing. Jika hanya ada satu URL yang ditentukan, akses ke perangkat USB yang sesuai akan diberikan saat URL situs peminta cocok dengan URL ini, terlepas dari status sematannya. URL harus valid. Jika tidak, kebijakan akan diabaikan. - - Jika kebijakan tidak disetel, nilai default global akan digunakan untuk semua situs (tidak ada akses otomatis).</translation> <translation id="3236046242843493070">Pola URL untuk memungkinkan pemasangan skrip pengguna, aplikasi, dan ekstensi dari</translation> <translation id="3240609035816615922">Kebijakan akses konfigurasi untuk printer.</translation> <translation id="324062325008698789">Mengonfigurasi daftar printer</translation> @@ -1856,7 +1855,6 @@ <translation id="3631099945620529777">Jika ditetapkan ke False, tombol 'Akhiri proses' akan dinonaktifkan di Pengelola Tugas. Jika ditetapkan ke True atau tidak dikonfigurasi, pengguna dapat mengakhiri proses di Pengelola Tugas.</translation> -<translation id="3639444551396586995">Mengizinkan Chrome untuk melaporkan peristiwa tidak aman kepada Google</translation> <translation id="3643284063603988867">Aktifkan fitur 'Ingat sandi'</translation> <translation id="3646859102161347133">Menyetel jenis lup</translation> <translation id="3647212518036289905">Menyetel kebijakan akan menentukan library GSSAPI mana yang akan digunakan untuk autentikasi HTTP. Setel kebijakan ke nama library atau jalur lengkap. @@ -1876,13 +1874,6 @@ Kebijakan ini digunakan oleh pendaftaran kebijakan machine scope cloud di desktop dan dapat disetel oleh Registry atau GPO di Windows, plist di Mac, dan file kebijakan JSON di Linux.</translation> <translation id="3660562134618097814">Transfer cookie SAML IdP saat proses masuk.</translation> -<translation id="3669373349666208904">Jika kebijakan disetel ke Benar (True), halaman akan menampilkan pop-up saat halaman menghapus muatan. - - Jika kebijakan disetel ke Salah (False) atau tidak disetel, halaman tidak akan dapat menampilkan pop-up saat halaman menghapus muatan. - - Kebijakan ini akan dihapus pada Chrome 88. - - Buka https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Jika kebijakan disetel ke Aktif, halaman beranda pengguna akan menjadi halaman Tab Baru dan lokasi URL halaman beranda lain akan diabaikan. Jika kebijakan disetel ke Nonaktif, halaman beranda pengguna tidak akan pernah menjadi halaman Tab Baru, kecuali URL halaman beranda pengguna disetel ke chrome://newtab. Jika Anda menyetel kebijakan, pengguna tidak dapat mengubah jenis halaman berandanya di <ph name="PRODUCT_NAME" />. Jika tidak disetel, pengguna dapat memutuskan apakah halaman Tab Baru akan menjadi halaman berandanya atau tidak. @@ -2122,15 +2113,6 @@ <translation id="4020682745012723568">Cookie yang ditransfer ke profil pengguna tidak dapat diakses oleh aplikasi Android.</translation> <translation id="402759845255257575">Jangan izinkan situs apa pun menjalankan JavaScript</translation> <translation id="4027608872760987929">Aktifkan penyedia penelusuran default</translation> -<translation id="4044054366426171256">Mengonfigurasi nama domain host yang diperlukan, yang akan diterapkan pada host akses jarak jauh dan mencegah pengguna mengubahnya. - - Jika setelan ini diaktifkan dan ditetapkan ke satu atau beberapa domain, host hanya dapat dibagikan menggunakan akun yang terdaftar pada salah satu nama domain yang telah ditentukan. - - Jika setelan ini dinonaktifkan, tidak ditetapkan, atau ditetapkan ke daftar kosong, host dapat dibagikan menggunakan akun apa pun. - - Setelan ini akan mengganti RemoteAccessHostDomain, jika ada. - - Lihat juga RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">Nonaktifkan protokol SPDY</translation> <translation id="4061590579642538878">Laporkan informasi tentang laporan kerusakan.</translation> <translation id="4075675819066819571">Posisikan rak di sisi kiri layar</translation> @@ -2588,10 +2570,6 @@ <translation id="4874982543810021567">Blokir WebUSB di situs ini</translation> <translation id="4876805738539874299">Versi SSL maksimum diaktifkan</translation> <translation id="4887274746092315609">Mengaktifkan halaman untuk pengubahan sandi dalam-sesi bagi pengguna SAML</translation> -<translation id="4887863670424903990">Saat kebijakan ini ditetapkan ke aktif, <ph name="PRODUCT_NAME" /> akan melaporkan peristiwa tidak aman seperti penggunaan ulang sandi, download malware, interstisial, pelanggaran aturan perlindungan data sensitif, dll. kepada Google untuk dianalisis. Beberapa peristiwa tidak aman seperti pelanggaran aturan perlindungan data sensitif bergantung pada kebijakan lain yang mengaktifkan pemeriksaan tersebut. - - Jika kebijakan ini ditetapkan ke nonaktif atau tidak ditetapkan, <ph name="PRODUCT_NAME" /> tidak akan melaporkan peristiwa tidak aman. - </translation> <translation id="4894290482695457375">Kecuali <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> disetel ke Nonaktif, menyetel <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> ke Aktif akan menghubungkan <ph name="PRODUCT_NAME" /> ke perangkat Cast di semua alamat IP, bukan hanya alamat pribadi RFC1918/RFC4193. Jika kebijakan disetel ke Nonaktif, <ph name="PRODUCT_NAME" /> hanya akan terhubung ke perangkat Cast di RFC1918/RFC4193. @@ -3376,9 +3354,6 @@ Klien akses jarak jauh tidak dipengaruhi oleh setelan kebijakan ini. Klien akses jarak jauh akan selalu menggunakan 'chromoting-client.talkgadget.google.com' untuk mengakses TalkGadget.</translation> <translation id="5890063326284543943">Mengontrol penggunaan Serial API</translation> -<translation id="5893553533827140852">Jika setelan ini diaktifkan, permintaan autentikasi gnubby akan dilakukan melalui proxy lewat sambungan hosting jarak jauh. - - Jika setelan ini dinonaktifkan atau tidak dikonfigurasi, permintaan autentikasi gnubby tidak akan dilakukan melalui proxy.</translation> <translation id="5897913798715600338">Mengisi daya baterai menggunakan teknologi pengisian daya cepat.</translation> <translation id="5898486742390981550">Ketika beberapa pengguna masuk, hanya pengguna utama yang dapat menggunakan aplikasi Android.</translation> <translation id="5901427587865226597">Khusus pencetakan dupleks</translation> @@ -3722,7 +3697,6 @@ Namun, pola yang cocok dengan asal untuk kebijakan ini tidak boleh berisi elemen "/path" atau "@query". Semua pola yang berisi elemen "/path" atau "@query" akan diabaikan.</translation> <translation id="6464074037294098618">Mengaktifkan IsiOtomatis untuk alamat</translation> <translation id="6467613372414922590">Mengizinkan host Native Messaging level pengguna (diinstal tanpa izin admin)</translation> -<translation id="6468980648680553776">Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan RemoteAccessHostClientDomainList.</translation> <translation id="6473623140202114570">Mengonfigurasi daftar domain tempat Safe Browsing tidak akan memicu peringatan.</translation> <translation id="647698599569353771">Mengizinkan pengaktifan Berbagi Langsung.</translation> <translation id="6485813825811798133">Jika menyetel kebijakan, Anda dapat menyetel daftar pola URL untuk menentukan situs yang tidak dapat meminta akses baca ke file, atau direktori, di sistem file pada sistem operasi host melalui File System API. @@ -4562,17 +4536,6 @@ <translation id="747014869399137701">Jika kebijakan disetel ke 1, situs akan dapat menampilkan notifikasi desktop. Jika kebijakan disetel ke 2, notifikasi desktop tidak dapat ditampilkan. Jika tidak disetel, <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> akan berlaku tetapi pengguna dapat mengubah setelan ini.</translation> -<translation id="7471828226549672843">Secara default, Persyaratan Layanan akan ditampilkan saat CCT pertama kali dijalankan. Jika kebijakan ini disetel ke Nonaktif, dialog Persyaratan Layanan tidak akan muncul saat pengalaman pertama kali dijalankan atau dijalankan untuk selanjutnya. Jika kebijakan ini disetel ke Aktif atau tidak disetel, dialog Persyaratan Layanan akan muncul saat pengalaman pertama kali dijalankan. Peringatan lainnya: - - - Kebijakan ini hanya berfungsi pada perangkat Android terkelola sepenuhnya yang dapat dikonfigurasikan oleh vendor Unified Endpoint Management. - - - Jika kebijakan ini Dinonaktifkan, kebijakan BrowserSignin tidak akan berpengaruh. - - - Jika kebijakan ini Dinonaktifkan, metrik tidak akan dikirim ke server. - - - Jika kebijakan ini Dinonaktifkan, browser akan memiliki fungsi terbatas. - - - Jika kebijakan ini Dinonaktifkan, admin harus memberitahukan hal ini kepada pengguna akhir perangkat.</translation> <translation id="747275827471712187">Mengembalikan cookie di situs ini ke perilaku <ph name="ATTRIBUTE_SAMESITE_NAME" /> lama</translation> <translation id="7476621944304431784">Jika setelan ini diaktifkan, pengguna akan diizinkan untuk menyinkronkan konfigurasi jaringan Wi-Fi antara perangkat <ph name="PRODUCT_OS_NAME" /> dan ponsel Android yang terhubung. Sebelum konfigurasi jaringan Wi-Fi dapat disinkronkan, pengguna harus secara eksplisit memilih untuk menggunakan fitur ini dengan menyelesaikan alur penyiapan. @@ -4609,15 +4572,6 @@ Tidak menyetel kebijakan berarti <ph name="IE_PRODUCT_NAME" /> otomatis mendeteksi jalur yang dapat dijalankan milik <ph name="PRODUCT_NAME" /> saat meluncurkan <ph name="PRODUCT_NAME" /> dari Internet Explorer. Catatan: Jika add-in Dukungan Browser Lama untuk <ph name="IE_PRODUCT_NAME" /> tidak diinstal, kebijakan ini tidak akan berpengaruh.</translation> -<translation id="7506758875409719208">Mengonfigurasi nama domain klien yang diperlukan, yang akan diterapkan pada klien akses jarak jauh dan mencegah pengguna mengubahnya. - - Jika setelan ini diaktifkan dan ditetapkan ke satu atau beberapa domain, hanya klien dari salah satu domain yang telah ditentukan yang dapat tersambung ke host. - - Jika setelan ini dinonaktifkan, tidak ditetapkan, atau ditetapkan ke daftar kosong, kebijakan default untuk jenis koneksi akan berlaku. Untuk bantuan jarak jauh, setelan ini memungkinkan klien dari domain mana pun tersambung ke host; untuk akses jarak jauh kapan saja, hanya pemilik host yang dapat tersambung. - - Setelan ini akan menggantikan RemoteAccessHostClientDomain, jika tersedia. - - Lihat juga RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Jika kebijakan ditetapkan, setiap sumber bernama dalam daftar yang dipisahkan koma akan menjalankan prosesnya sendiri, dan mengisolasi sumber yang diberi nama berdasarkan subdomain. Misalnya, menentukan https://example.com/ juga akan menyebabkan https://foo.example.com/ diisolasi sebagai bagian dari situs https://example.com/. Jika kebijakan dinonaktifkan atau tidak disetel, pengguna dapat mengubah setelan ini. @@ -5082,7 +5036,6 @@ Jika tindakannya adalah penangguhan, <ph name="PRODUCT_OS_NAME" /> dapat dikonfigurasi secara terpisah untuk mengunci atau tidak mengunci layar sebelum ditangguhkan.</translation> <translation id="8214600119442850823">Mengonfigurasi pengelola sandi.</translation> -<translation id="8217516105848565518">Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan RemoteAccessHostDomainList.</translation> <translation id="8219777886736887686">Menyetel kebijakan akan mengontrol perintah yang digunakan untuk membuka URL dalam browser alternatif. Kebijakan ini dapat disetel ke salah satu dari <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" />, atau jalur file. Ketika kebijakan ini disetel ke jalur file, file tersebut akan digunakan sebagai file yang dapat dieksekusi. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> dan <ph name="EDGE_VALUE_PLACEHOLDER" /> hanya tersedia di <ph name="MS_WIN_NAME" />, dan <ph name="SAFARI_VALUE_PLACEHOLDER" /> hanya tersedia di <ph name="MS_WIN_NAME" /> dan <ph name="MAC_OS_NAME" />. Jika kebijakan tidak disetel, kebijakan default khusus platform akan digunakan: <ph name="IE_PRODUCT_NAME" /> untuk <ph name="MS_WIN_NAME" />, atau <ph name="SAFARI_PRODUCT_NAME" /> untuk <ph name="MAC_OS_NAME" />. Di <ph name="LINUX_OS_NAME" />, peluncuran browser alternatif akan gagal.</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index 3effffbf..d3ded62 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -787,13 +787,6 @@ Questo criterio non dovrebbe essere utilizzato per i dispositivi usati dal pubblico generale. Se il criterio è impostato su true o non configurato, la notifica di avviso sulla privacy nella sessione Ospite gestita con avvio automatico verrà bloccata finché l'utente non la ignorerà.</translation> -<translation id="228665601367357543">Consente di impostare un elenco di pattern URL che specificano i siti a cui viene concessa automaticamente l'autorizzazione di accesso a un dispositivo USB con gli ID fornitore e prodotto indicati. Perché il criterio sia valido, ogni elemento elencato deve avere un campo "devices" e un campo "urls". Ogni elemento nel campo "devices" può avere un campo "vendor_id" e un campo "product_id". Se il campo "vendor_id" non viene specificato, il criterio può corrispondere a qualsiasi dispositivo. Se il campo "product_id" non viene specificato, il criterio può corrispondere a qualsiasi dispositivo con l'ID fornitore specificato. Un criterio con un campo "product_id" senza un campo "vendor_id" non è valido. - - Il modello di autorizzazione USB utilizza l'URL richiedente e l'URL di incorporamento (del sito frame di primo livello) per consentire all'URL richiedente di accedere al dispositivo USB. L'URL richiedente potrebbe essere diverso dall'URL di incorporamento quando il sito richiedente viene caricato in un iframe. Di conseguenza il campo "urls" può contenere fino a 2 stringhe delimitate da una virgola per specificare questi URL. Se specifichi un solo URL, l'accesso ai dispositivi USB corrispondenti viene concesso quando l'URL del sito richiedente corrisponde all'URL indicato, a prescindere dallo stato di incorporamento. Gli URL indicati nel campo "urls" devono essere validi, altrimenti il criterio viene ignorato. - - Se il criterio non viene configurato, viene applicato il criterio <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" />, se impostato. In caso contrario, viene applicata l'impostazione personale dell'utente. - - I pattern URL di questo criterio non devono essere in conflitto con quelli configurati tramite il criterio <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. In caso di conflitto, questo criterio ha la precedenza sui criteri <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> e <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Questo criterio consente di stabilire se segnalare o meno le informazioni sulla versione, ad esempio la versione del sistema operativo, la piattaforma e l'architettura del sistema operativo, la versione di <ph name="PRODUCT_NAME" /> e il canale di <ph name="PRODUCT_NAME" />. Se il criterio <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> non viene configurato o viene disattivato, viene ignorato. @@ -1529,11 +1522,6 @@ * 4, il firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" /> viene aggiornato in seguito alla registrazione, prima dell'accesso dell'utente. Se il criterio non viene configurato, la visualizzazione dell'aggiornamento del firmware <ph name="TPM_FIRMWARE_UPDATE_TPM" /> non è disponibile.</translation> -<translation id="3235677869770186098">La configurazione del criterio consente di elencare i pattern URL che specificano i siti a cui viene concessa automaticamente l'autorizzazione di accesso a un dispositivo USB con gli ID fornitore e prodotto indicati nella schermata di accesso. Perché il criterio sia valido, ogni elemento nell'elenco richiede entrambi i campi "devices" e "urls". Ogni elemento nel campo "devices" può avere un campo "vendor_id" e un campo "product_id". Se il campo "vendor_id" non viene specificato, il criterio può corrispondere a qualsiasi dispositivo. Se il campo "product_id" non viene specificato, il criterio può corrispondere a qualsiasi dispositivo con l'ID fornitore specificato. Un criterio con un campo "product_id" senza un campo "vendor_id" non è valido. - - Il modello di autorizzazione USB utilizza l'URL richiedente e l'URL di incorporamento per consentire all'URL richiedente di accedere al dispositivo USB. L'URL richiedente può essere diverso dall'URL di incorporamento quando il sito richiedente viene caricato in un iframe. Pertanto, il campo "urls" può contenere fino a 2 stringhe URL delimitate da una virgola per specificare rispettivamente l'URL richiedente e l'URL di incorporamento. Se viene specificato un solo URL, l'accesso ai dispositivi USB corrispondenti viene concesso quando l'URL del sito richiedente corrisponde all'URL in questione, a prescindere dallo stato di incorporamento. Se gli URL non sono validi, il criterio viene ignorato. - - Se il criterio non viene configurato, viene utilizzato il valore predefinito globale per tutti i siti (nessun accesso automatico).</translation> <translation id="3236046242843493070">Pattern URL per consentire installazioni di estensioni, applicazioni e script utente da</translation> <translation id="3240609035816615922">Norma di accesso alla configurazione delle stampanti.</translation> <translation id="324062325008698789">Consente di configurare un elenco di stampanti</translation> @@ -1847,7 +1835,6 @@ <translation id="3631099945620529777">Se la norma è impostata su false, il pulsante "Termina processo" in Task Manager viene disattivato. Se la norma è impostata su true o non è configurata, l'utente può terminare i processi in Task Manager.</translation> -<translation id="3639444551396586995">Consenti a Chrome di segnalare eventi non sicuri a Google</translation> <translation id="3643284063603988867">Attiva la funzionalità "Ricorda password"</translation> <translation id="3646859102161347133">Impostazione tipo di ingrandimento dello schermo</translation> <translation id="3647212518036289905">La configurazione del criterio consente di specificare quale libreria GSSAPI utilizzare per l'autenticazione HTTP. Imposta il criterio sul nome di una libreria o su un percorso completo. @@ -1867,13 +1854,6 @@ Questo criterio viene utilizzato su desktop dalla registrazione con criteri cloud in ambito macchina e può essere impostato tramite il file di criteri registry o GPO su Windows, plist su Mac e JSON su Linux.</translation> <translation id="3660562134618097814">Trasferisci i cookie dell'IdP SAML durante l'accesso</translation> -<translation id="3669373349666208904">Se il criterio viene impostato su True, le pagine possono mostrare popup durante il caricamento. - - Se il criterio viene impostato su False o se non viene configurato, le pagine non possono mostrare popup durante il caricamento. - - Questo criterio verrà rimosso nella versione 88 di Chrome. - - Visita la pagina https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Se il criterio viene impostato su Attivato, la pagina Nuova scheda viene impostata come pagina iniziale dell'utente e l'eventuale URL della pagina iniziale specificato viene ignorato. Se viene impostato su Disattivato, la pagina iniziale dell'utente non sarà mai la pagina Nuova scheda, a meno che chrome://newtab venga impostato come URL della pagina iniziale dell'utente. Se il criterio viene impostato, gli utenti non possono cambiare il tipo di pagina iniziale in <ph name="PRODUCT_NAME" />. Se non viene impostato, l'utente può decidere se impostare o meno la pagina Nuova scheda come pagina iniziale. @@ -2112,15 +2092,6 @@ <translation id="4020682745012723568">Le app Android non possono accedere ai cookie trasferiti al profilo dell'utente.</translation> <translation id="402759845255257575">Non consentire ad alcun sito di eseguire JavaScript</translation> <translation id="4027608872760987929">Attiva il provider di ricerca predefinito</translation> -<translation id="4044054366426171256">Consente di configurare i nomi di dominio dell'host che verranno imposti sugli host di accesso remoto e impedisce agli utenti di modificarli. - - Se questa impostazione viene attivata e configurata su uno o più domini, gli host possono essere condivisi solo utilizzando gli account registrati su uno dei nomi di dominio specificati. - - Se questa impostazione viene disattivata o non viene configurata o viene configurata su un elenco vuoto, gli host possono essere condivisi utilizzando qualsiasi account. - - Questa impostazione sostituirà RemoteAccessHostDomain, se presente. - - Vedi anche RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">Disabilita protocollo SPDY</translation> <translation id="4061590579642538878">Segnala informazioni relative ai rapporti sugli arresti anomali.</translation> <translation id="4075675819066819571">Posiziona la shelf sul lato sinistro dello schermo</translation> @@ -2578,10 +2549,6 @@ <translation id="4874982543810021567">Blocca WebUSB su questi siti</translation> <translation id="4876805738539874299">Versione SSL massima abilitata</translation> <translation id="4887274746092315609">Attiva una pagina per la modifica della password all'interno della sessione per gli utenti SAML</translation> -<translation id="4887863670424903990">Se questo criterio viene attivato, <ph name="PRODUCT_NAME" /> segnala a Google eventi non sicuri da analizzare, come il riutilizzo di password, il download di malware, la presenza di interstitial, eventuali violazioni delle regole relative alla protezione dei dati sensibili ecc. Alcuni eventi non sicuri, come eventuali violazioni delle regole relative alla protezione dei dati sensibili, dipendono da altri criteri che attivano tali controlli. - - Se questo criterio viene disattivato o non viene impostato, <ph name="PRODUCT_NAME" /> non segnalerà alcun evento non sicuro. - </translation> <translation id="4894290482695457375">A meno che <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> non sia impostato su Disattivato, l'impostazione di <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> su Attivato connetterà <ph name="PRODUCT_NAME" /> ai dispositivi di trasmissione su tutti gli indirizzi IP e non solo su indirizzi privati RFC1918/RFC4193. Se il criterio viene impostato su Disattivato, <ph name="PRODUCT_NAME" /> si connetterà ai dispositivi di trasmissione solo su indirizzi RFC1918/RFC4193. @@ -3368,9 +3335,6 @@ I client di accesso remoto non sono interessati da questa impostazione e utilizzeranno sempre "chromoting-client.talkgadget.google.com" per accedere a TalkGadget.</translation> <translation id="5890063326284543943">Controlla l'utilizzo dell'API Serial</translation> -<translation id="5893553533827140852">Se questa impostazione è attivata, le richieste di autenticazione Gnubby verranno trasferite al proxy attraverso una connessione host remota. - - Se questa impostazione è disattivata o non configurata, le richieste di autenticazione Gnubby non verranno trasferite al proxy.</translation> <translation id="5897913798715600338">Carica la batteria con la tecnologia di ricarica veloce.</translation> <translation id="5898486742390981550">Quando più utenti eseguono l'accesso, solo l'utente principale può utilizzare le app Android.</translation> <translation id="5901427587865226597">Solo stampa fronte/retro</translation> @@ -3713,7 +3677,6 @@ I pattern corrispondenti alle origini di questo criterio non possono però contenere elementi "/path" o "@query". I pattern contenenti un elemento "/path" o "@query" verranno ignorati.</translation> <translation id="6464074037294098618">Attiva la Compilazione automatica per gli indirizzi</translation> <translation id="6467613372414922590">Consenti host di messaggistica nativi a livello di utente (installati senza privilegi di amministratore)</translation> -<translation id="6468980648680553776">Questa norma è obsoleta. Al suo posto utilizza RemoteAccessHostClientDomainList.</translation> <translation id="6473623140202114570">Configura l'elenco di domini sui quali Navigazione sicura non attiverà avvisi.</translation> <translation id="647698599569353771">Consenti l'attivazione di Condivisione nelle vicinanze.</translation> <translation id="6485813825811798133">La configurazione del criterio consente di elencare pattern URL che specificano quale sito non può richiedere agli utenti l'accesso di lettura di file o directory nel file system del sistema operativo host tramite l'API file system. @@ -4035,9 +3998,9 @@ Tieni presente che gli utenti potranno accedere ai servizi Google in uno stato non autenticato bloccando i loro cookie.</translation> <translation id="6843296367238757293">Questa norma è obsoleta. Ne sconsigliamo l'utilizzo. Leggi ulteriori informazioni all'indirizzo https://support.google.com/chrome/a/answer/7643500</translation> -<translation id="6846126863870444592">Questo criterio specifica le estensioni consentite per ignorare la finestra di dialogo di conferma del processo di stampa utilizzando la funzione <ph name="SUBMIT_JOB_FUNCTION" /> di <ph name="PRINTING_API" /> per l'invio di un processo di stampa. +<translation id="6846126863870444592">Questo criterio specifica le estensioni autorizzate a ignorare la finestra di dialogo di conferma del processo di stampa quando utilizzano la funzione <ph name="SUBMIT_JOB_FUNCTION" /> di <ph name="PRINTING_API" /> per l'invio di un processo di stampa. - Se un'estensione non è presente nell'elenco o non è configurato alcun elenco, la finestra di dialogo di conferma del processo di stampa verrà visualizzata dall'utente per ogni chiamata funzione <ph name="SUBMIT_JOB_FUNCTION" />. + Se un'estensione non è presente nell'elenco o non è configurato alcun elenco, la finestra di dialogo di conferma del processo di stampa verrà mostrata all'utente per ogni chiamata alla funzione <ph name="SUBMIT_JOB_FUNCTION" />. Questo criterio è deprecato, al suo posto utilizza <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> <translation id="684856667300805181">Questa norma è stata rimossa in <ph name="PRODUCT_NAME" /> 68 e sostituita da <ph name="ARC_GLS_POLICY_NAME" />.</translation> @@ -4095,7 +4058,7 @@ Se il criterio non viene attivato e viene impostato su uno o più domini, non verrà visualizzata alcuna pagina di avviso di somiglianza quando l'utente visita le pagine di quel dominio. - Se il criterio è disattivato, non impostato o impostato su un elenco vuoto, gli avvisi potrebbero essere visualizzati su qualunque sito visitato dall'utente. + Se il criterio è disattivato, non è impostato o è impostato su un elenco vuoto, gli avvisi potrebbero essere visualizzati su qualsiasi sito visitato dall'utente. Un nome host può essere consentito nel caso di una completa corrispondenza del nome host o della corrispondenza con un qualsiasi dominio. Ad esempio, gli avvisi per un URL come "https://foo.example.com/bar" potrebbero essere eliminati se l'elenco include "foo.example.com" o "example.com".</translation> <translation id="6922884955650325312">Blocca il plug-in <ph name="FLASH_PLUGIN_NAME" /></translation> @@ -4555,17 +4518,6 @@ <translation id="747014869399137701">Se il criterio è impostato su 1, i siti web possono mostrare le notifiche desktop. Se il criterio è impostato su 2, le notifiche desktop vengono negate. Se non viene configurato, si applica il criterio <ph name="ASK_NOTIFICATIONS_POLICY_NAME" />, ma gli utenti possono modificare l'impostazione.</translation> -<translation id="7471828226549672843">Per impostazione predefinita, i Termini di servizio vengono mostrati alla prima esecuzione di CCT. Se questo criterio viene impostato su Disattivato, la finestra di dialogo dei Termini di servizio non viene visualizzata né alla prima esecuzione né a quelle successive. Se questo criterio viene impostato su Attivato o se non viene configurato, la finestra di dialogo dei Termini di servizio viene visualizzata alla prima esecuzione. Altre condizioni: - - - Questo criterio funziona solo su dispositivi Android completamente gestiti che possono essere configurati da fornitori dell'Unified Endpoint Management. - - - Se questo criterio viene impostato su Disattivato, il criterio BrowserSignin non ha effetto. - - - Se questo criterio viene impostato su Disattivato, le metriche non vengono inviate al server. - - - Se questo criterio viene impostato su Disattivato, il browser ha una funzionalità limitata. - - - Se questo criterio viene impostato su Disattivato, gli amministratori devono comunicarlo agli utenti finali del dispositivo.</translation> <translation id="747275827471712187">Ripristina il comportamento <ph name="ATTRIBUTE_SAMESITE_NAME" /> precedente per i cookie su questi siti</translation> <translation id="7476621944304431784">Se questa impostazione viene attivata, gli utenti potranno sincronizzare le configurazioni di reti Wi-Fi tra i loro dispositivi <ph name="PRODUCT_OS_NAME" /> e un telefono Android collegato. Per poter sincronizzare le configurazioni di reti Wi-Fi, gli utenti devono attivare esplicitamente questa funzionalità svolgendo una procedura di configurazione. @@ -4601,15 +4553,6 @@ Se il criterio non viene impostato, <ph name="IE_PRODUCT_NAME" /> rileva automaticamente il percorso eseguibile di <ph name="PRODUCT_NAME" /> all'avvio di <ph name="PRODUCT_NAME" /> da Internet Explorer. Nota: se il componente aggiuntivo Supporto dei browser precedenti per <ph name="IE_PRODUCT_NAME" /> non è installato, questo criterio non ha effetto.</translation> -<translation id="7506758875409719208">Consente di configurare i nomi di dominio client richiesti che verranno imposti ai client di accesso remoto e impedisce agli utenti di modificarli. - - Se questa impostazione viene attivata e configurata su uno o più domini, solo i client di uno dei domini specificati potranno connettersi all'host. - - Se questa impostazione viene disattivata o non viene configurata o viene configurata su un elenco vuoto, viene applicato il criterio predefinito per il tipo di connessione. Per l'assistenza remota, l'impostazione consente ai client di qualsiasi dominio di connettersi all'host; per l'accesso remoto in qualsiasi momento, può connettersi solo il proprietario dell'host. - - Questa impostazione sostituirà RemoteAccessHostClientDomain, se presente. - - Vedi anche RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Se il criterio viene configurato, ciascuna delle origini denominate in un elenco separato da virgole viene eseguita nel proprio processo e le origini denominate da sottodomini vengono isolate. Ad esempio, se si specifica https://example.com/, l'origine https://foo.example.com/ viene isolata in quanto parte del sito https://example.com/. La disattivazione o la mancata configurazione del criterio consente agli utenti di modificare questa impostazione. @@ -5083,7 +5026,6 @@ Se l'azione è la sospensione, è possibile configurare separatamente <ph name="PRODUCT_OS_NAME" /> in modo che blocchi o meno lo schermo prima della sospensione.</translation> <translation id="8214600119442850823">Consente di configurare Gestione password.</translation> -<translation id="8217516105848565518">Questa norma è obsoleta. Al suo posto utilizza RemoteAccessHostDomainList.</translation> <translation id="8219777886736887686">Se il criterio viene configurato, è possibile stabilire il comando da usare per aprire gli URL in un browser alternativo. Per il criterio è possibile impostare i valori <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> oppure un percorso del file. Se per questo criterio viene impostato un percorso del file, tale file viene usato come eseguibile. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> e <ph name="EDGE_VALUE_PLACEHOLDER" /> sono disponibili solo su <ph name="MS_WIN_NAME" />, mentre <ph name="SAFARI_VALUE_PLACEHOLDER" /> è disponibile solo su <ph name="MS_WIN_NAME" /> e <ph name="MAC_OS_NAME" />. Se il criterio non viene configurato, viene usato un valore predefinito specifico della piattaforma: <ph name="IE_PRODUCT_NAME" /> per <ph name="MS_WIN_NAME" /> oppure <ph name="SAFARI_PRODUCT_NAME" /> per <ph name="MAC_OS_NAME" />. Su <ph name="LINUX_OS_NAME" /> non è possibile aprire un browser alternativo.</translation>
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 3a95ebf..fa236cf 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -185,6 +185,7 @@ この設定を有効にした場合、Google 検索のセーフサーチと YouTube の制限付きモード「中」が常に有効になります。 この設定が無効または未設定の場合、Google 検索のセーフサーチと YouTube の制限付きモードは適用されません。</translation> +<translation id="134745581157553029">DeviceArcDataSnapshotHours ポリシーを設定した場合、ARC データ スナップショットのメカニズムが有効になります。定義された時間間隔の間、ARC データ スナップショットの更新が自動的に開始されます。時間間隔が開始し、ARC データ スナップショットの更新が要求されたときに、ユーザーが誰もログインしていなければ、ARC データ スナップショットの更新プロセスはユーザー通知なしで開始されます。ユーザー セッションがアクティブな場合は UI 通知が表示されます。ユーザーが承認した場合は、デバイスが再起動し、ARC データ スナップショットの更新プロセスが開始されます。注: ARC データ スナップショットの更新プロセス中は、デバイスを使用できなくなります。</translation> <translation id="1353416417709895349">DNS 傍受チェックと「もしかして: "http://intranetsite/"」情報バーを無効にする。</translation> <translation id="1353985065430729216">このポリシーでは、モーション センサーや光センサーなどのセンサーへのアクセスを許可するサイトの URL パターンリストを指定できます。 @@ -416,7 +417,7 @@ URL パターンは、https://www.chromium.org/administrators/url-blacklist-filter-format で説明されている <ph name="URL_BLOCKLIST_POLICY_NAME" /> ポリシーと同じ形式で指定します。 </translation> <translation id="1645793986494086629">スキーマ:</translation> -<translation id="1647558381546345298">このポリシーを設定した場合、<ph name="PRODUCT_NAME" /> では、ユーザーが「--media-cache-size」フラグを指定しているかどうかにかかわらず、キャッシュされたメディア ファイルをディスクに保存する際に、キャッシュ サイズが設定されます。このポリシーで指定される値は、絶対的な制限値ではなく、キャッシュ システムに対する推奨値になります。数メガバイト以下の値は四捨五入されます。 +<translation id="1647558381546345298">このポリシーを設定した場合、<ph name="PRODUCT_NAME" /> では、ユーザーが「--media-cache-size」フラグを指定しているかどうかにかかわらず、キャッシュされたメディア ファイルをディスクに保存する際のキャッシュ サイズが設定されます。このポリシーで指定される値は、絶対的な制限値ではなく、キャッシュ システムに対する推奨値になります。数メガバイト以下の値は四捨五入されます。 このポリシーの値を 0 に設定した場合、デフォルトのキャッシュ サイズが使用され、ユーザーはこの値を変更できません。 @@ -467,6 +468,7 @@ このポリシーを設定することで、禁止対象の拡張機能のリストから除外する拡張機能を指定できます。<ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> の値として <ph name="ALL_EXTENSIONS" /> を使用すると、すべての拡張機能が禁止され、ユーザーは明示的に許可された拡張機能しかインストールできなくなります。デフォルトでは、すべての拡張機能が許可されます。ポリシーで拡張機能を禁止している場合は、許可対象の拡張機能のリストを使用してポリシーを変更できます。</translation> <translation id="1781356041596378058">このポリシーでは、Android 開発者向けオプションへのアクセスも管理できます。このポリシーを true に設定した場合、ユーザーは開発者向けオプションにアクセスできません。このポリシーを false に設定するか未設定のままにした場合、ユーザーは Android 設定アプリのビルド番号を 7 回タップすれば開発者向けオプションにアクセスできます。</translation> +<translation id="1787790976045065845">このポリシーは、<ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> ポリシーが <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> または <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> に設定されている場合に、スマートカードで認証を行うユーザーがスマートカードを取り出したときにのみ適用されます。このポリシーでは、行われる処理の通知を何秒間表示するかを指定できます。この通知は画面を占拠して表示され、指定した表示時間が経過して通知が非表示になった後に処理が行われます。ユーザーは、通知が非表示になる前にスマートカードを入れ直すことで、処理が行われないようにすることができます。このポリシーを 0 に設定すると、通知は表示されず、処理がすぐに行われます。</translation> <translation id="1793346220873697538">デフォルトで PIN の印刷を無効にします</translation> <translation id="179694024208061102">このポリシーを有効に設定した場合、<ph name="PRODUCT_NAME" /> は一部の URL に対して <ph name="IE_PRODUCT_NAME" /> などの代替ブラウザの起動を試みます。この機能は、<ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" /> グループのポリシーを使って設定します。 @@ -784,13 +786,6 @@ このポリシーは、一般ユーザー向けのデバイスでは使用しないでください。 このポリシーを True に設定するか未設定のままにした場合、自動起動される管理対象のゲスト セッションでは、プライバシーに関する警告通知は固定され、ユーザーが閉じるまで表示されます。</translation> -<translation id="228665601367357543">特定のベンダー ID と製品 ID の USB デバイスへのアクセスを自動的に許可するサイトの URL パターンリストを設定できます。リストの各項目では、「devices」(デバイス)と「urls」(URL)フィールドを指定する必要があります。「devices」フィールドの各項目には、「vendor_id」(ベンダー ID)と「product_id」(製品 ID)フィールドを指定できます。「vendor_id」フィールドを省略した場合、あらゆるデバイスに一致するポリシーが作成されます。「product_id」フィールドを省略した場合、指定したベンダー ID のあらゆるデバイスに一致するポリシーが作成されます。「product_id」フィールドを指定して「vendor_id」フィールドは指定しなかった場合、ポリシーは無効になります。 - - USB のアクセス許可モデルでは、リクエスト元 URL と最上位フレームサイトの埋め込み元 URL を使用して、リクエスト元 URL に USB デバイスへのアクセスを許可します。リクエスト元のサイトが iframe 内で読み込まれている場合、リクエスト元 URL と埋め込み元 URL は異なる可能性があります。このため、これらの URL を指定できるよう、「urls」フィールドにはカンマ区切りで文字列を 2 つまで含めることができます。URL を 1 つだけ指定すると、対応する USB デバイスへのアクセスは、リクエスト元のサイトの URL がこの URL と一致した場合に、埋め込みの状態にかかわらず許可されます。「urls」フィールドには必ず有効な URL を指定してください。無効な URL を指定した場合、このポリシーは無視されます。 - - このポリシーを未設定のままにした場合、<ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> が設定されていればその設定が使用され、設定されていなければユーザーの個人設定が適用されます。 - - このポリシーで指定する URL パターンは、<ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> で指定する URL パターンと競合しないようにする必要があります。競合する場合、このポリシーは <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> と <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" /> より優先されます。</translation> <translation id="2289265947759479962">このポリシーでは、バージョン情報(OS バージョン、OS プラットフォーム、OS アーキテクチャ、<ph name="PRODUCT_NAME" /> のバージョン、<ph name="PRODUCT_NAME" /> のチャンネルなど)について、レポートを作成するかどうかを管理します。 ポリシー <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> を未設定のままにするか無効にすると、このポリシーは無視されます。 @@ -981,6 +976,15 @@ <translation id="2483146640187052324">ネットワーク接続でネットワーク動作を予測する</translation> <translation id="2498238926436517902">常にシェルフを自動的に非表示にする</translation> <translation id="250022556568924228">このポリシーを設定した場合、デバイスのローカル アカウントのセッションが開始されると、<ph name="PRODUCT_OS_NAME" /> は利用規約をダウンロードしてユーザーに表示します。利用規約に同意した場合のみ、ユーザーはセッションにログインできます。このポリシーを未設定のままにした場合、利用規約は表示されません。このポリシーは、<ph name="PRODUCT_OS_NAME" /> による利用規約のダウンロードが可能な URL に設定する必要があります。利用規約は書式なしテキストで、MIME タイプの text/plain として配信してください。マークアップ形式は使用できません。</translation> +<translation id="2500699707048942472">PIN の自動送信機能を使用すると、Chrome OS での PIN の入力方法を変更できます。 + パスワード入力に使用するのと同じテキスト欄を表示する代わりに、 + この機能では特別な UI を表示して、PIN に必要な桁数を + ユーザーに明示します。その結果、ユーザーの PIN の桁数は + 暗号化されたユーザーデータとは別に保存されます。6 桁から 12 桁の PIN のみが + サポートされています。 + + このポリシーを false に設定した場合、ユーザーは [設定] ページで + この機能を有効にすることはできません。</translation> <translation id="2502467045153796624">チャンネル ダウングレードの動作</translation> <translation id="250670737672448119">「テキストカーソルによるハイライト表示」のユーザー補助機能を有効にします。 @@ -1309,7 +1313,7 @@ このポリシーが未設定のままか、無効な URL に設定されている場合、<ph name="PRODUCT_NAME" /> は、このポリシーをブラウザの切り替えを行うルールの参照元として使用しません。 注: このポリシーは、<ph name="IE_PRODUCT_NAME" /> の <ph name="IEEM_SITELIST_POLICY" /> ポリシーと同じ形式の XML ファイルを指します。XML ファイルからルールを読み込みますが、それらのルールは <ph name="IE_PRODUCT_NAME" /> と共有されません。詳細については、<ph name="IE_PRODUCT_NAME" /> の <ph name="IEEM_SITELIST_POLICY" /> ポリシー(https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)をご覧ください。</translation> -<translation id="2949765875529121431">このポリシーでは、HTTP から HTTPS へのアップグレードがリクエストされる可能性がある HSTS ポリシー チェックから除外するホスト名のリストを指定できます。このポリシーでは、単一ラベルのホスト名のみが許可されます。ホスト名は正規化する必要があります。IDN はすべて A ラベル形式に変換し、ASCII 文字列はすべて小文字にする必要があります。ポリシーは指定したホスト名にのみ適用され、これらのホスト名のサブドメインには適用されません。</translation> +<translation id="2949765875529121431">このポリシーでは、HTTP から HTTPS にリクエストがアップグレードされる可能性がある HSTS ポリシー チェックから除外するホスト名のリストを指定できます。このポリシーでは、単一ラベルのホスト名のみが許可されます。ホスト名は正規化する必要があります。IDN はすべて A ラベル形式に変換し、ASCII 文字列はすべて小文字にする必要があります。ポリシーは指定したホスト名にのみ適用され、これらのホスト名のサブドメインには適用されません。</translation> <translation id="2952347049958405264">制限事項:</translation> <translation id="2957047180944828740">より限定されたプライベート ネットワークのエンドポイントに対して、安全でないウェブサイトからのリクエスト実行を許可するかどうかを指定します</translation> <translation id="2957506574938329824">すべてのサイトに対して Web Bluetooth API による Bluetooth デバイスへのアクセスを許可しない</translation> @@ -1499,11 +1503,6 @@ * 4: <ph name="TPM_FIRMWARE_UPDATE_TPM" /> ファームウェアの更新は、登録後、ユーザーがログインする前に行われます。 このポリシーを未設定のままにした場合、<ph name="TPM_FIRMWARE_UPDATE_TPM" /> ファームウェアの更新は行われません。</translation> -<translation id="3235677869770186098">ログイン画面で特定のベンダー ID と製品 ID の USB デバイスへのアクセスを自動的に許可するサイトの URL パターンリストを設定できます。リストの各項目では、「devices」(デバイス)と「urls」(URL)フィールドを指定する必要があります。「devices」フィールドの各項目には、「vendor_id」(ベンダー ID)と「product_id」(製品 ID)フィールドを指定できます。「vendor_id」フィールドを省略した場合、あらゆるデバイスに一致するポリシーが作成されます。「product_id」フィールドを省略した場合、指定したベンダー ID のあらゆるデバイスに一致するポリシーが作成されます。「product_id」フィールドを指定して「vendor_id」フィールドは指定しなかった場合、ポリシーは無効になります。 - - USB のアクセス許可モデルでは、リクエスト元 URL と埋め込み元 URL を使用して、リクエスト元 URL に USB デバイスへのアクセスを許可します。リクエスト元のサイトが iframe 内で読み込まれている場合、リクエスト元 URL と埋め込み元 URL は異なる可能性があります。このため、「urls」フィールドには、最大 2 つの URL 文字列をカンマ区切りで含めて、リクエスト元 URL と埋め込み元 URL の両方を指定できます。URL を 1 つだけ指定した場合、対応する USB デバイスへのアクセスは、リクエスト元のサイトの URL がこの URL と一致した場合に、埋め込みの状態にかかわらず許可されます。「urls」フィールドには必ず有効な URL を指定してください。無効な URL を指定した場合、このポリシーは無視されます。 - - このポリシーを未設定のままにした場合、すべてのサイトでグローバルなデフォルト値(自動アクセスなし)が使用されます。</translation> <translation id="3236046242843493070">拡張機能、アプリ、ユーザー スクリプトのインストールを許可する URL パターン</translation> <translation id="3240609035816615922">プリンタの設定へのアクセス ポリシー</translation> <translation id="324062325008698789">プリンタのリストを設定します</translation> @@ -1813,7 +1812,6 @@ <translation id="3631099945620529777">false の場合、タスク マネージャで [プロセスを終了] ボタンが無効になります。 true または未設定の場合、ユーザーはタスク マネージャでプロセスを終了できます。</translation> -<translation id="3639444551396586995">Chrome から Google への安全でないイベントの報告を許可する</translation> <translation id="3643284063603988867">「パスワードを保存する」機能を有効にする</translation> <translation id="3646859102161347133">画面拡大鏡のタイプを設定する</translation> <translation id="3647212518036289905">このポリシーでは、HTTP 認証で使用する GSSAPI ライブラリを指定できます。ポリシーには、ライブラリ名またはフルパスのいずれかを指定します。 @@ -1833,13 +1831,6 @@ このポリシーは、デスクトップ上のマシンスコープのクラウド ポリシー登録で使用され、Windows のレジストリまたは GPO、Mac の plist、Linux の JSON ポリシー ファイルで設定できます。</translation> <translation id="3660562134618097814">ログイン時に SAML IdP Cookie を転送する</translation> -<translation id="3669373349666208904">このポリシーを True に設定した場合、ページにアンロード中のポップアップ表示を許可します。 - - このポリシーを False に設定するか未設定のままにした場合、ページのアンロード中にポップアップは表示されません。 - - このポリシーは Chrome 88 で削除されます。 - - 詳しくは、https://www.chromestatus.com/feature/5989473649164288 をご覧ください。</translation> <translation id="3691155504326059225">このポリシーを有効にすると、新しいタブページがユーザーのホームページとなり、指定されたホームページ URL の場所はいずれも無視されます。無効にすると、ホームページが新しいタブページになることはありません(ただしユーザーのホームページ URL が「chrome://newtab」に設定されている場合は除く)。 このポリシーが設定されている場合、ユーザーは <ph name="PRODUCT_NAME" /> でホームページのタイプを変更できません。未設定の場合、新しいタブページをホームページにするかどうかはユーザーが選択します。 @@ -2077,15 +2068,6 @@ <translation id="4020682745012723568">Android アプリは、ユーザーのプロフィールに送信された Cookie にアクセスすることはできません。</translation> <translation id="402759845255257575">すべてのサイトに対して JavaScript の実行を許可しない</translation> <translation id="4027608872760987929">デフォルトの検索プロバイダを有効にする</translation> -<translation id="4044054366426171256">リモート アクセス ホストに適用する必須のホストドメイン名を設定します。ユーザーはこのドメイン名を変更できません。 - - この設定を有効にして、ドメインを 1 つ以上指定した場合、ホストの共有に使用できるのは、指定されたいずれかのドメイン名に登録されているアカウントのみとなります。 - - この設定を無効にするか未設定のままにした場合、または空のリストに設定した場合は、どのアカウントを使用してもホストを共有できます。 - - この設定は RemoteAccessHostDomain に優先します(指定されている場合)。 - - RemoteAccessHostClientDomainList もご覧ください。</translation> <translation id="4056910949759281379">SPDY プロトコルを無効にする</translation> <translation id="4061590579642538878">障害レポートに関する情報を報告します。</translation> <translation id="4075675819066819571">シェルフを画面の左側に配置する</translation> @@ -2538,10 +2520,6 @@ <translation id="4874982543810021567">WebUSB をブロックするサイト</translation> <translation id="4876805738539874299">有効な SSL の最大バージョン</translation> <translation id="4887274746092315609">SAML ユーザーに対して、セッション内でのパスワード変更用のページを有効にする</translation> -<translation id="4887863670424903990">このポリシーを有効に設定した場合、<ph name="PRODUCT_NAME" /> ではパスワードの再利用、不正なソフトウェアのダウンロード、インタースティシャル、機密データ保護ルールの違反といった安全でないイベントのレポートが分析のため Google に送信されます。なお、機密データ保護ルールの違反などの一部のイベントについては、そのチェックを有効にするかどうかを別のポリシーで指定します。 - - このポリシーを無効に設定するか未設定にした場合、<ph name="PRODUCT_NAME" /> では安全でないイベントのレポートは送信されません。 - </translation> <translation id="4894290482695457375"><ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> が無効に設定されていない場合に、<ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> を有効に設定すると、RFC1918 と RFC4193 のプライベート アドレスだけでなくすべての IP アドレスのキャスト デバイスに <ph name="PRODUCT_NAME" /> を接続します。 このポリシーを無効に設定した場合は、RFC1918 と RFC4193 のキャスト デバイスにのみ <ph name="PRODUCT_NAME" /> を接続します。 @@ -3309,9 +3287,6 @@ リモート アクセス クライアントが、このポリシーの設定によって影響を受けることはありません。TalkGadget へのアクセスには常に「chromoting-client.talkgadget.google.com」を使用します。</translation> <translation id="5890063326284543943">シリアル API の使用を管理する</translation> -<translation id="5893553533827140852">この設定が有効になっている場合、gnubby 認証リクエストはリモート ホスト接続でプロキシ送信されます。 - - この設定が無効になっているか設定されていない場合、gnubby 認証リクエストはプロキシ送信されません。</translation> <translation id="5897913798715600338">急速充電でバッテリーを充電する。</translation> <translation id="5898486742390981550">複数のユーザーがログインしている場合は、メインユーザーのみが Android アプリを使用できます。</translation> <translation id="5901427587865226597">両面印刷のみ</translation> @@ -3642,7 +3617,6 @@ ただし、このポリシーの提供元の一致パターンに「/path」要素や「@query」要素を含めることはできません。「/path」要素や「@query」要素が含まれているパターンは無視されます。</translation> <translation id="6464074037294098618">住所の自動入力を有効にします</translation> <translation id="6467613372414922590">ユーザーレベルのネイティブ メッセージング ホスト(管理者権限なしでインストールされたホスト)を許可する</translation> -<translation id="6468980648680553776">このポリシーはサポートを終了しました。代わりに RemoteAccessHostClientDomainList を使用してください。</translation> <translation id="6473623140202114570">セーフ ブラウジングによる警告の表示を行わないドメインのリストを設定する。</translation> <translation id="647698599569353771">ニアバイシェアを有効にできるようにします。</translation> <translation id="6485813825811798133">このポリシーでは、File System API 経由でのホスト オペレーティング システムのファイル システム内にあるファイルやディレクトリへの読み取りアクセスの許可をユーザーに要求できないサイトの URL パターンリストを指定できます。 @@ -3920,7 +3894,7 @@ <translation id="6821268164692776674"><ph name="CLOUD_PRINT_NAME" />と「Google ドライブに保存」の送信先</translation> <translation id="682408981080798691">このポリシーを有効に設定するか未設定のままにした場合、レンダラコードの整合性チェックが有効になります。 - このポリシーを無効に設定した場合、悪質な疑いのある不明なコードに対して <ph name="PRODUCT_NAME" /> のレンダラ プロセス内での読み込みが許可されるため、<ph name="PRODUCT_NAME" /> のセキュリティと安定性が低下します。このポリシーは、<ph name="PRODUCT_NAME" /> のレンダラ プロセス内で実行する必要のある第三者ソフトウェアとの間で互換性の問題が発生する場合にのみ無効にしてください。 + このポリシーを無効に設定した場合、悪質な疑いのある不明なコードに対して <ph name="PRODUCT_NAME" /> のレンダラ プロセス内での読み込みが許可されるため、<ph name="PRODUCT_NAME" /> のセキュリティと安定性が低下します。このポリシーは、<ph name="PRODUCT_NAME" /> のレンダラ プロセス内で実行する必要のあるサードパーティ ソフトウェアとの間で互換性の問題が発生する場合にのみ無効にしてください。 注: 詳しくはプロセス対応ポリシー(https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies)をご覧ください。</translation> <translation id="6833023569065717572">このポリシーを True に設定すると、デバイスのログイン画面に 24 時間形式の時刻が表示されます。 @@ -4460,17 +4434,6 @@ <translation id="747014869399137701">このポリシーを 1 に設定した場合、ウェブサイトによるデスクトップ通知の表示が許可されます。このポリシーを 2 に設定した場合、デスクトップ通知は拒否されます。 このポリシーを未設定のままにした場合、<ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> は適用されますが、ユーザーはこの設定を変更できます。</translation> -<translation id="7471828226549672843">デフォルトでは、利用規約は CCT の初回実行時に表示されます。このポリシーを無効に設定した場合、利用規約のダイアログは初回実行時もその後の実行時にも表示されません。このポリシーを有効に設定するか未設定のままにした場合、利用規約のダイアログは初回実行時に表示されます。その他の注意事項: - - - このポリシーは、統合エンドポイント管理ベンダーによる設定が可能な完全管理対象の Android デバイスのみに適用されます。 - - - このポリシーが無効の場合、BrowserSignin ポリシーは無視されます。 - - - このポリシーが無効の場合、指標はサーバーに送信されません。 - - - このポリシーが無効の場合、ブラウザの機能が制限されます。 - - - このポリシーが無効の場合、管理者はそのことをデバイスのエンドユーザーに知らせる必要があります。</translation> <translation id="747275827471712187">指定したサイトの Cookie を以前の <ph name="ATTRIBUTE_SAMESITE_NAME" /> 動作に戻す</translation> <translation id="7476621944304431784">この設定を有効にした場合、ユーザーは <ph name="PRODUCT_OS_NAME" /> デバイスと接続された Android スマートフォンとの間で Wi-Fi ネットワーク設定を同期できます。Wi-Fi ネットワーク設定を同期する前に、ユーザーは設定手順を完了して、この機能を明示的に有効にする必要があります。 @@ -4505,15 +4468,6 @@ <translation id="7506745375479451616">このポリシーでは、<ph name="IE_PRODUCT_NAME" /> から <ph name="PRODUCT_NAME" /> に切り替えて URL を開くときに使用するコマンドを管理します。このポリシーは、実行ファイルのパスに設定するか <ph name="PRODUCT_NAME_PLACEHOLDER" /> に設定することで、<ph name="PRODUCT_NAME" /> の場所を自動検出できます。 このポリシーを未設定のままにした場合、<ph name="PRODUCT_NAME" /> が Internet Explorer から起動する際に <ph name="IE_PRODUCT_NAME" /> が <ph name="PRODUCT_NAME" /> の実行パスを自動検出します。注: <ph name="IE_PRODUCT_NAME" /> の従来のブラウザをサポートするアドインがインストールされていない場合、このポリシーは無視されます。</translation> -<translation id="7506758875409719208">リモート アクセス クライアントに適用する必須のクライアント ドメイン名を設定します。ユーザーはこの設定を変更できません。 - - この設定を有効にして、ドメインを 1 つ以上指定した場合、ホストに接続できるのは、指定されたいずれかのドメインのクライアントのみとなります。 - - この設定を無効にするか未設定のままにした場合、または空のリストに設定した場合は、この接続タイプに対するデフォルトのポリシーが適用されます。リモート サポートの場合は、どのドメインのクライアントでもホストに接続できます。常時リモート アクセスの場合は、ホストの所有者のみが接続できます。 - - この設定は RemoteAccessHostClientDomain に優先します(指定されている場合)。 - - RemoteAccessHostDomainList もご覧ください。</translation> <translation id="7507131973617884092">このポリシーを設定した場合、カンマ区切りのリストで指定した発行元が各自のプロセスで実行され、サブドメインによって指定された発行元が分離されます。たとえば、https://example.com/ と指定すると、https://foo.example.com/ が https://example.com/ サイトの一部として分離されます。 このポリシーを無効に設定するか未設定のままにした場合、ユーザーはこの設定を変更できます。 @@ -4978,7 +4932,6 @@ 「停止」操作を指定する場合は、<ph name="PRODUCT_OS_NAME" /> で停止前に画面をロックするかどうかを別途設定できます。</translation> <translation id="8214600119442850823">パスワード マネージャーを設定します。</translation> -<translation id="8217516105848565518">このポリシーはサポートを終了しました。代わりに RemoteAccessHostDomainList を使用してください。</translation> <translation id="8219777886736887686">このポリシーの設定により、代替ブラウザで URL を開くときに使用するコマンドを管理します。このポリシーは <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />、<ph name="FIREFOX_VALUE_PLACEHOLDER" />、<ph name="SAFARI_VALUE_PLACEHOLDER" />、<ph name="OPERA_VALUE_PLACEHOLDER" />、<ph name="EDGE_VALUE_PLACEHOLDER" />、またはファイルパスのいずれかに設定できます。このポリシーをファイルパスに設定すると、そのファイルが実行ファイルとして使用されます。<ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> と <ph name="EDGE_VALUE_PLACEHOLDER" /> は <ph name="MS_WIN_NAME" /> でのみ使用でき、<ph name="SAFARI_VALUE_PLACEHOLDER" /> は <ph name="MS_WIN_NAME" /> と <ph name="MAC_OS_NAME" /> でのみ使用できます。 このポリシーを未設定のままにすると、プラットフォーム固有のデフォルトが使用されます。すなわち、<ph name="MS_WIN_NAME" /> の場合は <ph name="IE_PRODUCT_NAME" />、<ph name="MAC_OS_NAME" /> の場合は <ph name="SAFARI_PRODUCT_NAME" /> が使用されます。<ph name="LINUX_OS_NAME" /> では、代替ブラウザの起動に失敗します。</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb index 1222285..4ff5a9e7 100644 --- a/components/policy/resources/policy_templates_ko.xtb +++ b/components/policy/resources/policy_templates_ko.xtb
@@ -189,6 +189,7 @@ 이 설정을 사용하도록 설정하면 Google 검색의 세이프서치와 YouTube의 보통 제한 모드가 항상 활성화됩니다. 이 설정을 사용 중지하거나 값을 설정하지 않는 경우 Google 검색의 세이프서치 및 YouTube의 제한 모드가 실행되지 않습니다.</translation> +<translation id="134745581157553029">'DeviceArcDataSnapshotHours' 정책을 설정하면 ARC 데이터 스냅샷 생성 메커니즘이 켜집니다. 또한 ARC 데이터 스냅샷 생성 업데이트가 정해진 시간 간격으로 자동 실행될 수 있습니다. 간격이 시작될 때 ARC 데이터 스냅샷 업데이트가 필요하고 로그인된 사용자가 없으면 ARC 데이터 스냅샷 업데이트 프로세스가 사용자 알림 없이 시작됩니다. 사용자 세션이 활성 상태이면 UI 알림이 표시되고 알림을 수락해야 기기를 재부팅하고 ARC 데이터 스냅샷 업데이트 프로세스를 시작할 수 있습니다. 참고: ARC 데이터 스냅샷 업데이트 프로세스 중에는 기기 사용이 차단됩니다.</translation> <translation id="1353416417709895349">DNS 가로채기 검사 및 'http://intranetsite/'를 찾으셨나요? 정보 표시줄을 사용 중지합니다.</translation> <translation id="1353985065430729216">이 정책을 설정하면 움직임 감지 센서, 조도 센서 등의 센서에 액세스할 수 있는 사이트를 지정하는 URL 패턴 목록을 설정할 수 있습니다. @@ -475,6 +476,7 @@ 정책을 설정하면 금지되는 확장 프로그램 목록에서 제외되는 확장 프로그램이 지정됩니다. <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />에 <ph name="ALL_EXTENSIONS" /> 값을 사용하여 모든 확장 프로그램을 금지하면 사용자는 명시적으로 허용되는 확장 프로그램만 설치할 수 있습니다. 기본적으로 모든 확장 프로그램이 허용됩니다. 그러나 정책으로 확장 프로그램을 금지한 경우 정책을 변경하려면 허용되는 확장 프로그램 목록을 사용합니다.</translation> <translation id="1781356041596378058">이 정책은 Android 개발자 옵션 액세스 권한도 제어합니다. 이 정책을 true로 설정하는 경우 사용자는 개발자 옵션에 액세스할 수 없습니다. 이 정책을 false로 설정하거나 설정하지 않은 채로 두는 경우 Android 설정 앱에서 빌드 번호를 7번 탭하면 개발자 옵션에 액세스할 수 있습니다.</translation> +<translation id="1787790976045065845">이 정책은 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> 정책이 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> 또는 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />으로 설정되어 있으며 스마트 카드를 통해 인증하는 사용자가 해당 스마트 카드를 삭제하는 경우에만 적용됩니다. 그런 다음 이 정책은 사용자에게 곧 실행될 작업에 관해 알리는 알림을 몇 초 동안 표시할지 지정합니다. 이 알림은 화면을 가립니다. 작업은 알림이 만료된 후에만 실행됩니다. 사용자는 알림이 만료되기 전에 스마트 카드를 다시 삽입하여 작업이 시작되지 않도록 할 수 있습니다. 정책이 0으로 설정되어 있으면 알림이 표시되지 않으며 작업이 즉시 실행됩니다.</translation> <translation id="1793346220873697538">기본적으로 PIN 인쇄를 사용하지 않습니다.</translation> <translation id="179694024208061102">이 정책을 사용으로 설정하면 <ph name="PRODUCT_NAME" />에서 일부 URL을 대체 브라우저(예: <ph name="IE_PRODUCT_NAME" />)에서 열려고 시도합니다. 이 기능은 <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" /> 그룹의 정책을 사용해 설정됩니다. @@ -801,13 +803,6 @@ 이 정책을 일반 대중이 사용하는 기기에 사용해서는 안 됩니다. 정책을 True로 설정하거나 설정하지 않으면 사용자가 닫을 때까지 자동 실행 및 관리되는 게스트 세션의 개인정보 보호 경고 알림이 고정됩니다.</translation> -<translation id="228665601367357543">주어진 공급업체 및 제품 ID로 USB 기기에 대한 액세스 권한을 자동으로 받는 사이트를 지정하는 URL 패턴 목록을 작성할 수 있습니다. 정책이 유효하려면 각 목록 항목에 'devices' 및 'urls' 필드가 있어야 합니다. 'devices' 필드에 포함된 각 항목은 'vendor_id' 및 'product_id' 필드를 가질 수 있습니다. 'vendor_id' 필드를 생략하면 모든 기기와 일치하는 정책이 생성됩니다. 'product_id' 필드를 생략하면 주어진 공급업체 ID가 있는 모든 기기와 일치하는 정책이 생성됩니다. 'product_id' 필드는 있지만 'vendor_id' 필드는 없는 정책은 유효하지 않습니다. - - USB 권한 모델은 요청 URL에 USB 기기 액세스 권한 부여를 위해 요청 URL과 삽입 URL(최상위 프레임 사이트)을 사용합니다. 요청하는 사이트가 iframe에서 로드되는 경우 요청 URL은 삽입 URL과 다를 수 있습니다. 따라서 'urls' 필드에는 URL을 지정하기 위해 쉼표로 구분된 문자열을 2개까지 포함할 수 있습니다. URL을 하나만 지정한 경우 삽입 상태와 관계없이 요청하는 사이트의 URL이 지정한 URL과 일치하면 해당 USB 기기에 대한 액세스 권한이 부여됩니다. 'urls' 필드의 URL은 반드시 유효한 URL이어야 하며 그렇지 않으면 정책이 무시됩니다. - - 정책을 설정하지 않으면 <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" />이 적용(사용 설정되어 있는 경우에 한 해)되며 설정되어 있지 않다면 사용자의 개인 설정이 적용됩니다. - - 정책의 URL 패턴은 <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />를 통해 구성된 패턴과 충돌해서는 안 됩니다. 충돌할 경우 이 정책이 <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />와 <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />보다 우선 적용됩니다.</translation> <translation id="2289265947759479962">이 정책은 OS 버전, OS 플랫폼, OS 아키텍처, <ph name="PRODUCT_NAME" /> 버전, <ph name="PRODUCT_NAME" /> 채널과 같은 버전 정보의 보고 여부를 제어합니다. <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 정책이 설정되지 않거나 사용 중지되면 정책이 무시됩니다. @@ -1007,6 +1002,15 @@ 정책을 설정하지 않으면 서비스 약관이 표시되지 않습니다. 정책은 <ph name="PRODUCT_OS_NAME" />에서 서비스 약관을 다운로드할 수 있는 URL에 설정되어야 합니다. 서비스 약관은 MIME 유형 text/plain으로 제공된 일반 텍스트여야 합니다. 마크업은 허용되지 않습니다.</translation> +<translation id="2500699707048942472">PIN 자동 제출 기능은 Chrome OS에서 PIN이 입력되는 방식을 변경합니다. + 이 기능은 비밀번호 입력에 사용되는 텍스트 입력란을 표시하는 대신 + 사용자에게 PIN에 필요한 자릿수를 명확히 보여주는 + 특수 UI를 표시합니다. 따라서 사용자의 PIN 길이가 + 사용자 암호화 데이터 외부에 저장됩니다. 길이가 6~12자리인 PIN만 + 지원됩니다. + + 정책을 false로 설정하면 설정 페이지에서 이 기능을 사용할 수 있는 + 옵션이 사용자에게 제공되지 않습니다.</translation> <translation id="2502467045153796624">채널 다운그레이드 동작</translation> <translation id="250670737672448119">캐럿 강조표시 접근성 기능을 사용합니다. @@ -1533,11 +1537,6 @@ * 4로 설정하면 등록 후 사용자가 로그인하기 전에 <ph name="TPM_FIRMWARE_UPDATE_TPM" /> 펌웨어가 업데이트됩니다. 정책을 설정하지 않으면 <ph name="TPM_FIRMWARE_UPDATE_TPM" /> 펌웨어 업데이트가 제공되지 않습니다.</translation> -<translation id="3235677869770186098">정책을 설정하면 로그인 화면에서 주어진 공급업체 및 제품 ID로 USB 기기 액세스 권한을 자동으로 부여받는 사이트를 지정하는 URL 패턴 목록을 작성할 수 있습니다. 정책이 유효하려면 목록의 각 항목에 'devices' 및 'urls' 필드가 있어야 합니다. 'devices' 필드에 포함된 각 항목은 'vendor_id' 및 'product_id' 필드를 가질 수 있습니다. 'vendor_id' 필드를 생략하면 모든 기기와 일치하는 정책이 생성됩니다. 'product_id' 필드를 생략하면 주어진 공급업체 ID가 있는 모든 기기와 일치하는 정책이 생성됩니다. 'product_id' 필드는 있지만 'vendor_id' 필드는 없는 정책은 유효하지 않습니다. - - USB 권한 모델은 요청 및 삽입 URL을 사용하여 USB 기기에 액세스하기 위한 요청 URL 권한을 부여합니다. 요청하는 사이트가 iframe에서 로드되는 경우 요청 URL이 삽입 URL과 다를 수 있습니다. 따라서 urls 필드에는 요청 URL과 삽입 URL을 구분하여 지정할 수 있도록 쉼표로 구분된 URL 문자열이 2개까지 포함될 수 있습니다. URL이 하나만 지정된 경우, 삽입 상태와 관계없이 요청하는 사이트의 URL이 이 URL과 일치하면 해당하는 USB 기기에 액세스할 수 있는 권한이 부여됩니다. URL은 유효해야 하며 그렇지 않으면 정책이 무시됩니다. - - 정책을 설정하지 않으면 모든 사이트에 전역 기본값이 사용됩니다(자동 액세스 없음).</translation> <translation id="3236046242843493070">확장 프로그램, 앱, 사용자 스크립트 설치 등을 허용하는 URL 패턴</translation> <translation id="3240609035816615922">프린터 설정 액세스 정책</translation> <translation id="324062325008698789">프린터 목록 구성</translation> @@ -1851,7 +1850,6 @@ <translation id="3631099945620529777">false로 설정되면 '프로세스 종료' 버튼이 작업 관리자에서 사용 중지됩니다. 설정되지 않거나 true로 설정되면 사용자가 작업 관리자에서 프로세스를 종료할 수 있습니다.</translation> -<translation id="3639444551396586995">Chrome에서 안전하지 않은 이벤트를 Google에 보고하도록 허용</translation> <translation id="3643284063603988867">'비밀번호 기억' 기능 사용 설정</translation> <translation id="3646859102161347133">화면 돋보기 유형 설정</translation> <translation id="3647212518036289905">정책을 설정하면 HTTP 인증에 사용할 GSSAPI 라이브러리가 지정됩니다. 정책을 라이브러리 이름 또는 전체 경로 중 하나로 설정합니다. @@ -1871,13 +1869,6 @@ 이 정책은 데스크톱에서 시스템 범위 클라우드 정책 등록에 사용되며 Windows의 경우 Registry 또는 GPO, Mac의 경우 plist, Linux의 경우 JSON 정책 파일에 의해 설정될 수 있습니다.</translation> <translation id="3660562134618097814">로그인 중 SAML IdP 쿠키 전송</translation> -<translation id="3669373349666208904">정책을 True로 설정하면 페이지가 로드 취소되는 동안 팝업을 표시하도록 허용합니다. - - 정책을 False로 설정하거나 설정하지 않으면 페이지가 로드 취소되는 동안 팝업을 표시하지 않습니다. - - 이 정책은 Chrome 88에서 삭제됩니다. - - https://www.chromestatus.com/feature/5989473649164288 페이지를 참고하세요.</translation> <translation id="3691155504326059225">정책을 사용으로 설정하면 새 탭 페이지가 사용자의 홈페이지로 설정되고 기존 홈페이지 URL 위치는 무시됩니다. 정책을 사용 안함으로 설정하면 사용자의 홈페이지 URL을 chrome://newtab으로 설정하지 않는 한 홈페이지가 새 탭 페이지로 지정되지 않습니다. 정책을 설정하면 사용자가 <ph name="PRODUCT_NAME" />에서 홈페이지 유형을 변경할 수 없습니다. 설정하지 않으면 사용자가 새 탭 페이지를 홈페이지로 지정할지 결정할 수 있습니다. @@ -2116,15 +2107,6 @@ <translation id="4020682745012723568">사용자의 프로필로 전송된 쿠키는 Android 앱에 액세스할 수 없습니다.</translation> <translation id="402759845255257575">모든 사이트에서 자바스크립트 실행 허용 안함</translation> <translation id="4027608872760987929">기본 검색 공급자 사용</translation> -<translation id="4044054366426171256">원격 액세스 호스트에 제공되는 필수 호스트 도메인 이름을 구성하여 사용자가 변경하지 못하게 합니다. - - 이 설정을 사용하도록 설정하고 1개 이상의 도메인에 설정하면 지정된 도메인 이름에 등록된 계정을 사용할 때만 호스트를 공유할 수 있습니다. - - 이 설정이 사용 중지되거나, 설정되지 않거나, 빈 목록으로 설정되면 어떤 계정을 사용하든 호스트를 공유할 수 있습니다. - - RemoteAccessHostDomain이 있더라도 이 설정이 우선 적용됩니다. - - RemoteAccessHostClientDomainList도 참조하세요.</translation> <translation id="4056910949759281379">SPDY 프로토콜 사용 중지</translation> <translation id="4061590579642538878">비정상 종료 보고서에 관한 정보를 보고합니다.</translation> <translation id="4075675819066819571">실행기를 화면 왼쪽에 놓기</translation> @@ -2582,10 +2564,6 @@ <translation id="4874982543810021567">이 사이트에서 WebUSB 차단</translation> <translation id="4876805738539874299">최대 SSL 버전 사용 설정됨</translation> <translation id="4887274746092315609">SAML 사용자가 세션 중에 비밀번호를 변경할 수 있는 페이지를 허용합니다.</translation> -<translation id="4887863670424903990">이 정책이 사용 설정되면 <ph name="PRODUCT_NAME" />에서 비밀번호 재사용, 멀웨어 다운로드, 전면 광고, 민감한 정보 보호 규칙 위반과 같이 안전하지 않은 이벤트를 분석하기 위해 Google에 보고합니다. 민감한 정보 보호 규칙 위반과 같은 일부 안전하지 않은 이벤트에는 이 검사를 사용 설정하는 다른 정책에 따라 검사가 적용됩니다. - - 이 정책이 사용 중지되거나 설정되지 않으면 <ph name="PRODUCT_NAME" />에서 안전하지 않은 이벤트를 보고하지 않습니다. - </translation> <translation id="4894290482695457375"><ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" />이(가) '사용 안함'으로 설정되어 있지 않은 한, <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" />을(를) '사용'으로 설정하면 <ph name="PRODUCT_NAME" />이(가) RFC1918/RFC4193 비공개 주소뿐 아니라 모든 IP 주소에서 Cast 기기에 연결됩니다. 정책을 '사용 안함'으로 설정하면 <ph name="PRODUCT_NAME" />이(가) RFC1918/RFC4193에서만 Cast 기기에 연결됩니다. @@ -3375,9 +3353,6 @@ 원격 액세스 클라이언트는 이 정책 설정의 영향을 받지 않으며 TalkGadget에 액세스할 때 항상 'chromoting-client.talkgadget.google.com'을 사용합니다.</translation> <translation id="5890063326284543943">Serial API 사용 제어</translation> -<translation id="5893553533827140852">이 설정을 사용하도록 설정하면 gnubby 인증 요청이 원격 호스트 연결을 통해 프록시됩니다. - - 이 설정을 사용 중지하거나 구성하지 않으면 gnubby 인증 요청이 프록시되지 않습니다.</translation> <translation id="5897913798715600338">급속 충전 기술을 사용하여 배터리를 충전합니다.</translation> <translation id="5898486742390981550">여러 사용자가 로그인한 경우 기본 사용자만 Android 앱을 사용할 수 있습니다.</translation> <translation id="5901427587865226597">양면 인쇄만</translation> @@ -3721,7 +3696,6 @@ 하지만 이 정책의 출처 일치 패턴에는 '/path' 또는 '@query' 요소가 포함될 수 없습니다. '/path' 또는 '@query' 요소가 포함된 패턴은 무시됩니다.</translation> <translation id="6464074037294098618">주소 자동 완성 사용</translation> <translation id="6467613372414922590">관리자 권한 없이 설치된 사용자 수준의 기본 메시지 호스트를 허용합니다.</translation> -<translation id="6468980648680553776">이 정책은 지원이 중단되었습니다. 대신 RemoteAccessHostClientDomainList를 사용하세요.</translation> <translation id="6473623140202114570">세이프 브라우징에서 경고를 표시하지 않는 도메인의 목록을 설정합니다.</translation> <translation id="647698599569353771">Nearby Share를 사용 설정할 수 있도록 허용</translation> <translation id="6485813825811798133">이 정책을 설정하면 URL 패턴 목록을 만들어 사용자에게 File System API를 통해 호스트 운영체제의 파일 시스템 내 파일 또는 디렉터리에 대한 읽기 액세스 권한을 요청할 수 없는 사이트를 지정하는 것이 가능합니다. @@ -4566,17 +4540,6 @@ <translation id="747014869399137701">정책을 1로 설정하면 웹사이트에서 데스크톱 알림을 표시하도록 허용합니다. 정책을 2로 설정하면 데스크톱 알림을 거부합니다. 설정하지 않으면 <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> 정책이 적용되지만 사용자가 이 설정을 변경할 수 있습니다.</translation> -<translation id="7471828226549672843">CCT를 처음 실행할 때 서비스 약관이 기본으로 표시됩니다. 정책을 사용 안함으로 설정하면 첫 실행 환경 또는 이후 실행 중 서비스 약관 대화상자가 나타나지 않습니다. 정책을 사용으로 설정하거나 설정하지 않으면 첫 실행 환경에서 서비스 약관 대화상자가 나타납니다. 다른 주의사항은 다음과 같습니다. - - - 이 정책은 Unified Endpoint Management 공급업체에서 구성할 수 있는 완전 관리형 Android 기기에서만 작동합니다. - - - 정책을 사용 안함으로 설정하면 BrowserSignin 정책이 적용되지 않습니다. - - - 정책을 사용 안함으로 설정하면 측정항목이 서버로 전송되지 않습니다. - - - 정책을 사용 안함으로 설정하면 브라우저의 기능이 제한됩니다. - - - 정책을 사용 안함으로 설정하면 관리자가 기기의 최종 사용자에게 이를 알려야 합니다.</translation> <translation id="747275827471712187">이 사이트에서 쿠키의 레거시 <ph name="ATTRIBUTE_SAMESITE_NAME" /> 동작으로 되돌리기</translation> <translation id="7476621944304431784">설정을 사용하면 사용자가 <ph name="PRODUCT_OS_NAME" /> 기기 및 연결된 Android 휴대전화 간에 Wi-Fi 네트워크 구성을 동기화할 수 있습니다. Wi-Fi 네트워크 구성을 동기화하려면 사용자가 설정 절차를 완료하여 이 기능을 명시적으로 선택해야 합니다. @@ -4613,15 +4576,6 @@ 정책을 설정하지 않으면 Internet Explorer에서 <ph name="PRODUCT_NAME" />을 실행할 때 <ph name="IE_PRODUCT_NAME" />에서 <ph name="PRODUCT_NAME" />의 자체 실행 경로를 자동으로 감지합니다. 참고: <ph name="IE_PRODUCT_NAME" />의 이전 브라우저 지원 부가기능이 설치되어 있지 않으면 정책이 적용되지 않습니다.</translation> -<translation id="7506758875409719208">원격 액세스 클라이언트에 제공되는 필수 클라이언트 도메인 이름을 구성하여 사용자가 변경하지 못하도록 합니다. - - 이 설정을 사용하도록 설정하고 1개 이상의 도메인에 설정하면 지정된 도메인의 클라이언트만 호스트에 연결할 수 있습니다. - - 이 설정이 사용 중지되거나, 설정되지 않거나, 빈 목록으로 설정되면 연결 유형에 관한 기본 정책이 적용됩니다. 원격 지원의 경우 이 정책은 어떤 도메인의 클라이언트든 호스트에 연결할 수 있도록 허용합니다. 단, 상시 원격 액세스의 경우 호스트 소유자만이 연결할 수 있습니다. - - RemoteAccessHostClientDomain이 있더라도 이 설정이 우선 적용됩니다. - - RemoteAccessHostDomainList도 참조하세요.</translation> <translation id="7507131973617884092">이 정책을 설정하면 쉼표로 구분된 목록에서 이름이 지정된 각 출처가 자체 프로세스로 작동하며 하위 도메인으로 이름이 지정된 출처는 격리됩니다. 예를 들어 https://example.com/을 지정하면 https://foo.example.com/도 https://example.com/ 사이트의 일부로 격리됩니다. 사용 안함으로 설정하거나 설정하지 않으면 사용자가 이 설정을 변경할 수 있습니다. @@ -5099,7 +5053,6 @@ 작업이 일시중지면 일시중지되기 전에 <ph name="PRODUCT_OS_NAME" />에서 화면을 잠그거나 잠그지 않도록 별도로 설정할 수 있습니다.</translation> <translation id="8214600119442850823">비밀번호 관리자를 구성합니다.</translation> -<translation id="8217516105848565518">이 정책은 지원이 중단되었습니다. RemoteAccessHostDomainList를 사용하세요.</translation> <translation id="8219777886736887686">이 정책을 설정하면 대체 브라우저에서 URL을 여는 데 사용할 명령을 제어할 수 있습니다. 정책은 <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> 또는 파일 경로 중 하나로 설정할 수 있습니다. 정책을 파일 경로로 설정하면 파일이 실행 파일로 사용됩니다. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> 및 <ph name="EDGE_VALUE_PLACEHOLDER" />은(는) <ph name="MS_WIN_NAME" />에서만 사용할 수 있으며 <ph name="SAFARI_VALUE_PLACEHOLDER" />은(는) <ph name="MS_WIN_NAME" /> 및 <ph name="MAC_OS_NAME" />에서만 사용할 수 있습니다. 정책을 설정하지 않으면 <ph name="MS_WIN_NAME" />에서는 <ph name="IE_PRODUCT_NAME" />, <ph name="MAC_OS_NAME" />에서는 <ph name="SAFARI_PRODUCT_NAME" />와 같이 플랫폼별 기본값이 사용됩니다. <ph name="LINUX_OS_NAME" />에서는 대체 브라우저가 실행되지 않습니다.</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index daf9fba1..e0f0199 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -783,13 +783,6 @@ Dit beleid mag niet worden gebruikt voor apparaten die openbaar worden gebruikt. Als dit beleid is ingesteld op True of niet is ingesteld, wordt de privacywaarschuwing in de melding voor automatisch starten van beheerde gastsessies vastgezet totdat de gebruiker deze sluit.</translation> -<translation id="228665601367357543">Hiermee kun je een lijst met URL-patronen opgeven met de sites die automatisch toegangsrechten krijgen voor een USB-apparaat met de opgegeven leveranciers- en product-ID's. Het beleid is alleen geldig als elk lijstitem een veld voor apparaten en een veld voor URL's bevat. Elk item in het veld voor apparaten kan een veld voor vendor_id en een veld voor product_id hebben. Als je het veld vendor_id weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat. Als je het veld product_id weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat met de opgegeven leveranciers-ID. Een beleid dat het veld product_id heeft zonder het veld vendor_id is ongeldig. - - Het USB-rechtenmodel gebruikt de aanvragende URL en de insluitings-URL (van de framesite op hoofdniveau) om de aanvragende URL toegang te geven tot het USB-apparaat. Als de aanvragende site in een iframe wordt geladen, is het mogelijk dat de aanvragende URL en de insluitings-URL niet hetzelfde zijn. Daarom kan het veld voor URL's maximaal 2 door een komma gescheiden tekenreeksen bevatten om deze URL's op te geven. Als je maar één URL wilt opgeven, wordt er alleen toegang tot de bijbehorende USB-apparaten gegeven als de URL van de aanvragende site overeenkomt met deze URL, ongeacht de insluitingsstatus. De URL's in het veld voor URL's moeten geldig zijn. Als dit niet het geval is, wordt het beleid genegeerd. - - Als je het beleid niet instelt, is <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> van toepassing als dit is ingesteld. Zo niet, dan gelden de persoonlijke instellingen van de gebruiker. - - De URL-patronen in dit beleid mogen geen conflict vormen met de patronen die zijn ingesteld via <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. Als dit het geval is, krijgt dit beleid voorrang op <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> en <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Met dit beleid wordt bepaald of er versiegegevens moeten worden gerapporteerd, zoals OS-versie, OS-platform, OS-architectuur, <ph name="PRODUCT_NAME" />-versie en <ph name="PRODUCT_NAME" />-kanaal. Als het beleid <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> niet is ingesteld of is uitgeschakeld, wordt dit beleid genegeerd. @@ -961,6 +954,7 @@ Als je het beleid niet instelt, worden er geen statistieken en diagnostische gegevens gerapporteerd voor onbeheerde apparaten, maar wel voor beheerde apparaten.</translation> <translation id="2454228136871844693">Optimaliseren voor stabiliteit.</translation> +<translation id="2455033019778127130">Standaard browsergedrag gebruiken. De servicevoorwaarden worden weergegeven en er wordt gewacht tot de gebruiker ze accepteert.</translation> <translation id="2463034609187171371">DHE-coderingssuites inschakelen in TLS</translation> <translation id="2463365186486772703">Landinstelling voor applicatie</translation> <translation id="2463832514638083341">Met dit beleid wordt bepaald hoelang (in dagen) de metadata van afdruktaken worden opgeslagen op het apparaat. @@ -1062,6 +1056,7 @@ Als je dit beleid inschakelt, geef je aan welke hosts voor systeemeigen berichten niet mogen worden geladen. Een weigeringslijst met de waarde <ph name="WILDCARD_VALUE" /> betekent dat alle hosts voor systeemeigen berichten worden geweigerd, tenzij ze expliciet zijn toegestaan. Als je het beleid niet instelt, laadt <ph name="PRODUCT_NAME" /> alle geïnstalleerde hosts voor systeemeigen berichten.</translation> +<translation id="2568488785376704318">Dit beleid is beëindigd. Gebruik in plaats daarvan <ph name="REMOTE_ACCESS_HOST_DOMAIN_LIST_POLICY_NAME" />.</translation> <translation id="2571066091915960923">Schakelt de proxy voor het comprimeren van gegevens in of uit en voorkomt dat gebruikers deze instelling kunnen wijzigen. Als je deze instelling in- of uitschakelt, kunnen gebruikers deze instelling niet wijzigen of overschrijven. @@ -1269,6 +1264,11 @@ Als je deze instelling inschakelt, gebruikt Afdrukvoorbeeld de standaardprinter van het besturingssysteem als standaardbestemming.</translation> <translation id="285627849510728211">Dagconfiguratie voor geavanceerde batterijoplaadmodus instellen</translation> <translation id="2856674246949497058">Herstel en blijf op de doelversie als de OS-versie nieuwer is dan de doelversie. Voer een powerwash uit tijdens het proces.</translation> +<translation id="2857886155146264716">Als je het beleid instelt, kun je een lijst met URL-patronen opgeven met de sites die op het inlogscherm automatisch toegangsrechten krijgen voor een USB-apparaat met de opgegeven leveranciers- en product-ID's. Het beleid is alleen geldig als elk item in de lijst de velden <ph name="DEVICES_FIELD_NAME" /> en <ph name="URLS_FIELD_NAME" /> bevat. Elk item in het veld <ph name="DEVICES_FIELD_NAME" /> kan een veld <ph name="VENDOR_ID_FIELD_NAME" /> en een veld <ph name="PRODUCT_ID_FIELD_NAME" /> hebben. Als je het veld <ph name="VENDOR_ID_FIELD_NAME" /> weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat. Als je het veld <ph name="PRODUCT_ID_FIELD_NAME" /> weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat met de opgegeven leveranciers-ID. Een beleid dat het veld <ph name="PRODUCT_ID_FIELD_NAME" /> heeft zonder het veld <ph name="VENDOR_ID_FIELD_NAME" /> is ongeldig. + + Het USB-rechtenmodel gebruikt de aanvragende URL en de insluitings-URL om de aanvragende URL toegang te geven tot het USB-apparaat. Als de aanvragende site in een iframe wordt geladen, kan de aanvragende URL anders zijn dan de insluitings-URL. Daarom kan het veld <ph name="URLS_FIELD_NAME" /> maximaal 2 door een komma gescheiden tekenreeksen bevatten om aanvragende URL en de insluitings-URL op te geven. Als er slechts 1 URL wordt opgegeven, wordt toegang tot de bijbehorende USB-apparaten gegeven als de URL van de aanvragende site overeenkomt met deze URL, ongeacht de insluitingsstatus. De URL's moeten geldig zijn, anders wordt het beleid genegeerd. + + Als je het beleid niet instelt, wordt de algemene standaardwaarde gebruikt voor alle sites (geen automatische toegang).</translation> <translation id="2869762730352628426">Automatisch klikken op het inlogscherm inschakelen</translation> <translation id="2872961005593481000">Afsluiten</translation> <translation id="2874209944580848064">Opmerking voor <ph name="PRODUCT_OS_NAME" />-apparaten die Android-apps ondersteunen:</translation> @@ -1519,11 +1519,6 @@ * 4, wordt <ph name="TPM_FIRMWARE_UPDATE_TPM" />-firmware geüpdatet nadat het apparaat is geregistreerd, voordat de gebruiker inlogt. Als je het beleid niet instelt, zijn <ph name="TPM_FIRMWARE_UPDATE_TPM" />-firmware-updates niet beschikbaar.</translation> -<translation id="3235677869770186098">Als je het beleid instelt, kun je een lijst met URL-patronen opgeven met de sites die op het inlogscherm automatisch toegangsrechten krijgen voor een USB-apparaat met de opgegeven leveranciers- en product-ID's. Het beleid is alleen geldig als elk item in de lijst een veld voor devices (apparaten) en een veld voor urls (URL's) bevat. Elk item in het veld voor apparaten kan een veld voor vendor_id (leveranciers-ID) en een veld voor product_id (product-ID) hebben. Als je het veld vendor_id weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat. Als je het veld product_id weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat met de opgegeven leveranciers-ID. Een beleid dat het veld product_id heeft zonder het veld vendor_id is ongeldig. - - Het USB-rechtenmodel gebruikt de aanvragende URL en de insluitings-URL om de aanvragende URL toegang te geven tot het USB-apparaat. Als de aanvragende site in een iframe wordt geladen, kan de aanvragende URL anders zijn dan de insluitings-URL. Daarom kan het veld voor URL's maximaal 2 door een komma gescheiden tekenreeksen bevatten om aanvragende URL en de insluitings-URL op te geven. Als er slechts 1 URL wordt opgegeven, wordt toegang tot de bijbehorende USB-apparaten gegeven als de URL van de aanvragende site overeenkomt met deze URL, ongeacht de insluitingsstatus. De URL's moeten geldig zijn, anders wordt het beleid genegeerd. - - Als je het beleid niet instelt, wordt de algemene standaardwaarde gebruikt voor alle sites (geen automatische toegang).</translation> <translation id="3236046242843493070">URL-patronen om de installatie van extensies, apps en gebruikersscripts toe te staan vanaf</translation> <translation id="3240609035816615922">Toegangsbeleid voor printerconfiguratie.</translation> <translation id="324062325008698789">Hiermee wordt een lijst met printers geconfigureerd</translation> @@ -1833,7 +1828,6 @@ <translation id="3631099945620529777">Als deze optie is ingesteld op 'false', is de knop 'Proces beëindigen' uitgeschakeld in Taakbeheer. Als deze optie is ingesteld op 'true' of niet is geconfigureerd, kan de gebruiker processen in Taakbeheer beëindigen.</translation> -<translation id="3639444551396586995">Hiermee wordt toegestaan dat Chrome onveilige gebeurtenissen rapporteert aan Google</translation> <translation id="3643284063603988867">Functie 'Wachtwoord onthouden' inschakelen</translation> <translation id="3646859102161347133">Het type vergrootglas instellen</translation> <translation id="3647212518036289905">Als je het beleid instelt, geef je aan welke GSSAPI-bibliotheek moet worden gebruikt voor HTTP-verificatie. Stel het beleid in op een bibliotheeknaam of een volledig pad. @@ -1853,13 +1847,6 @@ Dit beleid wordt gebruikt door cloud-beleidsinschrijving voor machinebereik op desktop en kan worden ingesteld via register of GPO op Windows, plist op Mac en JSON-beleidsbestand op Linux.</translation> <translation id="3660562134618097814">SAML IdP-cookies overdragen tijdens het inloggen</translation> -<translation id="3669373349666208904">Als je het beleid instelt op True, kunnen pagina's pop-ups weergeven terwijl het laden van de pagina's ongedaan wordt gemaakt. - - Als je het beleid instelt op False of niet instelt, kunnen pagina's geen pop-ups weergeven terwijl het laden van de pagina's ongedaan wordt gemaakt. - - Dit beleid wordt verwijderd in Chrome 88. - - Zie https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Als je het beleid inschakelt, wordt de pagina 'Nieuw tabblad' gebruikt als homepage van de gebruiker en wordt de URL voor de homepage genegeerd. Als je het beleid uitschakelt, wordt de pagina 'Nieuw tabblad' nooit gebruikt als homepage van de gebruiker, tenzij de URL voor de homepage is ingesteld op chrome://newtab. Als je het beleid instelt, kunnen gebruikers het type homepage niet wijzigen in <ph name="PRODUCT_NAME" />. Als je dit beleid niet instelt, kan de gebruiker bepalen of de pagina 'Nieuw tabblad' als homepage wordt gebruikt. @@ -2098,15 +2085,6 @@ <translation id="4020682745012723568">Cookies die worden overgedragen naar het profiel van de gebruiker, zijn niet toegankelijk voor Android-apps.</translation> <translation id="402759845255257575">Niet toestaan dat sites JavaScript uitvoeren</translation> <translation id="4027608872760987929">De standaardzoekprovider inschakelen</translation> -<translation id="4044054366426171256">Hiermee configureer je de vereiste domeinnamen die worden opgelegd aan hosts voor externe toegang en voorkom je dat gebruikers deze wijzigen. - - Als deze instelling is ingeschakeld en ingesteld voor een of meer domeinen, kunnen hosts alleen worden gedeeld met accounts die zijn geregistreerd op een van de gespecificeerde domeinnamen. - - Als deze instelling is uitgeschakeld, niet is ingesteld of is ingesteld voor een lege lijst, kunnen hosts worden gedeeld via elk account. - - Deze instelling heeft voorrang op RemoteAccessHostDomain (indien aanwezig). - - Zie ook RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">SPDY-protocol uitschakelen</translation> <translation id="4061590579642538878">Informatie over crashrapporten rapporteren.</translation> <translation id="4075675819066819571">De plank aan de linkerkant van het scherm plaatsen</translation> @@ -2235,6 +2213,11 @@ Als je dit beleid instelt, kunnen gebruikers het niet wijzigen of overschrijven. Als dit beleid niet is ingesteld, is de functie voor automatisch klikken in eerste instantie uitgeschakeld, maar kan de gebruiker deze op elk gewenst moment inschakelen.</translation> +<translation id="4214536984333857724">Als je deze instelling inschakelt, worden gnubby-verificatieverzoeken gestuurd via een proxy met een externe hostverbinding. + + Houd er rekening mee dat voor een correcte werking van deze functie extra componenten vereist zijn die niet beschikbaar zijn buiten de Google-netwerkomgeving. + + Als je deze instelling uitschakelt, worden gnubby-verificatieverzoeken niet via een proxy gestuurd.</translation> <translation id="4215197846797661927">Stel een dagconfiguratie voor de geavanceerde batterijoplaadmodus in. Dit beleid wordt alleen gebruikt als <ph name="DEVICE_ADVANCED_BATTERY_CHARGE_MODE_ENABLED_NAME" /> is ingesteld op True. @@ -2397,6 +2380,7 @@ <translation id="4554651132977135445">Loopback-verwerkingsmodus voor gebruikersbeleid</translation> <translation id="4555850956567117258">Externe bevestiging van gebruiker inschakelen</translation> <translation id="4557134566541205630">URL van standaard zoekprovider voor nieuwe tabbladpagina</translation> +<translation id="4558166110367609724">De servicevoorwaarden worden automatisch overgeslagen en de browser wordt geladen.</translation> <translation id="4562165737444703281">Toestaan dat gebruikers Crostini-poortdoorschakeling [inschakelen/configureren]</translation> <translation id="456686782928669977">Met dit beleid wordt bepaald of de regels van het SiteList-beleid van <ph name="IE_PRODUCT_NAME" /> moeten worden geladen. @@ -2561,11 +2545,27 @@ <translation id="487460824085252184">Automatisch migreren, niet om toestemming van de gebruiker vragen.</translation> <translation id="4874982543810021567">WebUSB blokkeren op deze sites</translation> <translation id="4876805738539874299">Maximale SSL-versie ingeschakeld</translation> -<translation id="4887274746092315609">Schakelt een pagina in voor wachtwoordwijziging tijdens een sessie voor SAML-gebruikers</translation> -<translation id="4887863670424903990">Als dit beleid is ingeschakeld, rapporteert <ph name="PRODUCT_NAME" /> onveilige gebeurtenissen (zoals hergebruik van wachtwoorden, malwaredownloads, interstitials, schendingen van de beveiligingsregels voor gevoelige gegevens, enzovoort) aan Google voor analyse. Bepaalde onveilige gebeurtenissen, zoals schendingen van de beveiligingsregels voor gevoelige gegevens, zijn afhankelijk van ander beleid waarmee dergelijke controles worden ingeschakeld. +<translation id="487928067861956387">Hiermee configureer je de vereiste domeinnamen die worden opgelegd aan hosts voor externe toegang en voorkom je dat gebruikers deze wijzigen. - Als dit beleid is uitgeschakeld of niet is ingesteld, rapporteert <ph name="PRODUCT_NAME" /> geen onveilige gebeurtenissen. - </translation> + Als je deze instelling inschakelt en instelt op een of meer domeinen, kunnen hosts alleen worden gedeeld met accounts die zijn geregistreerd op een van de gespecificeerde domeinnamen. + + Als je deze instelling uitschakelt, niet instelt of instelt op een lege lijst, kunnen hosts worden gedeeld via elk account. + + Deze instelling heeft voorrang op <ph name="REMOTE_ACCESS_HOST_DOMAIN_POLICY_NAME" /> (indien aanwezig). + + Zie ook <ph name="REMOTE_ACCESS_HOST_CLIENT_DOMAIN_LIST_POLICY_NAME" />.</translation> +<translation id="4887274746092315609">Schakelt een pagina in voor wachtwoordwijziging tijdens een sessie voor SAML-gebruikers</translation> +<translation id="4892647988357350237">De servicevoorwaarden worden standaard weergegeven als CCT voor het eerst wordt uitgevoerd. Als je dit beleid instelt op <ph name="SKIP_TOS_DIALOG" />, wordt het dialoogvenster met servicevoorwaarden niet weergegeven tijdens de eerste uitvoering of de daaropvolgende uitvoeringen. Als je dit beleid instelt op <ph name="STANDARD_TOS_DIALOG" /> of niet instelt, wordt het dialoogvenster met servicevoorwaarden weergegeven tijdens de eerste uitvoering. De andere belangrijke aspecten zijn: + + - Dit beleid werkt alleen op volledig beheerde Android-apparaten die kunnen worden geconfigureerd door leveranciers van Unified Endpoint Management. + + - Als je dit beleid instelt op <ph name="SKIP_TOS_DIALOG" />, heeft het beleid BrowserSignin geen effect. + + - Als je dit beleid instelt op <ph name="SKIP_TOS_DIALOG" />, worden er geen statistieken naar de server gestuurd. + + - Als je dit beleid instelt op <ph name="SKIP_TOS_DIALOG" />, beschikt de browser over beperkte functionaliteit. + + - Als je dit beleid instelt op <ph name="SKIP_TOS_DIALOG" />, moeten beheerders dit laten weten aan eindgebruikers van het apparaat.</translation> <translation id="4894290482695457375">Als je <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> inschakelt, maakt <ph name="PRODUCT_NAME" /> verbinding met cast-apparaten op alle IP-adressen en niet alleen op RFC1918/RFC4913-privéadressen, tenzij je <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> uitschakelt. Als je het beleid uitschakelt, maakt <ph name="PRODUCT_NAME" /> alleen verbinding met cast-apparaten op RFC1918/RFC4193. @@ -2812,6 +2812,15 @@ 'Versie' kan in dit geval een exacte versie zijn (zoals '61.0.3163.120') of een versievoorvoegsel (zoals '61.0'). </translation> <translation id="5247006254130721952">Gevaarlijke downloads blokkeren</translation> +<translation id="5249303875508803168">Hiermee configureer je de vereiste client-domeinnamen die worden opgelegd aan clients voor externe toegang en voorkom je dat gebruikers deze wijzigen. + + Als je deze instelling inschakelt en instelt op een of meer domeinen, kunnen uitsluitend clients van een van de gespecificeerde domeinen verbinding maken met de host. + + Als je deze instelling uitschakelt, niet instelt of instelt op een lege lijst, wordt het standaardbeleid voor het verbindingstype toegepast. In het geval van externe assistentie kunnen clients van elk domein verbinding maken met de host. In het geval van externe toegang op elk gewenst moment kan alleen de eigenaar van de host verbinding maken. + + Deze instelling heeft voorrang op <ph name="REMOTE_ACCESS_HOST_CLIENT_DOMAIN_POLICY_NAME" /> (indien aanwezig). + + Zie ook <ph name="REMOTE_ACCESS_HOST_DOMAIN_LIST_POLICY_NAME" />.</translation> <translation id="5249453807420671499">Gebruikers kunnen Kerberos-accounts toevoegen</translation> <translation id="5252995168844634755">Als je het beleid instelt op 'True', wordt 'Geïntegreerde desktop' ingeschakeld, waarmee apps kunnen worden weergegeven over meerdere schermen. Gebruikers kunnen 'Geïntegreerde desktop' uitschakelen voor afzonderlijke schermen. @@ -3013,6 +3022,13 @@ Als dit beleid niet is ingesteld of is ingesteld op 'Uploads en downloads toestaan', werkt <ph name="PRODUCT_NAME" /> in overeenstemming met de regels die worden beschreven onder 'Downloads toestaan' en 'Uploads toestaan'. </translation> +<translation id="5440507358161332552">Als je het beleid instelt, kun je een lijst met URL-patronen opgeven met de sites die automatisch toegangsrechten krijgen voor een USB-apparaat met de opgegeven leveranciers- en product-ID's. Het beleid is alleen geldig als elk item in de lijst de velden <ph name="DEVICES_FIELD_NAME" /> en <ph name="URLS_FIELD_NAME" /> bevat. Elk item in het veld <ph name="DEVICES_FIELD_NAME" /> kan een veld <ph name="VENDOR_ID_FIELD_NAME" /> en een veld <ph name="PRODUCT_ID_FIELD_NAME" /> hebben. Als je het veld <ph name="VENDOR_ID_FIELD_NAME" /> weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat. Als je het veld <ph name="PRODUCT_ID_FIELD_NAME" /> weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat met de opgegeven leveranciers-ID. Een beleid dat het veld <ph name="PRODUCT_ID_FIELD_NAME" /> heeft zonder het veld <ph name="VENDOR_ID_FIELD_NAME" /> is ongeldig. + + Het USB-rechtenmodel gebruikt de aanvragende URL en de insluitings-URL om de aanvragende URL toegang te geven tot het USB-apparaat. Als de aanvragende site in een iframe wordt geladen, kan de aanvragende URL anders zijn dan de insluitings-URL. Daarom kan het veld <ph name="URLS_FIELD_NAME" /> maximaal 2 door een komma gescheiden tekenreeksen bevatten om aanvragende URL en de insluitings-URL op te geven. Als er slechts 1 URL wordt opgegeven, wordt toegang tot de bijbehorende USB-apparaten gegeven als de URL van de aanvragende site overeenkomt met deze URL, ongeacht de insluitingsstatus. De URL's moeten geldig zijn, anders wordt het beleid genegeerd. + + Als je het beleid niet instelt, is <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> van toepassing als dit is ingesteld. Zo niet, dan gelden de persoonlijke instellingen van de gebruiker. + + De URL-patronen in dit beleid mogen geen conflict vormen met de patronen die zijn ingesteld via <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. Als dit het geval is, krijgt dit beleid voorrang op <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> en <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="5442026853063570579">Met dit beleid wordt ook de toegang tot de ontwikkelaarsopties van Android beheerd. Als je dit beleid instelt op 'DeveloperToolsDisallowed' (waarde 2), hebben gebruikers geen toegang tot ontwikkelaarsopties. Als je dit beleid instelt op een andere waarde of niet instelt, hebben gebruikers toegang tot ontwikkelaarsopties door zeven keer op het buildnummer te tikken in de app Instellingen van Android.</translation> <translation id="5445596354079213552">Dit beleid is alleen van kracht als het apparaat de vervaldatum voor automatische updates heeft bereikt en niet voldoet aan de toegestane minimum versie van <ph name="PRODUCT_OS_NAME" /> die is ingesteld via het beleid <ph name="DEVICE_MINIMUM_VERSION_POLICY_NAME" />. @@ -3252,6 +3268,7 @@ Als je dit beleid instelt, worden video's met audiocontent automatisch (zonder toestemming van de gebruiker) afgespeeld in <ph name="PRODUCT_NAME" />. Als het beleid <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> is ingesteld op True, heeft dit beleid geen effect. Als <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> is ingesteld op False, kunnen URL-patronen die in dit beleid zijn ingesteld nog altijd worden afgespeeld. Als je dit beleid wijzigt terwijl <ph name="PRODUCT_NAME" /> wordt uitgevoerd, wordt het alleen toegepast op nieuw geopende tabbladen. Ga naar https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns voor gedetailleerde informatie over geldige URL-patronen.</translation> +<translation id="5749396052108288586">Dit beleid is beëindigd. Gebruik in plaats daarvan <ph name="REMOTE_ACCESS_HOST_CLIENT_DOMAIN_LIST_POLICY_NAME" />.</translation> <translation id="574983287620584622">Snelkoppelingen voor toegankelijkheidsfuncties inschakelen op het inlogscherm</translation> <translation id="5755002458331714762"> De Web Components v0 API's (Shadow DOM v0, Custom Elements v0 en HTML Imports) zijn beëindigd in 2018 en zijn vanaf M80 standaard uitgeschakeld. Met dit beleid kunnen deze functies selectief opnieuw worden ingeschakeld tot M84. @@ -3353,9 +3370,6 @@ Deze beleidsinstelling is niet van toepassing op clients voor externe toegang. Deze clients gebruiken altijd 'chromoting-client.talkgadget.google.com' om toegang tot het TalkGadget te krijgen.</translation> <translation id="5890063326284543943">Gebruik van de Serial API beheren</translation> -<translation id="5893553533827140852">Als deze instelling is ingeschakeld, worden gnubby-verificatieverzoeken verzonden via een proxy met een externe hostverbinding. - - Als deze instelling uitgeschakeld of niet geconfigureerd is, worden gnubby-verificatieverzoeken niet via een proxy verzonden.</translation> <translation id="5897913798715600338">Batterij snel opladen.</translation> <translation id="5898486742390981550">Wanneer meerdere gebruikers zijn ingelogd, kunnen Android-apps alleen worden gebruikt door de primaire gebruiker.</translation> <translation id="5901427587865226597">Alleen dubbelzijdig afdrukken</translation> @@ -3696,7 +3710,6 @@ Patronen voor overeenkomende herkomst voor dit beleid mogen geen '/path' or '@query'-elementen bevatten. Patronen die een '/path'- of '@query'-element bevatten, worden genegeerd.</translation> <translation id="6464074037294098618">Automatisch invullen voor adressen inschakelen</translation> <translation id="6467613372414922590">Hosts voor native berichten op gebruikersniveau toestaan (geïnstalleerd zonder beheerdersrechten)</translation> -<translation id="6468980648680553776">Dit beleid is beëindigd. Gebruik in plaats daarvan RemoteAccessHostClientDomainList.</translation> <translation id="6473623140202114570">Configureer de lijst met domeinen waar Safe Browsing geen waarschuwingen activeert.</translation> <translation id="647698599569353771">Sta toe dat 'Dichtbij delen' wordt ingeschakeld.</translation> <translation id="6485813825811798133">Als je het beleid instelt, kun je een lijst met URL-patronen maken om op te geven welke sites gebruikers niet mogen vragen om hun leestoegang te geven tot bestanden en directory's in het bestandssysteem van het besturingssysteem van de host via de File System API. @@ -3827,6 +3840,19 @@ Opmerking: Voor Windows®-instanties die niet zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, is afgedwongen installatie beperkt tot apps en extensies die worden vermeld in de Chrome Web Store.</translation> <translation id="6598235178374410284">Avatarafbeelding van gebruiker</translation> <translation id="6603004149426829878">Beschikbare locatiesignalen altijd verzenden naar de server wanneer de tijdzone wordt bepaald</translation> +<translation id="660567106648774919">Dit beleid is beëindigd. Gebruik in plaats daarvan het beleid <ph name="TOS_DIALOG_BEHAVIOR_POLICY_NAME" />. + + De servicevoorwaarden worden standaard weergegeven als CCT voor het eerst wordt uitgevoerd. Als je dit beleid uitschakelt, wordt het dialoogvenster met servicevoorwaarden niet weergegeven tijdens de eerste uitvoering of de daaropvolgende uitvoeringen. Als je dit beleid inschakelt of niet instelt, wordt het dialoogvenster met servicevoorwaarden weergegeven tijdens de eerste uitvoering. De andere belangrijke aspecten zijn: + + - Dit beleid werkt alleen op volledig beheerde Android-apparaten die kunnen worden geconfigureerd door leveranciers van Unified Endpoint Management. + + - Als je dit beleid uitschakelt, heeft het beleid BrowserSignin geen effect. + + - Als je dit beleid uitschakelt, worden er geen statistieken naar de server gestuurd. + + - Als je dit beleid uitschakelt, beschikt de browser over beperkte functionaliteit. + + - Als je dit beleid uitschakelt, moeten beheerders dit laten weten aan eindgebruikers van het apparaat.</translation> <translation id="6614020900120353107">Hiermee bepaal je of de ingebouwde DNS-client wordt gebruikt in <ph name="PRODUCT_NAME" />. Dit is niet van invloed op welke DNS-servers worden gebruikt, maar alleen op de softwarestack die wordt gebruikt om met de servers te communiceren. Als het besturingssysteem bijvoorbeeld is geconfigureerd om een zakelijke DNS-server te gebruiken, wordt dezelfde server gebruikt door de ingebouwde DNS-client. Het is mogelijk dat de ingebouwde DNS-client servers op andere manieren aanspreekt via modernere DNS-protocollen, zoals DNS-over-TLS. @@ -3907,7 +3933,7 @@ <translation id="6689792153960219308">De hardwarestatus melden</translation> <translation id="6690425645391461516">Controles voor DNS-onderschepping uitzetten, infobalken voor 'bedoelde je http://intranetsite/' toestaan.</translation> <translation id="6698632841807204978">Monochroom afdrukken inschakelen</translation> -<translation id="6699880231565102694">Authenticatie in twee stappen inschakelen voor hosts voor externe toegang</translation> +<translation id="6699880231565102694">Verificatie in 2 stappen inschakelen voor hosts voor externe toegang</translation> <translation id="6703251016607733593">Als je dit beleid instelt, wordt de handhaving van vereisten voor openbaarmaking via Certificaattransparantie uitgeschakeld voor een lijst van <ph name="SUBJECT_PUBLIC_KEY_INFO" />-hashes. Enterprise-hosts kunnen certificaten blijven gebruiken die anders niet zouden worden vertrouwd (omdat deze niet op de juiste manier openbaar zijn gemaakt). Als je de handhaving wilt uitschakelen, moet de hash aan een van de volgende voorwaarden voldoen: * De hash maakt deel uit van een <ph name="SUBJECT_PUBLIC_KEY_INFO" /> van het servercertificaat. @@ -4175,6 +4201,7 @@ Als je het beleid uitschakelt, sluit <ph name="PRODUCT_NAME" /> het tabblad nadat er is overgeschakeld naar een alternatieve browser, ook als dit het laatste tabblad was. Hierdoor wordt <ph name="PRODUCT_NAME" /> volledig gesloten.</translation> <translation id="7019805045859631636">Snel</translation> +<translation id="7025332601572838001">Het gedrag voor de servicevoorwaarden configureren voor de eerste uitvoering van CCT</translation> <translation id="7026351325994257733">Toestaan dat wifi-netwerkconfiguraties worden gesynchroniseerd tussen <ph name="PRODUCT_OS_NAME" />-apparaten en een verbonden Android-telefoon.</translation> <translation id="7027785306666625591">Energiebeheer in <ph name="PRODUCT_OS_NAME" /> configureren. @@ -4538,17 +4565,6 @@ <translation id="747014869399137701">Als je het beleid instelt op 1, kunnen websites bureaubladmeldingen weergeven. Als je het beleid instelt op 2, worden bureaubladmeldingen geblokkeerd. Als je het beleid niet instelt, is <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> van toepassing maar kunnen gebruikers deze instelling wijzigen.</translation> -<translation id="7471828226549672843">De servicevoorwaarden worden standaard weergegeven als CCT voor het eerst wordt uitgevoerd. Als je dit beleid uitschakelt, wordt het dialoogvenster met servicevoorwaarden niet weergegeven tijdens de eerste uitvoering of de daaropvolgende uitvoeringen. Als je dit beleid inschakelt of niet instelt, wordt het dialoogvenster met servicevoorwaarden weergegeven tijdens de eerste uitvoering. De andere belangrijke aspecten zijn: - - - Dit beleid werkt alleen op volledig beheerde Android-apparaten die kunnen worden geconfigureerd door leveranciers van Unified Endpoint Management. - - - Als je dit beleid uitschakelt, heeft het beleid BrowserSignin geen effect. - - - Als je dit beleid uitschakelt, worden er geen statistieken naar de server gestuurd. - - - Als je dit beleid uitschakelt, beschikt de browser over beperkte functionaliteit. - - - Als je dit beleid uitschakelt, moeten beheerders dit laten weten aan eindgebruikers van het apparaat.</translation> <translation id="747275827471712187">Het verouderde gedrag van <ph name="ATTRIBUTE_SAMESITE_NAME" /> voor cookies op deze sites terugzetten</translation> <translation id="7476621944304431784">Als je deze instelling inschakelt, mogen gebruikers wifi-netwerkconfiguraties synchroniseren tussen hun <ph name="PRODUCT_OS_NAME" />-apparaten en een verbonden Android-telefoon. Voordat wifi-netwerkconfiguraties kunnen worden gesynchroniseerd, moeten gebruikers deze functie expliciet toestaan door een instelprocedure te doorlopen. @@ -4586,15 +4602,6 @@ Als je het beleid niet instelt, detecteert <ph name="IE_PRODUCT_NAME" /> het eigen pad van <ph name="PRODUCT_NAME" /> naar een uitvoerbaar bestand als <ph name="PRODUCT_NAME" /> wordt gestart vanuit Internet Explorer. Opmerking: Als de add-in 'Ondersteuning voor oudere browsers' van <ph name="IE_PRODUCT_NAME" /> niet is geïnstalleerd, heeft dit beleid geen effect.</translation> -<translation id="7506758875409719208">Hiermee configureer je de vereiste client-domeinnamen die worden opgelegd aan clients voor externe toegang en voorkom je dat gebruikers deze wijzigen. - - Als deze instelling is ingeschakeld en is ingesteld voor een of meer domeinen, kunnen uitsluitend clients van een van de gespecificeerde domeinen verbinding maken met de host. - - Als deze instelling is uitgeschakeld, niet is ingesteld of is ingesteld voor een lege lijst, wordt het standaardbeleid voor het verbindingstype toegepast. In het geval van externe assistentie kunnen clients van elk domein verbinding maken met de host. In het geval van externe toegang op elk gewenst moment kan alleen de eigenaar van de host verbinding maken. - - Deze instelling heeft voorrang op RemoteAccessHostClientDomain (indien aanwezig). - - Zie ook RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Als je dit beleid inschakelt, wordt elk van de benoemde herkomsten (origins) in een door komma's gescheiden lijst uitgevoerd in een eigen proces. Hiermee worden ook herkomsten geïsoleerd die worden benoemd door subdomeinen. Als je bijvoorbeeld https://example.com/ opgeeft, wordt ook https://foo.example.com/ geïsoleerd als onderdeel van de site https://example.com/. Als je het beleid uitschakelt of niet instelt, kunnen gebruikers deze instelling wijzigen. @@ -4735,7 +4742,7 @@ Als dit beleid niet is ingesteld, wordt het standaard weergaveprogramma gebruikt voor alle sites. (Het beleid <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> kan worden gebruikt om het standaard weergaveprogramma te configureren.)</translation> <translation id="7694245791806617022">Beheert of de functie 'Wachtwoord onthouden' is ingeschakeld in het dialoogvenster voor Kerberos-verificatie. Wachtwoorden worden versleuteld opgeslagen op een schijf, alleen toegankelijk voor de systeemdaemon van Kerberos en tijdens een gebruikerssessie. - Als dit beleid is ingeschakeld of niet is ingesteld, kunnen gebruikers besluiten of Kerberos-wachtwoorden worden onthouden, zodat deze niet opnieuw hoeven worden ingevoerd. Kerberos-tickets worden automatisch opgehaald tenzij aanvullende verificatie vereist is (verificatie in twee stappen). + Als dit beleid is ingeschakeld of niet is ingesteld, kunnen gebruikers besluiten of Kerberos-wachtwoorden worden onthouden, zodat deze niet opnieuw hoeven worden ingevoerd. Kerberos-tickets worden automatisch opgehaald tenzij aanvullende verificatie vereist is (verificatie in 2 stappen). Als dit beleid wordt uitgeschakeld, worden wachtwoorden nooit onthouden en worden alle eerder opgeslagen wachtwoorden verwijderd. Gebruikers moeten elke keer dat ze zich moeten verifiëren bij het Kerberos-systeem, hun wachtwoord invoeren. Afhankelijk van de serverinstelling gebeurt dit normaal elke acht uur tot een aantal maanden.</translation> <translation id="7694807474048279351">Plannen dat het apparaat automatisch opnieuw opstart nadat een update van <ph name="PRODUCT_OS_NAME" /> is uitgevoerd. @@ -4784,11 +4791,11 @@ Ga naar https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns voor gedetailleerde informatie over geldige <ph name="URL_LABEL" />-patronen.</translation> <translation id="7747447585227954402">Toestaan dat apparaten een <ph name="PLUGIN_VM_NAME" /> gebruiken op <ph name="PRODUCT_OS_NAME" /></translation> <translation id="7749024457938190837">Extensies die het bevestigingsdialoogvenster mogen overslaan als ze afdruktaken sturen via chrome.printing API</translation> -<translation id="7749402620209366169">Hiermee schakel je authenticatie in twee stappen in plaats van een door de gebruiker gedefinieerde pincode in voor hosts voor externe toegang. +<translation id="7749402620209366169">Hiermee schakel je verificatie in 2 stappen in plaats van een door de gebruiker gedefinieerde pincode in voor hosts voor externe toegang. Als deze instelling is ingeschakeld, moeten gebruikers een geldige code in twee stappen opgeven wanneer ze toegang willen krijgen tot een host. - Als deze instelling is uitgeschakeld of niet is ingesteld, wordt authenticatie in twee stappen niet ingeschakeld en wordt het standaardgedrag van een door de gebruiker gedefinieerde pincode gebruikt.</translation> + Als deze instelling is uitgeschakeld of niet is ingesteld, wordt verificatie in 2 stappen niet ingeschakeld en wordt het standaardgedrag van een door de gebruiker gedefinieerde pincode gebruikt.</translation> <translation id="7749402921503577264">Als je dit beleid inschakelt of niet instelt, kunnen gebruikers klikken door waarschuwingspagina's die door <ph name="PRODUCT_NAME" /> worden weergegeven als gebruikers naar sites gaan die SSL-fouten bevatten. Als je het beleid uitschakelt, kunnen gebruikers niet door waarschuwingspagina's klikken.</translation> @@ -4978,7 +4985,7 @@ <translation id="8053580360728293758">Hiermee overschrijf je de standaard kleurenmodus voor afdrukken. Als de modus niet beschikbaar is, wordt dit beleid genegeerd.</translation> <translation id="8056237304861875584">Toestaan dat Phone Hub-taakvoortzetting wordt aangezet.</translation> <translation id="8059164285174960932">URL waarbij clients met externe toegang hun verificatietoken moeten ophalen</translation> -<translation id="8077245272412229388">Hiermee worden vooraf ingevulde Kerberos-accounts toegevoegd. Als de Kerberos-gegevens overeenkomen met de inloggegevens, kan een account worden geconfigureerd om de inloggegevens opnieuw te gebruiken door '<ph name="LOGIN_EMAIL_PLACEHOLDER" />' en '<ph name="PASSWORD_PLACEHOLDER" />' te specificeren voor respectievelijk het hoofdaccount en wachtwoord. Hierdoor kan het Kerberos-ticket automatisch kan worden opgehaald, tenzij verificatie in twee stappen is geconfigureerd. Gebruikers kunnen accounts die zijn toegevoegd via dit beleid niet aanpassen. +<translation id="8077245272412229388">Hiermee worden vooraf ingevulde Kerberos-accounts toegevoegd. Als de Kerberos-gegevens overeenkomen met de inloggegevens, kan een account worden geconfigureerd om de inloggegevens opnieuw te gebruiken door '<ph name="LOGIN_EMAIL_PLACEHOLDER" />' en '<ph name="PASSWORD_PLACEHOLDER" />' te specificeren voor respectievelijk het hoofdaccount en wachtwoord. Hierdoor kan het Kerberos-ticket automatisch kan worden opgehaald, tenzij verificatie in 2 stappen is geconfigureerd. Gebruikers kunnen accounts die zijn toegevoegd via dit beleid niet aanpassen. Als dit beleid is ingeschakeld, wordt de lijst met accounts die is gespecificeerd door het beleid, toegevoegd aan de instellingen voor Kerberos-accounts. @@ -5068,7 +5075,6 @@ Als de actie 'opschorten' is, kan <ph name="PRODUCT_OS_NAME" /> afzonderlijk worden geconfigureerd om het scherm wel of niet te vergrendelen voordat de opschorting wordt geactiveerd.</translation> <translation id="8214600119442850823">Hiermee wordt Wachtwoordmanager geconfigureerd.</translation> -<translation id="8217516105848565518">Dit beleid is beëindigd. Gebruik in plaats daarvan RemoteAccessHostDomainList.</translation> <translation id="8219777886736887686">Met dit beleid bepaal je welke opdracht moet worden gebruikt om URL's te openen in een alternatieve browser. Dit beleid kan worden ingesteld op <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> of op een pad naar een bestand. Als je dit beleid instelt op een bestandspad, wordt dat bestand als uitvoerbaar bestand gebruikt. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> en <ph name="EDGE_VALUE_PLACEHOLDER" /> zijn alleen beschikbaar in <ph name="MS_WIN_NAME" />. <ph name="SAFARI_VALUE_PLACEHOLDER" /> is alleen beschikbaar in <ph name="MS_WIN_NAME" /> en <ph name="MAC_OS_NAME" />. Als je het beleid niet instelt, wordt er een platformspecifieke standaard-app gebruikt: <ph name="IE_PRODUCT_NAME" /> voor <ph name="MS_WIN_NAME" /> of <ph name="SAFARI_PRODUCT_NAME" /> voor <ph name="MAC_OS_NAME" />. In <ph name="LINUX_OS_NAME" /> werkt het starten van een alternatieve browser niet.</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index 1d60b3e3..06d502b0 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -185,6 +185,7 @@ Se esta configuração for ativada, o SafeSearch na Pesquisa Google e o Modo restrito moderado no YouTube sempre ficarão ativos. Se você desativar esta configuração ou não definir um valor, o SafeSearch na Pesquisa Google e o Modo restrito no YouTube não serão impostos.</translation> +<translation id="134745581157553029">Se a política DeviceArcDataSnapshotHours for definida, o mecanismo de resumo de dados ARC será ativado e a atualização dele poderá ser iniciada automaticamente durante os intervalos de tempo definidos. Quando um intervalo for iniciado, a atualização for necessária e nenhum usuário estiver conectado, o processo de atualização do resumo de dados ARC será iniciado sem notificar o usuário. Se a sessão do usuário estiver ativa, a notificação da IU será exibida e precisará ser aceita para reinicializar um dispositivo e iniciar o processo de atualização do resumo de dados ARC. Observação: não é possível usar o dispositivo durante o processo de atualização do resumo de dados ARC.</translation> <translation id="1353416417709895349">Desativar verificações de interceptação de DNS e barras de informações oferecendo "http://intranetsite/" como alternativa.</translation> <translation id="1353985065430729216">Se a política for definida, será possível configurar uma lista de padrões de URL que especifique os sites que podem acessar sensores de luz e movimento. @@ -410,9 +411,9 @@ <translation id="1645793986494086629">Esquema:</translation> <translation id="1647558381546345298">Definir a política configura o tamanho do cache usado pelo <ph name="PRODUCT_NAME" /> para armazenar arquivos de mídia em cache no disco, independentemente de o usuário ter especificado ou não a sinalização "--media-cache-size". O valor especificado na política não é um limite rígido, mas sim uma sugestão para o sistema de armazenamento em cache. Valores abaixo de alguns megabytes serão arredondados para cima. - Se o valor da política for definido como "0", o tamanho de cache padrão será usado e o usuário não poderá mudá-lo. + Se o valor da política for definido como "0", o tamanho de cache padrão será usado e não será possível mudá-lo. - Se a política não for definida, o tamanho de cache padrão será usado e o usuário poderá mudá-lo com a sinalização "--media-cache-size".</translation> + Se a política não for definida, o tamanho de cache padrão será usado e será possível mudá-lo com a sinalização "--media-cache-size".</translation> <translation id="1648816843164517573">Lista de nomes que contornarão a verificação de política HSTS</translation> <translation id="1654087023995670109">Aplicar o modo visitante do navegador</translation> <translation id="1655229863189977773">Define o tamanho do cache de disco em bytes</translation> @@ -461,6 +462,7 @@ Se definida, a política especificará as extensões isentas da lista de extensões proibidas. Use o valor <ph name="ALL_EXTENSIONS" /> para <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> para que todas as extensões sejam proibidas e os usuários possam instalar apenas extensões explicitamente permitidas. Por padrão, todas as extensões são permitidas. Mas, se você proibiu extensões por meio de uma política, use a lista de extensões permitidas para mudar essa política.</translation> <translation id="1781356041596378058">Esta política também controla o acesso às Opções do desenvolvedor Android. Se você configurar essa política como true, os usuários não poderão acessar as Opções do desenvolvedor. Se configurá-la como false ou deixá-la sem definição, os usuários poderão acessar as Opções do desenvolvedor tocado sete vezes no número da versão no app Config. do Android.</translation> +<translation id="1787790976045065845">Esta política só terá efeito quando a <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> estiver definida como <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> ou <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> e um usuário que faz a autenticação por um cartão inteligente remover o cartão. Esta política especificará por quantos segundos uma notificação que informa o usuário sobre a ação futura será exibida. Essa notificação bloqueia a tela, e a ação só acontecerá depois que a notificação expirar. O usuário pode evitar o acontecimento da ação reinserindo o cartão inteligente antes que a notificação expire. Se esta política for definida como zero, nenhuma notificação será exibida e a ação acontecerá imediatamente.</translation> <translation id="1793346220873697538">Desativar impressão com PIN como padrão</translation> <translation id="179694024208061102">Se a política for definida como ativada, o <ph name="PRODUCT_NAME" /> tentará abrir alguns URLs em um navegador alternativo, como o <ph name="IE_PRODUCT_NAME" />. Esse recurso é configurado por meio das políticas no grupo do <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />. @@ -787,13 +789,6 @@ Esta política não pode ser aplicada em dispositivos usados pelo público geral. Se a política for definida como verdadeira ou não for definida, o alerta de privacidade na Sessão de visitante com início automático será fixado até que o usuário o dispense.</translation> -<translation id="228665601367357543">Permite que você crie uma lista de padrões de URL que especifica quais sites recebem permissão automaticamente para acessar um dispositivo USB com os IDs de produto e de fornecedor especificados. Cada item da lista precisa ter um campo "devices" e "urls" para que a política seja válida. Cada item no campo "devices" pode ter um campo "vendor_id" e "product_id". A omissão do campo "vendor_id" criará uma política válida para qualquer dispositivo. A omissão do campo "product_id" criará uma política válida para qualquer dispositivo com o ID de fornecedor especificado. Uma política com um campo "product_id" que não tiver um campo "vendor_id" será inválida. - - O modelo de permissão de USB usa o URL solicitante e o de incorporação (do site de frames de nível superior) para permitir que o URL solicitante acesse o dispositivo USB. O URL solicitante pode ser diferente do URL de incorporação quando o site solicitante é carregado em um iframe. Portanto, o campo "URLs" pode conter até duas strings delimitadas por vírgula para especificar esses URLs. Se você especificar apenas uma, o acesso aos dispositivos USB correspondentes será concedido quando o URL do site solicitante for igual a esse URL, independente do status de incorporação. Os URLs contidos em "urls" precisam ser válidos. Caso contrário, a política será ignorada. - - Se a política não tiver definição, <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> será aplicada, se estiver definida. Caso contrário, a configuração pessoal do usuário será aplicada. - - Os padrões de URL desta política não podem entrar em conflito com os configurados pela <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. Se entrarem, esta política terá precedência sobre <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> e <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Esta política controla a permissão de fornecimento das informações sobre versão, como a versão, a plataforma e a arquitetura do SO, a versão do <ph name="PRODUCT_NAME" /> e o canal do <ph name="PRODUCT_NAME" />. Quando a <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> não for definida ou for desativada, esta política será ignorada. @@ -993,6 +988,15 @@ Se a política não for definida, os Termos de Serviço não aparecerão. A política precisa ser definida para um URL do qual o <ph name="PRODUCT_OS_NAME" /> possa fazer o download dos Termos de Serviço. Os Termos de Serviço precisam ser um texto simples, veiculado como Tipo MIME. Nenhuma marcação é permitida.</translation> +<translation id="2500699707048942472">O recurso de envio automático do PIN muda a forma como os PINs são inseridos no Chrome OS. + Em vez de exibir o mesmo campo de texto usado na entrada de senha, esse + recurso apresenta uma IU especial que mostra claramente ao usuário quantos + dígitos são necessários para o PIN. Como consequência, o tamanho do PIN do usuário + será armazenado fora dos dados criptografados. Apenas PINs com + 6 a 12 dígitos serão permitidos. + + Se a política for definida como falsa, os usuários não poderão ativar + o recurso na página de configurações.</translation> <translation id="2502467045153796624">Comportamento de downgrade de canal</translation> <translation id="250670737672448119">Ativar o recurso de acessibilidade que destaca o cursor. @@ -1519,11 +1523,6 @@ * 4, o firmware do <ph name="TPM_FIRMWARE_UPDATE_TPM" /> será atualizado após a inscrição e antes de o usuário fazer login. Deixar a política sem definição tornará indisponíveis as atualizações de firmware do <ph name="TPM_FIRMWARE_UPDATE_TPM" />.</translation> -<translation id="3235677869770186098">Definir a política permite que você crie uma lista de padrões de URL que especifica quais sites recebem permissão automaticamente para acessar um dispositivo USB com os IDs de produto e de fornecedor especificados. Cada item da lista precisa ter um campo "devices" e "urls" para que a política seja válida. Cada item no campo "devices" pode ter um campo "vendor_id" e "product_id". A omissão do campo "vendor_id" criará uma política válida para qualquer dispositivo. A omissão do campo "product_id" criará uma política válida para qualquer dispositivo com o ID de fornecedor especificado. Uma política com um campo "product_id" que não tiver um campo "vendor_id" será inválida. - - O modelo de permissão de USB usa o URL solicitante e o de incorporação para permitir que o URL solicitante acesse o dispositivo USB. O URL solicitante pode ser diferente do URL de incorporação quando o site solicitante está carregado em um iframe. Portanto, o campo "urls" pode conter até duas strings delimitadas por vírgula para especificar o URL solicitante e o de incorporação, respectivamente. Se apenas um URL for especificado, o acesso aos dispositivos USB correspondentes será concedido quando o URL do site solicitante coincidir com esse URL, independentemente do status de incorporação. Os URLs precisam ser válidos. Caso contrário, a política será ignorada. - - Se a política não for definida, o valor padrão global será usado para todos os sites (sem acesso automático).</translation> <translation id="3236046242843493070">Padrões de URL para permitir instalação de extensões, aplicativos e scripts do usuário a partir de</translation> <translation id="3240609035816615922">Política de acesso à configuração de impressoras.</translation> <translation id="324062325008698789">Configura uma lista de impressoras</translation> @@ -1832,7 +1831,6 @@ <translation id="3631099945620529777">Se definida como falsa, o botão "Encerrar processo" será desativado no Gerenciador de tarefas. Se definida como verdadeira ou se não for configurada, o usuário poderá encerrar processos no Gerenciador de tarefas.</translation> -<translation id="3639444551396586995">Permite que o Chrome informe eventos inseguros ao Google</translation> <translation id="3643284063603988867">Ativar o recurso "Lembrar senha"</translation> <translation id="3646859102161347133">Definir tipo de lupa</translation> <translation id="3647212518036289905">Definir a política especifica qual biblioteca GSSAPI será usada para a autenticação HTTP. Defina a política como um nome de biblioteca ou um caminho completo. @@ -1852,13 +1850,6 @@ Esta política é usada na inscrição no gerenciamento em nuvem do escopo da máquina no computador desktop e pode ser definida por registro ou GPO no Windows, por plist no Mac e por arquivo de política JSON no Linux.</translation> <translation id="3660562134618097814">Transferir cookies do IDP de SAML durante o login</translation> -<translation id="3669373349666208904">Se a política for definida como verdadeira, páginas poderão mostrar pop-ups enquanto são descarregadas. - - Se a política for definida como falsa ou não for definida, páginas não poderão mostrar pop-ups enquanto são descarregadas. - - Essa política será removida no Chrome 88. - - Consulte https://www.chromestatus.com/feature/5989473649164288 (em inglês).</translation> <translation id="3691155504326059225">Se a política for definida como "Ativada", a página Nova guia será a página inicial do usuário. Qualquer local de URL de página inicial será ignorado. Se a política for definida como "Desativada", a página Nova guia não será a página inicial, a não ser que o URL dela seja definido como chrome://newtab. Se você definir a política, os usuários não poderão mudar a página inicial no <ph name="PRODUCT_NAME" />. Se a política não for definida, o usuário poderá escolher se a página Nova guia será a inicial. @@ -2097,15 +2088,6 @@ <translation id="4020682745012723568">Os cookies transferidos para o perfil do usuário não podem ser acessados por apps Android.</translation> <translation id="402759845255257575">Não permitir que nenhum site execute o JavaScript</translation> <translation id="4027608872760987929">Ativar o provedor de pesquisa padrão</translation> -<translation id="4044054366426171256">Configura os nomes de domínio de host necessários que serão impostos em hosts de acesso remoto e impede que os usuários façam modificações. - - Se esta configuração for ativada e definida para um ou mais domínios, os hosts poderão ser compartilhados apenas por meio de contas registradas em um dos nomes de domínio especificados. - - Se a configuração for desativada, não for definida ou for definida como uma lista vazia, os hosts poderão ser compartilhados por meio de qualquer conta. - - Esta configuração modificará a política RemoteAccessHostDomain, se ela estiver presente. - - Veja também RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">Desativar o protocolo SPDY</translation> <translation id="4061590579642538878">Enviar informações sobre relatórios de erros.</translation> <translation id="4075675819066819571">Posicionar a estante no lado esquerdo da tela</translation> @@ -2180,7 +2162,7 @@ Se a política for definida como "Desativada", nenhuma política será ignorada por causa da origem. As políticas serão ignoradas apenas se houver um conflito e a política não tiver a maior prioridade. - Se a política for definida de uma origem na nuvem, ela não poderá ser destinada a um usuário específico.</translation> + Se a política for definida com base em uma origem na nuvem, ela não poderá ser destinada a um usuário específico.</translation> <translation id="4169692397912242417">Ativar o recurso de acessibilidade de feedback falado na tela de login. Se esta política for definida como verdadeira, o feedback falado sempre ficará ativado na tela de login. @@ -2561,10 +2543,6 @@ <translation id="4874982543810021567">Bloquear o WebUSB nesses sites</translation> <translation id="4876805738539874299">Versão máxima de SSL ativada</translation> <translation id="4887274746092315609">Ativa uma página para alteração de senha durante a sessão para usuários do SAML</translation> -<translation id="4887863670424903990">Quando esta política é definida como ativada, o <ph name="PRODUCT_NAME" /> informa ao Google se há eventos inseguros, por exemplo, reutilização de senha, downloads de malware, intersticiais, violações da regra de proteção de dados confidenciais etc., para que eles sejam analisados. Alguns eventos não seguros, como violações da regra de proteção de dados confidenciais, dependem de outras políticas para ativar essas verificações. - - Se esta política for desativada ou não for definida, o <ph name="PRODUCT_NAME" /> não informará eventos inseguros. - </translation> <translation id="4894290482695457375">A menos que <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> esteja definida como desativada, definir <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> como ativada irá conectar o <ph name="PRODUCT_NAME" /> aos dispositivos Cast em todos os endereços IP, não apenas no endereço particular RFC1918/RFC4193. Se a política for definida como desativada, o <ph name="PRODUCT_NAME" /> será conectado aos dispositivos Cast apenas em RFC1918/RFC4193. @@ -3339,9 +3317,6 @@ Clientes de acesso remoto não são afetados pela definição desta política. Eles sempre usam "chromoting-client.talkgadget.google.com" para acessar o TalkGadget.</translation> <translation id="5890063326284543943">Controlar o uso da API Serial</translation> -<translation id="5893553533827140852">Quando essa configuração está ativada, as solicitações de autenticação gnubby são transmitidas por proxy por meio de uma conexão de host remoto. - - Se essa configuração não está ativada ou configurada, as solicitações de autenticação gnubby não são transmitidas por proxy.</translation> <translation id="5897913798715600338">Carregar a bateria usando tecnologia de carregamento rápido.</translation> <translation id="5898486742390981550">Quando vários usuários estão conectados, somente o usuário principal pode usar os apps Android.</translation> <translation id="5901427587865226597">Apenas impressão duplex</translation> @@ -3682,7 +3657,6 @@ Entretanto, os padrões de correspondência de origem para esta política não podem conter elementos "/path" ou "@query". Todos os padrões que contiverem um elemento "/path" ou "@query" serão ignorados.</translation> <translation id="6464074037294098618">Ativa o Preenchimento automático de endereços</translation> <translation id="6467613372414922590">Permitir hosts de mensagens nativas no nível do usuário (instalados sem permissão do administrador)</translation> -<translation id="6468980648680553776">O uso desta política foi suspenso. Use RemoteAccessHostClientDomainList.</translation> <translation id="6473623140202114570">Configure a lista de domínios em que a política Navegação segura não acionará avisos.</translation> <translation id="647698599569353771">Permitir a ativação do recurso "Compartilhar por proximidade"</translation> <translation id="6485813825811798133">Se a política for definida, será possível configurar uma lista de padrões de URL que especifica quais sites não podem pedir que os usuários concedam permissão de leitura de arquivos ou diretórios no sistema de arquivos do sistema operacional do host com a API File System. @@ -3977,7 +3951,7 @@ Se a política for definida como "Desativada", a segurança e a estabilidade do <ph name="PRODUCT_NAME" /> serão prejudicadas, uma vez que códigos desconhecidos e potencialmente hostis poderão ser carregados nos processos de renderização do <ph name="PRODUCT_NAME" />. Desative a política apenas se softwares de terceiros que precisam ser executados nos processos de renderizador do <ph name="PRODUCT_NAME" /> apresentarem problemas de compatibilidade. - Observação: leia mais sobre políticas de mitigação de processos ( https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies ).</translation> + Observação: leia mais sobre políticas de mitigação de processos (https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies).</translation> <translation id="6833023569065717572">Se a política for definida como verdadeira, a tela de login do dispositivo terá um relógio no formato de 24 horas. Se a política for definida como falsa, a tela de login do dispositivo terá um relógio no formato de 12 horas. @@ -4521,17 +4495,6 @@ <translation id="747014869399137701">Se a política for definida como 1, os sites poderão exibir notificações na área de trabalho. Se a política for definida como 2, as notificações na área de trabalho serão negadas. Se ela não for definida, a política <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> será aplicada, mas os usuários poderão mudar essa configuração.</translation> -<translation id="7471828226549672843">Por padrão, os Termos de Serviço são mostrados quando o CCT é executado pela primeira vez. Definir esta política como "Desativada" fará com que a caixa de diálogo de Termos de Serviço não apareça na primeira execução e nas execuções subsequentes. Definir a política como "Ativada" ou deixá-la sem definição fará com que a caixa de diálogo de Termos de Serviço apareça na primeira execução. As outras ressalvas são as seguintes: - - - Esta política só funciona em dispositivos Android totalmente gerenciados que podem ser configurados por fornecedores de gerenciamento unificado de endpoints. - - - Se esta política for desativada, a BrowserSignin não terá efeito. - - - Se esta política for desativada, as métricas não serão enviadas para o servidor. - - - Se esta política for desativada, o navegador terá funcionalidade limitada. - - - Se esta política for desativada, os administradores precisarão informar isso para os usuários finais do dispositivo.</translation> <translation id="747275827471712187">Reverter para comportamento <ph name="ATTRIBUTE_SAMESITE_NAME" /> legado para os cookies nesses sites</translation> <translation id="7476621944304431784">Se esta definição estiver ativada, os usuários poderão sincronizar configurações de rede Wi-Fi entre dispositivos <ph name="PRODUCT_OS_NAME" /> e um smartphone Android conectado. Antes que as configurações sejam sincronizadas, os usuários precisam aceitar esse recurso explicitamente concluindo um fluxo de configuração. @@ -4568,15 +4531,6 @@ Se ela não for definida, o <ph name="IE_PRODUCT_NAME" /> detectará automaticamente o caminho executável do <ph name="PRODUCT_NAME" /> ao abrir o <ph name="PRODUCT_NAME" /> com o Internet Explorer. Observação: se o suplemento Suporte a navegadores legados para <ph name="IE_PRODUCT_NAME" /> não estiver instalado, esta política não terá efeito.</translation> -<translation id="7506758875409719208">Configura os nomes de domínio de cliente necessários que serão impostos aos clientes de acesso remoto e impede os usuários de modificá-los. - - Se a configuração for ativada e definida para um ou mais domínios, apenas clientes de um dos domínios especificados poderão se conectar ao host. - - Se a configuração for desativada, não for definida ou for definida como uma lista vazia, a política padrão do tipo de conexão será aplicada. Para assistência remota, isso permite que clientes de qualquer domínio se conectem ao host. Para acesso remoto a qualquer momento, apenas o dono do host pode se conectar. - - Esta configuração modificará RemoteAccessHostClientDomain, se ela estiver presente. - - Veja também RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Se a política for definida, cada uma das origens indicadas em uma lista separada por vírgulas será executada no próprio processo. Isso também isolará origens indicadas por subdomínios. Por exemplo, a especificação de https://example.com/ também fará com que https://foo.example.com/ seja isolado como parte do site https://example.com/. Se ela for desativada ou não for definida, os usuários poderão mudar essa configuração. @@ -5048,7 +5002,6 @@ Se a ação for de suspender, o <ph name="PRODUCT_OS_NAME" /> poderá ser configurado separadamente para bloquear ou não a tela antes da suspensão.</translation> <translation id="8214600119442850823">Configura o gerenciador de senhas.</translation> -<translation id="8217516105848565518">O uso desta política foi suspenso. Use RemoteAccessHostDomainList.</translation> <translation id="8219777886736887686">Se a política for definida, ela controlará o comando usado para abrir URLs em um navegador alternativo. Ela pode ser definida como <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> ou um caminho de arquivo. Quando esta política é definida como um caminho de arquivo, o arquivo em questão é usado como um executável. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> e <ph name="EDGE_VALUE_PLACEHOLDER" /> estão disponíveis apenas no <ph name="MS_WIN_NAME" />, e <ph name="SAFARI_VALUE_PLACEHOLDER" /> está disponível apenas no <ph name="MS_WIN_NAME" /> e no <ph name="MAC_OS_NAME" />. Se a política não for definida, o padrão usado seguirá a plataforma: <ph name="IE_PRODUCT_NAME" /> para <ph name="MS_WIN_NAME" /> ou <ph name="SAFARI_PRODUCT_NAME" /> para <ph name="MAC_OS_NAME" />. No <ph name="LINUX_OS_NAME" />, não será possível abrir um navegador alternativo.</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index f773b84..e25182eb 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -186,6 +186,7 @@ Если параметр включен, Безопасный поиск и умеренный Безопасный режим будут активны всегда. Если параметр отключен или для него не задано значение, использование Безопасного поиска и умеренного Безопасного режима необязательно.</translation> +<translation id="134745581157553029">Если правило DeviceArcDataSnapshotHours настроено, механизм снимков данных ARC будет включен. При этом обновление снимков данных ARC может запускаться автоматически в течение заданных промежутков времени. Если в начале такого промежутка потребуется обновление снимков данных ARC и в системе не будет ни одного пользователя, процесс обновления будет запущен без уведомления. Если будет активен хотя бы один сеанс, появится уведомление с запросом. Пользователь должен принять его, чтобы перезагрузить устройство и запустить процесс обновления снимков данных ARC. Примечание. Во время обновления снимков данных ARC устройство блокируется.</translation> <translation id="1353416417709895349">Отключить проверки на перехват DNS и запретить показ информационных панелей с вопросом о том, не хотел ли пользователь ввести адрес сайта в интранете</translation> <translation id="1353985065430729216">Вы можете задать список шаблонов URL для указания сайтов, которым разрешен доступ к датчикам, таким как датчик движения или освещенности. @@ -472,6 +473,7 @@ Правило ExtensionInstallWhitelist позволяет указать, какие расширения исключены из списка запрещенных. Используйте для <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> символ <ph name="ALL_EXTENSIONS" />, чтобы запретить установку любых расширений. Пользователи смогут устанавливать только разрешенные расширения. По умолчанию разрешены все расширения. Если вы запретили расширения при помощи правила, используйте список разрешенных расширений, чтобы менять настройки этого правила.</translation> <translation id="1781356041596378058">Это правило также контролирует доступ к режиму разработчика Android. Если установить для правила значение True, пользователи потеряют доступ к режиму разработчика. Если установить для правила значение False или не задать значение, пользователи смогут получить доступ к режиму разработчика, нажав на номер сборки в настройках Android семь раз.</translation> +<translation id="1787790976045065845">Это правило действует, только если для правила <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> выбран параметр <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> или <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> и пользователь, который вошел в систему с помощью смарт-карты, вытащил ее. Правило позволяет указать, сколько секунд будет видно уведомление о скором выполнении определенного действия. Это сообщение заблокирует экран. Действие будет выполнено только после того, как истечет заданное для уведомления время. Если до этого пользователь заново вставит смарт-карту, действие не будет выполнено. Если значение равно нулю, уведомление не появляется и действие выполняется сразу.</translation> <translation id="1793346220873697538">Запретить печать с вводом PIN-кода по умолчанию</translation> <translation id="179694024208061102">Если это правило включено, <ph name="PRODUCT_NAME" /> по возможности будет открывать некоторые страницы в альтернативном браузере, например в <ph name="IE_PRODUCT_NAME" />. Для настройки этой функции используются правила из группы "<ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />". @@ -792,13 +794,6 @@ Это правило не подходит для устройств обычных пользователей. Если правило не настроено или для него задано значение True, предупреждение о конфиденциальности в управляемом гостевом сеансе с автоматическим запуском не исчезнет, пока пользователь не закроет его.</translation> -<translation id="228665601367357543">Вы можете задать список шаблонов URL для указания сайтов, которым будет автоматически предоставляться доступ к USB-устройствам с определенными идентификаторами поставщика и продукта. Каждый пункт списка должен включать устройства и URL. Для каждого устройства можно задать идентификатор поставщика "vendor_id" и идентификатор продукта "product_id". Если не заполнить поле "vendor_id", правило будет применяться для всех устройств. Правило с незаполненным полем "product_id" применяется для всех устройств с указанным идентификатором поставщика. Правило не будет работать, если заполнить только поле "product_id". - - В модели разрешения доступа к USB-устройству используется URL сайта, запрашивающего доступ, и URL сайта, загружаемого во фрейме верхнего уровня. Если сайт, запрашивающий доступ, загружается в окне iframe, эти два URL могут различаться. Таким образом, поле "urls" может содержать до двух строк, разделенных запятой. Если указан только один URL, доступ к нужным USB-устройствам предоставляется тогда, когда его запрашивает сайт именно с этим URL, и встраивание контента во фреймы не имеет значения. В поле "urls" необходимо указывать действительные URL, иначе правило будет игнорироваться. - - Если это правило не настроено, то применяется правило <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> при условии, что оно задано. В противном случае действуют персональные настройки пользователя. - - Шаблоны URL в этом правиле не должны противоречить шаблонам, заданным в правиле <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. При возникновении противоречия это правило считается более приоритетным, чем <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> и <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Это правило определяет, сообщать ли информацию о версиях, например версию ОС, платформу и архитектуру ОС, а также версию <ph name="PRODUCT_NAME" /> и версию обновления <ph name="PRODUCT_NAME" />. Если правило <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> отключено или не настроено, данное правило игнорируется. @@ -998,6 +993,10 @@ Если это правило не настроено, Условия использования не появляются на экране. Для правила необходимо указать URL, откуда <ph name="PRODUCT_OS_NAME" /> может скачать Условия использования. Файл с Условиями использования должен быть текстовым, с типом MIME "text/plain" и без какой-либо разметки.</translation> +<translation id="2500699707048942472">С помощью функции автоматической отправки PIN-кодов можно изменить способ их ввода в Chrome OS. + Вместо текстового поля, которое используется для ввода паролей, будет показан специальный интерфейс, в котором в явной форме указывается, сколько цифр нужно ввести для PIN-кода. В результате длина PIN-кода будет храниться вне зашифрованных данных пользователя. Поддерживаются только PIN-коды с длиной от 6 до 12 цифр. + + Если задано значение False, пользователи не смогут включить эту функцию на странице настроек.</translation> <translation id="2502467045153796624">Работа устройства после перехода на более стабильную версию Chrome OS</translation> <translation id="250670737672448119">Включает специальную возможность – подсветку текстового курсора. @@ -1522,11 +1521,6 @@ Если выбрано значение "4", встроенное ПО <ph name="TPM_FIRMWARE_UPDATE_TPM" /> будет обновлено после регистрации, но до того, как пользователь войдет в систему. Если правило не задано, встроенное ПО <ph name="TPM_FIRMWARE_UPDATE_TPM" /> не будет обновляться.</translation> -<translation id="3235677869770186098">Если правило настроено, можно задать список шаблонов URL для указания сайтов, которым будет автоматически предоставляться доступ к USB-устройствам с определенными идентификаторами поставщика и продукта на экране входа. Чтобы правило работало, каждый пункт списка должен включать поля "urls" и "devices". Для каждого устройства можно задать идентификатор поставщика "vendor_id" и идентификатор продукта "product_id". Если не заполнить поле "vendor_id", правило будет применяться для всех устройств. Правило с незаполненным полем "product_id" применяется для всех устройств с указанным идентификатором поставщика. Правило не будет работать, если заполнить только поле "product_id". - - В модели разрешения доступа к USB-устройству используются запрашивающий URL и встраиваемый URL. Они могут отличаться друг от друга, если сайт, запрашивающий доступ, загружается в окне iframe. Таким образом, поле "urls" может содержать до двух строк, разделенных запятой: запрашивающий URL и встраиваемый URL. Когда задан только один URL, доступ к USB-устройствам предоставляется, если этот URL совпадает с запрашивающим URL, независимо от способа встраивания. Необходимо указывать действительные URL, иначе правило будет игнорироваться. - - Если правило не настроено, для всех сайтов используется глобальное значение по умолчанию (автоматический доступ запрещен).</translation> <translation id="3236046242843493070">Шаблоны URL, с которых разрешается установка расширений, приложений и пользовательских скриптов</translation> <translation id="3240609035816615922">Настройка доступа к принтерам из файла конфигурации</translation> <translation id="324062325008698789">Позволяет настроить список принтеров.</translation> @@ -1843,7 +1837,6 @@ <translation id="3631099945620529777">Если указано значение False, кнопка "Завершить процесс" в диспетчере задач неактивна. Если задано значение True или правило не настроено, пользователь может завершать процессы.</translation> -<translation id="3639444551396586995">Разрешить браузеру Chrome сообщать о потенциально опасных событиях в Google</translation> <translation id="3643284063603988867">Включить функцию "Запомнить пароль"</translation> <translation id="3646859102161347133">Настройка типа экранной лупы</translation> <translation id="3647212518036289905">Правило определяет, какую библиотеку GSSAPI использовать для HTTP-аутентификации. В правиле нужно указать название библиотеки или полный путь к ней. @@ -1863,13 +1856,6 @@ Это правило используется на компьютерах, и в Windows его можно настроить с помощью реестра или групповой политики, в macOS – с помощью PLIST-файла, а в Linux – с помощью файла правил JSON.</translation> <translation id="3660562134618097814">Позволяет передавать файлы cookie поставщика услуг аутентификации SAML при входе в аккаунт</translation> -<translation id="3669373349666208904">Если задано значение True, во время выгрузки страницы разрешено показывать всплывающие окна. - - Если правило не настроено или указано значение False, во время выгрузки страницы запрещено показывать всплывающие окна. - - В версии Chrome 88 это правило будет удалено. - - Подробнее: https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Если правило включено, в качестве главной страницы используется страница быстрого доступа. Заданный URL главной страницы игнорируется. Если правило выключено, страница быстрого доступа открывается, только когда в качестве URL главной страницы указан путь chrome://newtab. Если правило задано, пользователи не смогут изменить главную страницу в <ph name="PRODUCT_NAME" />. Если правило не задано, они смогут выбрать, устанавливать ли страницу быстрого доступа в качестве главной. @@ -2109,15 +2095,6 @@ <translation id="4020682745012723568">Приложения Android не могут получить доступ к файлам cookie, перенесенным в профиль пользователя.</translation> <translation id="402759845255257575">Запретить выполнение JavaScript на всех сайтах</translation> <translation id="4027608872760987929">Включить поисковую систему по умолчанию</translation> -<translation id="4044054366426171256">Определяет обязательные доменные имена, отвечающие за хосты удаленного доступа, и запрещает пользователям их менять. - - Если параметр включен и настроен для одного или нескольких доменов, предоставлять общий доступ к хостам можно только из аккаунтов, зарегистрированных в указанных доменах. - - Если параметр отключен, не настроен или список доменов пуст, предоставлять общий доступ к хостам разрешается из любых аккаунтов. - - Если этот параметр настроен, он заменит правило RemoteAccessHostDomain. - - Дополнительную информацию можно найти в описании правила RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">Отключение протокола SPDY</translation> <translation id="4061590579642538878">Передача информации из отчетов о сбое</translation> <translation id="4075675819066819571">Расположить панель запуска с левой стороны экрана</translation> @@ -2188,7 +2165,7 @@ <translation id="4157003184375321727">Информирование о версии OС и встроенного ПО</translation> <translation id="4157594634940419685">Разрешить доступ к принтерам CUPS</translation> <translation id="4160962198980004898">Источник MAC-адреса устройства при подключении к док-станции</translation> -<translation id="4166174702671320480">Если правило включено, будут игнорироваться те правила, которые применяются в мини-группе, но заданы не источником с максимальным приоритетом. +<translation id="4166174702671320480">Если правило включено, будут игнорироваться правила из элементарных групп, заданные не источником с максимальным приоритетом. Если правило отключено, правила не игнорируются по признаку источника. Они игнорируются, только если у них не окажется максимального приоритета в случае конфликта с другими правилами. @@ -2575,10 +2552,6 @@ <translation id="4874982543810021567">Блокировать WebUSB на этих сайтах.</translation> <translation id="4876805738539874299">Позволяет задать максимально допустимую версию SSL</translation> <translation id="4887274746092315609">Включить страницу для пользователей SAML, на которой можно сменить пароль во время сеанса</translation> -<translation id="4887863670424903990">Когда это правило включено, <ph name="PRODUCT_NAME" /> отправляет в Google для анализа информацию о потенциально опасных событиях, таких как повторное использование пароля, скачивание вредоносного ПО, показ межстраничных объявлений, нарушения правила о защите конфиденциальных данных и т. д. В отношении некоторых потенциально опасных событий (например, нарушений правила о защите конфиденциальных данных) действуют другие правила, которые разрешают выполнять специальные проверки. - - Если правило отключено или не настроено, <ph name="PRODUCT_NAME" /> не будет передавать в Google информацию о потенциально опасных событиях. - </translation> <translation id="4894290482695457375">Если правило <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> выключено, то включение правила <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> вызывает подключение модуля <ph name="PRODUCT_NAME" /> к устройствам, поддерживающим технологию Chromecast, по всем IP-адресам, а не только по частным адресам стандарта RFC1918/RFC4193. Если выключить правило, модуль <ph name="PRODUCT_NAME" /> будет подключаться к устройствам только по адресам стандарта RFC1918/RFC4193. @@ -3360,9 +3333,6 @@ Клиенты удаленного доступа всегда используют для доступа к TalkGadget имя chromoting-client.talkgadget.google.com вне зависимости от настроек этого правила.</translation> <translation id="5890063326284543943">Управление использованием Serial API</translation> -<translation id="5893553533827140852">Если этот параметр включен, запросы на авторизацию Gnubby будут передаваться через подключение к удаленному хосту. - - Если этот параметр отключен или не задан, запросы на авторизацию Gnubby не будут передаваться через прокси.</translation> <translation id="5897913798715600338">Использовать технологию быстрой зарядки</translation> <translation id="5898486742390981550">Если в систему вошло несколько пользователей, приложения Android доступны только основному.</translation> <translation id="5901427587865226597">Только двусторонняя печать</translation> @@ -3705,7 +3675,6 @@ При этом в шаблонах источников не могут содержаться элементы /path и @query. Шаблон с такими элементами учитываться не будет.</translation> <translation id="6464074037294098618">Включить автозаполнение адресов</translation> <translation id="6467613372414922590">Разрешить установку хостов обмена сообщениями с оригинальными приложениями на уровне пользователей (без разрешения администратора)</translation> -<translation id="6468980648680553776">Правило больше не поддерживается. Вместо него используется правило RemoteAccessHostClientDomainList.</translation> <translation id="6473623140202114570">Настроить список доменов, в которых Безопасный просмотр не будет показывать уведомления об угрозах.</translation> <translation id="647698599569353771">Разрешить включение функции "Обмен с окружением"</translation> <translation id="6485813825811798133">В этом правиле можно задать шаблоны URL сайтов, которым запрещено запрашивать у пользователей право на чтение файлов или каталогов в файловой системе хоста через File System API. @@ -4543,17 +4512,6 @@ <translation id="747014869399137701">Если выбрано значение 1, на сайтах разрешен показ уведомлений на рабочем столе, а если задано значение 2, – запрещен. Если это правило не настроено, действует правило <ph name="ASK_NOTIFICATIONS_POLICY_NAME" />, но пользователи могут его изменить.</translation> -<translation id="7471828226549672843">По умолчанию Условия использования показываются при первом запуске CCT. Если это правило отключено, диалоговое окно с Условиями использования не открывается ни при первом, ни при последующих запусках. Если это правило включено или не настроено, диалоговое окно с Условиями использования будет показано при первом запуске. Также нужно учитывать следующее: - - – Это правило работает только на полностью управляемых устройствах Android, которые могут быть настроены поставщиками архитектуры Unified Endpoint Management. - - – Если это правило отключено, правило BrowserSignin не действует. - - – Если это правило отключено, показатели на сервер не отправляются. - - – Если это правило отключено, функциональность браузера будет ограничена. - - – Если это правило отключено, администраторы должны уведомить об этом конечных пользователей устройства.</translation> <translation id="747275827471712187">Вернуться к ранее применявшемуся поведению атрибута <ph name="ATTRIBUTE_SAMESITE_NAME" /> для файлов cookie на этих сайтах</translation> <translation id="7476621944304431784">Если эта настройка включена, пользователям разрешено синхронизировать параметры сети Wi-Fi между устройствами с <ph name="PRODUCT_OS_NAME" /> и подключенным телефоном Android. Чтобы такая синхронизация была возможна, пользователи должны специально выбрать и настроить эту функцию. @@ -4589,15 +4547,6 @@ Если правило не задано, <ph name="IE_PRODUCT_NAME" /> автоматически находит путь к исполняемому файлу <ph name="PRODUCT_NAME" /> при запуске браузера <ph name="PRODUCT_NAME" /> через Internet Explorer. Обратите внимание, что это правило не действует, если не установлено дополнение "Поддержка альтернативного браузера" для <ph name="IE_PRODUCT_NAME" />.</translation> -<translation id="7506758875409719208">Определяет обязательные доменные имена, отвечающие за клиенты удаленного доступа, и запрещает пользователям их менять. - - Если параметр включен и настроен для одного или нескольких доменов, то подключаться к хосту могут только клиенты из указанных доменов. - - Если параметр отключен, не настроен или список доменов пуст, применяется правило выбора типа соединения по умолчанию. Для удаленной поддержки к хосту могут подключаться клиенты из любых доменов. Для удаленного доступа в любое время может подключаться только владелец хоста. - - Если это правило настроено, оно заменит правило RemoteAccessHostClientDomain. - - Дополнительную информацию можно найти в описании правила RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Если правило включено, то для каждого сайта из списка, разделенного запятыми, запускается отдельный процесс, а сайты изолируются по субдоменам. Например, если указать сайт https://example.com/, его субдомен https://foo.example.com/ также будет изолирован. Если правило выключено или не настроено, пользователи смогут изменять эту настройку. @@ -5066,7 +5015,6 @@ В последнем случае отдельный параметр определяет, будет ли экран устройства <ph name="PRODUCT_OS_NAME" /> заблокирован до активации спящего режима.</translation> <translation id="8214600119442850823">Позволяет настроить диспетчер паролей.</translation> -<translation id="8217516105848565518">Правило больше не поддерживается. Вместо него используется RemoteAccessHostDomainList.</translation> <translation id="8219777886736887686">Это правило определяет, какая команда должна использоваться для открытия страниц в альтернативном браузере. Можно указать одно из следующих значений: <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> или путь к файлу. Если задать в качестве значения путь к файлу, указанный файл будет обрабатываться как исполняемый. Значения <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> и <ph name="EDGE_VALUE_PLACEHOLDER" /> поддерживаются только в <ph name="MS_WIN_NAME" />, а <ph name="SAFARI_VALUE_PLACEHOLDER" /> – только в <ph name="MS_WIN_NAME" /> и <ph name="MAC_OS_NAME" />. Если правило не настроено, выбирается используемый по умолчанию вариант в зависимости от платформы: <ph name="IE_PRODUCT_NAME" /> для <ph name="MS_WIN_NAME" /> или <ph name="SAFARI_PRODUCT_NAME" /> для <ph name="MAC_OS_NAME" />. В <ph name="LINUX_OS_NAME" /> запустить альтернативный браузер не удастся.</translation>
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index 03742880..3ad1e36 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -189,6 +189,7 @@ หากคุณเปิดใช้การตั้งค่านี้ ระบบจะใช้งาน "ค้นหาปลอดภัย" ใน Google Search และโหมดที่จำกัดปานกลางใน YouTube เสมอ หากคุณปิดใช้การตั้งค่านี้หรือไม่ได้ตั้งค่า ระบบจะไม่บังคับใช้ "ค้นหาปลอดภัย" ใน Google Search และโหมดที่จำกัดใน YouTube</translation> +<translation id="134745581157553029">หากตั้งค่านโยบาย "DeviceArcDataSnapshotHours" ระบบจะเปิดใช้กลไกการสรุปภาพรวมของข้อมูล ARC และการอัปเดตภาพรวมของข้อมูล ARC จะเริ่มต้นโดยอัตโนมัติในช่วงเวลาที่กำหนดได้ เมื่อช่วงเวลาดังกล่าวเริ่มต้น ระบบต้องอัปเดตภาพรวมของข้อมูล ARC และไม่อนุญาตให้ผู้ใช้ลงชื่อเข้าสู่ระบบ ขั้นตอนการอัปเดตภาพรวมของข้อมูล ARC จะเริ่มโดยไม่แสดงการแจ้งเตือนต่อผู้ใช้ หากผู้ใช้กำลังใช้งานอยู่ การแจ้งเตือน UI จะแสดงขึ้นและผู้ใช้ต้องยอมรับเพื่อรีบูตอุปกรณ์และเริ่มขั้นตอนการอัปเดตภาพรวมของข้อมูล ARC หมายเหตุ: ระบบจะไม่อนุญาตให้มีการใช้งานอุปกรณ์ในระหว่างที่อัปเดตภาพรวมของข้อมูล ARC</translation> <translation id="1353416417709895349">ปิดใช้การตรวจสอบการสกัดกั้น DNS และแถบข้อมูล "หรือคุณหมายถึง http://intranetsite/"</translation> <translation id="1353985065430729216">การตั้งค่านโยบายจะให้คุณสร้างรายการรูปแบบ URL ที่ระบุเว็บไซต์ที่เข้าถึงเซ็นเซอร์ เช่น เซ็นเซอร์ตรวจจับการเคลื่อนไหวและเซ็นเซอร์แสงได้ @@ -464,6 +465,7 @@ การตั้งค่านโยบายนี้จะระบุส่วนขยายที่ได้รับการยกเว้นจากรายการส่วนขยายที่ห้ามไว้ ใช้ค่า <ph name="ALL_EXTENSIONS" /> กับ <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> เพื่อห้ามส่วนขยายทั้งหมด และผู้ใช้จะติดตั้งได้เฉพาะส่วนขยายที่อนุญาตไว้อย่างชัดแจ้งเท่านั้น ส่วนขยายทั้งหมดได้รับอนุญาตโดยค่าเริ่มต้น แต่ถ้าคุณห้ามส่วนขยายด้วยนโยบาย ให้ใช้รายการส่วนขยายที่อนุญาตเพื่อเปลี่ยนแปลงนโยบายนั้น</translation> <translation id="1781356041596378058">นโยบายนี้ยังควบคุมการเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ของ Android เช่นกัน หากคุณตั้งค่านโยบายนี้เป็น True ผู้ใช้จะไม่สามารถเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ได้ หากตั้งเป็น False หรือไม่ได้ตั้งค่า ผู้ใช้จะสามารถเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ด้วยการแตะหมายเลขบิวด์ 7 ครั้งในแอปการตั้งค่าของ Android</translation> +<translation id="1787790976045065845">นโยบายนี้จะมีผลก็ต่อเมื่อตั้งค่านโยบาย <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> เป็น <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> หรือ <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> และผู้ใช้ที่ตรวจสอบสิทธิ์ผ่านสมาร์ทการ์ดนำสมาร์ทการ์ดดังกล่าวออก จากนั้นนโยบายนี้จะระบุระยะเวลาเป็นวินาทีที่ระบบจะแสดงการแจ้งเตือนซึ่งแจ้งให้ผู้ใช้ทราบถึงการดำเนินการที่กำลังจะเกิดขึ้น การแจ้งเตือนนี้จะบล็อกหน้าจอ การดำเนินการจะเกิดขึ้นหลังจากที่การแจ้งเตือนนี้หมดอายุเท่านั้น ผู้ใช้ป้องกันไม่ให้เกิดการดำเนินการได้ด้วยการเสียบสมาร์ทการ์ดกลับเข้าไปก่อนที่การแจ้งเตือนจะหมดอายุ หากตั้งค่านโยบายนี้เป็น 0 จะไม่มีการแสดงการแจ้งเตือนและการดำเนินการจะเกิดขึ้นทันที</translation> <translation id="1793346220873697538">ปิดใช้การพิมพ์ด้วย PIN โดยค่าเริ่มต้น</translation> <translation id="179694024208061102">การตั้งค่านโยบายเป็น "เปิดใช้" หมายความว่า <ph name="PRODUCT_NAME" /> จะพยายามเปิด URL บางรายการในเบราว์เซอร์สำรอง เช่น <ph name="IE_PRODUCT_NAME" /> ฟีเจอร์นี้กำหนดค่าโดยใช้นโยบายในกลุ่ม <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" /> @@ -780,13 +782,6 @@ ไม่ควรใช้นโยบายนี้กับอุปกรณ์ที่สาธารณชนใช้ หากตั้งค่านโยบายนี้เป็น "จริง" หรือไม่ตั้งค่า ระบบจะตรึงการแจ้งเตือนของคำเตือนด้านความเป็นส่วนตัวในเซสชันผู้เยี่ยมชมที่มีการจัดการซึ่งเรียกใช้อัตโนมัติไว้จนกว่าผู้ใช้จะปิด</translation> -<translation id="228665601367357543">ให้คุณกำหนดรายการรูปแบบ URL ซึ่งระบุเว็บไซต์ที่ได้รับสิทธิ์โดยอัตโนมัติให้เข้าถึงอุปกรณ์ USB ที่มีรหัสผู้ให้บริการและรหัสผลิตภัณฑ์ที่กำหนด แต่ละรายการย่อยในรายการต้องมีช่อง "devices" และ "urls" นโยบายจึงจะมีผล แต่ละรายการย่อยในช่อง "devices" อาจมีช่อง "vendor_id" และ "product_id" การละเว้นช่อง "vendor_id" จะสร้างนโยบายที่ตรงกับอุปกรณ์ทุกเครื่อง การละเว้นช่อง "product_id" จะสร้างนโยบายที่ตรงกับอุปกรณ์ทุกเครื่องที่มีรหัสผู้ให้บริการที่กำหนด นโยบายที่มีช่อง "product_id" แต่ไม่มีช่อง "vendor_id" จะไม่มีผล - - โมเดลสิทธิ์ USB ใช้ URL ที่ส่งคำขอและ URL ที่มีการฝัง (ของเว็บไซต์กรอบระดับบนสุด) เพื่อให้สิทธิ์ URL ที่ส่งคำขอในการเข้าถึงอุปกรณ์ USB โดย URL ที่ส่งคำขออาจต่างจาก URL ที่มีการฝังเมื่อมีการโหลดเว็บไซต์ที่ส่งคำขอใน iframe ดังนั้นช่อง "urls" อาจมีสตริง URL ได้ถึง 2 สตริงโดยคั่นด้วยเครื่องหมายจุลภาคเพื่อระบุ URL เหล่านี้ หากคุณระบุ URL เพียงรายการเดียว ระบบจะให้สิทธิ์เข้าถึงอุปกรณ์ USB ที่เกี่ยวข้องเมื่อ URL ของเว็บไซต์ที่ส่งคำขอตรงกับ URL นี้ไม่ว่าสถานะการฝังจะเป็นอย่างไร URL ในช่อง "urls" ต้องเป็น URL ที่ถูกต้อง มิเช่นนั้น ระบบจะไม่สนใจนโยบายนี้ - - การไม่ตั้งค่านโยบายหมายความว่า <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> จะมีผลหากตั้งค่าไว้ แต่หากไม่ได้ตั้งค่าไว้ การตั้งค่าส่วนตัวของผู้ใช้จะมีผล - - รูปแบบ URL ในนโยบายนี้ไม่ควรขัดแย้งกับรูปแบบที่กำหนดค่าผ่าน <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> หากขัดแย้งกัน นโยบายนี้จะมีความสำคัญสูงกว่า <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> และ <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" /></translation> <translation id="2289265947759479962">นโยบายนี้ควบคุมว่าจะรายงานข้อมูลเวอร์ชันหรือไม่ เช่น เวอร์ชันระบบปฏิบัติการ แพลตฟอร์มระบบปฏิบัติการ สถาปัตยกรรมระบบปฏิบัติการ เวอร์ชันของ <ph name="PRODUCT_NAME" /> และช่องของ <ph name="PRODUCT_NAME" /> เมื่อไม่ได้ตั้งค่านโยบาย <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> หรือตั้งค่าเป็นปิดใช้ นโยบายนี้จะไม่มีผล @@ -986,6 +981,10 @@ การไม่ตั้งค่านโยบายจะทำให้ไม่มีการแสดงข้อกำหนดในการให้บริการ ควรตั้งค่านโยบายไปยัง URL ที่ <ph name="PRODUCT_OS_NAME" /> จะดาวน์โหลดข้อกำหนดในการให้บริการได้ ข้อกำหนดในการให้บริการต้องเป็นข้อความธรรมดาที่แสดงเป็นข้อความ/ธรรมดาประเภท MIME และไม่อนุญาตให้ใช้มาร์กอัป</translation> +<translation id="2500699707048942472">ฟีเจอร์ส่ง PIN อัตโนมัติจะเปลี่ยนแปลงการป้อน PIN ใน Chrome OS + ฟีเจอร์นี้จะแสดง UI พิเศษที่แสดงให้ผู้ใช้เห็นอย่างชัดเจนว่า PIN ต้องมีกี่หลัก แทนการแสดงช่องข้อความเดียวกันกับที่ใช้ป้อนรหัสผ่าน ดังนั้นระบบจะจัดเก็บความยาว PIN ของผู้ใช้ไว้นอกข้อมูลที่เข้ารหัสของผู้ใช้ ใช้ได้เฉพาะ PIN ที่มีความยาวระหว่าง 6 ถึง 12 หลัก + + หากตั้งค่านโยบายนี้เป็น "เท็จ" ผู้ใช้จะไม่มีตัวเลือกในการเปิดใช้ฟีเจอร์นี้ในหน้าการตั้งค่า</translation> <translation id="2502467045153796624">ลักษณะการทำงานของการดาวน์เกรดเวอร์ชัน</translation> <translation id="250670737672448119">เปิดใช้ฟีเจอร์การช่วยเหลือพิเศษสำหรับการไฮไลต์เคอร์เซอร์ข้อความ @@ -1510,11 +1509,6 @@ * 4 เฟิร์มแวร์ <ph name="TPM_FIRMWARE_UPDATE_TPM" /> จะอัปเดตหลังการลงทะเบียน ก่อนที่ผู้ใช้จะลงชื่อเข้าใช้ การไม่ตั้งค่านโยบายจะทำให้การอัปเดตเฟิร์มแวร์ <ph name="TPM_FIRMWARE_UPDATE_TPM" /> ไม่พร้อมใช้งาน</translation> -<translation id="3235677869770186098">การตั้งค่านโยบายทำให้คุณแสดงรายการรูปแบบ URL ที่ระบุเว็บไซต์ที่ได้รับสิทธิ์ให้เข้าถึงอุปกรณ์ USB โดยอัตโนมัติโดยมีผู้ให้บริการที่กำหนดและรหัสผลิตภัณฑ์ในหน้าจอการเข้าสู่ระบบ แต่ละรายการย่อยในรายการต้องมีทั้งช่อง "devices" และ "urls" สำหรับนโยบายจึงจะมีผล แต่ละรายการย่อยในช่อง "devices" อาจมีช่อง "vendor_id" และ "product_id" การละเว้นช่อง "vendor_id" จะสร้างนโยบายที่ตรงกับอุปกรณ์ทุกเครื่อง การละเว้นช่อง "product_id" จะสร้างนโยบายที่ตรงกับอุปกรณ์ทุกเครื่องที่มีรหัสผู้ให้บริการที่กำหนด นโยบายที่มีช่อง "product_id" แต่ไม่มีช่อง "vendor_id" จะไม่มีผล - - โมเดลสิทธิ์ USB จะใช้ URL ที่ส่งคำขอและ URL ที่มีการฝังเพื่อให้สิทธิ์ URL ที่ส่งคำขอเข้าถึงอุปกรณ์ USB โดย URL ที่ส่งคำขออาจต่างจาก URL ที่มีการฝังเมื่อมีการโหลดเว็บไซต์ที่ส่งคำขอใน iframe ช่อง urls จึงมีสตริง URL ได้สูงสุด 2 รายการซึ่งคั่นด้วยเครื่องหมายจุลภาคเพื่อระบุ URL ที่ส่งคำขอและ URL ที่มีการฝังตามลำดับ หากมีการระบุ URL เพียงรายการเดียว ระบบจะให้สิทธิ์เข้าถึงอุปกรณ์ USB ที่เกี่ยวข้องเมื่อ URL ของเว็บไซต์ที่ส่งคำขอตรงกับ URL นี้ไม่ว่าสถานะการฝังจะเป็นอย่างไร URL ต้องเป็น URL ที่ถูกต้อง มิเช่นนั้น ระบบจะไม่สนใจนโยบายนี้ - - การไม่ตั้งค่านโยบายจะทำให้ระบบใช้ค่าเริ่มต้นส่วนกลางกับเว็บไซต์ทั้งหมด (ไม่มีการเข้าถึงโดยอัตโนมัติ)</translation> <translation id="3236046242843493070">รูปแบบ URL ที่อนุญาตส่วนขยาย แอปพลิเคชัน และการติดตั้งสคริปต์ของผู้ใช้จาก</translation> <translation id="3240609035816615922">นโยบายการเข้าถึงการกำหนดค่าเครื่องพิมพ์</translation> <translation id="324062325008698789">กำหนดค่ารายการเครื่องพิมพ์</translation> @@ -1823,7 +1817,6 @@ <translation id="3631099945620529777">หากตั้งค่าเป็น "เท็จ" ระบบจะปิดใช้ปุ่ม "หยุดกระบวนการ" ในตัวจัดการงาน หากตั้งค่าเป็น "จริง" หรือไม่กำหนดค่า ผู้ใช้จะหยุดกระบวนการในตัวจัดการงานได้</translation> -<translation id="3639444551396586995">อนุญาตให้ Chrome รายงานเหตุการณ์ที่ไม่ปลอดภัยไปยัง Google</translation> <translation id="3643284063603988867">เปิดใช้ฟีเจอร์ "จำรหัสผ่าน"</translation> <translation id="3646859102161347133">ตั้งค่าประเภทของแว่นขยายหน้าจอ</translation> <translation id="3647212518036289905">การตั้งค่านโยบายจะระบุไลบรารี GSSAPI ที่จะใช้สำหรับการตรวจสอบสิทธิ์ HTTP จะตั้งค่านโยบายเป็นชื่อไลบรารีหรือเส้นทางแบบเต็มก็ได้ @@ -1843,13 +1836,6 @@ มีการใช้นโยบายนี้ในการลงทะเบียนนโยบายระบบคลาวด์ตามขอบเขตของเครื่องในเดสก์ท็อปและตั้งค่าได้โดยรีจิสทรีหรือ GPO ใน Windows, ไฟล์ plist ใน Mac และไฟล์นโยบาย JSON ใน Linux</translation> <translation id="3660562134618097814">โอนคุกกี้ SAML IdP ขณะลงชื่อเข้าใช้</translation> -<translation id="3669373349666208904">การตั้งค่านโยบายเป็น "จริง" อนุญาตให้หน้าเว็บแสดงป๊อปอัปในขณะที่มีการยกเลิกการโหลด - - การตั้งค่านโยบายเป็น "เท็จ" หรือไม่ได้ตั้งค่าจะป้องกันไม่ให้หน้าเว็บแสดงป๊อปอัปในขณะที่มีการยกเลิกการโหลด - - เราจะนำนโยบายนี้ออกใน Chrome 88 - - โปรดดูที่ https://www.chromestatus.com/feature/5989473649164288</translation> <translation id="3691155504326059225">การตั้งค่านโยบายเป็น "เปิดใช้" ทำให้หน้าแท็บใหม่เป็นหน้าแรกของผู้ใช้ โดยจะไม่สนใจตำแหน่ง URL ใดๆ ของหน้าแรก การตั้งค่านโยบายเป็น "ปิดใช้" หมายความว่าหน้าแรกจะไม่เป็นหน้าแท็บใหม่ เว้นแต่ URL หน้าแรกของผู้ใช้จะตั้งค่าไว้เป็น chrome://newtab หากคุณตั้งค่านโยบายนี้ ผู้ใช้จะเปลี่ยนประเภทหน้าแรกของตนใน <ph name="PRODUCT_NAME" /> ไม่ได้ หากไม่ได้ตั้งค่า ผู้ใช้จะเป็นผู้ตัดสินใจว่าจะใช้หน้าแท็บใหม่เป็นหน้าแรกหรือไม่ @@ -2087,15 +2073,6 @@ <translation id="4020682745012723568">แอป Android ไม่สามารถเข้าถึงคุกกี้ที่โอนไปยังโปรไฟล์ของผู้ใช้</translation> <translation id="402759845255257575">ไม่อนุญาตให้ไซต์ใดๆ เรียกใช้ JavaScript</translation> <translation id="4027608872760987929">เปิดใช้งานผู้ให้บริการการค้นหาเริ่มต้น</translation> -<translation id="4044054366426171256">กำหนดค่าชื่อโดเมนของโฮสต์ที่จำเป็นซึ่งจะกำหนดให้กับโฮสต์การเข้าถึงจากระยะไกล และป้องกันไม่ให้ผู้ใช้เปลี่ยนแปลงชื่อ - - หากเปิดใช้การตั้งค่านี้และตั้งค่าเป็นโดเมน 1 รายการขึ้นไป ระบบจะแชร์โฮสต์ได้ต่อเมื่อใช้บัญชีที่ลงทะเบียนในชื่อโดเมนที่ระบุไว้เท่านั้น - - หากปิดใช้การตั้งค่านี้ ไม่ได้ตั้งค่า หรือตั้งค่าเป็นรายการว่างเปล่า ระบบจะแชร์โฮสต์โดยใช้บัญชีใดก็ได้ - - การตั้งค่านี้จะลบล้าง RemoteAccessHostDomain หากมี - - ดู RemoteAccessHostClientDomainList เพิ่มเติม</translation> <translation id="4056910949759281379">ปิดใช้งานโปรโตคอล SPDY</translation> <translation id="4061590579642538878">รายงานข้อมูลเกี่ยวกับรายงานข้อขัดข้อง</translation> <translation id="4075675819066819571">กำหนดตำแหน่งชั้นวางให้อยู่ที่ด้านซ้ายของหน้าจอ</translation> @@ -2551,10 +2528,6 @@ <translation id="4874982543810021567">บล็อก WebUSB ในเว็บไซต์เหล่านี้</translation> <translation id="4876805738539874299">เปิดใช้เวอร์ชันสูงสุดของ SSL ไว้</translation> <translation id="4887274746092315609">เปิดใช้หน้าสำหรับการเปลี่ยนรหัสผ่านในเซสชันของผู้ใช้ SAML</translation> -<translation id="4887863670424903990">เมื่อตั้งค่านโยบายนี้เป็นเปิดใช้ <ph name="PRODUCT_NAME" /> จะรายงานเหตุการณ์ที่ไม่ปลอดภัยให้ Google วิเคราะห์ เช่น การใช้รหัสผ่านซ้ำ การดาวน์โหลดมัลแวร์ โฆษณาคั่นระหว่างหน้า การละเมิดกฎการปกป้องข้อมูลที่ละเอียดอ่อน เป็นต้น เหตุการณ์ที่ไม่ปลอดภัยบางอย่าง เช่น การละเมิดกฎการปกป้องข้อมูลที่ละเอียดอ่อน จะขึ้นอยู่กับนโยบายอื่นๆ ที่เปิดใช้การตรวจสอบดังกล่าว - - หากตั้งค่านโยบายนี้เป็นปิดใช้หรือไม่ได้ตั้งค่า <ph name="PRODUCT_NAME" /> จะไม่รายงานเหตุการณ์ที่ไม่ปลอดภัย - </translation> <translation id="4894290482695457375">นอกจากว่าจะตั้งค่าเป็น <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> เป็น "ปิดใช้" การตั้งค่า <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> เป็น "เปิดใช้" จะเชื่อมต่อ <ph name="PRODUCT_NAME" /> กับอุปกรณ์แคสต์ในทุกที่อยู่ IP ไม่ใช่แค่ที่อยู่ส่วนตัว RFC1918/RFC4193 การตั้งค่านโยบายเป็น "ปิดใช้" จะเชื่อมต่อ <ph name="PRODUCT_NAME" /> กับอุปกรณ์แคสต์เฉพาะในที่อยู่ RFC1918/RFC4193 เท่านั้น @@ -3336,9 +3309,6 @@ ไคลเอ็นต์การเข้าถึงระยะไกลจะไม่ได้รับผลกระทบจากการตั้งค่านโยบายนี้ โดยจะใช้ 'chromoting-client.talkgadget.google.com' เพื่อเข้าถึง TalkGadget เสมอ</translation> <translation id="5890063326284543943">ควบคุมการใช้ Serial API</translation> -<translation id="5893553533827140852">หากเปิดใช้การตั้งค่านี้ คำขอตรวจสอบสิทธิ์ Gnubby จะส่งผ่านพร็อกซีโดยใช้การเชื่อมต่อโฮสต์ระยะไกล - - หากปิดใช้การตั้งค่านี้หรือไม่ได้กำหนดค่า คำขอตรวจสอบสิทธิ์ Gnubby จะไม่ส่งผ่านพร็อกซี</translation> <translation id="5897913798715600338">ชาร์จแบตเตอรี่โดยใช้เทคโนโลยีการชาร์จเร็ว</translation> <translation id="5898486742390981550">เมื่อมีผู้ใช้หลายคนอยู่ในระบบ จะมีเพียงผู้ใช้หลักเท่านั้นที่ใช้แอป Android ได้</translation> <translation id="5901427587865226597">การพิมพ์ 2 ด้านเท่านั้น</translation> @@ -3679,7 +3649,6 @@ แต่รูปแบบที่ตรงกันของต้นทางในนโยบายนี้ต้องไม่มีองค์ประกอบ "/path" หรือ "@query" ระบบจะไม่สนใจรูปแบบที่มีองค์ประกอบ "/path" หรือ "@query"</translation> <translation id="6464074037294098618">เปิดใช้ฟีเจอร์ป้อนข้อความอัตโนมัติสำหรับที่อยู่</translation> <translation id="6467613372414922590">อนุญาตให้ใช้โฮสต์การรับส่งข้อความดั้งเดิมระดับผู้ใช้ (ติดตั้งโดยไม่มีสิทธิ์ของผู้ดูแลระบบ)</translation> -<translation id="6468980648680553776">นโยบายนี้เลิกใช้งานไปแล้ว โปรดใช้ RemoteAccessHostClientDomainList แทน</translation> <translation id="6473623140202114570">กำหนดค่ารายการโดเมนที่ Safe Browsing จะไม่เรียกให้คำเตือนแสดง</translation> <translation id="647698599569353771">อนุญาตให้เปิดใช้การแชร์ใกล้เคียง</translation> <translation id="6485813825811798133">การตั้งค่านโยบายจะให้คุณสร้างรายการรูปแบบ URL ซึ่งระบุเว็บไซต์ที่จะขอให้ผู้ใช้ให้สิทธิ์การเข้าถึงในการอ่านไฟล์หรือไดเรกทอรีในระบบไฟล์ของระบบปฏิบัติการของโฮสต์ผ่าน File System API ไม่ได้ @@ -4519,17 +4488,6 @@ <translation id="747014869399137701">การตั้งค่านโยบายเป็น 1 จะให้เว็บไซต์แสดงการแจ้งเตือนในเดสก์ท็อปได้ การตั้งค่านโยบายเป็น 2 จะปฏิเสธการแจ้งเตือนในเดสก์ท็อป การไม่ตั้งค่าหมายความว่า <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> จะมีผล แต่ผู้ใช้เปลี่ยนการตั้งค่านี้ได้</translation> -<translation id="7471828226549672843">โดยค่าเริ่มต้น ข้อกำหนดในการให้บริการจะแสดงเมื่อเรียกใช้ CCT ครั้งแรก การตั้งค่านโยบายนี้เป็น "ปิดใช้" จะทำให้กล่องโต้ตอบข้อกำหนดในการให้บริการไม่แสดงขึ้นมาในระหว่างการเรียกใช้ครั้งแรกหรือการเรียกใช้ครั้งต่อๆ ไป การตั้งค่านโยบายนี้เป็น "เปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้กล่องโต้ตอบข้อกำหนดในการให้บริการแสดงขึ้นมาในระหว่างการเรียกใช้ครั้งแรก ข้อสำคัญอื่นๆ ได้แก่ - - - นโยบายนี้จะใช้งานได้เฉพาะกับอุปกรณ์ Android ซึ่งมีการจัดการเต็มรูปแบบที่จะกำหนดค่าโดยผู้ให้บริการการจัดการปลายทางแบบรวม (Unified Endpoint Management) ได้ - - - หากตั้งค่านโยบายนี้เป็น "ปิดใช้" นโยบาย BrowserSignin จะไม่มีผล - - - หากตั้งค่านโยบายนี้เป็น "ปิดใช้" ระบบจะไม่ส่งเมตริกต่างๆ ไปยังเซิร์ฟเวอร์ - - - หากตั้งค่านโยบายนี้เป็น "ปิดใช้" เบราว์เซอร์จะมีฟังก์ชันการทำงานที่จำกัด - - - หากตั้งค่านโยบายนี้เป็น "ปิดใช้" ผู้ดูแลระบบต้องแจ้งข้อมูลนี้กับผู้ใช้ปลายทางของอุปกรณ์</translation> <translation id="747275827471712187">เปลี่ยนกลับไปใช้ลักษณะการทำงาน <ph name="ATTRIBUTE_SAMESITE_NAME" /> เดิมสำหรับคุกกี้ในเว็บไซต์เหล่านี้</translation> <translation id="7476621944304431784">หากเปิดใช้การตั้งค่านี้ ผู้ใช้จะได้รับอนุญาตให้ซิงค์การกำหนดค่าเครือข่าย Wi-Fi ระหว่างอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> กับโทรศัพท์ Android ที่เชื่อมต่อ ก่อนที่จะซิงค์การกำหนดค่าเครือข่าย Wi-Fi ได้ ผู้ใช้ต้องเลือกใช้ฟีเจอร์นี้อย่างชัดแจ้งด้วยการทำตามขั้นตอนการตั้งค่าให้เสร็จสมบูรณ์ @@ -4565,15 +4523,6 @@ การไม่ตั้งค่านโยบายนี้หมายความว่า <ph name="IE_PRODUCT_NAME" /> จะตรวจหาเส้นทางสั่งการของ <ph name="PRODUCT_NAME" /> เองโดยอัตโนมัติเมื่อเปิด <ph name="PRODUCT_NAME" /> จาก Internet Explorer หมายเหตุ: หากไม่ได้มีการติดตั้ง Add-in การรองรับเบราว์เซอร์เวอร์ชันเก่าสำหรับ <ph name="IE_PRODUCT_NAME" /> ไว้ นโยบายนี้ก็จะไม่มีผล</translation> -<translation id="7506758875409719208">กำหนดค่าชื่อโดเมนของไคลเอ็นต์ที่จำเป็น ซึ่งจะกำหนดให้กับไคลเอ็นต์การเข้าถึงระยะไกลและป้องกันไม่ให้ผู้ใช้เปลี่ยนชื่อโดเมน - - หากเปิดใช้การตั้งค่านี้และตั้งค่าเป็นโดเมน 1 รายการขึ้นไป จะมีเฉพาะไคลเอ็นต์จากโดเมนที่ระบุที่เชื่อมต่อกับโฮสต์ได้ - - หากปิดใช้การตั้งค่านี้ ไม่ได้ตั้งค่า หรือตั้งค่าเป็นรายการว่างเปล่า ระบบจะใช้นโยบายเริ่มต้นของการเชื่อมต่อประเภทนั้นๆ สำหรับความช่วยเหลือระยะไกล ระบบจะอนุญาตให้ไคลเอ็นต์จากโดเมนต่างๆ เชื่อมต่อกับโฮสต์ได้ สำหรับการเข้าถึงระยะไกลได้ตลอดเวลา จะมีเฉพาะเจ้าของโฮสต์ที่เชื่อมต่อได้ - - การตั้งค่านี้จะลบล้าง RemoteAccessHostClientDomain หากมี - - ดู RemoteAccessHostDomainList เพิ่มเติม</translation> <translation id="7507131973617884092">การตั้งค่านโยบายหมายความว่าต้นทางแต่ละแห่งที่มีชื่อในรายการที่คั่นด้วยจุลภาคจะทำงานในกระบวนการของตัวเอง และจะแยกต้นทางที่ตั้งชื่อตามโดเมนย่อย เช่น การระบุ https://example.com/ จะเป็นการแยก https://foo.example.com/ เนื่องจากเป็นส่วนหนึ่งของเว็บไซต์ https://example.com/ การตั้งค่าเป็น "ปิด" หรือไม่ตั้งค่าจะทำให้ผู้ใช้เปลี่ยนการตั้งค่าได้ @@ -5043,7 +4992,6 @@ หากมีการระงับการทำงาน คุณจะกำหนดค่า <ph name="PRODUCT_OS_NAME" /> แยกต่างหากเพื่อให้ล็อกหรือไม่ล็อกหน้าจอก่อนที่จะมีการระงับได้</translation> <translation id="8214600119442850823">กำหนดค่าตัวจัดการรหัสผ่าน</translation> -<translation id="8217516105848565518">นโยบายนี้เลิกใช้งานไปแล้ว โปรดใช้ RemoteAccessHostDomainList แทน</translation> <translation id="8219777886736887686">การตั้งค่านโยบายนี้จะควบคุมคำสั่งที่จะใช้เปิด URL ในเบราว์เซอร์สำรอง นโยบายนี้จะตั้งค่าเป็นอย่างใดอย่างหนึ่งได้ระหว่าง <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> หรือเส้นทางของไฟล์ เมื่อตั้งค่านโยบายนี้เป็นเส้นทางของไฟล์ ระบบจะใช้ไฟล์นั้นเป็นไฟล์ที่สั่งการได้ <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> และ <ph name="EDGE_VALUE_PLACEHOLDER" /> จะมีเฉพาะใน <ph name="MS_WIN_NAME" /> และ <ph name="SAFARI_VALUE_PLACEHOLDER" /> จะมีเฉพาะใน <ph name="MS_WIN_NAME" /> และ <ph name="MAC_OS_NAME" /> การไม่ตั้งค่านโยบายนี้จะทำให้ระบบใช้ค่าเริ่มต้นเฉพาะแพลตฟอร์มนั้นๆ ได้แก่ <ph name="IE_PRODUCT_NAME" /> สำหรับ <ph name="MS_WIN_NAME" /> หรือ <ph name="SAFARI_PRODUCT_NAME" /> สำหรับ <ph name="MAC_OS_NAME" /> ส่วนใน <ph name="LINUX_OS_NAME" /> การเปิดเบราว์เซอร์สำรองจะทำไม่สำเร็จ</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index d4577778..35c8c17d 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -188,6 +188,7 @@ Bu ayarı etkinleştirirseniz Google Arama'da Güvenli Arama ve YouTube'da Orta Düzey Kısıtlı Mod her zaman etkin olur. Bu ayarı devre dışı bırakır veya herhangi bir değer belirlemezseniz, Google Arama'da Güvenli Arama ve YouTube'da Kısıtlı Mod uygulanmaz.</translation> +<translation id="134745581157553029">"DeviceArcDataSnapshotHours" politikası ayarlanırsa ARC verilerinin anlık görüntü mekanizması etkinleştirilir. ARC verilerinin anlık görüntüsünün güncellemesi, tanımlanan zaman aralıklarında otomatik olarak başlatılabilir. Bir aralık başladığında, ARC anlık görüntüsünün güncellemesi gerekip giriş yapmış kullanıcı yoksa ARC verilerinin anlık görüntüsünü güncelleme işlemi, kullanıcı bildirimi olmadan başlatılır. Kullanıcı oturumu etkinse kullanıcı arayüzü bildirimi gösterilir. Cihazı yeniden başlatıp ARC verilerinin anlık görüntüsünü güncelleme işlemini başlatmak için bildirimin kabul edilmesi gerekir. Not: Cihaz kullanımı, ARC verilerinin anlık görüntüsünü güncelleme işlemi sırasında engellenir.</translation> <translation id="1353416417709895349">DNS müdahale kontrollerini ve bunu mu demek istediniz "http://intranetsite/" bilgi çubuklarını devre dışı bırak.</translation> <translation id="1353985065430729216">Politikayı ayarlamak, hareket ve ışık sensörleri gibi sensörlere erişebilen siteleri belirten URL kalıpları için bir liste yapmanıza olanak tanır. @@ -464,6 +465,7 @@ Politikanın ayarlanması, yasaklanan uzantılar listesinden muaf tutulacak uzantıları belirtir. Tüm uzantıları yasaklamak üzere <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> için <ph name="ALL_EXTENSIONS" /> değerini kullanın. Kullanıcılar yalnızca açıkça izin verilen uzantıları yükleyebilirler. Varsayılan olarak tüm uzantılara izin verilir. Ancak uzantıları politikaya göre yasakladıysanız bu politikayı değiştirmek için izin verilen uzantılar listesini kullanın.</translation> <translation id="1781356041596378058">Ayrıca bu politika Android Geliştirici Seçenekleri'ne erişimi de kontrol eder. Bu politikayı doğru (true) seçeneğine ayarlarsanız kullanıcılar Geliştirici Seçenekleri'ne erişemez. Bu politikayı yanlış (false) seçeneğine ayarlar veya ayarlamadan bırakırsanız kullanıcılar, Android ayarları uygulamasında derleme numarasına yedi kez dokunarak Geliştirici Seçenekleri'ne erişebilir.</translation> +<translation id="1787790976045065845">Bu politika, yalnızca <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> politikası <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> veya <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> değerine ayarlanırsa ve akıllı kartla kimlik doğrulaması yapan kullanıcı bu akıllı kartı çıkarırsa geçerli olur. Ardından bu politika, gerçekleşmek üzere olan işlem hakkında kullanıcıyı bilgilendiren bildirimin kaç saniye görüntüleneceğini belirtir. Bu bildirim, ekranı engeller. İşlem, yalnızca bu bildirimin süresi dolduktan sonra gerçekleşir. Kullanıcı, bildirimin süresi dolmadan akıllı kartı yeniden takarak işlemin gerçekleşmesini önleyebilir. Bu politika sıfır değerine ayarlanırsa herhangi bir bildirim görüntülenmeden işlem hemen gerçekleşir.</translation> <translation id="1793346220873697538">Varsayılan olarak PIN ile yazdırmayı devre dışı bırak</translation> <translation id="179694024208061102">Politika Etkin değerine ayarlanırsa <ph name="PRODUCT_NAME" /> bazı URL'leri alternatif bir tarayıcıda (ör. <ph name="IE_PRODUCT_NAME" />) açmaya çalışır. Bu özellik, <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" /> grubundaki politikalar kullanılarak ayarlanır. @@ -784,13 +786,6 @@ Bu politika, erişimi herkese açık cihazlarda kullanılmamalıdır. Bu politika True (Doğru) değerine ayarlanır veya ayarlanmadan bırakılırsa otomatik olarak başlatılmış misafir oturumundayken gizlilik uyarısı bildirimi, kullanıcı kapayıncaya kadar görüntülenir.</translation> -<translation id="228665601367357543">Sağlanan tedarikçi ve ürün kimliklerine sahip USB cihazlarına erişmesine otomatik olarak izin verilen siteleri belirten URL kalıpları için liste oluşturmanıza olanak tanır. Politikanın geçerli olabilmesi için listedeki her öğenin hem "cihazlar" hem de "URL'ler" alanı olması gerekir. "Cihazlar" alanındaki her öğe, "vendor_id" ve "product_id" alanı içerebilir. "Vendor_id" alanının atlanması her cihazla eşleşen bir politika oluşturur. "Product_id" alanının atlanması belirtilen satıcı kimliğiyle her cihazla eşleşen bir politika oluşturur. "Product_id" alanı olup "vendor_id" alanı olmayan politika geçersizdir. - - USB izin modeli, istekte bulunan URL'nin USB cihazına erişmesine izni vermek için hem istekte bulunan URL'yi hem de yerleştirilmiş URL öğesini (üst düzey çerçeve sitesinin) kullanır. İstekte bulunan site, iFrame içinde yüklendiğinde istekte bulunan URL yerleştirilmiş URL öğesinden farklı olabilir. Bu nedenle, "URL'ler" alanı, bu URL'leri belirtmek için virgülle sınırlandırılmış en fazla 2 dize içerebilir. Yalnızca bir URL belirtirseniz yerleştirme durumundan bağımsız olarak bu URL ile eşleşen istekte bulunan sitenin URL'sine karşılık gelen USB cihazlarına erişim izni verilir. "URL'ler" alanındaki URL'lerin geçerli URL'ler olmaları gerekir; aksi halde, politika yok sayılır. - - Politika ayarlanmadan bırakılırsa <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> (ayarlanmışsa) geçerli olur. Aksi takdirde kullanıcının kişisel ayarları geçerlidir. - - Bu politikadaki URL kalıpları, <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> aracılığıyla yapılandırılan kalıplarla çakışmamalıdır. Çakışırsa bu politika, <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> ve <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" /> politikalarına göre daha önceliklidir.</translation> <translation id="2289265947759479962">Bu politika OS sürümü, OS platformu, OS mimarisi, <ph name="PRODUCT_NAME" /> sürümü ve <ph name="PRODUCT_NAME" /> kanalı gibi sürüm bilgilerinin bildirilip bildirilmeyeceğini kontrol eder. <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> politikası ayarlanmadan bırakıldığında veya devre dışı değerine ayarlandığında bu politika yok sayılır. @@ -990,6 +985,14 @@ Politika ayarlanmadan bırakılırsa Hizmet Şartları görünmez. Politika, Hizmet Şartları'nın <ph name="PRODUCT_OS_NAME" /> tarafından indirilebileceği bir URL'ye ayarlanmalıdır. Hizmet Şartları, düz metin biçiminde olmalı, MIME türü metin/düz olarak sunulmalıdır. İşaretlemeye izin verilmez.</translation> +<translation id="2500699707048942472">PIN kodu otomatik gönderme özelliği Chrome OS'te PIN kodların girilme biçimini değiştirir. + Şifre girmek için kullanılan aynı metin alanı yerine, bu + özellik kullanıcıya PIN kodu için kaç + hanenin gerekli olduğunu belirten özel bir kullanıcı arayüzü gösterir. Sonuç olarak da kullanıcının PIN kodunun uzunluğu + kullanıcının şifrelenmiş verilerinin dışında depolanır. Yalnızca 6 ila 12 basamaklı PIN'leri destekler. + + Bu politika yanlış değerine ayarlandığında kullanıcı, + özelliği Ayarlar sayfasından etkinleştiremez.</translation> <translation id="2502467045153796624">Kanal sürümü değiştirme davranışı</translation> <translation id="250670737672448119">Metin imlecini vurgulama erişilebilirlik özelliğini etkinleştirin. @@ -1514,11 +1517,6 @@ * 4 olarak ayarlanırsa <ph name="TPM_FIRMWARE_UPDATE_TPM" /> donanım yazılımı kayıt işleminden sonra, kullanıcı oturum açmadan önce güncellenir. Politika ayarlanmadan bırakılırsa <ph name="TPM_FIRMWARE_UPDATE_TPM" /> donanım yazılımı güncellemesi kullanılamaz.</translation> -<translation id="3235677869770186098">Politikanın ayarlanması, giriş ekranında sağlanan tedarikçi ve ürün kimliklerine sahip USB cihazlarına erişmesine otomatik olarak izin verilen siteleri belirten URL kalıplarının listesini oluşturmanıza olanak tanır. Politikanın geçerli olabilmesi için listedeki her öğenin hem "cihazlar" hem de "URL'ler" alanı olması gerekir. "Cihazlar" alanındaki her öğe, "vendor_id" ve "product_id" alanı içerebilir. "Vendor_id" alanının atlanması her cihazla eşleşen bir politika oluşturur. "Product_id" alanının atlanması belirtilen satıcı kimliğiyle her cihazla eşleşen bir politika oluşturur. "Product_id" alanı olup "vendor_id" alanı olmayan politika geçersizdir. - - USB izin modeli, istekte bulunan URL'nin USB cihazına erişmesine izin vermek için istekte bulunan URL'yi ve yerleştirme URL'sini kullanır. İstekte bulunan site bir iFrame içinde yüklendiğinde, istekte bulunan URL yerleştirme URL'sinden farklı olabilir. Dolayısıyla, URL'ler alanı, sırasıyla istekte bulunan URL'yi ve yerleştirme URL'sini belirtmek için virgülle sınırlandırılmış en fazla 2 URL dizesi içerebilir. Yalnızca bir URL belirtilirse yerleştirme durumundan bağımsız olarak bu URL ile eşleşen istekte bulunan sitenin URL'sine karşılık gelen USB cihazlarına erişim izni verilir. URL'ler geçerli olmalıdır; aksi halde, politika yok sayılır. - - Politika ayarlanmadan bırakılırsa genel varsayılan değer tüm siteler için kullanılır (otomatik erişim olmaz).</translation> <translation id="3236046242843493070">Uzantı, uygulama ve kullanıcı komut dosyası yüklemelerine izin veren URL kalıpları</translation> <translation id="3240609035816615922">Yazıcı yapılandırması erişim politikası.</translation> <translation id="324062325008698789">Yazıcılar listesini yapılandırır</translation> @@ -1832,7 +1830,6 @@ <translation id="3631099945620529777">False (yanlış) değerine ayarlanırsa Görev Yöneticisi'nde "İşlemi sonlandır" düğmesi devre dışı bırakılır. True (doğru) değerine ayarlanır veya yapılandırılmazsa kullanıcı, Görev Yöneticisi'ndeki işlemleri sona erdirebilir.</translation> -<translation id="3639444551396586995">Chrome'un güvenli olmayan etkinlikleri Google'a bildirmesine olanak verir</translation> <translation id="3643284063603988867">"Şifreyi hatırla" özelliğini etkinleştir</translation> <translation id="3646859102161347133">Ekran büyüteci türünü ayarla</translation> <translation id="3647212518036289905">Politikanın ayarlanması, HTTP kimlik doğrulaması için hangi GSSAPI kitaplığının kullanılacağını belirtir. Politikayı bir kitaplık adı veya tam yol olarak ayarlayın. @@ -1852,13 +1849,6 @@ Bu politika, masaüstünde makine kapsamı bulut politika kaydı tarafından kullanılır ve Windows'da Registry ya da GPO, Mac'te plist, Linux'ta ise JSON politika dosyası tarafından ayarlanabilir.</translation> <translation id="3660562134618097814">Giriş sırasında SAML IdP çerezlerini aktar</translation> -<translation id="3669373349666208904">Politika Doğru değerine ayarlandığında sayfalar kaldırılırken pop-up'lar gösterebilir. - - Politika Yanlış değerine ayarlandığında ya da ayarlanmadan bırakıldığında sayfaların kaldırılırken pop-up göstermesi engellenir. - - Bu politika, Chrome 88 sürümünde kaldırılacaktır. - - https://www.chromestatus.com/feature/5989473649164288 adresine bakın.</translation> <translation id="3691155504326059225">Politika Etkin değerine ayarlanırsa herhangi bir ana sayfanın URL konumu yok sayılarak Yeni Sekme sayfası kullanıcının ana sayfası yapılır. Politika Devre dışı değerine ayarlanırsa kullanıcının ana sayfa URL'si chrome://newtab olarak ayarlanmadığı sürece ana sayfa hiçbir zaman Yeni Sekme sayfası olmaz. Bu politikayı ayarlarsanız kullanıcılar <ph name="PRODUCT_NAME" /> ürününde ana sayfa türlerini değiştiremez. Politika ayarlanmadan bırakılırsa ana sayfasının Yeni Sekme sayfası olup olmayacağına kullanıcı karar verir. @@ -2097,15 +2087,6 @@ <translation id="4020682745012723568">Android uygulamaları, kullanıcının profiline aktarılmış çerezlere erişemez.</translation> <translation id="402759845255257575">Hiçbir sitenin JavaScript çalıştırmasına izin verme</translation> <translation id="4027608872760987929">Varsayılan arama sağlayıcıyı etkinleştir</translation> -<translation id="4044054366426171256">Uzaktan erişim ana makinelerinde uygulanacak gerekli ana makine alan adlarını yapılandırır ve kullanıcıların bunu değiştirmesini önler. - - Bu ayar etkinleştirilir ve bir veya daha fazla alan adına ayarlanırsa ana makineler yalnızca belirtilen alan adlarından birinde kayıtlı hesaplar kullanılarak paylaşılabilir. - - Bu ayar devre dışı bırakılırsa, ayarlanmazsa veya boş bir listeye ayarlanırsa ana makineler herhangi bir hesap kullanılarak paylaşılabilir. - - Bu ayar mevcut olması halinde RemoteAccessHostDomain politikasını geçersiz kılar. - - RemoteAccessHostClientDomainList politikasına da bakın.</translation> <translation id="4056910949759281379">SPDY protokolünü devre dışı bırak</translation> <translation id="4061590579642538878">Kilitlenme raporlarıyla ilgili bilgileri raporlama</translation> <translation id="4075675819066819571">Rafı ekranın sol tarafında konumlandır</translation> @@ -2562,10 +2543,6 @@ <translation id="4874982543810021567">Bu sitelerde WebUSB'yi engelle</translation> <translation id="4876805738539874299">Etkinleştirilen maksimum SSL sürümü</translation> <translation id="4887274746092315609">SAML kullanıcılarına yönelik oturum içi şifre değişimi için bir sayfayı etkinleştir</translation> -<translation id="4887863670424903990">Bu politika etkin olarak ayarlandığında <ph name="PRODUCT_NAME" />; şifre yeniden kullanımı, kötü amaçlı yazılım indirmeleri, geçiş reklamları, hassas verileri koruma kuralı ihlalleri gibi güvenli olmayan etkinlikleri analiz için Google'a bildirir. Hassas verileri koruma kuralı ihlalleri gibi bazı güvenli olmayan etkinlikler, bu tür denetimleri etkinleştiren diğer politikalara bağlıdır. - - Bu politika hiç ayarlanmazsa veya devre dışı olarak ayarlanırsa <ph name="PRODUCT_NAME" /> güvenli olmayan etkinlikleri bildirmeyecektir. - </translation> <translation id="4894290482695457375"><ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> politikası Devre dışı değerine ayarlanmadığı sürece, <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> politikası Etkin değerine ayarlanırsa <ph name="PRODUCT_NAME" /> yalnızca RFC1918/RFC4193 özel adreslerinde değil tüm IP adreslerinde yayın cihazlarına bağlanır. Politika Devre dışı değerine ayarlanırsa <ph name="PRODUCT_NAME" /> yalnızca RFC1918/RFC4193 adreslerinde yayın cihazlarına bağlanır. @@ -3349,9 +3326,6 @@ Uzaktan erişim istemcileri bu politika ayarından etkilenmez. Bunlar, TalkGadget'a erişmek için her zaman 'chromoting-client.talkgadget.google.com' alan adını kullanır.</translation> <translation id="5890063326284543943">Serial API'sinin kullanımını kontrol et</translation> -<translation id="5893553533827140852">Bu ayar etkinleştirilirse gnubby kimlik doğrulama isteklerinde uzaktan ana bilgisayar bağlantısı üzerinden proxy kullanılır. - - Bu ayar devre dışı bırakılır veya yapılandırılmazsa gnubby kimlik doğrulama isteklerinde proxy kullanılmaz.</translation> <translation id="5897913798715600338">Pili hızlı şarj teknolojisiyle şarj et.</translation> <translation id="5898486742390981550">Birden fazla kullanıcı giriş yaptığında, yalnızca birincil kullanıcı Android uygulamalarını kullanabilir.</translation> <translation id="5901427587865226597">Yalnızca dupleks yazdır</translation> @@ -3691,7 +3665,6 @@ Fakat, bu politika için kaynakları eşleşen kalıplar "/path" ya da "@query" öğelerini içeremez. "/path" ya da "@query" öğelerini içeren kalıplar yoksayılacaktır.</translation> <translation id="6464074037294098618">Adresleri otomatik doldurmayı etkinleştir</translation> <translation id="6467613372414922590">Kullanıcı düzeyinde Yerel Mesajlaşma ana makinelerine izin ver (yönetici şifreleri olmadan yüklenir)</translation> -<translation id="6468980648680553776">Bu politika kullanımdan kaldırılmıştır. Lütfen bunun yerine RemoteAccessHostClientDomainList politikasını kullanın.</translation> <translation id="6473623140202114570">Güvenli Tarama'nın uyarıları tetiklemeyeceği alan adlarının listesini yapılandırır.</translation> <translation id="647698599569353771">Yakındakilerle Paylaş'ın etkinleştirilmesine izin verin.</translation> <translation id="6485813825811798133">Bu politika ayarlanırsa kullanıcılardan ana makine işletim sisteminin dosya sisteminde bulunan dosya veya dizinlere File System API üzerinden okuma erişimi vermelerini isteyemeyecek sitelerin belirtildiği URL kalıpları listesini oluşturabilirsiniz. @@ -4535,17 +4508,6 @@ <translation id="747014869399137701">Politikayı 1 değerine ayarlamak web sitelerinin masaüstü bildirimlerine izin verir. Politikayı 2 değerine ayarlamak masaüstü bildirimlerini engeller. Politikayı ayarlamadan bırakırsanız <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> politikası geçerli olur. Kullanıcılar bu ayarı değiştirebilir.</translation> -<translation id="7471828226549672843">Varsayılan olarak CCT ilk çalıştırıldığında Hizmet Şartları gösterilir. Bu politikanın Devre Dışı değerine ayarlanması, Hizmet Şartları iletişim kutusunun ilk çalıştırma deneyiminde veya sonraki çalıştırmalarda görünmemesine neden olur. Bu politikanın Etkin değerine ayarlanması veya ayarlanmadan bırakılması, Hizmet Şartları iletişim kutusunun ilk çalıştırma deneyiminde görünmesine neden olur. Dikkat edilmesi gereken diğer noktalar: - - - Bu politika Birleşik Uç Nokta Yönetimi tedarikçilerinin yapılandırabildiği, yalnızca tümüyle yönetilen Android cihazlarda çalışır. - - - Bu politika Devre Dışı ise BrowserSignin politikasının hiçbir etkisi olmaz. - - - Bu politika Devre Dışı ise metrikler sunucuya gönderilmez. - - - Bu politika Devre Dışı ise tarayıcının işlevi sınırlı olur. - - - Bu politika Devre Dışı ise yöneticiler bunu cihazın son kullanıcılarına belirtmelidir.</translation> <translation id="747275827471712187">Bu sitelerde çerezler için eski <ph name="ATTRIBUTE_SAMESITE_NAME" /> davranışına geri dön</translation> <translation id="7476621944304431784">Bu ayar etkinleştirildiğinde kullanıcıların, <ph name="PRODUCT_OS_NAME" /> cihazları ile bağlı Android telefonları arasında kablosuz ağ yapılandırmalarını senkronize etmelerine izin verilir. Kablosuz ağ yapılandırmaları senkronize edilmeden önce kullanıcıların bir kurulum akışını tamamlayarak bu özelliğe açık bir şekilde kaydolmaları gerekir. @@ -4582,15 +4544,6 @@ Bu politika ayarlanmadan bırakılırsa <ph name="IE_PRODUCT_NAME" />, Internet Explorer'dan <ph name="PRODUCT_NAME" /> tarayıcısını açarken <ph name="PRODUCT_NAME" /> tarayıcısının kendi yürütülebilir yolunu otomatik olarak algılar. Not: <ph name="IE_PRODUCT_NAME" /> için Eski Tarayıcı Desteği eklentisi yüklü değilse bu politika geçerliliğini yitirir.</translation> -<translation id="7506758875409719208">Uzaktan erişim istemcilerine uygulanacak gerekli istemci alan adlarını yapılandırır ve kullanıcıların bunu değiştirmesini önler. - - Bu ayar etkinleştirilir ve bir veya daha fazla etki alanına ayarlanırsa yalnızca belirtilen alan adlarından birinden gelen istemciler ana makineye bağlanabilir. - - Bu ayar devre dışı bırakılırsa, ayarlanmazsa veya boş bir listeye ayarlanırsa bağlantı türü için varsayılan politika uygulanır. Bu durum, uzaktan yardım açısından, herhangi bir alan adındaki istemcilerin ana makineye bağlanmasına olanak tanır. Herhangi bir zamanda gerçekleştirilen uzaktan erişim için yalnızca ana makine sahibi bağlantı kurabilir. - - Bu ayar yapılandırılırsa RemoteAccessHostClientDomain politikasını geçersiz kılar. - - Ayrıca RemoteAccessHostDomainList politikasına bakın.</translation> <translation id="7507131973617884092">Bu politika ayarlanırsa virgülle ayrılmış listede adı verilen her kaynak kendi işleminde çalışır ve alt alan adlarıyla adlandırılan kaynakları izole eder. Örneğin, https://example.com/ sitesinin belirtilmesi, https://example.com/ sitesi kapsamında https://foo.example.com/ sitesinin de izole edilmesine neden olur. Politika devre dışı bırakılır veya ayarlanmazsa kullanıcılar bu ayarı değiştirebilirler. @@ -5065,7 +5018,6 @@ Uygulanacak işlem askıya alma ise <ph name="PRODUCT_OS_NAME" />, askıya almadan önce ekranı kilitleyecek veya kilitlemeyecek şekilde ayrı olarak yapılandırılabilir.</translation> <translation id="8214600119442850823">Şifre yöneticisini yapılandırır.</translation> -<translation id="8217516105848565518">Bu politika kullanımdan kaldırılmıştır. Bunun yerine lütfen RemoteAccessHostDomainList politikasını kullanın.</translation> <translation id="8219777886736887686">Bu politika, URL'leri alternatif tarayıcıda açmak için hangi komutun kullanılacağını kontrol eder. Politika; <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> veya bir dosya yoluna ayarlanabilir. Bu politika bir dosya yoluna ayarlanırsa buradaki dosya yürütülebilir dosya olarak kullanılır. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> ve <ph name="EDGE_VALUE_PLACEHOLDER" /> yalnızca <ph name="MS_WIN_NAME" /> üzerinde kullanılabilir. <ph name="SAFARI_VALUE_PLACEHOLDER" /> ise yalnızca <ph name="MS_WIN_NAME" /> ile <ph name="MAC_OS_NAME" /> üzerinde kullanılabilir. Bu politika ayarlanmadan bırakılırsa platforma özgü bir varsayılan kullanılır: <ph name="MS_WIN_NAME" /> için <ph name="IE_PRODUCT_NAME" /> veya <ph name="MAC_OS_NAME" /> için <ph name="SAFARI_PRODUCT_NAME" />. <ph name="LINUX_OS_NAME" /> üzerinde alternatif tarayıcı açılamaz.</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index 357f5a5..a424a45d 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -188,6 +188,7 @@ Якщо це налаштування ввімкнено, Безпечний пошук у Пошуку Google і помірний безпечний режим на YouTube завжди активні. Якщо це налаштування вимкнено або значення не вказано, Безпечний пошук у Пошуку Google і безпечний режим на YouTube вимикаються.</translation> +<translation id="134745581157553029">Якщо правило DeviceArcDataSnapshotHours налаштовано, механізм короткого огляду даних ARC буде ввімкнено, а оновлення короткого огляду таких даних може відбуватись автоматично впродовж визначених проміжків часу. Коли починається такий проміжок часу, а також потрібно оновити короткий огляд даних ARC і жодний користувач не ввійшов в обліковий запис, згадане оновлення запускається, а користувачі не отримують відповідне сповіщення. Якщо є активний сеанс користувача, в інтерфейсі з'являється сповіщення, а користувач має прийняти запит перезапустити пристрій і почати оновлення короткого огляду даних ARC. Примітка: упродовж такого оновлення пристроєм не можна користуватися.</translation> <translation id="1353416417709895349">Вимкнути перевірки перехоплення системи DNS та інформаційні панелі "можливо, ви мали на увазі" http://intranetsite/.</translation> <translation id="1353985065430729216">Налаштування цього правила дають змогу створити список шаблонів URL-адрес, що визначають сайти, які мають доступ до датчиків, зокрема руху та світла. @@ -474,6 +475,7 @@ Налаштування цього правила визначають, які розширення є винятками з чорного списку. Скористайтеся значенням "<ph name="ALL_EXTENSIONS" />" для <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />, щоб заборонити всі розширення. Користувачі зможуть установлювати лише дозволені розширення. За умовчанням усі розширення дозволені. Але якщо всі розширення внесено правилом у чорний список, білий список може його замінити.</translation> <translation id="1781356041596378058">Це правило також керує доступом до Параметрів розробника Android. Якщо для цього правила встановлено значення "true", користувачі не матимуть доступу до Параметрів розробника. Якщо це правило не налаштовано або встановлено значення "false", користувачі можуть отримувати доступ до Параметрів розробника, сім разів торкнувшись номера складання в додатку Налаштування Android.</translation> +<translation id="1787790976045065845">Це правило діє, лише якщо для правила <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> вибрано значення <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> або <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />, а користувач, який проходить автентифікацію за допомогою розумної картки, виймає її. Потім у налаштуваннях цього правила вказується, скільки секунд відображається сповіщення про дію, яка відбудеться. Таке сповіщення блокує екран. Відповідна дія відбудеться, коли припиниться показ сповіщення. Користувач може запобігти їй, якщо знову вставить розумну картку, перш ніж сповіщення зникне. Якщо для цього правила вказано значення нуль, сповіщення не відображатиметься, а відповідна дія відбудеться відразу.</translation> <translation id="1793346220873697538">Вимкнути друк із PIN-кодом за умовчанням</translation> <translation id="179694024208061102">Якщо це правило активовано, <ph name="PRODUCT_NAME" /> намагатиметься відкривати деякі URL-адреси в альтернативному веб-переглядачі, наприклад <ph name="IE_PRODUCT_NAME" />. Цю функцію можна налаштувати за допомогою правил у групі "<ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />". @@ -804,13 +806,6 @@ Це правило не можна використовувати для загальнодоступних пристроїв. Якщо для цього правила вибрано значення True або його не налаштовано, попередження про загрозу конфіденційності в автоматично запущеному керованому сеансі в режимі "Гість" буде закріплено, доки користувач не закриє його.</translation> -<translation id="228665601367357543">За допомогою налаштувань цього правила ви зможете вказати список шаблонів URL-адрес, що визначають сайти, які автоматично отримують дозвіл на доступ до пристроїв USB з певними ідентифікаторами постачальника й продукту. Щоб це правило було дійсним, кожний елемент списку має містити поля "пристрої" та "URL-адреси". Кожний елемент у полі "пристрої" може містити поля "ідентифікатор_постачальника" та "ідентифікатор_продукту". Якщо поля "ідентифікатор_постачальника" немає, правило застосовуватиметься до кожного пристрою. Якщо поля "ідентифікатор_продукту" немає, правило застосовуватиметься до кожного пристрою з указаним ідентифікатором постачальника. Якщо правило містить поле "ідентифікатор_продукту", але поля "ідентифікатор_постачальника" немає, воно вважається недійсним. - - Модель дозволів USB використовує URL-адресу запиту та вставлену URL-адресу (сайту фрейму найвищого рівня), щоб надати URL-адресі запиту доступ до пристрою USB. URL-адреса запиту може відрізнятися від вставленої, якщо сайт запиту завантажується в iframe. Тому поле "URL-адреси" може містити до двох рядків, розділених комою, щоб можна було вказати ці URL-адреси. Якщо вказати лише одну, доступ до відповідних пристроїв USB буде надано, коли URL-адреса сайту, що запитує доступ, відповідатиме вказаній, незалежно від статусу вставлення. URL-адреси, указані у відповідному полі, мають бути дійсними, інакше правило ігноруватиметься. - - Якщо це правило не налаштовано, застосовуватиметься правило <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> за умови, що його встановлено. Якщо ні, використовуються особисті налаштування користувачів. - - Шаблони URL-адрес, указані в цьому правилі, не можуть конфліктувати з шаблонами, налаштованими в правилі <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. Якщо виникає конфлікт, це правило має перевагу над правилами <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> і <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Це правило визначає, чи повідомляти інформацію про версію, як-от версію, платформу й архітектуру ОС, а також версію <ph name="PRODUCT_NAME" /> і канал <ph name="PRODUCT_NAME" />. Якщо правило <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> не налаштовано або для нього вибрано значення disabled, це правило ігноруватиметься. @@ -1010,6 +1005,15 @@ Якщо це правило не налаштовано, Умови використання не з'являтимуться. Для цього правила потрібно вказати URL-адресу, з якої <ph name="PRODUCT_OS_NAME" /> може завантажити Умови використання. Умови використання мають бути у форматі простого тексту, а їх тип MIME – text/plain. Розмітку заборонено.</translation> +<translation id="2500699707048942472">Функція автоматичного надсилання PIN-кодів визначає, як в ОС Chrome вводяться PIN-коди. + Замість текстового поля, яке використовується для пароля, ця + функція показує спеціальний інтерфейс, у якому чітко відображається, скільки + цифр потрібно вказати. Унаслідок цього інформація про довжину PIN-коду + зберігатиметься окремо від зашифрованих даних користувача. Підтримуються лише PIN-коди, + які складаються із 6–12 символів. + + Якщо для цього правила вибрано значення "неправда", користувачі не зможуть вмикати + цю функцію на сторінці налаштувань.</translation> <translation id="2502467045153796624">Поведінка під час повернення до попередньої версії</translation> <translation id="250670737672448119">Увімкнути спеціальну можливість "Виділення символу вставки". @@ -1535,11 +1539,6 @@ * Якщо вказати 4, мікропрограма <ph name="TPM_FIRMWARE_UPDATE_TPM" /> оновлюється після реєстрації, перш ніж користувач увійде в систему. Якщо це правило не налаштовано, функція оновлення мікропрограми <ph name="TPM_FIRMWARE_UPDATE_TPM" /> недоступна.</translation> -<translation id="3235677869770186098">За допомогою налаштувань цього правила ви можете вказати список шаблонів URL-адрес, що визначають сайти, які автоматично отримують дозвіл на доступ до пристроїв USB з певними ідентифікаторами постачальника й продукту на екрані входу. Щоб це правило було дійсним, кожний елемент списку має містити поля "пристрої" та "URL-адреси". Кожний елемент у полі "пристрої" може містити поля "ідентифікатор_постачальника" та "ідентифікатор_продукту". Якщо поля "ідентифікатор_постачальника" немає, правило застосовуватиметься до кожного пристрою. Якщо поля "ідентифікатор_продукту" немає, правило застосовуватиметься до кожного пристрою з указаним ідентифікатором постачальника. Якщо правило містить поле "ідентифікатор_продукту", але поля "ідентифікатор_постачальника" немає, воно вважається недійсним. - - Модель дозволів USB використовує URL-адресу запиту та вставлену URL-адресу, щоб надати URL-адресі запиту доступ до пристрою USB. URL-адреса запиту може відрізнятися від вставленої, якщо сайт запиту завантажується в iframe. Тому поле URL-адрес може містити до двох рядків, розділених комою, щоб можна було вказати URL-адресу запиту та вставлену URL-адресу відповідно. Якщо вказано лише одну URL-адресу, тоді доступ до відповідних пристроїв USB буде надано, коли URL-адреса запиту відповідатиме вказаній, незалежно від статусу вставлення. URL-адреси мають бути дійсними, інакше правило ігноруватиметься. - - Якщо це правило не налаштовано, для всіх сайтів використовуватиметься загальне значення за умовчанням (немає автоматичного доступу).</translation> <translation id="3236046242843493070">Шаблони URL-адрес, з яких дозволено встановлювати розширення, програми та сценарії користувача</translation> <translation id="3240609035816615922">Правила доступу до конфігурації принтерів.</translation> <translation id="324062325008698789">Налаштовує список принтерів</translation> @@ -1856,7 +1855,6 @@ <translation id="3631099945620529777">Якщо для цього правила вибрано значення false, у Диспетчері завдань недоступна кнопка "Завершити процес". Якщо для цього правила вибрано значення true або його не налаштовано, користувач може завершувати процеси в Диспетчері завдань.</translation> -<translation id="3639444551396586995">Дозволяє Chrome повідомляти Google про небезпечні події</translation> <translation id="3643284063603988867">Увімкнути функцію "Запам’ятати пароль"</translation> <translation id="3646859102161347133">Установити тип лупи</translation> <translation id="3647212518036289905">Налаштування цього правила визначають, яку бібліотеку GSSAPI використовувати для автентифікації HTTP. Для цього правила можна вказати назву бібліотеки або повний шлях. @@ -1876,13 +1874,6 @@ Це правило застосовується через реєстрацію правила про повноваження пристрою щодо використання хмарних служб на комп’ютері й може налаштовуватися за допомогою реєстру чи GPO у Windows, plist у Mac і файлу правила JSON у Linux.</translation> <translation id="3660562134618097814">Передавати файли cookie SAML IdP під час входу</translation> -<translation id="3669373349666208904">Якщо для цього правила вибрано значення True, сторінки можуть показувати спливаючі вікна під час вивантаження. - - Якщо для цього правила вибрано значення False або його не налаштовано, сторінки не зможуть робити цього. - - У Chrome 88 це правило буде вилучено. - - Перегляньте сторінку https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Якщо це правило ввімкнено, сторінка нової вкладки використовується як домашня незалежно від указаної URL-адреси домашньої сторінки. Якщо це правило вимкнено, а URL-адреса домашньої сторінки – не chrome://newtab, сторінка нової вкладки не використовується як домашня. Якщо це правило налаштовано, користувачі не можуть змінювати тип домашньої сторінки в <ph name="PRODUCT_NAME" />. Якщо це правило не налаштовано, користувачі можуть вирішувати, чи використовувати сторінку нової вкладки як домашню. @@ -2121,15 +2112,6 @@ <translation id="4020682745012723568">Додатки Android не мають доступу до файлів cookie, перенесених у профіль користувача.</translation> <translation id="402759845255257575">Забороняти всім сайтам запускати JavaScript</translation> <translation id="4027608872760987929">Увімкнути пошукову службу за умовчанням</translation> -<translation id="4044054366426171256">Налаштовує обов'язкові доменні імена, які надаються хостам віддаленого доступу. Користувачі не можуть змінювати це налаштування. - - Якщо цей параметр ввімкнено й налаштовано для принаймні одного домену, спільний доступ до хостів можна отримати лише з облікових записів, зареєстрованих в одному з указаних доменів. - - Якщо цей параметр вимкнено, не налаштовано або для нього вказано порожній список, спільний доступ до хостів можна отримати з будь-якого облікового запису. - - Цей параметр замінює правило RemoteAccessHostDomain, якщо таке застосовується. - - Перегляньте також правило RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">Вимкнути протокол SPDY</translation> <translation id="4061590579642538878">Повідомляти дані звітів про аварійне завершення роботи.</translation> <translation id="4075675819066819571">Розташування полиці ліворуч на екрані</translation> @@ -2585,10 +2567,6 @@ <translation id="4874982543810021567">Блокувати WebUSB на цих сайтах</translation> <translation id="4876805738539874299">Увімкнено максимальну версію SSL</translation> <translation id="4887274746092315609">Дає змогу користувачам SAML змінювати пароль на сторінці під час сеансу</translation> -<translation id="4887863670424903990">Якщо для цього правила вибрано значення enabled, <ph name="PRODUCT_NAME" /> надсилає в Google для аналізу дані про небезпечні події, як-от повторне використання пароля, завантаження зловмисного програмного забезпечення, міжсторінкові оголошення, порушення правил щодо захисту конфіденційних даних тощо. Деякі небезпечні події, як-от порушення правил щодо захисту конфіденційних даних, залежать від інших правил, які вмикають такі перевірки. - - Якщо для цього правила вибрано значення disabled або його не налаштовано, <ph name="PRODUCT_NAME" /> не повідомляє про небезпечні події. - </translation> <translation id="4894290482695457375">Якщо правило <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> не деактивовано, а правило <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> активовано, технологія <ph name="PRODUCT_NAME" /> підключається до пристроїв для трансляції за всіма IP-адресами, а не лише за приватними адресами RFC1918/RFC4193. Якщо це правило деактивовано, технологія <ph name="PRODUCT_NAME" /> підключається до пристроїв для трансляції лише за адресами RFC1918/RFC4193. @@ -3377,9 +3355,6 @@ Налаштування цього правила не впливає на клієнтів віддаленого доступу. Вони завжди використовують "chromoting-client.talkgadget.google.com" для доступу до TalkGadget.</translation> <translation id="5890063326284543943">Контролювати використання Serial API</translation> -<translation id="5893553533827140852">Якщо цей параметр увімкнено, запити на автентифікацію розширення Gnubby надсилаються через віддалене з’єднанння з хостом. - - Якщо цей параметр вимкнено або не налаштовано, запити на автентифікацію розширення Gnubby не надсилаються.</translation> <translation id="5897913798715600338">Заряджати акумулятор через технологію швидкого заряджання.</translation> <translation id="5898486742390981550">Якщо на пристрої здійснено вхід у декілька облікових записів, працювати в додатках Android може лише основний користувач.</translation> <translation id="5901427587865226597">Лише двосторонній друк</translation> @@ -3720,7 +3695,6 @@ Проте шаблони для цього правила не можуть містити елементи "/path" або "@query". Шаблони, які містять елементи "/path" або "@query", ігноруватимуться.</translation> <translation id="6464074037294098618">Увімкнути функцію автозаповнення адрес</translation> <translation id="6467613372414922590">Дозволити хости на рівні користувача для обміну повідомленнями з оригінальними додатками (установлені без дозволів адміністратора)</translation> -<translation id="6468980648680553776">Це правило більше не підтримується. Натомість застосовуйте RemoteAccessHostClientDomainList.</translation> <translation id="6473623140202114570">Налаштувати список доменів, у яких Безпечний перегляд не показуватиме застережень.</translation> <translation id="647698599569353771">Дозволити вмикати Передавання поблизу.</translation> <translation id="6485813825811798133">Налаштувавши це правило, ви зможете вказати список шаблонів URL-адрес, що визначають сайти, яким заборонено запитувати дозвіл на перегляд файлів чи каталогів у файловій системі ОС хосту через File System API. @@ -4563,17 +4537,6 @@ <translation id="747014869399137701">Якщо для цього правила вибрано значення 1, веб-сайти зможуть показувати сповіщення на робочому столі. Якщо для нього вибрано значення 2, сповіщення на робочому столі будуть заблоковані. Якщо це правило не налаштовано, застосовуватиметься правило <ph name="ASK_NOTIFICATIONS_POLICY_NAME" />, але користувачі зможуть змінити цей параметр.</translation> -<translation id="7471828226549672843">За умовчанням Умови використання відображаються під час першого запуску спеціальної вкладки Chrome. Якщо це правило вимкнено, вікно Умов використання не з'являтиметься під час першого й наступних запусків. Якщо це правило ввімкнено або не налаштовано, вікно Умов використання з'являтиметься під час першого запуску. Інші попередження - - - Це правило працює лише на повністю керованих пристроях Android, які можуть налаштовувати постачальники системи Unified Endpoint Management. - - - Якщо це правило вимкнено, правило BrowserSignin не діятиме. - - - Якщо це правило вимкнено, показники не надсилатимуться на сервер. - - - Якщо це правило вимкнено, функції веб-переглядача буде обмежено. - - - Якщо це правило вимкнено, адміністратори повинні повідомити про це кінцевих користувачів пристрою.</translation> <translation id="747275827471712187">Повернутися до застарілої поведінки <ph name="ATTRIBUTE_SAMESITE_NAME" /> для файлів cookie на цих сайтах</translation> <translation id="7476621944304431784">Якщо це правило ввімкнено, користувачі зможуть синхронізувати налаштуванням мережі Wi-Fi між своїми пристроями <ph name="PRODUCT_OS_NAME" /> і підключеним телефоном Android. Щоб згадані налаштування могли синхронізуватися, користувачі мають явно ввімкнути цю функцію, налаштувавши її. @@ -4610,15 +4573,6 @@ Якщо це правило не налаштовано, <ph name="IE_PRODUCT_NAME" /> автоматично визначає шлях виконуваного файлу <ph name="PRODUCT_NAME" />, коли запускає <ph name="PRODUCT_NAME" /> з Internet Explorer. Примітка: якщо доповнення Підтримка застарілих веб-переглядачів для <ph name="IE_PRODUCT_NAME" /> не встановлено, це правило не діє.</translation> -<translation id="7506758875409719208">Налаштовує потрібні доменні імена, які надаються клієнтам із віддаленим доступом. Користувачі не можуть змінювати це налаштування. - - Якщо цей параметр ввімкнено й налаштовано принаймні для одного домену, лише клієнти з одного з указаних доменів можуть підключатися до хосту. - - Якщо цей параметр вимкнено, не налаштовано або для нього вказано порожній список, застосовується правило з'єднання за умовчанням. Для віддаленої допомоги до хосту можуть підключатися клієнти з будь-якого домену. Для постійного віддаленого доступу може під'єднуватися лише власник хосту. - - Цей параметр замінить правило RemoteAccessHostClientDomain, якщо таке застосовується. - - Перегляньте також правило RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Якщо це правило налаштовано, кожне джерело в списку значень, відокремлених комами, відкривається окремо, а джерела з назвами субдоменів ізолюються. Наприклад, якщо вказати https://example.com/, то https://foo.example.com/ буде ізольовано як частину сайту https://example.com/. Якщо це правило вимкнено або не налаштовано, користувачі можуть змінити цей параметр. @@ -5091,7 +5045,6 @@ Якщо дією є призупинення роботи, можна окремо налаштувати, чи буде <ph name="PRODUCT_OS_NAME" /> блокувати екран перед цим.</translation> <translation id="8214600119442850823">Визначає налаштування диспетчера паролів.</translation> -<translation id="8217516105848565518">Це правило більше не підтримується. Натомість застосовуйте RemoteAccessHostDomainList.</translation> <translation id="8219777886736887686">Налаштування цього правила визначають, яка команда відкриває URL-адреси в альтернативному веб-переглядачі. У цьому правилі можна вказати <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> або шлях файлу. Якщо для цього правила вказано шлях файлу, такий файл використовується як виконуваний. Веб-переглядачі <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> і <ph name="EDGE_VALUE_PLACEHOLDER" /> доступні лише в <ph name="MS_WIN_NAME" />, а <ph name="SAFARI_VALUE_PLACEHOLDER" /> доступний лише в <ph name="MS_WIN_NAME" /> і <ph name="MAC_OS_NAME" />. Якщо це правило не налаштовано, застосовуються значення за умовчанням для конкретних платформ: <ph name="IE_PRODUCT_NAME" /> для <ph name="MS_WIN_NAME" /> або <ph name="SAFARI_PRODUCT_NAME" /> для <ph name="MAC_OS_NAME" />. У <ph name="LINUX_OS_NAME" /> альтернативний веб-переглядач не запускатиметься.</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index ad360ffe..f905fb3 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -189,6 +189,7 @@ Nếu bạn bật tùy chọn cài đặt này, tính năng Tìm kiếm an toàn trong Google Tìm kiếm và Chế độ hạn chế trung bình trên YouTube sẽ luôn hoạt động. Nếu bạn tắt tùy chọn cài đặt này hoặc không đặt giá trị, tính năng Tìm kiếm an toàn trong Google Tìm kiếm và Chế độ hạn chế trên YouTube sẽ không được thực thi.</translation> +<translation id="134745581157553029">Nếu bạn đặt chính sách "DeviceArcDataSnapshotHours", thì cơ chế chụp nhanh dữ liệu App Runtime for Chrome (ARC) sẽ được bật. Quá trình cập nhật ảnh chụp nhanh dữ liệu ARC có thể tự động bắt đầu trong các khoảng thời gian đã định. Khi một khoảng thời gian bắt đầu, quá trình cập nhật ảnh chụp nhanh dữ liệu ARC sẽ buộc phải diễn ra và không người dùng nào được đăng nhập. Quá trình này bắt đầu mà không cần thông báo cho người dùng. Nếu phiên của người dùng đang hoạt động, thì họ sẽ thấy thông báo qua Giao diện người dùng và phải chấp nhận thông báo đó để khởi động lại thiết bị, cũng như bắt đầu quá trình cập nhật ảnh chụp nhanh dữ liệu ARC. Lưu ý: trong quá trình cập nhật ảnh chụp nhanh dữ liệu ARC, sẽ không ai dùng được thiết bị.</translation> <translation id="1353416417709895349">Tắt các tùy chọn kiểm tra chặn hệ thống tên miền (DNS) và thanh thông tin "Ý của bạn là http://intranetsite/".</translation> <translation id="1353985065430729216">Khi đặt chính sách này, bạn có thể tạo danh sách các mẫu URL chỉ định những trang web được phép sử dụng cảm biến, chẳng hạn như cảm biến chuyển động và cảm biến ánh sáng. @@ -475,6 +476,7 @@ Nếu bạn đặt chính sách này, thì hệ thống sẽ chỉ định những tiện ích không nằm trong danh sách tiện ích bị cấm. Nếu bạn muốn cấm tất cả tiện ích, hãy sử dụng giá trị <ph name="ALL_EXTENSIONS" /> cho <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />. Khi đó, người dùng chỉ có thể cài đặt các tiện ích được cho phép rõ ràng. Theo mặc định, tất cả tiện ích đều được phép. Tuy nhiên, nếu bạn đã cấm các tiện ích theo chính sách, hãy sử dụng danh sách các tiện ích được phép để thay đổi chính sách đó.</translation> <translation id="1781356041596378058">Chính sách này cũng kiểm soát quyền truy cập vào Tùy chọn của nhà phát triển Android. Nếu bạn đặt chính sách này thành true, người dùng sẽ không thể truy cập vào Tùy chọn của nhà phát triển. Nếu bạn đặt chính sách này thành false hoặc không đặt chính sách này thì người dùng có thể truy cập Tùy chọn của nhà phát triển bằng cách nhấn bảy lần trên số bản dựng trong ứng dụng cài đặt Android.</translation> +<translation id="1787790976045065845">Chính sách này chỉ có hiệu lực khi bạn đặt chính sách <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> thành <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> hoặc <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> và khi người dùng tháo thẻ thông minh mà họ dùng để xác thực. Khi đó, chính sách này sẽ chỉ rõ số giây hiển thị một thông báo cho người dùng biết về hành động sắp diễn ra. Thông báo này đang chặn màn hình. Hành động sẽ chỉ diễn ra sau khi thông báo này hết hạn. Người dùng có thể ngăn hành động diễn ra bằng cách lắp lại thẻ thông minh trước khi thông báo hết hạn. Nếu bạn đặt chính sách này thành 0, sẽ không có thông báo nào hiển thị và hành động sẽ diễn ra ngay lập tức.</translation> <translation id="1793346220873697538">Tắt tính năng in mã PIN theo mặc định</translation> <translation id="179694024208061102">Nếu bạn đặt chính sách này thành Bật, thì <ph name="PRODUCT_NAME" /> sẽ tìm cách chạy một số URL trong trình duyệt thay thế, chẳng hạn như <ph name="IE_PRODUCT_NAME" />. Bạn đặt tính năng này bằng các chính sách trong nhóm <ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />. @@ -805,13 +807,6 @@ Bạn không nên dùng chính sách này cho các thiết bị dùng chung. Nếu bạn đặt chính sách này thành True hoặc không đặt chính sách này, thì thông báo cảnh báo quyền riêng tư trong phiên khách được quản lý tự động chạy sẽ được ghim cho đến khi người dùng đóng thông báo này.</translation> -<translation id="228665601367357543">Cho phép bạn thiết lập danh sách các mẫu URL để chỉ định những trang web sẽ tự động được cấp quyền truy cập vào thiết bị USB bằng mã sản phẩm và mã nhà cung cấp đã cho. Mỗi mục trong danh sách phải có trường "devices" và trường "urls" thì chính sách này mới hợp lệ. Mỗi mục trong trường "devices" có thể chứa trường "vendor_id" và "product_id". Nếu bạn bỏ qua trường "vendor_id", một chính sách áp dụng cho bất kỳ thiết bị nào sẽ được tạo. Nếu bạn bỏ qua trường "product_id", một chính sách áp dụng cho bất kỳ thiết bị nào có mã nhà cung cấp đã cho sẽ được tạo. Nếu chính sách có trường "product_id" mà không có trường "vendor_id" thì chính sách đó sẽ không hợp lệ. - - Mô hình quản lý quyền truy cập vào USB sử dụng URL yêu cầu và URL nhúng (của trang web khung cấp cao nhất) để cho phép URL yêu cầu truy cập vào thiết bị USB. URL yêu cầu có thể khác với URL nhúng khi trang web yêu cầu tải trong một iframe. Do đó, trường "urls" có thể chứa tối đa 2 chuỗi được phân tách bằng dấu phẩy để chỉ định những URL này. Nếu bạn chỉ định duy nhất một URL, hệ thống sẽ cấp quyền truy cập vào các thiết bị USB tương ứng khi URL của trang web yêu cầu khớp với URL này, bất kể trạng thái nhúng là gì. Các URL trong trường "urls" phải là URL hợp lệ. Nếu không, chính sách này sẽ bị bỏ qua. - - Nếu bạn không đặt chính sách này, <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> (nếu được đặt) sẽ áp dụng. Nếu không, tùy chọn cài đặt cá nhân của người dùng sẽ được áp dụng. - - Các mẫu URL trong chính sách này không được xung đột với những mẫu URL đã định cấu hình thông qua <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" />. Nếu có xung đột, chính sách này sẽ được ưu tiên hơn <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> và <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />.</translation> <translation id="2289265947759479962">Chính sách này kiểm soát xem có báo cáo thông tin phiên bản, chẳng hạn như phiên bản hệ điều hành, nền tảng hệ điều hành, cấu trúc hệ điều hành, phiên bản <ph name="PRODUCT_NAME" /> và kênh <ph name="PRODUCT_NAME" /> hay không. Khi bạn không đặt chính sách <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> hoặc đặt thành tắt, thì chính sách này sẽ bị bỏ qua. @@ -1010,6 +1005,15 @@ Nếu bạn không đặt chính sách này, Điều khoản dịch vụ sẽ không xuất hiện. Bạn nên đặt chính sách này thành một URL mà từ đó <ph name="PRODUCT_OS_NAME" /> có thể tải Điều khoản dịch vụ xuống. Điều khoản dịch vụ phải là văn bản thuần túy, được phân phối dưới dạng văn bản/văn bản thuần túy loại MIME. Không được phép đánh dấu.</translation> +<translation id="2500699707048942472">Tính năng tự động gửi mã PIN thay đổi cách nhập mã PIN trên Chrome OS. + Thay vì hiển thị cùng một trường văn bản dùng để nhập mật khẩu, tính năng này + hiển thị 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 + chữ số cho mã PIN. Do đó, độ dài mã PIN của người dùng + sẽ được lưu trữ bên ngoài dữ liệu được mã hóa của người dùng. Chỉ hỗ trợ các mã PIN dài + từ 6 đến 12 chữ số. + + Nếu bạn đặt chính sách thành này tắt, thì người dùng sẽ không có tùy chọn bật + tính năng này trên trang Cài đặt.</translation> <translation id="2502467045153796624">Chế độ hạ cấp kênh</translation> <translation id="250670737672448119">Bật tính năng hỗ trợ tiếp cận về làm nổi bật dấu chèn. @@ -1535,11 +1539,6 @@ * 4, chương trình cơ sở <ph name="TPM_FIRMWARE_UPDATE_TPM" /> sẽ cập nhật sau khi đăng ký và trước khi người dùng đăng nhập. Nếu bạn không đặt chính sách này thì sẽ không có bản cập nhật chương trình cơ sở <ph name="TPM_FIRMWARE_UPDATE_TPM" />.</translation> -<translation id="3235677869770186098">Nếu đặt chính sách này, bạn có thể thiết lập danh sách các mẫu URL chỉ định những trang web được hệ thống tự động cấp quyền truy cập vào thiết bị USB bằng mã sản phẩm và mã nhà cung cấp đã cho trên màn hình đăng nhập. Mỗi mục trên danh sách này phải có cả trường "devices" lẫn trường "urls" thì chính sách này mới hợp lệ. Mỗi mục trong trường "devices" có thể chứa trường "vendor_id" và "product_id". Nếu bạn bỏ qua trường "vendor_id", một chính sách áp dụng cho mọi thiết bị sẽ được tạo. Nếu bạn bỏ qua trường "product_id", một chính sách áp dụng cho mọi thiết bị có mã nhà cung cấp đã cho sẽ được tạo. Nếu có trường "product_id" mà không có trường "vendor_id", thì chính sách sẽ không hợp lệ. - - Mô hình quản lý quyền của USB sử dụng URL yêu cầu và URL nhúng để cấp cho URL yêu cầu quyền truy cập vào thiết bị USB. URL yêu cầu có thể khác với URL nhúng khi trang web yêu cầu được tải trong một iframe. Do đó, các trường urls có thể chứa tối đa 2 chuỗi URL được phân tách bằng dấu phẩy để chỉ định URL yêu cầu và URL nhúng một cách tương ứng. Nếu chỉ có duy nhất một URL được chỉ định, thì hệ thống sẽ cấp quyền truy cập vào các thiết bị USB tương ứng khi URL của trang web yêu cầu khớp với URL này, bất kể trạng thái nhúng là gì. Các URL phải hợp lệ. Nếu không, chính sách sẽ bị bỏ qua. - - Nếu bạn không đặt chính sách này, một giá trị mặc định chung sẽ được dùng cho tất cả trang web (không có quyền truy cập tự động).</translation> <translation id="3236046242843493070">Mẫu URL để cho phép cài đặt tiện ích, ứng dụng và tập lệnh người dùng từ</translation> <translation id="3240609035816615922">Chính sách truy cập vào cấu hình máy in.</translation> <translation id="324062325008698789">Định cấu hình danh sách máy in</translation> @@ -1856,7 +1855,6 @@ <translation id="3631099945620529777">Nếu bạn đặt chính sách này thành false thì nút 'Kết thúc quá trình' sẽ bị tắt trong Trình quản lý tác vụ. Nếu bạn không định cấu hình hoặc nếu bạn đặt chính sách này thành true, người dùng có thể kết thúc các quá trình trong Trình quản lý tác vụ.</translation> -<translation id="3639444551396586995">Cho phép Chrome báo cáo các sự kiện không an toàn cho Google</translation> <translation id="3643284063603988867">Bật tính năng 'Nhớ mật khẩu'</translation> <translation id="3646859102161347133">Đặt loại kính lúp màn hình</translation> <translation id="3647212518036289905">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định thư viện GSSAPI dùng để xác thực HTTP. Hãy đặt chính sách này thành tên thư viện hoặc đường dẫn đầy đủ. @@ -1876,13 +1874,6 @@ Tính năng đăng ký chính sách đám mây trong phạm vi máy sử dụng chính sách này trên máy tính để bàn. Sổ đăng ký hoặc GPO trên Windows, plist trên máy Mac và tệp chính sách JSON trên Linux có thể đặt chính sách này.</translation> <translation id="3660562134618097814">Chuyển cookie SAML IdP trong khi đăng nhập</translation> -<translation id="3669373349666208904">Việc đặt chính sách này thành True sẽ cho phép các trang hiển thị cửa sổ bật lên khi hủy tải. - - Việc đặt chính sách này thành False hoặc không đặt chính sách này sẽ ngăn các trang hiển thị cửa sổ bật lên khi hủy tải. - - Chính sách này sẽ bị loại bỏ trong Chrome 88. - - Vui lòng xem tại https://www.chromestatus.com/feature/5989473649164288.</translation> <translation id="3691155504326059225">Nếu bạn đặt chính sách này thành Bật, trang chủ của người dùng sẽ là trang Thẻ mới và mọi vị trí URL trang chủ sẽ bị bỏ qua. Nếu bạn đặt chính sách này thành Tắt, trang chủ của người dùng sẽ không bao giờ là trang Thẻ mới, trừ khi URL trang chủ của họ được đặt thành chrome://newtab. Nếu bạn đặt chính sách này, người dùng sẽ không thể thay đổi loại trang chủ của họ trong <ph name="PRODUCT_NAME" />. Nếu bạn không đặt chính sách này, người dùng sẽ quyết định liệu trang Thẻ mới có phải là trang chủ của họ hay không. @@ -2121,15 +2112,6 @@ <translation id="4020682745012723568">Cookie được chuyển tới hồ sơ của người dùng không thể truy cập vào các ứng dụng Android.</translation> <translation id="402759845255257575">Không cho phép bất kỳ trang web nào chạy JavaScript</translation> <translation id="4027608872760987929">Bật nhà cung cấp dịch vụ tìm kiếm mặc định</translation> -<translation id="4044054366426171256">Định cấu hình tên miền của máy chủ bắt buộc sẽ được áp dụng trên các máy chủ truy cập từ xa và ngăn người dùng thay đổi tên miền này. - - Nếu bạn bật và đặt tùy chọn cài đặt này cho một hoặc nhiều miền, thì các máy chủ chỉ có thể được chia sẻ bằng các tài khoản đã đăng ký trên một trong những tên miền đã chỉ định này. - - Nếu bạn tắt, không đặt hoặc đặt tùy chọn cài đặt này thành danh sách miền trống, thì các máy chủ có thể được chia sẻ bằng bất kỳ tài khoản nào. - - Tùy chọn cài đặt này sẽ ghi đè chính sách RemoteAccessHostDomain, nếu có. - - Xem thêm chính sách RemoteAccessHostClientDomainList.</translation> <translation id="4056910949759281379">Vô hiệu hóa giao thức SPDY</translation> <translation id="4061590579642538878">Báo cáo thông tin về báo cáo sự cố.</translation> <translation id="4075675819066819571">Đặt giá ở bên trái màn hình</translation> @@ -2586,10 +2568,6 @@ <translation id="4874982543810021567">Chặn WebUSB trên các trang web này</translation> <translation id="4876805738539874299">Đã bật phiên bản SSL tối đa</translation> <translation id="4887274746092315609">Cho phép một trang để người dùng SAML có thể đổi mật khẩu ngay trong phiên đăng nhập</translation> -<translation id="4887863670424903990">Khi bạn đặt chính sách này thành bật, thì <ph name="PRODUCT_NAME" /> sẽ báo cáo các sự kiện không an toàn, chẳng hạn như dùng lại mật khẩu, tệp đã tải xuống có phần mềm độc hại, quảng cáo xen kẽ, hành vi vi phạm quy tắc bảo vệ dữ liệu nhạy cảm, v.v. cho Google để phân tích. Một số sự kiện không an toàn, chẳng hạn như hành vi vi phạm quy tắc bảo vệ dữ liệu nhạy cảm, sẽ phụ thuộc vào các chính sách khác cho phép các hoạt động kiểm tra liên quan. - - Nếu bạn không đặt hoặc đặt chính sách này thành tắt, thì <ph name="PRODUCT_NAME" /> sẽ không báo cáo các sự kiện không an toàn. - </translation> <translation id="4894290482695457375">Trừ khi bạn đặt <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> thành Tắt, nếu bạn đặt <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> thành Bật, thì <ph name="PRODUCT_NAME" /> sẽ kết nối với các thiết bị truyền trên mọi địa chỉ IP, chứ không chỉ các địa chỉ riêng RFC1918/RFC4193. Nếu bạn đặt chính sách này thành Tắt, thì <ph name="PRODUCT_NAME" /> sẽ chỉ kết nối với các thiết bị truyền trên địa chỉ RFC1918/RFC4193. @@ -3381,9 +3359,6 @@ Các ứng dụng khách truy cập từ xa không bị ảnh hưởng bởi cài đặt chính sách này. Chúng sẽ luôn sử dụng 'chromoting-client.talkgadget.google.com' để truy cập vào TalkGadget.</translation> <translation id="5890063326284543943">Kiểm soát việc sử dụng API nối tiếp</translation> -<translation id="5893553533827140852">Nếu cài đặt này được bật, yêu cầu xác thực gnubby sẽ được proxy qua kết nối máy chủ từ xa. - - Nếu cài đặt này bị tắt hoặc không được định cấu hình, yêu cầu xác thực gnubby sẽ không được proxy.</translation> <translation id="5897913798715600338">Sạc pin bằng công nghệ sạc nhanh.</translation> <translation id="5898486742390981550">Khi có nhiều người dùng đăng nhập thì chỉ người dùng chính mới có thể sử dụng các ứng dụng Android.</translation> <translation id="5901427587865226597">Chỉ in hai mặt</translation> @@ -3727,7 +3702,6 @@ Tuy nhiên, các mẫu so khớp nguồn của chính sách này không được chứa các thành phần "/path" hoặc "@query". Mọi mẫu chứa thành phần "/path" hoặc "@query" đều bị bỏ qua.</translation> <translation id="6464074037294098618">Bật tính năng Tự động điền cho địa chỉ</translation> <translation id="6467613372414922590">Cho phép các máy chủ Nhắn tin gốc ở cấp người dùng (cài đặt mà không cần có quyền quản trị).</translation> -<translation id="6468980648680553776">Chính sách này không còn dùng nữa. Thay vào đó, hãy sử dụng RemoteAccessHostClientDomainList.</translation> <translation id="6473623140202114570">Định cấu hình danh sách các miền mà Duyệt web an toàn sẽ không kích hoạt cảnh báo.</translation> <translation id="647698599569353771">Cho phép bật tính năng Chia sẻ lân cận.</translation> <translation id="6485813825811798133">Khi đặt chính sách này, bạn có thể tạo danh sách các mẫu URL chỉ định những trang web không được phép yêu cầu người dùng cấp quyền đọc các tệp hoặc thư mục trong hệ thống tệp của hệ điều hành máy chủ qua API Hệ thống tệp. @@ -4571,17 +4545,6 @@ <translation id="747014869399137701">Nếu bạn đặt chính sách này thành 1, thì trang web có thể hiển thị thông báo trên màn hình. Nếu bạn đặt chính sách này thành 2, thì trang web không thể hiển thị thông báo trên màn hình. Nếu bạn không đặt chính sách này, thì <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> sẽ áp dụng nhưng người dùng có thể thay đổi tùy chọn cài đặt này.</translation> -<translation id="7471828226549672843">Theo mặc định, Điều khoản dịch vụ sẽ hiển thị khi CCT được chạy lần đầu tiên. Nếu bạn đặt chính sách này thành Tắt, hộp thoại Điều khoản dịch vụ sẽ không xuất hiện trong lần chạy đầu tiên hoặc những lần chạy tiếp theo. Nếu bạn đặt thành Bật hoặc không đặt chính sách này, thì hộp thoại Điều khoản dịch vụ sẽ xuất hiện trong lần chạy đầu tiên. Các lưu ý khác: - - – Chính sách này chỉ có trên những thiết bị Android được quản lý hoàn toàn. Những nhà cung cấp dịch vụ Quản lý điểm cuối hợp nhất có thể định cấu hình các thiết bị này. - - – Nếu bạn đặt chính sách này thành Tắt, chính sách BrowserSignin sẽ không có hiệu lực. - - – Nếu bạn đặt chính sách này thành Tắt, hệ thống sẽ không gửi các chỉ số tới máy chủ. - - – Nếu bạn đặt chính sách này thành Tắt, chức năng của trình duyệt sẽ bị hạn chế. - - – Nếu bạn đặt chính sách này thành Tắt, quản trị viên sẽ phải thông báo điều này cho người dùng cuối của thiết bị.</translation> <translation id="747275827471712187">Quay lại về hành vi <ph name="ATTRIBUTE_SAMESITE_NAME" /> cũ đối với cookie trên các trang web này</translation> <translation id="7476621944304431784">Nếu bạn bật tùy chọn cài đặt này, thì người dùng sẽ được phép đồng bộ hóa các cấu hình mạng Wi-Fi giữa (các) thiết bị <ph name="PRODUCT_OS_NAME" /> và một điện thoại Android đã kết nối. Trước khi có thể đồng bộ hóa các cấu hình mạng Wi-Fi, người dùng phải chọn sử dụng tính năng này một cách rõ ràng bằng cách hoàn thành quy trình thiết lập. @@ -4618,15 +4581,6 @@ Nếu bạn không đặt chính sách này, thì <ph name="IE_PRODUCT_NAME" /> sẽ tự động phát hiện đường dẫn thực thi riêng của <ph name="PRODUCT_NAME" /> khi chạy <ph name="PRODUCT_NAME" /> từ Internet Explorer. Lưu ý: Nếu bạn chưa cài đặt phần bổ trợ Hỗ trợ trình duyệt cũ cho <ph name="IE_PRODUCT_NAME" />, thì chính sách này sẽ không có hiệu lực.</translation> -<translation id="7506758875409719208">Định cấu hình tên miền của ứng dụng bắt buộc sẽ được áp dụng trên các ứng dụng truy cập từ xa và ngăn người dùng thay đổi tên miền này. - - Nếu bạn bật và đặt tùy chọn cài đặt này cho một hoặc nhiều miền, thì chỉ những ứng dụng từ một trong số miền đã chỉ định này mới có thể kết nối với máy chủ. - - Nếu bạn tắt, không đặt hoặc đặt tùy chọn cài đặt này thành danh sách miền trống, thì chính sách mặc định của loại kết nối này sẽ được áp dụng. Trong trường hợp trợ giúp từ xa, tùy chọn cài đặt này sẽ cho phép các ứng dụng từ miền bất kỳ có thể kết nối với máy chủ; còn đối với quyền truy cập từ xa mọi lúc, chỉ chủ sở hữu máy chủ mới có thể kết nối. - - Tùy chọn cài đặt này sẽ ghi đè chính sách RemoteAccessHostClientDomain, nếu có. - - Xem thêm chính sách RemoteAccessHostDomainList.</translation> <translation id="7507131973617884092">Khi bạn đặt chính sách này, mỗi nguồn gốc có tên trong một danh sách phân tách bằng dấu phẩy sẽ chạy theo quy trình riêng và các nguồn có tên theo miền con sẽ bị tách biệt. Ví dụ: việc chỉ định https://example.com/ sẽ khiến https://foo.example.com/ bị tách biệt vì là một phần của trang web https://example.com/. Khi bạn đặt thành tắt hoặc không đặt chính sách này, người dùng có thể thay đổi tùy chọn cài đặt này. @@ -5101,7 +5055,6 @@ Nếu hành động là tạm ngưng, thì bạn có thể định cấu hình <ph name="PRODUCT_OS_NAME" /> một cách riêng biệt thành khóa hoặc không khóa màn hình trước khi tạm ngưng.</translation> <translation id="8214600119442850823">Định cấu hình trình quản lý mật khẩu.</translation> -<translation id="8217516105848565518">Chính sách này không còn dùng nữa. Thay vào đó, hãy sử dụng RemoteAccessHostDomainList.</translation> <translation id="8219777886736887686">Nếu bạn đặt chính sách này, hệ thống sẽ kiểm soát lệnh nào dùng để mở URL trong trình duyệt thay thế. Bạn có thể đặt chính sách này thành một trong các giá trị <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />, <ph name="FIREFOX_VALUE_PLACEHOLDER" />, <ph name="SAFARI_VALUE_PLACEHOLDER" />, <ph name="OPERA_VALUE_PLACEHOLDER" />, <ph name="EDGE_VALUE_PLACEHOLDER" /> hoặc một đường dẫn tệp. Khi bạn đặt chính sách này thành một đường dẫn tệp, tệp đó sẽ được dùng làm tệp thực thi. <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> và <ph name="EDGE_VALUE_PLACEHOLDER" /> chỉ dùng được trên <ph name="MS_WIN_NAME" />, còn <ph name="SAFARI_VALUE_PLACEHOLDER" /> chỉ dùng được trên <ph name="MS_WIN_NAME" /> và <ph name="MAC_OS_NAME" />. Nếu bạn không đặt chính sách này, một giá trị mặc định dành riêng cho nền tảng sẽ được đưa vào sử dụng là: <ph name="IE_PRODUCT_NAME" /> đối với <ph name="MS_WIN_NAME" /> hoặc <ph name="SAFARI_PRODUCT_NAME" /> đối với <ph name="MAC_OS_NAME" />. Trên <ph name="LINUX_OS_NAME" />, trình duyệt thay thế sẽ không chạy được.</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index 6a7026b..6121c394 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -774,13 +774,6 @@ 请勿将此政策用于公用设备。 如果此政策设为 True 或未设置,系统则会将自动启动的受管理访客会话中的隐私权警告通知固定在屏幕上,直到用户关闭它为止。</translation> -<translation id="228665601367357543">让您能够设置一系列网址格式,从而指定自动授权哪些网站访问具有给定供应商 ID 和产品 ID 的 USB 设备。每个列表项都必须包含“devices”和“urls”字段,此政策才有效。“devices”字段中的每项内容都可以包含“vendor_id”和“product_id”字段。如果您省略“vendor_id”字段,系统将会创建一项与所有设备都匹配的政策。如果您省略“product_id”字段,系统将会创建一项与所有具有给定供应商 ID 的设备都匹配的政策。包含“product_id”字段但不含“vendor_id”字段的政策无效。 - - USB 权限模型会使用请求网址(发出请求的网站的网址)和嵌入网址(顶级框架网站的网址)来授权请求网址访问相应 USB 设备。如果发出请求的网站是在 iframe 中加载的,请求网址可能会与嵌入网址不同。因此,“urls”字段最多可包含 2 个以英文逗号分隔的字符串,以分别指定请求网址和嵌入网址。如果仅指定了 1 个网址,那么无论嵌入状态为何,系统都会在请求网站的网址与这个网址相符时授权该网站访问相应 USB 设备。“urls”字段中的网址必须是有效网址,否则系统会忽略此政策。 - - 如果您未设置此政策,系统会应用 <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" />(若已设置)或用户的个人设置(若前者未设置)。 - - 此政策中的网址格式不应与通过 <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> 配置的网址格式冲突。如果它们存在冲突,此政策优先于 <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> 和 <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" />。</translation> <translation id="2289265947759479962">此政策旨在控制是否报告版本信息,例如操作系统版本、操作系统平台、操作系统架构、<ph name="PRODUCT_NAME" /> 版本号和 <ph name="PRODUCT_NAME" /> 版本类型。 如果 <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 政策未设置或已停用,系统将忽略此政策。 @@ -1506,11 +1499,6 @@ * 4,系统将在注册后且用户登录前更新 <ph name="TPM_FIRMWARE_UPDATE_TPM" /> 固件。 如果您未设置此政策,<ph name="TPM_FIRMWARE_UPDATE_TPM" /> 固件更新将不可用。</translation> -<translation id="3235677869770186098">通过设置此政策,您可以罗列一些网址格式,从而指定自动授权哪些网站在登录屏幕上访问具有给定供应商 ID 和产品 ID 的 USB 设备。列表中的每项内容都必须同时包含“devices”和“urls”字段,此政策才有效。“devices”字段中的每项内容都可以包含“vendor_id”和“product_id”字段。如果您省略“vendor_id”字段,系统将会创建一项与所有设备都匹配的政策。如果您省略“product_id”字段,系统将会创建一项与所有具有给定供应商 ID 的设备都匹配的政策。包含“product_id”字段但不含“vendor_id”字段的政策无效。 - - USB 权限模型会使用请求网址和嵌入网址来授权请求网址访问相应 USB 设备。如果发出请求的网站是在 iframe 中加载的,请求网址可能会与嵌入网址不同。因此,“urls”字段最多可包含 2 个以英文逗号分隔的网址字符串,以分别指定请求网址和嵌入网址。如果仅指定了 1 个网址,那么无论嵌入状态为何,系统都会在发出请求的网站的网址与这个网址相符时授权该网站访问相应 USB 设备。这些网址必须有效,否则系统会忽略此政策。 - - 如果您未设置此政策,系统会对所有网站使用全局默认值(不自动授予访问权限)。</translation> <translation id="3236046242843493070">允许的扩展程序、应用和用户脚本安装源的网址格式</translation> <translation id="3240609035816615922">打印机配置访问政策。</translation> <translation id="324062325008698789">配置打印机列表</translation> @@ -1818,7 +1806,6 @@ <translation id="3631099945620529777">如果设为 false,则任务管理器中的“结束进程”按钮会处于停用状态。 如果设为 true 或未配置,则用户可以在任务管理器中结束进程。</translation> -<translation id="3639444551396586995">允许 Chrome 向 Google 报告不安全事件</translation> <translation id="3643284063603988867">启用“记住密码”功能</translation> <translation id="3646859102161347133">设置放大镜类型</translation> <translation id="3647212518036289905">通过设置此政策,您可以指定要用于 HTTP 身份验证的 GSSAPI 库。您可以将此政策设为库名称或完整路径。 @@ -1838,13 +1825,6 @@ 此政策由在桌面设备上进行的机器范围云政策注册使用,并可由 Windows 上的注册表/GPO、Mac 上的 plist 以及 Linux 上的 JSON 政策文件设置。</translation> <translation id="3660562134618097814">在用户登录期间转移 SAML IdP Cookie</translation> -<translation id="3669373349666208904">如果此政策设为 True,网页将能够在取消加载的过程中显示弹出式窗口。 - - 如果此政策设为 False 或未设置,网页将无法在取消加载的过程中显示弹出式窗口。 - - 在 Chrome 88 中,此政策将被移除。 - - 请参阅 https://www.chromestatus.com/feature/5989473649164288。</translation> <translation id="3691155504326059225">如果此政策已启用,系统会使用“新标签页”页面作为用户的主页,并忽略所有主页网址位置。如果此政策已停用,系统绝不会使用“新标签页”页面作为用户的主页,除非用户将主页网址设为 chrome://newtab。 如果您设置了此政策,用户将无法更改 <ph name="PRODUCT_NAME" /> 中的主页类型。如果您未设置此政策,用户便可自行决定是否使用“新标签页”页面作为主页。 @@ -2083,15 +2063,6 @@ <translation id="4020682745012723568">Android 应用无法访问已转移到用户个人资料中的 Cookie。</translation> <translation id="402759845255257575">不允许任何网站运行 JavaScript</translation> <translation id="4027608872760987929">启用默认搜索服务提供商</translation> -<translation id="4044054366426171256">配置指定域名来限制主机接受远程访问,并禁止用户更改此设置。 - - 如果启用此设置并将其设为一个或多个域名,则只有使用在这些指定域名注册的帐号才能用主机接受远程访问。 - - 如果不进行设置、停用此设置或将其设为一个空列表,则可使用任意账号来用主机接受远程访问。 - - 若曾设置RemoteAccessHostDomain,该设置将被本设置覆盖。 - - 另请参阅 RemoteAccessHostClientDomainList。</translation> <translation id="4056910949759281379">停用 SPDY 协议</translation> <translation id="4061590579642538878">报告有关崩溃报告的信息。</translation> <translation id="4075675819066819571">将文件架放置到屏幕左侧</translation> @@ -2547,10 +2518,6 @@ <translation id="4874982543810021567">禁止这些网站使用 WebUSB</translation> <translation id="4876805738539874299">启用最高 SSL 版本</translation> <translation id="4887274746092315609">启用一个页面,以便 SAML 用户在会话期间更改密码</translation> -<translation id="4887863670424903990">如果此政策设为“enabled”,<ph name="PRODUCT_NAME" /> 会向 Google 报告密码重用、恶意软件下载、插页式广告、违反敏感数据保护规则的行为等不安全事件,以供分析。至于是否报告某些不安全事件(例如违反敏感数据保护规则的行为),取决于启用此类检查的其他政策。 - - 如果此政策设为“disabled”或未设置,<ph name="PRODUCT_NAME" /> 将不会报告不安全事件。 - </translation> <translation id="4894290482695457375">除非 <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> 设为“已停用”,否则,如果 <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> 已启用,<ph name="PRODUCT_NAME" /> 将会连接到位于所有 IP 地址的投射设备,而不是只连接到位于 RFC1918/RFC4193 私有地址的投射设备。 如果此政策已停用,<ph name="PRODUCT_NAME" /> 将会只连接到位于 RFC1918/RFC4193 的投射设备。 @@ -3331,9 +3298,6 @@ 远程访问客户端不受此策略设置影响。它们将始终使用“chromoting-client.talkgadget.google.com”访问 TalkGadget。</translation> <translation id="5890063326284543943">控制对 Serial API 的使用</translation> -<translation id="5893553533827140852">如果启用此设置,系统将通过远程主机连接经由代理处理gnubby身份验证请求。 - - 如果您已停用或未配置此设置,那么系统将不会经由代理处理gnubby身份验证请求。</translation> <translation id="5897913798715600338">使用快速充电技术为电池充电。</translation> <translation id="5898486742390981550">如果有多个用户同时登录,则只有主要用户可以使用 Android 应用。</translation> <translation id="5901427587865226597">仅限双面打印</translation> @@ -3673,7 +3637,6 @@ 不过,此政策中与来源匹配的网址格式不能包含“/path”或“@query”元素。系统会忽略所有包含“/path”或“@query”元素的网址格式。</translation> <translation id="6464074037294098618">自动填充地址信息</translation> <translation id="6467613372414922590">允许使用用户级本地消息传递主机(安装时没有管理员权限)</translation> -<translation id="6468980648680553776">此政策已被弃用。请改用 RemoteAccessHostClientDomainList。</translation> <translation id="6473623140202114570">配置安全浏览功能在哪些网域中不会触发警告。</translation> <translation id="647698599569353771">允许启用“附近分享”功能。</translation> <translation id="6485813825811798133">通过设置此政策,您可以创建一个网址格式列表,在其中指定哪些网站无法通过 File System API 请求用户向其授予对主机操作系统的文件系统中的文件或目录的读取权限。 @@ -4513,17 +4476,6 @@ <translation id="747014869399137701">如果此政策设为 1,系统会允许网站显示桌面通知。如果此政策设为 2,系统会禁止网站显示桌面通知。 如果此政策未设置,则意味着 <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> 政策适用,但用户可以更改此设置。</translation> -<translation id="7471828226549672843">默认情况下,当 CCT 首次运行时,系统会显示《服务条款》。如果此政策已停用,《服务条款》对话框在首次运行体验或后续运行期间就不会出现。如果此政策已启用或未设置,《服务条款》对话框会在首次运行体验期间出现。其他注意事项: - - - 此政策仅适用于可由统一端点管理 (Unified Endpoint Management) 供应商配置的全代管式 Android 设备。 - - - 如果此政策已停用,BrowserSignin 政策将没有任何效力。 - - - 如果此政策已停用,系统不会将指标发送给服务器。 - - - 如果此政策已停用,浏览器的功能会受到限制。 - - - 如果此政策已停用,管理员必须告知设备的最终用户。</translation> <translation id="747275827471712187">将这些网站上的 Cookie 恢复为旧版 <ph name="ATTRIBUTE_SAMESITE_NAME" /> 行为</translation> <translation id="7476621944304431784">如果此设置已启用,用户将能够在其 <ph name="PRODUCT_OS_NAME" />设备和一部已连接的 Android 手机之间同步 Wi-Fi 网络配置。不过,用户必须通过完成一个设置流程来明确选择启用这项功能,才能同步 Wi-Fi 网络配置。 @@ -4559,15 +4511,6 @@ 如果您不设置此政策,当从 Internet Explorer 中启动 <ph name="PRODUCT_NAME" /> 时,<ph name="IE_PRODUCT_NAME" /> 将会自动检测 <ph name="PRODUCT_NAME" /> 自有的可执行文件路径。 注意:如果相应设备未安装适用于 <ph name="IE_PRODUCT_NAME" /> 的“旧版浏览器支持”插件,此政策不会产生任何效力。</translation> -<translation id="7506758875409719208">配置指定域名来限制客户端进行远程访问,并禁止用户更改此设置。 - - 如果启用此设置并将其设为一个或多个域名,则只有来自这些指定域名的客户端才能连接到主机。 - - 如果不进行设置、停用此设置或将其设为一个空列表,系统将会应用针对连接类型的默认政策。对于远程协助,来自任何域名的客户端都可连接到主机;对于无时间限制的远程访问,只有主机所有者可以连接到主机。 - - 若曾设置RemoteAccessHostClientDomain,该设置将被本设置覆盖。 - - 另请参阅 RemoteAccessHostDomainList。</translation> <translation id="7507131973617884092">如果您设置了此政策,逗号分隔列表中指定的每个来源都将在自己的进程中运行,以子网域形式指定的来源也会被隔离。例如,指定 https://example.com/ 会导致 https://foo.example.com/ 被隔离(作为 https://example.com/ 网站的一部分)。 如果此政策已停用或未设置,用户便可更改此设置。 @@ -5036,7 +4979,6 @@ 如果需要执行的操作是暂停,您还可另行配置 <ph name="PRODUCT_OS_NAME" />在暂停前是否锁定屏幕。</translation> <translation id="8214600119442850823">配置密码管理器。</translation> -<translation id="8217516105848565518">此政策已被弃用。请改用 RemoteAccessHostDomainList。</translation> <translation id="8219777886736887686">通过设置此政策,您可以控制应使用哪个命令在备用浏览器中打开网址。此政策可以设为下列任一值:<ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />、<ph name="FIREFOX_VALUE_PLACEHOLDER" />、<ph name="SAFARI_VALUE_PLACEHOLDER" />、<ph name="OPERA_VALUE_PLACEHOLDER" />、<ph name="EDGE_VALUE_PLACEHOLDER" /> 或文件路径。如果此政策设为文件路径,系统会将相应文件用作可执行文件。<ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> 和 <ph name="EDGE_VALUE_PLACEHOLDER" /> 仅适用于 <ph name="MS_WIN_NAME" />,<ph name="SAFARI_VALUE_PLACEHOLDER" /> 仅适用于 <ph name="MS_WIN_NAME" /> 和 <ph name="MAC_OS_NAME" />。 如果您未设置此政策,系统会使用相应的平台专用默认浏览器:在 <ph name="MS_WIN_NAME" /> 上使用 <ph name="IE_PRODUCT_NAME" />,在 <ph name="MAC_OS_NAME" /> 上使用 <ph name="SAFARI_PRODUCT_NAME" />。在 <ph name="LINUX_OS_NAME" /> 上,无法启动备用浏览器。</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index e429181..93b8e16 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -187,6 +187,7 @@ 如果啟用這項設定,系統會一律啟用 Google 搜尋中的「安全搜尋」功能,以及中度的 YouTube 嚴格篩選模式。 如果停用這項設定或不設定,則系統不會強制執行 Google 搜尋的「安全搜尋」功能和 YouTube 嚴格篩選模式。</translation> +<translation id="134745581157553029">如果設定「DeviceArcDataSnapshotHours」政策,則系統會開啟 ARC 資料數據匯報機制,而且 ARC 資料數據匯報更新將可在自訂的時間間隔自動開始。當間隔開始時,如果需要執行 ARC 資料數據匯報更新,且沒有任何使用者處於登入狀態,系統會直接開始執行 ARC 資料數據匯報更新程序,不會通知使用者。如果使用者工作階段處於執行中狀態,系統會顯示使用者介面通知,使用者必須接受通知內容以重新啟動裝置,並開始執行 ARC 資料數據匯報更新程序。注意:ARC 資料數據匯報更新期間將無法使用裝置。</translation> <translation id="1353416417709895349">停用 DNS 攔截檢查功能,以及你是不是要前往「http://intranetsite/」資訊列。</translation> <translation id="1353985065430729216">你可以透過這項政策設定網址模式清單,用於指定可存取感應器 (例如:動作感應器和光源感應器) 的網站。 @@ -455,6 +456,7 @@ 你可以透過這項政策,指定要將哪些擴充功能從封鎖的擴充功能清單中排除。針對 <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> 使用「<ph name="ALL_EXTENSIONS" />」的設定值即可封鎖所有擴充功能,且使用者只能安裝明確允許的擴充功能。根據預設,系統會允許所有擴充功能。不過,如果你透過政策封鎖了擴充功能,請使用允許的擴充功能清單來變更該政策。</translation> <translation id="1781356041596378058">這項政策也可以控制 Android 開發人員選項的存取權。如果將這項政策設為 true,使用者將無法存取開發人員選項。如果將這項政策設為 false 或不予設定,使用者只要在 Android 設定應用程式中輕觸版本號碼 7 次,即可存取開發人員選項。</translation> +<translation id="1787790976045065845">只有當 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> 政策設為 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> 或 <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />,且透過智慧型卡片驗證的使用者移除該智慧型卡片時,這項政策才會生效。這項政策會指定當系統通知使用者即將執行的動作時,通知要顯示幾秒。這項通知會遮住螢幕。系統會在這項通知到期後才執行動作。如要避免系統執行該動作,使用者可在通知到期之前重新插入智慧型卡片。如果將這項政策設為 0,則系統不會顯示通知,並會立即執行動作。</translation> <translation id="1793346220873697538">預設為停用 PIN 碼列印模式</translation> <translation id="179694024208061102">如果將這項政策設為啟用,<ph name="PRODUCT_NAME" /> 會嘗試在替代瀏覽器中 (例如 <ph name="IE_PRODUCT_NAME" />) 開啟部分網址。系統會使用「<ph name="LEGACY_BROWSER_SUPPORT_POLICY_GROUP" />」群組中的政策設定這項功能。 @@ -769,13 +771,6 @@ 供一般大眾使用的裝置不應設定這項政策。 如果將這項政策設為 True 或不予設定,系統會在自動啟動的受管理訪客工作階段中,持續顯示隱私權警告通知,直到使用者關閉為止。</translation> -<translation id="228665601367357543">這項政策可讓你設定網址模式清單,指定哪些網站會自動取得權限,能夠存取具備指定廠商和產品 ID 的 USB 裝置。每個清單項目都必須包含「devices」和「urls」欄位,這項政策才會生效。「devices」欄位中的每個項目皆可包含「vendor_id」和「product_id」欄位。如果略過「vendor_id」欄位,系統建立的政策將涵蓋所有裝置。如果略過「product_id」欄位,系統建立的政策將涵蓋所有具備指定廠商 ID 的裝置。要是政策包含「product_id」欄位,但缺少「vendor_id」欄位,將無法生效。 - - USB 權限模型會使用要求網址以及頂層頁框網站的嵌入網址,允許要求網址存取 USB 裝置。如果要求網站是透過 iframe 載入,要求網址可能會與嵌入網址有所不同。因此,「urls」欄位最多可包含 2 個字串 (以半形逗號分隔),以指定這些網址。如果只指定一個網址,當要求網站的網址與這個網址相符時,不論其是否為嵌入網址,系統都會授予相應 USB 裝置的存取權。「urls」中的網址必須是有效網址,否則系統會忽略這項政策。 - - 如果不設定這項政策,在已設定 <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> 政策的情況下,系統將套用該政策,否則系統會套用使用者的個人設定。 - - 這項政策中的網址模式不得與透過 <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> 政策設定的網址模式產生衝突。如有衝突情況,這項政策的優先順序高於 <ph name="WEB_USB_BLOCKED_FOR_URLS_POLICY_NAME" /> 和 <ph name="WEB_USB_ASK_FOR_URLS_POLICY_NAME" /> 政策。</translation> <translation id="2289265947759479962">這項政策可控管系統是否要回報版本資訊,例如 OS 版本、OS 平台、OS 架構、<ph name="PRODUCT_NAME" /> 版本和 <ph name="PRODUCT_NAME" /> 發布版本。 如果不設定 <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 政策或設為停用,系統會忽略這項政策。 @@ -977,6 +972,10 @@ 如果未設定這項政策,則系統不會顯示《服務條款》。 這項政策應設定為 <ph name="PRODUCT_OS_NAME" />可下載《服務條款》的網址。《服務條款》必須是純文字,以 MIME 類型 text/plain 提供,而且不可有任何標記。</translation> +<translation id="2500699707048942472">PIN 碼自動提交功能可變更在 Chrome 作業系統中輸入 PIN 碼的方式。 + 這項功能會顯示特別的 UI,向使用者清楚呈現其 PIN 碼所需的位數,而不會顯示用於輸入密碼的相同文字欄位。因此,系統會在使用者的加密資料之外儲存使用者的 PIN 碼長度。系統只支援 6 到 12 位數的 PIN 碼。 + + 如果將這項政策設為 False,使用者將無法在「設定」頁面上啟用這項功能。</translation> <translation id="2502467045153796624">版本降級行為</translation> <translation id="250670737672448119">啟用插入點醒目顯示無障礙功能。 @@ -1496,11 +1495,6 @@ * 如果設為 4,系統將在裝置完成註冊後,於使用者登入前更新 <ph name="TPM_FIRMWARE_UPDATE_TPM" /> 韌體。 如果未設定這項政策,則系統無法更新 <ph name="TPM_FIRMWARE_UPDATE_TPM" /> 韌體。</translation> -<translation id="3235677869770186098">你可以透過這項政策設定網址模式清單,指定哪些網站會自動取得權限,能夠存取具備登入畫面中所指定廠商和產品 ID 的 USB 裝置。清單中的每個項目都必須包含「devices」和「urls」欄位,這項政策才會生效。「devices」欄位中的每個項目皆可包含「vendor_id」和「product_id」欄位。如果略過「vendor_id」欄位,系統建立的政策將涵蓋所有裝置。如果略過「product_id」欄位,系統建立的政策將涵蓋所有具備指定廠商 ID 的裝置。要是政策包含「product_id」欄位,但缺少「vendor_id」欄位,將無法生效。 - - USB 權限模型會使用要求網址和嵌入網址,授予要求網址存取 USB 裝置的權限。如果要求網站是透過 iframe 載入,要求網址可能會與嵌入網址有所不同。因此,「urls」欄位最多可包含兩個網址字串 (以半形逗號分隔),以分別指定要求網址和嵌入網址。如果只指定一個網址,當要求網站的網址與這個網址相符時,不論其是否為嵌入網址,系統都會授予相應 USB 裝置的存取權。網址必須是有效網址,否則系統會忽略這項政策。 - - 如果不設定這項政策,所有網站都將使用全域預設值 (不會自動取得存取權)。</translation> <translation id="3236046242843493070">允許安裝擴充功能、應用程式和使用者指令碼的來源網址模式清單</translation> <translation id="3240609035816615922">印表機設定存取權政策。</translation> <translation id="324062325008698789">設定印表機清單。</translation> @@ -1807,7 +1801,6 @@ <translation id="3631099945620529777">如果設為 False,工作管理員中的「結束處理程序」按鈕隨即會停用。 如果設為 True 或不設定,使用者將可以在工作管理員中結束處理程序。</translation> -<translation id="3639444551396586995">允許 Chrome 向 Google 回報不安全的事件</translation> <translation id="3643284063603988867">啟用「記住密碼」功能</translation> <translation id="3646859102161347133">設定螢幕放大鏡類型</translation> <translation id="3647212518036289905">你可以透過這項政策指定要用於 HTTP 驗證的 GSSAPI 程式庫。請將這項政策設為程式庫名稱或完整路徑。 @@ -1823,13 +1816,6 @@ <translation id="3660510274595679517"> 如果將這項政策設定為 True,系統會強制你註冊雲端管理服務。如果註冊失敗,系統會封鎖 Chrome 啟動程序。如果不設定這項政策或設為 False,你可以選擇是否要註冊雲端管理服務。即使註冊失敗,系統也不會封鎖 Chrome 啟動程序。在桌面註冊機器範圍雲端政策時會使用這項政策,你可以透過 Windows 的登錄檔或 GPO、Mac 的 plist 以及 Linux 的 JSON 政策檔設定這項政策。</translation> <translation id="3660562134618097814">登入時移轉 SAML IdP Cookie</translation> -<translation id="3669373349666208904">如果將這項政策設為 Ture,頁面卸載時將可顯示彈出式視窗。 - - 如果將這項政策設為 False 或不設定,頁面卸載時無法顯示彈出式視窗。 - - 這項政策將在 Chrome 第 88 版中移除。 - - 詳情請參閱 https://www.chromestatus.com/feature/5989473649164288。</translation> <translation id="3691155504326059225">如果將這項政策設為啟用,系統會將使用者的首頁設為「新分頁」,並忽略所有首頁網址位置。如果將這項政策設為停用,使用者的首頁一律不會是「新分頁」,除非使用者的首頁網址設為 chrome://newtab。 如果設定這項政策,使用者將無法在 <ph name="PRODUCT_NAME" /> 中變更首頁類型。如果未設定,使用者可決定是否使用「新分頁」做為首頁。 @@ -2068,15 +2054,6 @@ <translation id="4020682745012723568">Android 應用程式無法存取傳輸到該使用者設定檔的 Cookie。</translation> <translation id="402759845255257575">不允許任何網站執行 JavaScript</translation> <translation id="4027608872760987929">啟用預設搜尋引擎</translation> -<translation id="4044054366426171256">這會設定遠端存取主機必須使用的主機網域名稱,同時防止使用者變更這些名稱。 - - 如果啟用這項設定並設為一個以上的網域,則須透過以任一指定網域名稱註冊的帳戶才能共用主機。 - - 如果停用這項設定、不設定或設為空白清單,則可透過任何帳戶共用主機。 - - 這項設定會覆寫 RemoteAccessHostDomain 設定 (如有設定的話)。 - - 另請參閱 RemoteAccessHostClientDomainList。</translation> <translation id="4056910949759281379">停用 SPDY 通訊協定</translation> <translation id="4061590579642538878">回報當機報告相關資訊。</translation> <translation id="4075675819066819571">將檔案櫃放在畫面的左側</translation> @@ -2535,10 +2512,6 @@ <translation id="4874982543810021567">在這些網站上封鎖 WebUSB</translation> <translation id="4876805738539874299">已啟用 SSL 最高版本</translation> <translation id="4887274746092315609">為 SAML 使用者啟用可在工作階段中變更密碼的頁面</translation> -<translation id="4887863670424903990">如果將這項政策設為啟用,<ph name="PRODUCT_NAME" /> 會向 Google 回報不安全的事件以進行分析,例如重複使用密碼、下載惡意程式、插頁式廣告、違反機密資料保護規則等等。有些不安全事件 (例如違反機密資料保護規則) 和啟用這類檢查的其他政策有關。 - - 如果不設定這項政策或設為停用,<ph name="PRODUCT_NAME" /> 將不會回報不安全的事件。 - </translation> <translation id="4894290482695457375">除非 <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> 已設為停用,否則將 <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> 設為啟用會將 <ph name="PRODUCT_NAME" /> 連線至所有 IP 位址上的 Cast 裝置,而不是只有 RFC1918/RFC4193 私人位址上的 Cast 裝置。 如果將這項政策設為停用,系統只會將 <ph name="PRODUCT_NAME" /> 連線至 RFC1918/RFC4193 上的 Cast 裝置。 @@ -3319,9 +3292,6 @@ 遠端存取用戶端不受這項政策設定所影響,而會一律採用「chromoting-client.talkgadget.google.com」來存取 TalkGadget。</translation> <translation id="5890063326284543943">控管 Serial API 的使用</translation> -<translation id="5893553533827140852">啟用這項設定時,系統將透過遠端主機連線以 Proxy 處理 gnubby 驗證要求。 - - 如果停用或不設定這項設定,系統將不會以 Proxy 處理 gnubby 驗證要求。</translation> <translation id="5897913798715600338">使用快速充電技術為電池充電。</translation> <translation id="5898486742390981550">如有多位使用者同時登入,只有主要使用者可以使用 Android 應用程式。</translation> <translation id="5901427587865226597">僅限雙面列印</translation> @@ -3662,7 +3632,6 @@ 不過,這項政策的來源符合格式不能包含「/path」或「@query」元素。系統會忽略所有包含「/path」或「@query」元素的格式。</translation> <translation id="6464074037294098618">啟用地址的自動填入功能</translation> <translation id="6467613372414922590">允許使用者層級的內建訊息傳遞主機 (在無管理員權限的情況下安裝)。</translation> -<translation id="6468980648680553776">這項政策已遭到淘汰,請改用 RemoteAccessHostClientDomainList。</translation> <translation id="6473623140202114570">設定安全瀏覽功能在哪些網域中不會觸發警告。</translation> <translation id="647698599569353771">允許啟用鄰近分享功能。</translation> <translation id="6485813825811798133">你可以透過這項政策建立網址模式清單,指定哪些網站無法要求使用者授予讀取權限,以透過 File System API 讀取主機作業系統中檔案系統的檔案及目錄。 @@ -4504,17 +4473,6 @@ <translation id="747014869399137701">如果將這項政策設為 1,網站即可顯示桌面通知。如果將這項政策設為 2,網站將無法顯示桌面通知。 如果不設定,系統會套用 <ph name="ASK_NOTIFICATIONS_POLICY_NAME" />,但使用者可以變更這項設定。</translation> -<translation id="7471828226549672843">根據預設,系統會在第一次執行 CCT 時顯示《服務條款》。如果將這項政策設為停用,系統不會在第一次或後續執行 CCT 時顯示《服務條款》對話方塊。如果將這項政策設為啟用或不設定,系統會在第一次執行 CCT 時顯示《服務條款》對話方塊。其他注意事項包含: - - - 這項政策只適用於可由統一端點管理供應商設定的全代管 Android 裝置。 - - - 如果停用這項政策,BrowserSignin 政策就不會有任何作用。 - - - 如果停用這項政策,系統不會將指標傳送至伺服器。 - - - 如果停用這項政策,瀏覽器的功能將受到限制。 - - - 如果停用這項政策,管理員必須告知裝置使用者。</translation> <translation id="747275827471712187">將這些網站上的 Cookie 還原成舊版的 <ph name="ATTRIBUTE_SAMESITE_NAME" /> 行為</translation> <translation id="7476621944304431784">如果啟用這項設定,使用者將可在搭載 <ph name="PRODUCT_OS_NAME" />的裝置和已連結的 Android 手機上,將 Wi-Fi 網路設定保持同步。在同步 Wi-Fi 網路設定之前,使用者必須先完成設定流程以明確啟用這項功能。 @@ -4550,15 +4508,6 @@ 如果未設定這項政策,從 Internet Explorer 啟動 <ph name="PRODUCT_NAME" /> 時,<ph name="IE_PRODUCT_NAME" /> 會自動偵測 <ph name="PRODUCT_NAME" /> 自己的可執行路徑。 注意:如果未安裝適用於 <ph name="IE_PRODUCT_NAME" /> 的「舊版瀏覽器支援」增益集,這項政策將不會生效。</translation> -<translation id="7506758875409719208">這會設定遠端存取用戶端必須使用的用戶端網域名稱,同時防止使用者變更這些名稱。 - - 如果啟用這項設定並設為一個以上的網域,只有任一指定網域中的用戶端才能連線到主機。 - - 如果停用這項設定、不設定或設為空白清單,則系統會套用連線類型的預設政策。如果啟用這項政策,當使用者執行遠端協助時,系統會允許任何網域中的用戶端連線到主機;使用者執行遠端存取時,則只有主機擁有者可以連線到主機。 - - 這項設定會覆寫 RemoteAccessHostClientDomain 設定 (如有設定的話)。 - - 另請參閱 RemoteAccessHostDomainList。</translation> <translation id="7507131973617884092">如果設定這項政策,系統會以獨立程序分別執行逗號分隔清單中指定的每個來源,並隔離以子網域命名的來源。例如指定 https://example.com/ 將會導致 https://foo.example.com/ 遭到隔離,因為後者屬於 https://example.com/ 網站的一部分。 如果將這項政策設為關閉或不設定,則使用者可以變更這項設定。 @@ -5020,7 +4969,6 @@ 如果將動作設為暫停,你可以另行設定 <ph name="PRODUCT_OS_NAME" />在暫停前是否要鎖定螢幕。</translation> <translation id="8214600119442850823">設定密碼管理員</translation> -<translation id="8217516105848565518">這項政策已遭到淘汰,請改用 RemoteAccessHostDomainList。</translation> <translation id="8219777886736887686">你可以透過這項政策控管在替代瀏覽器中開啟網址時,系統所使用的指令。你可以將這項政策設為 <ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" />、<ph name="FIREFOX_VALUE_PLACEHOLDER" />、<ph name="SAFARI_VALUE_PLACEHOLDER" />、<ph name="OPERA_VALUE_PLACEHOLDER" />、<ph name="EDGE_VALUE_PLACEHOLDER" /> 或檔案路徑的其中一項。如果將這項政策設為檔案路徑,系統會將該檔案做為執行檔使用。<ph name="INTERNET_EXPLORER_VALUE_PLACEHOLDER" /> 和 <ph name="EDGE_VALUE_PLACEHOLDER" /> 只適用於 <ph name="MS_WIN_NAME" />,而 <ph name="SAFARI_VALUE_PLACEHOLDER" /> 只適用於 <ph name="MS_WIN_NAME" /> 和 <ph name="MAC_OS_NAME" />。 如果不設定這項政策,系統會使用平台專屬的預設值:<ph name="MS_WIN_NAME" /> 使用 <ph name="IE_PRODUCT_NAME" />、<ph name="MAC_OS_NAME" /> 使用 <ph name="SAFARI_PRODUCT_NAME" />。<ph name="LINUX_OS_NAME" /> 將無法啟動替代瀏覽器。</translation>
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json index dc87e8a..cb4bc61f 100644 --- a/components/search_engines/prepopulated_engines.json +++ b/components/search_engines/prepopulated_engines.json
@@ -28,7 +28,7 @@ // Increment this if you change the data in ways that mean users with // existing data should get a new version. Otherwise, existing data may // continue to be used and updates made here will not always appear. - "kCurrentDataVersion": 122 + "kCurrentDataVersion": 123 }, // The following engines are included in country lists and are added to the @@ -538,7 +538,7 @@ "favicon_url": "https://yastatic.net/lego/_/pDu9OWAQKB0s2J9IojKpiS_Eho.ico", "logo_url": "https://storage.ape.yandex.net/get/browser/Doodles/yandex/drawable-xxhdpi/yandex.png", "search_url": "https://yandex.by/{yandex:searchPath}?text={searchTerms}", - "suggest_url": "https://suggest.yandex.by/suggest-ff.cgi?part={searchTerms}{google:cursorPosition}", + "suggest_url": "https://suggest.yandex.by/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}", "image_url": "https://yandex.by/images/search/?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", "new_tab_url": "https://www.yandex.by/chrome/newtab", @@ -551,7 +551,7 @@ "keyword": "yandex.com", "favicon_url": "https://yastatic.net/lego/_/rBTjd6UOPk5913OSn5ZQVYMTQWQ.ico", "search_url": "https://yandex.com/search/?text={searchTerms}&from=os&clid=1836588", - "suggest_url": "https://suggest.yandex.com/suggest-ff.cgi?part={searchTerms}{google:cursorPosition}&uil=en&v=3&sn=5", + "suggest_url": "https://suggest.yandex.com/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}&uil=en&v=3&sn=5", "image_url": "https://yandex.com/images/search?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", "type": "SEARCH_ENGINE_YANDEX", @@ -564,7 +564,7 @@ "favicon_url": "https://yastatic.net/lego/_/pDu9OWAQKB0s2J9IojKpiS_Eho.ico", "logo_url": "https://storage.ape.yandex.net/get/browser/Doodles/yandex/drawable-xxhdpi/yandex.png", "search_url": "https://yandex.kz/{yandex:searchPath}?text={searchTerms}", - "suggest_url": "https://suggest.yandex.kz/suggest-ff.cgi?part={searchTerms}{google:cursorPosition}", + "suggest_url": "https://suggest.yandex.kz/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}", "image_url": "https://yandex.kz/images/search/?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", "new_tab_url": "https://www.yandex.kz/chrome/newtab", @@ -578,7 +578,7 @@ "favicon_url": "https://yastatic.net/lego/_/pDu9OWAQKB0s2J9IojKpiS_Eho.ico", "logo_url": "https://storage.ape.yandex.net/get/browser/Doodles/yandex/drawable-xxhdpi/yandex.png", "search_url": "https://yandex.ru/{yandex:searchPath}?text={searchTerms}&{yandex:referralID}", - "suggest_url": "https://suggest.yandex.ru/suggest-ff.cgi?part={searchTerms}{google:cursorPosition}", + "suggest_url": "https://suggest.yandex.ru/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}", "image_url": "https://yandex.ru/images/search/?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", "new_tab_url": "https://www.yandex.ru/chrome/newtab", @@ -591,7 +591,7 @@ "keyword": "yandex.com.tr", "favicon_url": "https://yastatic.net/lego/_/rBTjd6UOPk5913OSn5ZQVYMTQWQ.ico", "search_url": "https://www.yandex.com.tr/{yandex:searchPath}?text={searchTerms}", - "suggest_url": "https://suggest.yandex.com.tr/suggest-ff.cgi?part={searchTerms}{google:cursorPosition}", + "suggest_url": "https://suggest.yandex.com.tr/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}", "image_url": "https://yandex.com.tr/gorsel/search?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", "new_tab_url": "https://www.yandex.com.tr/chrome/newtab", @@ -605,7 +605,7 @@ "favicon_url": "https://yastatic.net/lego/_/pDu9OWAQKB0s2J9IojKpiS_Eho.ico", "logo_url": "https://storage.ape.yandex.net/get/browser/Doodles/yandex/drawable-xxhdpi/yandex.png", "search_url": "https://yandex.ua/{yandex:searchPath}?text={searchTerms}", - "suggest_url": "https://suggest.yandex.ua/suggest-ff.cgi?part={searchTerms}{google:cursorPosition}", + "suggest_url": "https://suggest.yandex.ua/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}", "image_url": "https://yandex.ua/images/search/?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", "new_tab_url": "https://www.yandex.ua/chrome/newtab",
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index 2fdc881..2fd1381 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -410,6 +410,7 @@ <translation id="2609632851001447353">Varianten</translation> <translation id="2618023639789766142">C10 (Umschlag)</translation> <translation id="2625385379895617796">Ihre Uhr geht vor</translation> +<translation id="2629325967560697240">Schalten Sie für größtmögliche Sicherheit in Chrome das <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />erweiterte Safe Browsing<ph name="END_ENHANCED_PROTECTION_LINK" /> ein</translation> <translation id="2634124572758952069">Die Server-IP-Adresse von <ph name="HOST_NAME" /> wurde nicht gefunden.</translation> <translation id="2639739919103226564">Status: </translation> <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index 7af84c476..0f92bb4 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -414,6 +414,7 @@ <translation id="2609632851001447353">तफावत</translation> <translation id="2618023639789766142">C10 (Envelope)</translation> <translation id="2625385379895617796">तुमचे घड्याळ पुढे आहे</translation> +<translation id="2629325967560697240">Chrome ची सर्वोत्तम सुरक्षितता मिळवण्यासाठी, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />सुधारित केलेली सुरक्षितता सुरू करा<ph name="END_ENHANCED_PROTECTION_LINK" /></translation> <translation id="2634124572758952069"><ph name="HOST_NAME" /> चा सर्व्हर आयपी ॲड्रेस सापडला नाही.</translation> <translation id="2639739919103226564">स्थिती:</translation> <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb index 4026463..ca22101 100644 --- a/components/strings/components_strings_ne.xtb +++ b/components/strings/components_strings_ne.xtb
@@ -414,6 +414,7 @@ <translation id="2609632851001447353">विचरणहरू</translation> <translation id="2618023639789766142">C10 (Envelope)</translation> <translation id="2625385379895617796">तपाईंको घडी धेरै छिटो छ</translation> +<translation id="2629325967560697240">Chrome को सबैभन्दा उच्च स्तरको सुरक्षा सुविधा प्रयोग गर्न <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />परिष्कृत सुरक्षा<ph name="END_ENHANCED_PROTECTION_LINK" /> अन गर्नुहोस्</translation> <translation id="2634124572758952069"><ph name="HOST_NAME" /> को सर्भरको IP ठेगाना फेला पार्न सकिएन।</translation> <translation id="2639739919103226564">स्थिति:</translation> <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index 1023bd43..4bc9a75 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -415,6 +415,7 @@ <translation id="2609632851001447353">تغیرات</translation> <translation id="2618023639789766142">C10 (Envelope)</translation> <translation id="2625385379895617796">آپ کی گھڑی آگے ہے</translation> +<translation id="2629325967560697240">Chrome کی اعلی ترین سیکیورٹی حاصل کرنے کے لیے <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />بہتر کردہ حفاظت کو آن کریں<ph name="END_ENHANCED_PROTECTION_LINK" /></translation> <translation id="2634124572758952069"><ph name="HOST_NAME" /> کے سرور کا IP پتہ نہیں مل سکا۔</translation> <translation id="2639739919103226564">صورتحال:</translation> <translation id="2649204054376361687"><ph name="CITY" />، <ph name="COUNTRY" /></translation>
diff --git a/components/sync/BUILD.gn b/components/sync/BUILD.gn index d71f0852..a29e492f 100644 --- a/components/sync/BUILD.gn +++ b/components/sync/BUILD.gn
@@ -320,8 +320,6 @@ "engine/test_engine_components_factory.h", "engine_impl/cycle/mock_debug_info_getter.cc", "engine_impl/cycle/mock_debug_info_getter.h", - "engine_impl/cycle/test_util.cc", - "engine_impl/cycle/test_util.h", "test/engine/fake_sync_scheduler.cc", "test/engine/fake_sync_scheduler.h", "test/engine/mock_connection_manager.cc",
diff --git a/components/sync/engine_impl/cycle/test_util.cc b/components/sync/engine_impl/cycle/test_util.cc deleted file mode 100644 index 6856817..0000000 --- a/components/sync/engine_impl/cycle/test_util.cc +++ /dev/null
@@ -1,127 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "components/sync/engine_impl/cycle/test_util.h" - -#include "net/base/net_errors.h" - -namespace syncer { -namespace test_util { - -void SimulateGetEncryptionKeyFailed(ModelTypeSet requsted_types, - sync_pb::SyncEnums::GetUpdatesOrigin origin, - SyncCycle* cycle) { - cycle->mutable_status_controller()->set_last_get_key_result( - SyncerError(SyncerError::SERVER_RESPONSE_VALIDATION_FAILED)); - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SYNCER_OK)); -} - -void SimulateConfigureSuccess(ModelTypeSet requsted_types, - sync_pb::SyncEnums::GetUpdatesOrigin origin, - SyncCycle* cycle) { - cycle->mutable_status_controller()->set_last_get_key_result( - SyncerError(SyncerError::SYNCER_OK)); - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SYNCER_OK)); -} - -void SimulateConfigureFailed(ModelTypeSet requsted_types, - sync_pb::SyncEnums::GetUpdatesOrigin origin, - SyncCycle* cycle) { - cycle->mutable_status_controller()->set_last_get_key_result( - SyncerError(SyncerError::SYNCER_OK)); - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SERVER_RETURN_TRANSIENT_ERROR)); -} - -void SimulateConfigureConnectionFailure( - ModelTypeSet requsted_types, - sync_pb::SyncEnums::GetUpdatesOrigin origin, - SyncCycle* cycle) { - cycle->mutable_status_controller()->set_last_get_key_result( - SyncerError(SyncerError::SYNCER_OK)); - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError::NetworkConnectionUnavailable(net::ERR_FAILED)); -} - -void SimulateNormalSuccess(ModelTypeSet requested_types, - NudgeTracker* nudge_tracker, - SyncCycle* cycle) { - cycle->mutable_status_controller()->set_commit_result( - SyncerError(SyncerError::SYNCER_OK)); - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SYNCER_OK)); -} - -void SimulateDownloadUpdatesFailed(ModelTypeSet requested_types, - NudgeTracker* nudge_tracker, - SyncCycle* cycle) { - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SERVER_RETURN_TRANSIENT_ERROR)); -} - -void SimulateCommitFailed(ModelTypeSet requested_types, - NudgeTracker* nudge_tracker, - SyncCycle* cycle) { - cycle->mutable_status_controller()->set_last_get_key_result( - SyncerError(SyncerError::SYNCER_OK)); - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SYNCER_OK)); - cycle->mutable_status_controller()->set_commit_result( - SyncerError(SyncerError::SERVER_RETURN_TRANSIENT_ERROR)); -} - -void SimulateConnectionFailure(ModelTypeSet requested_types, - NudgeTracker* nudge_tracker, - SyncCycle* cycle) { - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError::NetworkConnectionUnavailable(net::ERR_FAILED)); -} - -void SimulatePollSuccess(ModelTypeSet requested_types, SyncCycle* cycle) { - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SYNCER_OK)); -} - -void SimulatePollFailed(ModelTypeSet requested_types, SyncCycle* cycle) { - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SERVER_RETURN_TRANSIENT_ERROR)); -} - -void SimulateThrottledImpl(SyncCycle* cycle, const base::TimeDelta& delta) { - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SERVER_RETURN_THROTTLED)); - cycle->delegate()->OnThrottled(delta); -} - -void SimulateTypesThrottledImpl(SyncCycle* cycle, - ModelTypeSet types, - const base::TimeDelta& delta) { - cycle->mutable_status_controller()->set_commit_result( - SyncerError(SyncerError::SYNCER_OK)); - cycle->delegate()->OnTypesThrottled(types, delta); -} - -void SimulatePartialFailureImpl(SyncCycle* cycle, ModelTypeSet types) { - cycle->mutable_status_controller()->set_commit_result( - SyncerError(SyncerError::SYNCER_OK)); - cycle->delegate()->OnTypesBackedOff(types); -} - -void SimulatePollIntervalUpdateImpl(ModelTypeSet requested_types, - SyncCycle* cycle, - const base::TimeDelta& new_poll) { - SimulatePollSuccess(requested_types, cycle); - cycle->delegate()->OnReceivedPollIntervalUpdate(new_poll); -} - -void SimulateGuRetryDelayCommandImpl(SyncCycle* cycle, base::TimeDelta delay) { - cycle->mutable_status_controller()->set_last_download_updates_result( - SyncerError(SyncerError::SYNCER_OK)); - cycle->delegate()->OnReceivedGuRetryDelay(delay); -} - -} // namespace test_util -} // namespace syncer
diff --git a/components/sync/engine_impl/cycle/test_util.h b/components/sync/engine_impl/cycle/test_util.h deleted file mode 100644 index 704928d..0000000 --- a/components/sync/engine_impl/cycle/test_util.h +++ /dev/null
@@ -1,94 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef COMPONENTS_SYNC_ENGINE_IMPL_CYCLE_TEST_UTIL_H_ -#define COMPONENTS_SYNC_ENGINE_IMPL_CYCLE_TEST_UTIL_H_ - -#include "components/sync/engine_impl/cycle/sync_cycle.h" -#include "components/sync/engine_impl/syncer.h" -#include "testing/gmock/include/gmock/gmock.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace syncer { -namespace test_util { - -// Utils to simulate various outcomes of a sync cycle. - -// Configure sync cycle successes and failures. -void SimulateGetEncryptionKeyFailed(ModelTypeSet requested_types, - sync_pb::SyncEnums::GetUpdatesOrigin origin, - SyncCycle* cycle); -void SimulateConfigureSuccess(ModelTypeSet requested_types, - sync_pb::SyncEnums::GetUpdatesOrigin origin, - SyncCycle* cycle); -void SimulateConfigureFailed(ModelTypeSet requested_types, - sync_pb::SyncEnums::GetUpdatesOrigin origin, - SyncCycle* cycle); -void SimulateConfigureConnectionFailure( - ModelTypeSet requested_types, - sync_pb::SyncEnums::GetUpdatesOrigin origin, - SyncCycle* cycle); - -// Normal mode sync cycle successes and failures. -void SimulateNormalSuccess(ModelTypeSet requested_types, - NudgeTracker* nudge_tracker, - SyncCycle* cycle); -void SimulateDownloadUpdatesFailed(ModelTypeSet requested_types, - NudgeTracker* nudge_tracker, - SyncCycle* cycle); -void SimulateCommitFailed(ModelTypeSet requested_types, - NudgeTracker* nudge_tracker, - SyncCycle* cycle); -void SimulateConnectionFailure(ModelTypeSet requested_types, - NudgeTracker* nudge_tracker, - SyncCycle* cycle); - -// Poll successes and failures. -// TODO(tschumann): Move poll simulations into the only call site, -// sync_scheduler_impl_unittest.cc. -void SimulatePollSuccess(ModelTypeSet requested_types, SyncCycle* cycle); -void SimulatePollFailed(ModelTypeSet requested_types, SyncCycle* cycle); - -void SimulateGuRetryDelayCommandImpl(SyncCycle* cycle, base::TimeDelta delay); - -void SimulateThrottledImpl(SyncCycle* cycle, const base::TimeDelta& delta); - -void SimulateTypesThrottledImpl(SyncCycle* cycle, - ModelTypeSet types, - const base::TimeDelta& delta); - -void SimulatePartialFailureImpl(SyncCycle* cycle, ModelTypeSet types); - -// Works with poll cycles. -void SimulatePollIntervalUpdateImpl(ModelTypeSet requested_types, - SyncCycle* cycle, - const base::TimeDelta& new_poll); - -// TODO(tschumann): Most of these actions are only used by -// sync_scheduler_impl_unittest.cc. Move them there to avoid unneccesary -// redirection and keep the context in one place. -ACTION_P(SimulateThrottled, throttle) { - SimulateThrottledImpl(arg0, throttle); -} - -ACTION_P2(SimulateTypesThrottled, types, throttle) { - SimulateTypesThrottledImpl(arg0, types, throttle); -} - -ACTION_P(SimulatePartialFailure, types) { - SimulatePartialFailureImpl(arg0, types); -} - -ACTION_P(SimulatePollIntervalUpdate, poll) { - SimulatePollIntervalUpdateImpl(arg0, arg1, poll); -} - -ACTION_P(SimulateGuRetryDelayCommand, delay) { - SimulateGuRetryDelayCommandImpl(arg0, delay); -} - -} // namespace test_util -} // namespace syncer - -#endif // COMPONENTS_SYNC_ENGINE_IMPL_CYCLE_TEST_UTIL_H_
diff --git a/components/sync/engine_impl/sync_scheduler_impl_unittest.cc b/components/sync/engine_impl/sync_scheduler_impl_unittest.cc index d933174..dff4b27 100644 --- a/components/sync/engine_impl/sync_scheduler_impl_unittest.cc +++ b/components/sync/engine_impl/sync_scheduler_impl_unittest.cc
@@ -25,12 +25,12 @@ #include "components/sync/engine/sync_engine_switches.h" #include "components/sync/engine_impl/backoff_delay_provider.h" #include "components/sync/engine_impl/cancelation_signal.h" -#include "components/sync/engine_impl/cycle/test_util.h" #include "components/sync/test/callback_counter.h" #include "components/sync/test/engine/mock_connection_manager.h" #include "components/sync/test/engine/mock_nudge_handler.h" #include "components/sync/test/fake_sync_encryption_handler.h" #include "components/sync/test/mock_invalidation.h" +#include "net/base/net_errors.h" #include "net/http/http_status_code.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -54,6 +54,124 @@ namespace syncer { +namespace { + +void SimulatePollSuccess(ModelTypeSet requested_types, SyncCycle* cycle) { + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SYNCER_OK)); +} + +void SimulatePollFailed(ModelTypeSet requested_types, SyncCycle* cycle) { + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SERVER_RETURN_TRANSIENT_ERROR)); +} + +ACTION_P(SimulateThrottled, throttle) { + SyncCycle* cycle = arg0; + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SERVER_RETURN_THROTTLED)); + cycle->delegate()->OnThrottled(throttle); +} + +ACTION_P2(SimulateTypesThrottled, types, throttle) { + SyncCycle* cycle = arg0; + cycle->mutable_status_controller()->set_commit_result( + SyncerError(SyncerError::SYNCER_OK)); + cycle->delegate()->OnTypesThrottled(types, throttle); +} + +ACTION_P(SimulatePartialFailure, types) { + SyncCycle* cycle = arg0; + cycle->mutable_status_controller()->set_commit_result( + SyncerError(SyncerError::SYNCER_OK)); + cycle->delegate()->OnTypesBackedOff(types); +} + +ACTION_P(SimulatePollIntervalUpdate, new_poll) { + const ModelTypeSet requested_types = arg0; + SyncCycle* cycle = arg1; + SimulatePollSuccess(requested_types, cycle); + cycle->delegate()->OnReceivedPollIntervalUpdate(new_poll); +} + +ACTION_P(SimulateGuRetryDelayCommand, delay) { + SyncCycle* cycle = arg0; + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SYNCER_OK)); + cycle->delegate()->OnReceivedGuRetryDelay(delay); +} + +void SimulateGetEncryptionKeyFailed(ModelTypeSet requsted_types, + sync_pb::SyncEnums::GetUpdatesOrigin origin, + SyncCycle* cycle) { + cycle->mutable_status_controller()->set_last_get_key_result( + SyncerError(SyncerError::SERVER_RESPONSE_VALIDATION_FAILED)); + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SYNCER_OK)); +} + +void SimulateConfigureSuccess(ModelTypeSet requsted_types, + sync_pb::SyncEnums::GetUpdatesOrigin origin, + SyncCycle* cycle) { + cycle->mutable_status_controller()->set_last_get_key_result( + SyncerError(SyncerError::SYNCER_OK)); + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SYNCER_OK)); +} + +void SimulateConfigureFailed(ModelTypeSet requsted_types, + sync_pb::SyncEnums::GetUpdatesOrigin origin, + SyncCycle* cycle) { + cycle->mutable_status_controller()->set_last_get_key_result( + SyncerError(SyncerError::SYNCER_OK)); + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SERVER_RETURN_TRANSIENT_ERROR)); +} + +void SimulateConfigureConnectionFailure( + ModelTypeSet requsted_types, + sync_pb::SyncEnums::GetUpdatesOrigin origin, + SyncCycle* cycle) { + cycle->mutable_status_controller()->set_last_get_key_result( + SyncerError(SyncerError::SYNCER_OK)); + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError::NetworkConnectionUnavailable(net::ERR_FAILED)); +} + +void SimulateNormalSuccess(ModelTypeSet requested_types, + NudgeTracker* nudge_tracker, + SyncCycle* cycle) { + cycle->mutable_status_controller()->set_commit_result( + SyncerError(SyncerError::SYNCER_OK)); + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SYNCER_OK)); +} + +void SimulateDownloadUpdatesFailed(ModelTypeSet requested_types, + NudgeTracker* nudge_tracker, + SyncCycle* cycle) { + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SERVER_RETURN_TRANSIENT_ERROR)); +} + +void SimulateCommitFailed(ModelTypeSet requested_types, + NudgeTracker* nudge_tracker, + SyncCycle* cycle) { + cycle->mutable_status_controller()->set_last_get_key_result( + SyncerError(SyncerError::SYNCER_OK)); + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError(SyncerError::SYNCER_OK)); + cycle->mutable_status_controller()->set_commit_result( + SyncerError(SyncerError::SERVER_RETURN_TRANSIENT_ERROR)); +} + +void SimulateConnectionFailure(ModelTypeSet requested_types, + NudgeTracker* nudge_tracker, + SyncCycle* cycle) { + cycle->mutable_status_controller()->set_last_download_updates_result( + SyncerError::NetworkConnectionUnavailable(net::ERR_FAILED)); +} + class MockSyncer : public Syncer { public: MockSyncer(); @@ -106,6 +224,8 @@ static const size_t kMinNumSamples = 5; +} // namespace + // Test harness for the SyncScheduler. Test the delays and backoff timers used // in response to various events. Mock time is used to avoid flakes. class SyncSchedulerImplTest : public testing::Test { @@ -380,8 +500,8 @@ ModelTypeSet model_types(THEMES); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))) + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -396,8 +516,8 @@ model_types.Remove(THEMES); model_types.Put(TYPED_URLS); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×2, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×2, true))); scheduler()->ScheduleLocalNudge(model_types, FROM_HERE); RunLoop(); } @@ -417,8 +537,7 @@ SyncShareTimes times; NudgeTracker* nudge_tracker = nullptr; EXPECT_CALL(*syncer(), NormalSyncShare(context()->GetEnabledTypes(), _, _)) - .WillOnce(DoAll(SaveArg<1>(&nudge_tracker), - Invoke(test_util::SimulateNormalSuccess), + .WillOnce(DoAll(SaveArg<1>(&nudge_tracker), Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); RunLoop(); @@ -436,7 +555,7 @@ const ModelTypeSet model_types(THEMES); EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureSuccess), + .WillOnce(DoAll(Invoke(SimulateConfigureSuccess), RecordSyncShare(×, true))); StartSyncConfiguration(); @@ -461,9 +580,9 @@ StartSyncConfiguration(); EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureFailed), + .WillOnce(DoAll(Invoke(SimulateConfigureFailed), RecordSyncShare(×, false))) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureFailed), + .WillOnce(DoAll(Invoke(SimulateConfigureFailed), RecordSyncShare(×, false))); CallbackCounter ready_counter; @@ -482,7 +601,7 @@ Mock::VerifyAndClearExpectations(syncer()); EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureSuccess), + .WillOnce(DoAll(Invoke(SimulateConfigureSuccess), RecordSyncShare(×, true))); RunLoop(); @@ -503,7 +622,7 @@ // Make ConfigureSyncShare call scheduler->Stop(). It is not supposed to call // retry_task or dereference configuration params. EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureFailed), + .WillOnce(DoAll(Invoke(SimulateConfigureFailed), StopScheduler(scheduler()), RecordSyncShare(×, false))); @@ -544,7 +663,7 @@ connection()->ResetAccessToken(); EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureSuccess), + .WillOnce(DoAll(Invoke(SimulateConfigureSuccess), RecordSyncShare(×, true))); StartSyncConfiguration(); @@ -571,7 +690,7 @@ // Request a configure and make sure it fails. EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureFailed), + .WillOnce(DoAll(Invoke(SimulateConfigureFailed), RecordSyncShare(×, false))); CallbackCounter ready_counter; ConfigurationParams params(sync_pb::SyncEnums::RECONFIGURATION, model_types, @@ -584,7 +703,7 @@ // Ask for a nudge while dealing with repeated configure failure. EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureFailed), + .WillOnce(DoAll(Invoke(SimulateConfigureFailed), RecordSyncShare(×, false))); scheduler()->ScheduleLocalNudge(model_types, FROM_HERE); RunLoop(); @@ -596,14 +715,14 @@ // Let the next configure retry succeed. EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureSuccess), + .WillOnce(DoAll(Invoke(SimulateConfigureSuccess), RecordSyncShare(×, true))); RunLoop(); // Now change the mode so nudge can execute. EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); StartSyncScheduler(base::Time()); PumpLoop(); } @@ -614,8 +733,8 @@ SyncShareTimes times; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); const ModelTypeSet types1(THEMES), types2(TYPED_URLS), types3(THEMES); TimeTicks optimal_time = TimeTicks::Now() + default_delay(); scheduler()->ScheduleLocalNudge(types1, FROM_HERE); @@ -629,8 +748,8 @@ SyncShareTimes times2; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×2, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×2, true))); scheduler()->ScheduleLocalNudge(types3, FROM_HERE); RunLoop(); } @@ -641,8 +760,8 @@ SyncShareTimes times; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); ModelTypeSet types1(THEMES), types2(TYPED_URLS), types3; // Create a huge time delay. @@ -672,8 +791,8 @@ SyncShareTimes times1; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×1, true))) + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×1, true))) .RetiresOnSaturation(); scheduler()->ScheduleInvalidationNudge(THEMES, BuildInvalidation(10, "test"), FROM_HERE); @@ -684,8 +803,8 @@ // Make sure a second, later, nudge is unaffected by first (no coalescing). SyncShareTimes times2; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×2, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×2, true))); scheduler()->ScheduleInvalidationNudge( TYPED_URLS, BuildInvalidation(10, "test2"), FROM_HERE); RunLoop(); @@ -698,7 +817,7 @@ EXPECT_CALL(*syncer(), PollSyncShare(_, _)) .Times(AtLeast(kMinNumSamples)) .WillRepeatedly( - DoAll(Invoke(test_util::SimulatePollSuccess), + DoAll(Invoke(SimulatePollSuccess), RecordSyncShareMultiple(×, kMinNumSamples, true))); scheduler()->OnReceivedPollIntervalUpdate(poll_interval); @@ -723,7 +842,7 @@ EXPECT_CALL(*syncer(), PollSyncShare(_, _)) .Times(AtLeast(kMinNumSamples)) .WillRepeatedly( - DoAll(Invoke(test_util::SimulatePollSuccess), + DoAll(Invoke(SimulatePollSuccess), RecordSyncShareMultiple(×, kMinNumSamples, true))); TimeTicks optimal_start = TimeTicks::Now() + poll_interval; @@ -747,7 +866,7 @@ EXPECT_CALL(*syncer(), PollSyncShare(_, _)) .Times(AtLeast(kMinNumSamples)) .WillRepeatedly( - DoAll(Invoke(test_util::SimulatePollSuccess), + DoAll(Invoke(SimulatePollSuccess), RecordSyncShareMultiple(×, kMinNumSamples, true))); scheduler()->OnReceivedPollIntervalUpdate(poll_interval); @@ -771,7 +890,7 @@ EXPECT_CALL(*syncer(), PollSyncShare(_, _)) .Times(AtLeast(kMinNumSamples)) .WillRepeatedly( - DoAll(Invoke(test_util::SimulatePollSuccess), + DoAll(Invoke(SimulatePollSuccess), RecordSyncShareMultiple(×, kMinNumSamples, true))); scheduler()->OnReceivedPollIntervalUpdate(poll_interval); @@ -795,11 +914,10 @@ scheduler()->OnReceivedPollIntervalUpdate(poll1); EXPECT_CALL(*syncer(), PollSyncShare(_, _)) .Times(AtLeast(kMinNumSamples)) - .WillOnce( - DoAll(WithArgs<0, 1>(test_util::SimulatePollIntervalUpdate(poll2)), - Return(true))) + .WillOnce(DoAll(WithArgs<0, 1>(SimulatePollIntervalUpdate(poll2)), + Return(true))) .WillRepeatedly(DoAll( - Invoke(test_util::SimulatePollSuccess), + Invoke(SimulatePollSuccess), WithArg<1>(RecordSyncShareMultiple(×, kMinNumSamples, true)))); TimeTicks optimal_start = TimeTicks::Now() + poll1 + poll2; @@ -820,8 +938,7 @@ scheduler()->OnReceivedPollIntervalUpdate(poll); EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulateThrottled(throttle)), - Return(false))) + .WillOnce(DoAll(WithArg<2>(SimulateThrottled(throttle)), Return(false))) .WillRepeatedly(AddFailureAndQuitLoopNow()); StartSyncScheduler(base::Time()); @@ -848,12 +965,11 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), PollSyncShare(_, _)) - .WillOnce(DoAll(WithArg<1>(test_util::SimulateThrottled(throttle1)), - Return(false))) + .WillOnce(DoAll(WithArg<1>(SimulateThrottled(throttle1)), Return(false))) .RetiresOnSaturation(); EXPECT_CALL(*syncer(), PollSyncShare(_, _)) .WillRepeatedly( - DoAll(Invoke(test_util::SimulatePollSuccess), + DoAll(Invoke(SimulatePollSuccess), RecordSyncShareMultiple(×, kMinNumSamples, true))); TimeTicks optimal_start = TimeTicks::Now() + poll + throttle1; @@ -874,12 +990,10 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulateThrottled(throttle1)), - Return(false))) + .WillOnce(DoAll(WithArg<2>(SimulateThrottled(throttle1)), Return(false))) .RetiresOnSaturation(); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - QuitLoopNowAction(true))); + .WillOnce(DoAll(Invoke(SimulateNormalSuccess), QuitLoopNowAction(true))); const ModelTypeSet types(THEMES); StartSyncScheduler(base::Time()); @@ -902,12 +1016,11 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulateThrottled(throttle1)), - Return(false))) + .WillOnce(DoAll(WithArg<2>(SimulateThrottled(throttle1)), Return(false))) .RetiresOnSaturation(); EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureSuccess), - QuitLoopNowAction(true))); + .WillOnce( + DoAll(Invoke(SimulateConfigureSuccess), QuitLoopNowAction(true))); const ModelTypeSet types(THEMES); StartSyncConfiguration(); @@ -936,9 +1049,8 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce( - DoAll(WithArg<2>(test_util::SimulateTypesThrottled(types, throttle1)), - Return(true))) + .WillOnce(DoAll(WithArg<2>(SimulateTypesThrottled(types, throttle1)), + Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -967,8 +1079,7 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulatePartialFailure(types)), - Return(true))) + .WillOnce(DoAll(WithArg<2>(SimulatePartialFailure(types)), Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -997,8 +1108,7 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulatePartialFailure(types)), - Return(true))) + .WillOnce(DoAll(WithArg<2>(SimulatePartialFailure(types)), Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -1011,8 +1121,8 @@ SyncShareTimes times; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillRepeatedly(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillRepeatedly( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); PumpLoop(); // To get PerformDelayedNudge called. PumpLoop(); // To get TrySyncCycleJob called EXPECT_FALSE(IsAnyTypeBlocked()); @@ -1033,8 +1143,7 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulatePartialFailure(types)), - Return(true))) + .WillOnce(DoAll(WithArg<2>(SimulatePartialFailure(types)), Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -1049,8 +1158,7 @@ TimeDelta throttle1(TimeDelta::FromMilliseconds(150)); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulateThrottled(throttle1)), - Return(false))) + .WillOnce(DoAll(WithArg<2>(SimulateThrottled(throttle1)), Return(false))) .RetiresOnSaturation(); // Sync still can throttle. @@ -1067,8 +1175,7 @@ // Unthrottled client, but the backingoff datatype is still in backoff and // scheduled. EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - QuitLoopNowAction(true))); + .WillOnce(DoAll(Invoke(SimulateNormalSuccess), QuitLoopNowAction(true))); RunLoop(); EXPECT_FALSE(scheduler()->IsGlobalThrottle()); EXPECT_TRUE(GetBackedOffTypes().HasAll(types)); @@ -1089,9 +1196,9 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulateTypesThrottled( - throttled_types, throttle)), - Return(true))) + .WillOnce( + DoAll(WithArg<2>(SimulateTypesThrottled(throttled_types, throttle)), + Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -1102,9 +1209,8 @@ const ModelTypeSet backed_off_types(TYPED_URLS); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce( - DoAll(WithArg<2>(test_util::SimulatePartialFailure(backed_off_types)), - Return(true))) + .WillOnce(DoAll(WithArg<2>(SimulatePartialFailure(backed_off_types)), + Return(true))) .RetiresOnSaturation(); scheduler()->ScheduleLocalNudge(backed_off_types, FROM_HERE); @@ -1141,9 +1247,9 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulateTypesThrottled( - throttled_types, throttle1)), - Return(true))) + .WillOnce( + DoAll(WithArg<2>(SimulateTypesThrottled(throttled_types, throttle1)), + Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -1167,8 +1273,8 @@ // Local nudges for non-throttled types will trigger a sync. EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillRepeatedly(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillRepeatedly( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); scheduler()->ScheduleLocalNudge(unthrottled_types, FROM_HERE); RunLoop(); Mock::VerifyAndClearExpectations(syncer()); @@ -1189,9 +1295,8 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce( - DoAll(WithArg<2>(test_util::SimulatePartialFailure(backed_off_types)), - Return(true))) + .WillOnce(DoAll(WithArg<2>(SimulatePartialFailure(backed_off_types)), + Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -1215,8 +1320,8 @@ // Local nudges for non-backed off types will trigger a sync. EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillRepeatedly(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillRepeatedly( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); scheduler()->ScheduleLocalNudge(unbacked_off_types, FROM_HERE); RunLoop(); Mock::VerifyAndClearExpectations(syncer()); @@ -1239,7 +1344,7 @@ const ModelTypeSet config_types(THEMES); EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateConfigureSuccess), + .WillOnce(DoAll(Invoke(SimulateConfigureSuccess), RecordSyncShare(×, true))) .RetiresOnSaturation(); CallbackCounter ready_counter; @@ -1256,8 +1361,8 @@ scheduler()->OnReceivedPollIntervalUpdate(TimeDelta::FromDays(1)); SyncShareTimes times2; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×2, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×2, true))); StartSyncScheduler(base::Time()); @@ -1283,8 +1388,7 @@ // backoff. TEST_F(BackoffTriggersSyncSchedulerImplTest, FailCommitOnce) { EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateCommitFailed), - QuitLoopNowAction(false))); + .WillOnce(DoAll(Invoke(SimulateCommitFailed), QuitLoopNowAction(false))); EXPECT_TRUE(RunAndGetBackoff()); } @@ -1292,10 +1396,8 @@ // retry. Expect that this clears the backoff state. TEST_F(BackoffTriggersSyncSchedulerImplTest, FailDownloadOnceThenSucceed) { EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateDownloadUpdatesFailed), - Return(false))) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - QuitLoopNowAction(true))); + .WillOnce(DoAll(Invoke(SimulateDownloadUpdatesFailed), Return(false))) + .WillOnce(DoAll(Invoke(SimulateNormalSuccess), QuitLoopNowAction(true))); EXPECT_FALSE(RunAndGetBackoff()); } @@ -1303,9 +1405,8 @@ // that this clears the backoff state. TEST_F(BackoffTriggersSyncSchedulerImplTest, FailCommitOnceThenSucceed) { EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateCommitFailed), Return(false))) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - QuitLoopNowAction(true))); + .WillOnce(DoAll(Invoke(SimulateCommitFailed), Return(false))) + .WillOnce(DoAll(Invoke(SimulateNormalSuccess), QuitLoopNowAction(true))); EXPECT_FALSE(RunAndGetBackoff()); } @@ -1313,9 +1414,8 @@ // Expect this will leave the scheduler in backoff. TEST_F(BackoffTriggersSyncSchedulerImplTest, FailDownloadTwice) { EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateDownloadUpdatesFailed), - Return(false))) - .WillRepeatedly(DoAll(Invoke(test_util::SimulateDownloadUpdatesFailed), + .WillOnce(DoAll(Invoke(SimulateDownloadUpdatesFailed), Return(false))) + .WillRepeatedly(DoAll(Invoke(SimulateDownloadUpdatesFailed), QuitLoopNowAction(false))); EXPECT_TRUE(RunAndGetBackoff()); } @@ -1324,9 +1424,8 @@ // updates. Expect this will leave the scheduler in backoff. TEST_F(BackoffTriggersSyncSchedulerImplTest, FailGetEncryptionKey) { EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateGetEncryptionKeyFailed), - Return(false))) - .WillRepeatedly(DoAll(Invoke(test_util::SimulateGetEncryptionKeyFailed), + .WillOnce(DoAll(Invoke(SimulateGetEncryptionKeyFailed), Return(false))) + .WillRepeatedly(DoAll(Invoke(SimulateGetEncryptionKeyFailed), QuitLoopNowAction(false))); StartSyncConfiguration(); @@ -1350,7 +1449,7 @@ UseMockDelayProvider(); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateCommitFailed), + .WillOnce(DoAll(Invoke(SimulateCommitFailed), RecordSyncShareMultiple(×, 1U, false))); EXPECT_CALL(*delay(), GetDelay(_)) .WillRepeatedly(Return(TimeDelta::FromDays(1))); @@ -1395,7 +1494,7 @@ EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) .Times(kMinNumSamples) .WillRepeatedly( - DoAll(Invoke(test_util::SimulateCommitFailed), + DoAll(Invoke(SimulateCommitFailed), RecordSyncShareMultiple(×, kMinNumSamples, false))); const TimeDelta first = TimeDelta::FromSeconds(kInitialBackoffRetrySeconds); @@ -1446,8 +1545,8 @@ // Kick off the test with a failed nudge. EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateCommitFailed), - RecordSyncShare(×, false))); + .WillOnce( + DoAll(Invoke(SimulateCommitFailed), RecordSyncShare(×, false))); scheduler()->ScheduleLocalNudge(ModelTypeSet(THEMES), FROM_HERE); RunLoop(); Mock::VerifyAndClearExpectations(syncer()); @@ -1457,8 +1556,8 @@ // The retry succeeds. EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); RunLoop(); Mock::VerifyAndClearExpectations(syncer()); optimal_job_time = optimal_job_time + backoff; @@ -1468,7 +1567,7 @@ // Now let the Poll timer do its thing. EXPECT_CALL(*syncer(), PollSyncShare(_, _)) .WillRepeatedly( - DoAll(Invoke(test_util::SimulatePollSuccess), + DoAll(Invoke(SimulatePollSuccess), RecordSyncShareMultiple(×, kMinNumSamples, true))); const TimeDelta poll(TimeDelta::FromMilliseconds(10)); scheduler()->OnReceivedPollIntervalUpdate(poll); @@ -1499,10 +1598,10 @@ .WillRepeatedly(Return(TimeDelta::FromMilliseconds(0))); EXPECT_CALL(*syncer(), PollSyncShare(_, _)) - .WillOnce(DoAll(Invoke(test_util::SimulatePollFailed), - RecordSyncShare(×, false))) - .WillOnce(DoAll(Invoke(test_util::SimulatePollSuccess), - RecordSyncShare(×, true))); + .WillOnce( + DoAll(Invoke(SimulatePollFailed), RecordSyncShare(×, false))) + .WillOnce( + DoAll(Invoke(SimulatePollSuccess), RecordSyncShare(×, true))); StartSyncScheduler(base::Time()); @@ -1521,9 +1620,8 @@ connection()->SetServerNotReachable(); connection()->UpdateConnectionStatus(); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce( - DoAll(Invoke(test_util::SimulateConnectionFailure), Return(false))) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), Return(true))); + .WillOnce(DoAll(Invoke(SimulateConnectionFailure), Return(false))) + .WillOnce(DoAll(Invoke(SimulateNormalSuccess), Return(true))); StartSyncScheduler(base::Time()); scheduler()->ScheduleLocalNudge(ModelTypeSet(THEMES), FROM_HERE); @@ -1546,8 +1644,7 @@ connection()->UpdateConnectionStatus(); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) .Times(1) - .WillOnce( - DoAll(Invoke(test_util::SimulateConnectionFailure), Return(false))); + .WillOnce(DoAll(Invoke(SimulateConnectionFailure), Return(false))); StartSyncScheduler(base::Time()); scheduler()->ScheduleLocalNudge(ModelTypeSet(THEMES), FROM_HERE); @@ -1571,9 +1668,8 @@ connection()->UpdateConnectionStatus(); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce( - DoAll(Invoke(test_util::SimulateConnectionFailure), Return(false))) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), Return(true))); + .WillOnce(DoAll(Invoke(SimulateConnectionFailure), Return(false))) + .WillOnce(DoAll(Invoke(SimulateNormalSuccess), Return(true))); scheduler()->ScheduleLocalNudge(ModelTypeSet(THEMES), FROM_HERE); PumpLoop(); // To get PerformDelayedNudge called. @@ -1601,11 +1697,9 @@ connection()->UpdateConnectionStatus(); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce( - DoAll(Invoke(test_util::SimulateConnectionFailure), Return(false))) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), Return(true))) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - QuitLoopNowAction(true))); + .WillOnce(DoAll(Invoke(SimulateConnectionFailure), Return(false))) + .WillOnce(DoAll(Invoke(SimulateNormalSuccess), Return(true))) + .WillOnce(DoAll(Invoke(SimulateNormalSuccess), QuitLoopNowAction(true))); scheduler()->ScheduleLocalNudge(ModelTypeSet(THEMES), FROM_HERE); @@ -1627,8 +1721,8 @@ // extra connection status change notifications. See crbug.com/190085. TEST_F(SyncSchedulerImplTest, DoubleCanaryInConfigure) { EXPECT_CALL(*syncer(), ConfigureSyncShare(_, _, _)) - .WillRepeatedly(DoAll( - Invoke(test_util::SimulateConfigureConnectionFailure), Return(true))); + .WillRepeatedly( + DoAll(Invoke(SimulateConfigureConnectionFailure), Return(true))); StartSyncConfiguration(); connection()->SetServerNotReachable(); connection()->UpdateConnectionStatus(); @@ -1656,7 +1750,7 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), PollSyncShare(_, _)) .WillRepeatedly( - DoAll(Invoke(test_util::SimulatePollSuccess), + DoAll(Invoke(SimulatePollSuccess), RecordSyncShareMultiple(×, kMinNumSamples, true))); connection()->SetServerResponse( @@ -1670,8 +1764,8 @@ // but after poll finished with auth error from poll timer it should retry // poll once more EXPECT_CALL(*syncer(), PollSyncShare(_, _)) - .WillOnce(DoAll(Invoke(test_util::SimulatePollSuccess), - RecordSyncShare(×, true))); + .WillOnce( + DoAll(Invoke(SimulatePollSuccess), RecordSyncShare(×, true))); scheduler()->OnCredentialsUpdated(); connection()->SetServerResponse(HttpResponse::ForSuccess()); RunLoop(); @@ -1687,8 +1781,8 @@ EXPECT_EQ(delay, GetRetryTimerDelay()); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); // Run to wait for retrying. RunLoop(); @@ -1709,7 +1803,7 @@ scheduler()->OnReceivedGuRetryDelay(delay); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateDownloadUpdatesFailed), + .WillOnce(DoAll(Invoke(SimulateDownloadUpdatesFailed), RecordSyncShare(×, false))); // Run to wait for retrying. @@ -1717,8 +1811,8 @@ EXPECT_TRUE(scheduler()->IsGlobalBackoff()); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); // Run to wait for second retrying. RunLoop(); @@ -1742,18 +1836,17 @@ EXPECT_EQ(delay1, GetRetryTimerDelay()); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce( - DoAll(WithoutArgs(VerifyRetryTimerDelay(this, delay1)), - WithArg<2>(test_util::SimulateGuRetryDelayCommand(delay2)), - RecordSyncShare(×, true))); + .WillOnce(DoAll(WithoutArgs(VerifyRetryTimerDelay(this, delay1)), + WithArg<2>(SimulateGuRetryDelayCommand(delay2)), + RecordSyncShare(×, true))); // Run nudge GU. RunLoop(); EXPECT_EQ(delay2, GetRetryTimerDelay()); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); // Run to wait for retrying. RunLoop(); @@ -1769,8 +1862,8 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillRepeatedly(DoAll( - WithArg<2>(test_util::SimulatePartialFailure(types)), Return(true))) + .WillRepeatedly( + DoAll(WithArg<2>(SimulatePartialFailure(types)), Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -1815,8 +1908,7 @@ // Set backoff datatype. ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(WithArg<2>(test_util::SimulatePartialFailure(types)), - Return(true))) + .WillOnce(DoAll(WithArg<2>(SimulatePartialFailure(types)), Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -1830,8 +1922,8 @@ SyncShareTimes times; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))) + .WillOnce( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))) .RetiresOnSaturation(); // Do a successful Sync. @@ -1865,8 +1957,7 @@ ::testing::InSequence seq; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) .WillOnce( - DoAll(WithArg<2>(test_util::SimulatePartialFailure(themes_types)), - Return(true))) + DoAll(WithArg<2>(SimulatePartialFailure(themes_types)), Return(true))) .RetiresOnSaturation(); StartSyncScheduler(base::Time()); @@ -1881,9 +1972,8 @@ // Set anther backoff datatype. const ModelTypeSet typed_urls_types(TYPED_URLS); EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce( - DoAll(WithArg<2>(test_util::SimulatePartialFailure(typed_urls_types)), - Return(true))) + .WillOnce(DoAll(WithArg<2>(SimulatePartialFailure(typed_urls_types)), + Return(true))) .RetiresOnSaturation(); EXPECT_CALL(*delay(), GetDelay(_)) .WillOnce(Return(default_delay())) @@ -1902,8 +1992,8 @@ // Unblock one datatype. SyncShareTimes times; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillRepeatedly(DoAll(Invoke(test_util::SimulateNormalSuccess), - RecordSyncShare(×, true))); + .WillRepeatedly( + DoAll(Invoke(SimulateNormalSuccess), RecordSyncShare(×, true))); EXPECT_CALL(*delay(), GetDelay(_)).WillRepeatedly(Return(long_delay())); PumpLoop(); // TO get OnTypesUnblocked called. @@ -1943,8 +2033,8 @@ // Setup mock as we're about to attempt to sync. SyncShareTimes times; EXPECT_CALL(*syncer(), NormalSyncShare(_, _, _)) - .WillOnce(DoAll(Invoke(test_util::SimulateCommitFailed), - RecordSyncShare(×, false))); + .WillOnce( + DoAll(Invoke(SimulateCommitFailed), RecordSyncShare(×, false))); // Triggers the THEMES TrySyncCycleJobImpl(), which we've setup to fail. Its // RestartWaiting won't schedule a delayed retry, as the TYPED_URLS nudge has // a smaller delay. We verify this by making sure the delay is still zero.
diff --git a/components/ukm/ukm_reporting_service.cc b/components/ukm/ukm_reporting_service.cc index 8beedce..3f32214 100644 --- a/components/ukm/ukm_reporting_service.cc +++ b/components/ukm/ukm_reporting_service.cc
@@ -13,9 +13,10 @@ #include "base/metrics/histogram_macros.h" #include "components/metrics/metrics_service_client.h" #include "components/prefs/pref_registry_simple.h" -#include "components/ukm/unsent_log_store_metrics_impl.h" #include "components/ukm/ukm_pref_names.h" #include "components/ukm/ukm_service.h" +#include "components/ukm/unsent_log_store_metrics_impl.h" +#include "third_party/zlib/google/compression_utils.h" namespace ukm { @@ -106,10 +107,40 @@ response_code >= 0 ? response_code : error_code); } -void UkmReportingService::LogSuccess(size_t log_size) { +void UkmReportingService::LogSuccessLogSize(size_t log_size) { UMA_HISTOGRAM_COUNTS_10000("UKM.LogSize.OnSuccess", log_size / 1024); } +void UkmReportingService::LogSuccessMetadata(const std::string& staged_log) { + // Recover the report from the compressed staged log. + std::string uncompressed_log_data; + bool uncompress_successful = + compression::GzipUncompress(staged_log, &uncompressed_log_data); + DCHECK(uncompress_successful); + Report report; + report.ParseFromString(uncompressed_log_data); + + // Log the relative size of the report with relevant UKM data omitted. This + // helps us to estimate the bandwidth usage of logs upload that is not + // directly attributed to UKM data, for example the system profile info. + // Note that serialized logs are further compressed before upload, thus the + // percentages here are not the exact percentage of bandwidth they ended up + // taking. + std::string log_without_ukm_data; + report.clear_sources(); + report.clear_source_counts(); + report.clear_entries(); + report.clear_aggregates(); + report.SerializeToString(&log_without_ukm_data); + + int non_ukm_percentage = + log_without_ukm_data.length() * 100 / uncompressed_log_data.length(); + DCHECK_GE(non_ukm_percentage, 0); + DCHECK_LE(non_ukm_percentage, 100); + base::UmaHistogramPercentage("UKM.ReportSize.NonUkmPercentage", + non_ukm_percentage); +} + void UkmReportingService::LogLargeRejection(size_t log_size) {} } // namespace ukm
diff --git a/components/ukm/ukm_reporting_service.h b/components/ukm/ukm_reporting_service.h index c011f0f..7abd156 100644 --- a/components/ukm/ukm_reporting_service.h +++ b/components/ukm/ukm_reporting_service.h
@@ -12,8 +12,9 @@ #include <string> #include "base/macros.h" -#include "components/metrics/unsent_log_store.h" #include "components/metrics/reporting_service.h" +#include "components/metrics/unsent_log_store.h" +#include "third_party/metrics_proto/ukm/report.pb.h" class PrefService; class PrefRegistrySimple; @@ -56,7 +57,8 @@ void LogResponseOrErrorCode(int response_code, int error_code, bool was_https) override; - void LogSuccess(size_t log_size) override; + void LogSuccessLogSize(size_t log_size) override; + void LogSuccessMetadata(const std::string& staged_log) override; void LogLargeRejection(size_t log_size) override; metrics::UnsentLogStore unsent_log_store_;
diff --git a/components/ukm/ukm_service.cc b/components/ukm/ukm_service.cc index 4750e789..d69d5b20 100644 --- a/components/ukm/ukm_service.cc +++ b/components/ukm/ukm_service.cc
@@ -13,6 +13,7 @@ #include "base/feature_list.h" #include "base/metrics/field_trial.h" #include "base/metrics/field_trial_params.h" +#include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/rand_util.h" #include "base/threading/sequenced_task_runner_handle.h" @@ -153,11 +154,8 @@ }, report.entries(), report.mutable_entries()); - std::string reserialized_log_data; - report.SerializeToString(&reserialized_log_data); - // This allows catching errors with bad UKM serialization we've seen before - // that would otherwise only be noticed on the server. - DCHECK(UkmService::LogCanBeParsed(reserialized_log_data)); + std::string reserialized_log_data = + UkmService::SerializeReportProtoToString(&report); // Replace the compressed log in the store by its filtered version. const std::string old_compressed_log_data = @@ -181,13 +179,23 @@ bool report_parse_successful = report.ParseFromString(serialized_data); if (!report_parse_successful) return false; - // Make sure the reserialzed log from this |report| matches the input + // Make sure the reserialized log from this |report| matches the input // |serialized_data|. std::string reserialized_from_report; report.SerializeToString(&reserialized_from_report); return reserialized_from_report == serialized_data; } +std::string UkmService::SerializeReportProtoToString(Report* report) { + std::string serialized_full_log; + report->SerializeToString(&serialized_full_log); + + // This allows catching errors with bad UKM serialization we've seen before + // that would otherwise only be noticed on the server. + DCHECK(UkmService::LogCanBeParsed(serialized_full_log)); + return serialized_full_log; +} + UkmService::UkmService(PrefService* pref_service, metrics::MetricsServiceClient* client, std::unique_ptr<metrics::UkmDemographicMetricsProvider> @@ -418,11 +426,8 @@ AddSyncedUserNoiseBirthYearAndGenderToReport(&report); - std::string serialized_log; - report.SerializeToString(&serialized_log); - // This allows catching errors with bad UKM serialization we've seen before - // that would otherwise only be noticed on the server. - DCHECK(LogCanBeParsed(serialized_log)); + std::string serialized_log = + UkmService::SerializeReportProtoToString(&report); reporting_service_.ukm_log_store()->StoreLog(serialized_log, base::nullopt); }
diff --git a/components/ukm/ukm_service.h b/components/ukm/ukm_service.h index 6e0d4eaf..3355ddf9 100644 --- a/components/ukm/ukm_service.h +++ b/components/ukm/ukm_service.h
@@ -117,9 +117,12 @@ // components/metrics/demographics/demographic_metrics_provider.h. static const base::Feature kReportUserNoisedUserBirthYearAndGender; - // Makes sure that the serialized ukm report can be parsed. + // Makes sure that the serialized UKM report can be parsed. static bool LogCanBeParsed(const std::string& serialized_data); + // Serializes the input UKM report into a string and validates it. + static std::string SerializeReportProtoToString(Report* report); + private: friend ::metrics::UkmBrowserTestBase; friend ::ukm::UkmTestHelper;
diff --git a/components/zoom/zoom_controller.cc b/components/zoom/zoom_controller.cc index f98dfb21..260640a 100644 --- a/components/zoom/zoom_controller.cc +++ b/components/zoom/zoom_controller.cc
@@ -112,7 +112,7 @@ // Cannot zoom in disabled mode. Also, don't allow changing zoom level on // a crashed tab, an error page or an interstitial page. if (zoom_mode_ == ZOOM_MODE_DISABLED || - !web_contents()->GetRenderViewHost()->IsRenderViewLive()) + !web_contents()->GetMainFrame()->GetRenderViewHost()->IsRenderViewLive()) return false; // Store client data so the |client| can be attributed when the zoom @@ -157,8 +157,13 @@ event_data_.reset(new ZoomChangedEventData(web_contents(), GetZoomLevel(), zoom_level, zoom_mode_, false /* can_show_bubble */)); - int process_id = web_contents()->GetRenderViewHost()->GetProcess()->GetID(); - int view_id = web_contents()->GetRenderViewHost()->GetRoutingID(); + int process_id = web_contents() + ->GetMainFrame() + ->GetRenderViewHost() + ->GetProcess() + ->GetID(); + int view_id = + web_contents()->GetMainFrame()->GetRenderViewHost()->GetRoutingID(); if (zoom_mode_ == ZOOM_MODE_ISOLATED || zoom_map->UsesTemporaryZoomLevel(process_id, view_id)) { zoom_map->SetTemporaryZoomLevel(process_id, view_id, zoom_level); @@ -188,8 +193,13 @@ content::HostZoomMap* zoom_map = content::HostZoomMap::GetForWebContents(web_contents()); DCHECK(zoom_map); - int process_id = web_contents()->GetRenderViewHost()->GetProcess()->GetID(); - int view_id = web_contents()->GetRenderViewHost()->GetRoutingID(); + int process_id = web_contents() + ->GetMainFrame() + ->GetRenderViewHost() + ->GetProcess() + ->GetID(); + int view_id = + web_contents()->GetMainFrame()->GetRenderViewHost()->GetRoutingID(); double original_zoom_level = GetZoomLevel(); DCHECK(!event_data_); @@ -279,8 +289,13 @@ if (zoom_mode_ != ZOOM_MODE_ISOLATED && zoom_mode_ != ZOOM_MODE_MANUAL) return; - int process_id = web_contents()->GetRenderViewHost()->GetProcess()->GetID(); - int view_id = web_contents()->GetRenderViewHost()->GetRoutingID(); + int process_id = web_contents() + ->GetMainFrame() + ->GetRenderViewHost() + ->GetProcess() + ->GetID(); + int view_id = + web_contents()->GetMainFrame()->GetRenderViewHost()->GetRoutingID(); content::HostZoomMap* zoom_map = content::HostZoomMap::GetForWebContents(web_contents()); zoom_level_ = zoom_map->GetDefaultZoomLevel(); @@ -390,8 +405,13 @@ } void ZoomController::SetPageScaleFactorIsOneForTesting(bool is_one) { - int process_id = web_contents()->GetRenderViewHost()->GetProcess()->GetID(); - int view_id = web_contents()->GetRenderViewHost()->GetRoutingID(); + int process_id = web_contents() + ->GetMainFrame() + ->GetRenderViewHost() + ->GetProcess() + ->GetID(); + int view_id = + web_contents()->GetMainFrame()->GetRenderViewHost()->GetRoutingID(); host_zoom_map_->SetPageScaleFactorIsOneForView(process_id, view_id, is_one); }
diff --git a/content/browser/accessibility/browser_accessibility_android.cc b/content/browser/accessibility/browser_accessibility_android.cc index bfe1241f..980e7a0 100644 --- a/content/browser/accessibility/browser_accessibility_android.cc +++ b/content/browser/accessibility/browser_accessibility_android.cc
@@ -91,6 +91,50 @@ manager->FireLocationChanged(this); } +base::string16 +BrowserAccessibilityAndroid::GetLocalizedStringForImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus status) const { + // Default to standard text, except for special case of eligible. + if (status != ax::mojom::ImageAnnotationStatus::kEligibleForAnnotation) + return BrowserAccessibility::GetLocalizedStringForImageAnnotationStatus( + status); + + ContentClient* content_client = content::GetContentClient(); + + int message_id = 0; + + switch (static_cast<ax::mojom::WritingDirection>( + GetIntAttribute(ax::mojom::IntAttribute::kTextDirection))) { + case ax::mojom::WritingDirection::kRtl: + message_id = IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_RTL; + break; + case ax::mojom::WritingDirection::kTtb: + case ax::mojom::WritingDirection::kBtt: + case ax::mojom::WritingDirection::kNone: + case ax::mojom::WritingDirection::kLtr: + message_id = IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_LTR; + break; + } + + DCHECK(message_id); + + return content_client->GetLocalizedString(message_id); +} + +void BrowserAccessibilityAndroid::AppendTextToString( + base::string16 extra_text, + base::string16* string) const { + if (extra_text.empty()) + return; + + if (string->empty()) { + *string = extra_text; + return; + } + + *string += base::string16(base::ASCIIToUTF16(", ")) + extra_text; +} + bool BrowserAccessibilityAndroid::IsCheckable() const { return GetData().HasCheckedState(); } @@ -479,6 +523,31 @@ if (GetRole() == ax::mojom::Role::kRootWebArea) return text; + // Append image description strings to the text. + auto status = GetData().GetImageAnnotationStatus(); + switch (status) { + case ax::mojom::ImageAnnotationStatus::kEligibleForAnnotation: + case ax::mojom::ImageAnnotationStatus::kAnnotationPending: + case ax::mojom::ImageAnnotationStatus::kAnnotationEmpty: + case ax::mojom::ImageAnnotationStatus::kAnnotationAdult: + case ax::mojom::ImageAnnotationStatus::kAnnotationProcessFailed: + AppendTextToString(GetLocalizedStringForImageAnnotationStatus(status), + &text); + break; + + case ax::mojom::ImageAnnotationStatus::kAnnotationSucceeded: + AppendTextToString( + GetString16Attribute(ax::mojom::StringAttribute::kImageAnnotation), + &text); + break; + + case ax::mojom::ImageAnnotationStatus::kNone: + case ax::mojom::ImageAnnotationStatus::kWillNotAnnotateDueToScheme: + case ax::mojom::ImageAnnotationStatus::kIneligibleForAnnotation: + case ax::mojom::ImageAnnotationStatus::kSilentlyEligibleForAnnotation: + break; + } + // This is called from IsLeaf, so don't call PlatformChildCount // from within this! if (text.empty() && (HasOnlyTextChildren() || @@ -578,6 +647,10 @@ if (GetRole() == ax::mojom::Role::kListBoxOption) state_descs.push_back(GetListBoxItemStateDescription()); + // For nodes with non-trivial aria-current values, communicate state. + if (HasAriaCurrent()) + state_descs.push_back(GetAriaCurrentStateDescription()); + // Concatenate all state descriptions and return. return base::JoinString(state_descs, base::ASCIIToUTF16(" ")); } @@ -670,6 +743,47 @@ nullptr); } +base::string16 BrowserAccessibilityAndroid::GetAriaCurrentStateDescription() + const { + content::ContentClient* content_client = content::GetContentClient(); + + base::string16 aria_current_state; + + switch (static_cast<ax::mojom::AriaCurrentState>( + GetIntAttribute(ax::mojom::IntAttribute::kAriaCurrentState))) { + case ax::mojom::AriaCurrentState::kPage: + aria_current_state = + content_client->GetLocalizedString(IDS_AX_ARIA_CURRENT_PAGE); + break; + case ax::mojom::AriaCurrentState::kStep: + aria_current_state = + content_client->GetLocalizedString(IDS_AX_ARIA_CURRENT_STEP); + break; + case ax::mojom::AriaCurrentState::kLocation: + aria_current_state = + content_client->GetLocalizedString(IDS_AX_ARIA_CURRENT_LOCATION); + break; + case ax::mojom::AriaCurrentState::kDate: + aria_current_state = + content_client->GetLocalizedString(IDS_AX_ARIA_CURRENT_DATE); + break; + case ax::mojom::AriaCurrentState::kTime: + aria_current_state = + content_client->GetLocalizedString(IDS_AX_ARIA_CURRENT_TIME); + break; + case ax::mojom::AriaCurrentState::kTrue: + default: + aria_current_state = + content_client->GetLocalizedString(IDS_AX_ARIA_CURRENT_TRUE); + break; + } + + return base::ReplaceStringPlaceholders( + content_client->GetLocalizedString( + IDS_AX_ARIA_CURRENT_STATE_DESCRIPTION_BASE), + aria_current_state, nullptr); +} + std::string BrowserAccessibilityAndroid::GetRoleString() const { return ui::ToString(GetRole()); } @@ -711,6 +825,24 @@ return parent->GetRoleDescription(); } + // If this node is an image, check status and potentially add unlabeled role. + auto status = GetData().GetImageAnnotationStatus(); + switch (status) { + case ax::mojom::ImageAnnotationStatus::kEligibleForAnnotation: + case ax::mojom::ImageAnnotationStatus::kAnnotationPending: + case ax::mojom::ImageAnnotationStatus::kAnnotationEmpty: + case ax::mojom::ImageAnnotationStatus::kAnnotationAdult: + case ax::mojom::ImageAnnotationStatus::kAnnotationProcessFailed: + return GetLocalizedRoleDescriptionForUnlabeledImage(); + + case ax::mojom::ImageAnnotationStatus::kAnnotationSucceeded: + case ax::mojom::ImageAnnotationStatus::kNone: + case ax::mojom::ImageAnnotationStatus::kWillNotAnnotateDueToScheme: + case ax::mojom::ImageAnnotationStatus::kIneligibleForAnnotation: + case ax::mojom::ImageAnnotationStatus::kSilentlyEligibleForAnnotation: + break; + } + int message_id = -1; switch (GetRole()) { case ax::mojom::Role::kAbbr: @@ -1908,6 +2040,17 @@ } } +bool BrowserAccessibilityAndroid::HasAriaCurrent() const { + if (!HasIntAttribute(ax::mojom::IntAttribute::kAriaCurrentState)) + return false; + + auto current = static_cast<ax::mojom::AriaCurrentState>( + GetIntAttribute(ax::mojom::IntAttribute::kAriaCurrentState)); + + return current != ax::mojom::AriaCurrentState::kNone && + current != ax::mojom::AriaCurrentState::kFalse; +} + bool BrowserAccessibilityAndroid::HasNonEmptyValue() const { return IsTextField() && !GetValueForControl().empty(); }
diff --git a/content/browser/accessibility/browser_accessibility_android.h b/content/browser/accessibility/browser_accessibility_android.h index 66347b5..8ce57ed 100644 --- a/content/browser/accessibility/browser_accessibility_android.h +++ b/content/browser/accessibility/browser_accessibility_android.h
@@ -26,6 +26,8 @@ // Overrides from BrowserAccessibility. void OnDataChanged() override; void OnLocationChanged() override; + base::string16 GetLocalizedStringForImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus status) const override; bool IsCheckable() const; bool IsChecked() const; @@ -73,6 +75,8 @@ bool CanOpenPopup() const; + bool HasAriaCurrent() const; + bool HasFocusableNonOptionChild() const; bool HasNonEmptyValue() const; @@ -96,6 +100,7 @@ base::string16 GetCheckboxStateDescription() const; base::string16 GetListBoxStateDescription() const; base::string16 GetListBoxItemStateDescription() const; + base::string16 GetAriaCurrentStateDescription() const; base::string16 GetRoleDescription() const; @@ -192,6 +197,9 @@ static size_t CommonEndLengths(const base::string16 a, const base::string16 b); + void AppendTextToString(base::string16 extra_text, + base::string16* string) const; + base::string16 cached_text_; base::string16 old_value_; base::string16 new_value_;
diff --git a/content/browser/accessibility/browser_accessibility_android_unittest.cc b/content/browser/accessibility/browser_accessibility_android_unittest.cc index 00235ecf..32b6bca 100644 --- a/content/browser/accessibility/browser_accessibility_android_unittest.cc +++ b/content/browser/accessibility/browser_accessibility_android_unittest.cc
@@ -10,10 +10,39 @@ #include "build/build_config.h" #include "content/browser/accessibility/browser_accessibility_manager.h" #include "content/browser/accessibility/test_browser_accessibility_delegate.h" +#include "content/test/test_content_client.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/strings/grit/blink_strings.h" namespace content { +class MockContentClient : public TestContentClient { + public: + base::string16 GetLocalizedString(int message_id) override { + switch (message_id) { + case IDS_AX_UNLABELED_IMAGE_ROLE_DESCRIPTION: + return base::ASCIIToUTF16("Unlabeled image"); + case IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_LTR: + return base::ASCIIToUTF16( + "This image isn't labeled. Open the More Options menu at the top " + "right to get image descriptions."); + case IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_RTL: + return base::ASCIIToUTF16( + "This image isn't labeled. Open the More Options menu at the top " + "left to get image descriptions."); + case IDS_AX_IMAGE_ANNOTATION_PENDING: + return base::ASCIIToUTF16("Getting description..."); + case IDS_AX_IMAGE_ANNOTATION_ADULT: + return base::ASCIIToUTF16( + "Appears to contain adult content. No description available."); + case IDS_AX_IMAGE_ANNOTATION_NO_DESCRIPTION: + return base::ASCIIToUTF16("No description available."); + default: + return base::string16(); + } + } +}; + class BrowserAccessibilityAndroidTest : public testing::Test { public: BrowserAccessibilityAndroidTest(); @@ -26,6 +55,7 @@ private: void SetUp() override; base::test::TaskEnvironment task_environment_; + MockContentClient client_; DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityAndroidTest); }; @@ -37,6 +67,7 @@ ui::AXPlatformNode::NotifyAddAXModeFlags(ui::kAXModeComplete); test_browser_accessibility_delegate_ = std::make_unique<TestBrowserAccessibilityDelegate>(); + SetContentClient(&client_); } TEST_F(BrowserAccessibilityAndroidTest, TestRetargetTextOnly) { @@ -280,4 +311,301 @@ manager.reset(); } +TEST_F(BrowserAccessibilityAndroidTest, + TestImageRoleDescription_UnlabeledImage) { + ui::AXTreeUpdate tree; + tree.root_id = 1; + tree.nodes.resize(6); + tree.nodes[0].id = 1; + tree.nodes[0].child_ids = {2, 3, 4, 5, 6}; + + // Images with these annotation statuses should report "Unlabeled image" + tree.nodes[1].id = 2; + tree.nodes[1].role = ax::mojom::Role::kImage; + tree.nodes[1].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kEligibleForAnnotation); + + tree.nodes[2].id = 3; + tree.nodes[2].role = ax::mojom::Role::kImage; + tree.nodes[2].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationPending); + + tree.nodes[3].id = 4; + tree.nodes[3].role = ax::mojom::Role::kImage; + tree.nodes[3].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationEmpty); + + tree.nodes[4].id = 5; + tree.nodes[4].role = ax::mojom::Role::kImage; + tree.nodes[4].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationAdult); + + tree.nodes[5].id = 6; + tree.nodes[5].role = ax::mojom::Role::kImage; + tree.nodes[5].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationProcessFailed); + + std::unique_ptr<BrowserAccessibilityManager> manager( + BrowserAccessibilityManager::Create( + tree, test_browser_accessibility_delegate_.get())); + + for (int child_index = 0; child_index < int{tree.nodes[0].child_ids.size()}; + ++child_index) { + BrowserAccessibilityAndroid* child = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(child_index)); + + EXPECT_EQ(base::ASCIIToUTF16("Unlabeled image"), + child->GetRoleDescription()); + } +} + +TEST_F(BrowserAccessibilityAndroidTest, TestImageRoleDescription_Empty) { + ui::AXTreeUpdate tree; + tree.root_id = 1; + tree.nodes.resize(6); + tree.nodes[0].id = 1; + tree.nodes[0].child_ids = {2, 3, 4, 5, 6}; + + // Images with these annotation statuses should report nothing. + tree.nodes[1].id = 2; + tree.nodes[1].role = ax::mojom::Role::kImage; + tree.nodes[1].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationSucceeded); + + tree.nodes[2].id = 3; + tree.nodes[2].role = ax::mojom::Role::kImage; + tree.nodes[2].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kNone); + + tree.nodes[3].id = 4; + tree.nodes[3].role = ax::mojom::Role::kImage; + tree.nodes[3].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kWillNotAnnotateDueToScheme); + + tree.nodes[4].id = 5; + tree.nodes[4].role = ax::mojom::Role::kImage; + tree.nodes[4].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kIneligibleForAnnotation); + + tree.nodes[5].id = 6; + tree.nodes[5].role = ax::mojom::Role::kImage; + tree.nodes[5].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kSilentlyEligibleForAnnotation); + + std::unique_ptr<BrowserAccessibilityManager> manager( + BrowserAccessibilityManager::Create( + tree, test_browser_accessibility_delegate_.get())); + + for (int child_index = 0; child_index < int{tree.nodes[0].child_ids.size()}; + ++child_index) { + BrowserAccessibilityAndroid* child = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(child_index)); + + EXPECT_EQ(base::string16(), child->GetRoleDescription()); + } +} + +TEST_F(BrowserAccessibilityAndroidTest, TestImageInnerText_Eligible) { + ui::AXTreeUpdate tree; + tree.root_id = 1; + tree.nodes.resize(3); + tree.nodes[0].id = 1; + tree.nodes[0].child_ids = {2, 3}; + + tree.nodes[1].id = 2; + tree.nodes[1].role = ax::mojom::Role::kImage; + tree.nodes[1].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kEligibleForAnnotation); + tree.nodes[1].AddIntAttribute( + ax::mojom::IntAttribute::kTextDirection, + static_cast<int32_t>(ax::mojom::WritingDirection::kLtr)); + + tree.nodes[2].id = 3; + tree.nodes[2].role = ax::mojom::Role::kImage; + tree.nodes[2].SetName("image_name"); + tree.nodes[2].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kEligibleForAnnotation); + tree.nodes[2].AddIntAttribute( + ax::mojom::IntAttribute::kTextDirection, + static_cast<int32_t>(ax::mojom::WritingDirection::kRtl)); + + std::unique_ptr<BrowserAccessibilityManager> manager( + BrowserAccessibilityManager::Create( + tree, test_browser_accessibility_delegate_.get())); + + BrowserAccessibilityAndroid* image_ltr = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(0)); + + EXPECT_EQ( + base::ASCIIToUTF16("This image isn't labeled. Open the More Options menu " + "at the top right to get image descriptions."), + image_ltr->GetInnerText()); + + BrowserAccessibilityAndroid* image_rtl = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(1)); + + EXPECT_EQ(base::ASCIIToUTF16( + "image_name, This image isn't labeled. Open the More Options " + "menu at the top left to get image descriptions."), + image_rtl->GetInnerText()); +} + +TEST_F(BrowserAccessibilityAndroidTest, + TestImageInnerText_PendingAdultOrEmpty) { + ui::AXTreeUpdate tree; + tree.root_id = 1; + tree.nodes.resize(5); + tree.nodes[0].id = 1; + tree.nodes[0].child_ids = {2, 3, 4, 5}; + + tree.nodes[1].id = 2; + tree.nodes[1].role = ax::mojom::Role::kImage; + tree.nodes[1].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationPending); + + tree.nodes[2].id = 3; + tree.nodes[2].role = ax::mojom::Role::kImage; + tree.nodes[2].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationEmpty); + + tree.nodes[3].id = 4; + tree.nodes[3].role = ax::mojom::Role::kImage; + tree.nodes[3].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationAdult); + + tree.nodes[4].id = 5; + tree.nodes[4].role = ax::mojom::Role::kImage; + tree.nodes[4].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationProcessFailed); + + std::unique_ptr<BrowserAccessibilityManager> manager( + BrowserAccessibilityManager::Create( + tree, test_browser_accessibility_delegate_.get())); + + BrowserAccessibilityAndroid* image_pending = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(0)); + + BrowserAccessibilityAndroid* image_empty = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(1)); + + BrowserAccessibilityAndroid* image_adult = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(2)); + + BrowserAccessibilityAndroid* image_failed = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(3)); + + EXPECT_EQ(base::ASCIIToUTF16("Getting description..."), + image_pending->GetInnerText()); + EXPECT_EQ(base::ASCIIToUTF16("No description available."), + image_empty->GetInnerText()); + EXPECT_EQ(base::ASCIIToUTF16( + "Appears to contain adult content. No description available."), + image_adult->GetInnerText()); + EXPECT_EQ(base::ASCIIToUTF16("No description available."), + image_failed->GetInnerText()); +} + +TEST_F(BrowserAccessibilityAndroidTest, TestImageInnerText_Ineligible) { + ui::AXTreeUpdate tree; + tree.root_id = 1; + tree.nodes.resize(5); + tree.nodes[0].id = 1; + tree.nodes[0].child_ids = {2, 3, 4, 5}; + + tree.nodes[1].id = 2; + tree.nodes[1].role = ax::mojom::Role::kImage; + tree.nodes[1].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kNone); + + tree.nodes[2].id = 3; + tree.nodes[2].role = ax::mojom::Role::kImage; + tree.nodes[2].SetName("image_name"); + tree.nodes[2].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kWillNotAnnotateDueToScheme); + + tree.nodes[3].id = 4; + tree.nodes[3].role = ax::mojom::Role::kImage; + tree.nodes[3].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kIneligibleForAnnotation); + + tree.nodes[4].id = 5; + tree.nodes[4].role = ax::mojom::Role::kImage; + tree.nodes[4].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kSilentlyEligibleForAnnotation); + + std::unique_ptr<BrowserAccessibilityManager> manager( + BrowserAccessibilityManager::Create( + tree, test_browser_accessibility_delegate_.get())); + + BrowserAccessibilityAndroid* image_none = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(0)); + + BrowserAccessibilityAndroid* image_scheme = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(1)); + + BrowserAccessibilityAndroid* image_ineligible = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(2)); + + BrowserAccessibilityAndroid* image_silent = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(3)); + + EXPECT_EQ(base::string16(), image_none->GetInnerText()); + EXPECT_EQ(base::ASCIIToUTF16("image_name"), image_scheme->GetInnerText()); + EXPECT_EQ(base::string16(), image_ineligible->GetInnerText()); + EXPECT_EQ(base::string16(), image_silent->GetInnerText()); +} + +TEST_F(BrowserAccessibilityAndroidTest, + TestImageInnerText_AnnotationSucceeded) { + ui::AXTreeUpdate tree; + tree.root_id = 1; + tree.nodes.resize(3); + tree.nodes[0].id = 1; + tree.nodes[0].child_ids = {2, 3}; + + tree.nodes[1].id = 2; + tree.nodes[1].role = ax::mojom::Role::kImage; + tree.nodes[1].AddStringAttribute(ax::mojom::StringAttribute::kImageAnnotation, + "test_annotation"); + tree.nodes[1].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationSucceeded); + + tree.nodes[2].id = 3; + tree.nodes[2].role = ax::mojom::Role::kImage; + tree.nodes[2].SetName("image_name"); + tree.nodes[2].AddStringAttribute(ax::mojom::StringAttribute::kImageAnnotation, + "test_annotation"); + tree.nodes[2].SetImageAnnotationStatus( + ax::mojom::ImageAnnotationStatus::kAnnotationSucceeded); + + std::unique_ptr<BrowserAccessibilityManager> manager( + BrowserAccessibilityManager::Create( + tree, test_browser_accessibility_delegate_.get())); + + BrowserAccessibilityAndroid* image_succeeded = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(0)); + + BrowserAccessibilityAndroid* image_succeeded_with_name = + static_cast<BrowserAccessibilityAndroid*>( + manager->GetRoot()->PlatformGetChild(1)); + + EXPECT_EQ(base::ASCIIToUTF16("test_annotation"), + image_succeeded->GetInnerText()); + EXPECT_EQ(base::ASCIIToUTF16("image_name, test_annotation"), + image_succeeded_with_name->GetInnerText()); +} + } // namespace content
diff --git a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc index 460fe2c..023d1be3 100644 --- a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc +++ b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
@@ -92,6 +92,11 @@ virtual void ChooseFeatures(std::vector<base::Feature>* enabled_features, std::vector<base::Feature>* disabled_features); + void ExecuteScript(const char* script) { + shell()->web_contents()->GetMainFrame()->ExecuteJavaScriptForTests( + base::ASCIIToUTF16(script), base::NullCallback()); + } + void LoadInitialAccessibilityTreeFromUrl( const GURL& url, ui::AXMode accessibility_mode = ui::kAXModeComplete) { @@ -1647,4 +1652,46 @@ } #endif // IS_FAST_BUILD +IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest, + AccessibilityAddClickListener) { + // This is a regression test for a bug where a node is ignored in the + // accessibility tree (in this case the BODY), and then by adding a click + // listener to it we can make it no longer ignored without correctly firing + // the right notifications - with the end result being that the whole + // accessibility tree is broken. + LoadInitialAccessibilityTreeFromUrl(GURL(R"HTML(data:text/html, + <!DOCTYPE html> + <body> + <div> + <button>This should be accessible</button> + </div> + </body></html>)HTML")); + + BrowserAccessibilityManager* browser_accessibility_manager = GetManager(); + BrowserAccessibility* root_browser_accessibility = + browser_accessibility_manager->GetRoot(); + ASSERT_NE(root_browser_accessibility, nullptr); + + const ui::AXNode* root_node = root_browser_accessibility->node(); + ASSERT_NE(root_node, nullptr); + const ui::AXNode* html_node = root_node->children()[0]; + ASSERT_NE(html_node, nullptr); + const ui::AXNode* body_node = html_node->children()[0]; + ASSERT_NE(body_node, nullptr); + + // Make sure this is actually the body element. + ASSERT_EQ(body_node->GetStringAttribute(ax::mojom::StringAttribute::kHtmlTag), + "body"); + ASSERT_TRUE(body_node->IsIgnored()); + + AccessibilityNotificationWaiter waiter( + shell()->web_contents(), ui::kAXModeComplete, + ui::AXEventGenerator::Event::IGNORED_CHANGED); + ExecuteScript("document.body.addEventListener('mousedown', function() {});"); + waiter.WaitForNotification(); + + // The body should no longer be ignored after adding a mouse button listener. + ASSERT_FALSE(body_node->IsIgnored()); +} + } // namespace content
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc index 26aef7b..ac2d82d 100644 --- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -387,13 +387,6 @@ RunHtmlTest(FILE_PATH_LITERAL("actions.html")); } -// crbug.com/1135774. Flaky due to missing invalidation when adding or removing -// a mouse button listener. -IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, - DISABLED_AccessibilityAddClickListener) { - RunHtmlTest(FILE_PATH_LITERAL("add-click-listener.html")); -} - IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAddress) { RunHtmlTest(FILE_PATH_LITERAL("address.html")); }
diff --git a/content/browser/browser_plugin/browser_plugin_embedder.cc b/content/browser/browser_plugin/browser_plugin_embedder.cc index 21cf7f0..1cb7e07 100644 --- a/content/browser/browser_plugin/browser_plugin_embedder.cc +++ b/content/browser/browser_plugin/browser_plugin_embedder.cc
@@ -9,7 +9,6 @@ #include "content/browser/browser_plugin/browser_plugin_guest.h" #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/browser/web_contents/web_contents_impl.h" -#include "content/common/drag_messages.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_plugin_guest_manager.h" #include "content/public/browser/native_web_keyboard_event.h"
diff --git a/content/browser/renderer_host/drop_data_util.cc b/content/browser/renderer_host/drop_data_util.cc index 073d889a..9ed1432 100644 --- a/content/browser/renderer_host/drop_data_util.cc +++ b/content/browser/renderer_host/drop_data_util.cc
@@ -8,11 +8,12 @@ #include <utility> #include <vector> +#include "base/check.h" #include "base/containers/span.h" #include "base/files/file_path.h" +#include "base/optional.h" #include "base/strings/utf_string_conversions.h" #include "content/browser/file_system_access/native_file_system_manager_impl.h" -#include "content/public/common/drop_data.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "services/network/public/mojom/referrer_policy.mojom-shared.h" #include "storage/browser/file_system/external_mount_points.h" @@ -111,14 +112,70 @@ items.push_back(blink::mojom::DragItem::NewString(std::move(item))); } - return blink::mojom::DragData::New(std::move(items), - base::UTF16ToUTF8(drop_data.filesystem_id), - drop_data.referrer_policy); + return blink::mojom::DragData::New( + std::move(items), + // While this shouldn't be a problem in production code, as the + // real file_system_id should never be empty if used in browser to + // renderer messages, some tests use this function to test renderer to + // browser messages, in which case the field is unused and this will hit + // a DCHECK. + drop_data.filesystem_id.empty() + ? base::nullopt + : base::Optional<std::string>( + base::UTF16ToUTF8(drop_data.filesystem_id)), + drop_data.referrer_policy); +} + +blink::mojom::DragDataPtr DropMetaDataToDragData( + const std::vector<DropData::Metadata>& drop_meta_data) { + std::vector<blink::mojom::DragItemPtr> items; + + for (const auto& meta_data_item : drop_meta_data) { + if (meta_data_item.kind == DropData::Kind::STRING) { + blink::mojom::DragItemStringPtr item = + blink::mojom::DragItemString::New(); + item->string_type = base::UTF16ToUTF8(meta_data_item.mime_type); + // Have to pass a dummy URL here instead of an empty URL because the + // DropData received by browser_plugins goes through a round trip: + // DropData::MetaData --> WebDragData-->DropData. In the end, DropData + // will contain an empty URL (which means no URL is dragged) if the URL in + // WebDragData is empty. + if (base::EqualsASCII(meta_data_item.mime_type, ui::kMimeTypeURIList)) { + item->string_data = base::UTF8ToUTF16("about:dragdrop-placeholder"); + } + items.push_back(blink::mojom::DragItem::NewString(std::move(item))); + continue; + } + + // TODO(hush): crbug.com/584789. Blink needs to support creating a file with + // just the mimetype. This is needed to drag files to WebView on Android + // platform. + if ((meta_data_item.kind == DropData::Kind::FILENAME) && + !meta_data_item.filename.empty()) { + blink::mojom::DragItemFilePtr item = blink::mojom::DragItemFile::New(); + item->path = meta_data_item.filename; + items.push_back(blink::mojom::DragItem::NewFile(std::move(item))); + continue; + } + + if (meta_data_item.kind == DropData::Kind::FILESYSTEMFILE) { + blink::mojom::DragItemFileSystemFilePtr item = + blink::mojom::DragItemFileSystemFile::New(); + item->url = meta_data_item.file_system_url; + items.push_back( + blink::mojom::DragItem::NewFileSystemFile(std::move(item))); + continue; + } + } + return blink::mojom::DragData::New(std::move(items), base::nullopt, + network::mojom::ReferrerPolicy::kDefault); } DropData DragDataToDropData(const blink::mojom::DragData& drag_data) { - DropData result; + // This field should be empty when dragging from the renderer. + DCHECK(!drag_data.file_system_id); + DropData result; for (const blink::mojom::DragItemPtr& item : drag_data.items) { switch (item->which()) { case blink::mojom::DragItemDataView::Tag::STRING: { @@ -168,10 +225,13 @@ case blink::mojom::DragItemDataView::Tag::FILE_SYSTEM_FILE: { const blink::mojom::DragItemFileSystemFilePtr& file_system_file_item = item->get_file_system_file(); + // This field should be empty when dragging from the renderer. + DCHECK(!file_system_file_item->file_system_id); + DropData::FileSystemFileInfo info; info.url = file_system_file_item->url; info.size = file_system_file_item->size; - info.filesystem_id = file_system_file_item->file_system_id; + info.filesystem_id = std::string(); result.file_system_files.push_back(std::move(info)); break; }
diff --git a/content/browser/renderer_host/drop_data_util.h b/content/browser/renderer_host/drop_data_util.h index 705ab026..f8575f7 100644 --- a/content/browser/renderer_host/drop_data_util.h +++ b/content/browser/renderer_host/drop_data_util.h
@@ -5,12 +5,14 @@ #ifndef CONTENT_BROWSER_RENDERER_HOST_DROP_DATA_UTIL_H_ #define CONTENT_BROWSER_RENDERER_HOST_DROP_DATA_UTIL_H_ +#include <vector> + #include "content/common/content_export.h" +#include "content/public/common/drop_data.h" #include "third_party/blink/public/mojom/page/drag.mojom-forward.h" namespace content { class NativeFileSystemManagerImpl; -struct DropData; CONTENT_EXPORT blink::mojom::DragDataPtr DropDataToDragData( @@ -18,6 +20,10 @@ NativeFileSystemManagerImpl* native_file_system_manager, int child_id); +CONTENT_EXPORT +blink::mojom::DragDataPtr DropMetaDataToDragData( + const std::vector<DropData::Metadata>& drop_meta_data); + CONTENT_EXPORT DropData DragDataToDropData(const blink::mojom::DragData& drag_data);
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index e8fb87936..cd4aca2e 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -75,7 +75,6 @@ #include "content/browser/storage_partition_impl.h" #include "content/common/content_constants_internal.h" #include "content/common/cursors/webcursor.h" -#include "content/common/drag_messages.h" #include "content/common/frame_messages.h" #include "content/common/input_messages.h" #include "content/common/view_messages.h" @@ -668,7 +667,6 @@ bool handled = true; IPC_BEGIN_MESSAGE_MAP(RenderWidgetHostImpl, msg) IPC_MESSAGE_HANDLER(WidgetHostMsg_RequestSetBounds, OnRequestSetBounds) - IPC_MESSAGE_HANDLER(DragHostMsg_UpdateDragCursor, OnUpdateDragCursor) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() @@ -1766,9 +1764,14 @@ const gfx::PointF& screen_pt, DragOperationsMask operations_allowed, int key_modifiers) { - Send(new DragMsg_TargetDragEnter(GetRoutingID(), metadata, client_pt, - screen_pt, operations_allowed, - key_modifiers)); + // TODO(https://crbug.com/1102769): Replace with a for_frame() check. + if (blink_frame_widget_) { + blink_frame_widget_->DragTargetDragEnter( + DropMetaDataToDragData(metadata), client_pt, screen_pt, + operations_allowed, key_modifiers, + base::BindOnce(&RenderWidgetHostImpl::OnUpdateDragCursor, + base::Unretained(this))); + } } void RenderWidgetHostImpl::DragTargetDragOver( @@ -1782,7 +1785,7 @@ ConvertWindowPointToViewport(client_point), screen_point, operations_allowed, key_modifiers, base::BindOnce(&RenderWidgetHostImpl::OnUpdateDragCursor, - weak_factory_.GetWeakPtr())); + base::Unretained(this))); } }
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index 962cd0f..9ede5ae0 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -101,7 +101,6 @@ #include "content/browser/webui/web_ui_controller_factory_registry.h" #include "content/browser/webui/web_ui_impl.h" #include "content/common/content_switches_internal.h" -#include "content/common/drag_messages.h" #include "content/common/frame_messages.h" #include "content/common/input_messages.h" #include "content/common/page_messages.h" @@ -850,6 +849,7 @@ native_theme_observer_.Add(native_theme); using_dark_colors_ = native_theme->ShouldUseDarkColors(); preferred_color_scheme_ = native_theme->GetPreferredColorScheme(); + preferred_contrast_ = native_theme->GetPreferredContrast(); screen_change_monitor_ = std::make_unique<ScreenChangeMonitor>(base::BindRepeating( @@ -8726,6 +8726,8 @@ bool using_dark_colors = observed_theme->ShouldUseDarkColors(); ui::NativeTheme::PreferredColorScheme preferred_color_scheme = observed_theme->GetPreferredColorScheme(); + ui::NativeTheme::PreferredContrast preferred_contrast = + observed_theme->GetPreferredContrast(); bool preferences_changed = false; if (using_dark_colors_ != using_dark_colors) { @@ -8736,6 +8738,10 @@ preferred_color_scheme_ = preferred_color_scheme; preferences_changed = true; } + if (preferred_contrast_ != preferred_contrast) { + preferred_contrast_ = preferred_contrast; + preferences_changed = true; + } if (preferences_changed) NotifyPreferencesChanged();
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h index da32720..e5a9948 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h
@@ -2079,14 +2079,17 @@ // with OOPIF renderers. blink::mojom::TextAutosizerPageInfo text_autosizer_page_info_; - // Observe native theme for changes to dark mode, and preferred color scheme. - // Used to notify the renderer of preferred color scheme changes. + // Observe native theme for changes to dark mode, preferred color scheme, and + // preferred contrast. Used to notify the renderer of preferred color scheme + // and preferred contrast changes. ScopedObserver<ui::NativeTheme, ui::NativeThemeObserver> native_theme_observer_; bool using_dark_colors_ = false; ui::NativeTheme::PreferredColorScheme preferred_color_scheme_ = ui::NativeTheme::PreferredColorScheme::kLight; + ui::NativeTheme::PreferredContrast preferred_contrast_ = + ui::NativeTheme::PreferredContrast::kNoPreference; // Prevents navigations in this contents while a javascript modal dialog is // showing.
diff --git a/content/browser/webui/shared_resources_data_source.cc b/content/browser/webui/shared_resources_data_source.cc index d265d767..957216d 100644 --- a/content/browser/webui/shared_resources_data_source.cc +++ b/content/browser/webui/shared_resources_data_source.cc
@@ -63,7 +63,6 @@ {"../../views/resources/default_100_percent/common/", "images/apps/"}, {"../../views/resources/default_200_percent/common/", "images/2x/apps/"}, {"../../webui/resources/cr_components/", "cr_components/"}, - {"../../webui/resources/cr_elements/", "cr_elements/"}, {"@out_folder@/gen/ui/webui/resources/", ""}, #if defined(OS_ANDROID) // This is a temporary fix for `target_cpu = "arm64"`. See the bug for
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc index 87656231..68125629 100644 --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc
@@ -436,15 +436,9 @@ {wrf::EnablePreciseMemoryInfo, switches::kEnablePreciseMemoryInfo, true}, {wrf::EnableNetInfoDownlinkMax, switches::kEnableNetworkInformationDownlinkMax, true}, - {wrf::EnablePermissionsAPI, switches::kDisablePermissionsAPI, false}, {wrf::EnableWebGPU, switches::kEnableUnsafeWebGPU, true}, - {wrf::EnablePresentationAPI, switches::kDisablePresentationAPI, false}, {wrf::EnableTextFragmentAnchor, switches::kDisableScrollToTextFragment, false}, - {wrf::EnableRemotePlaybackAPI, switches::kDisableRemotePlaybackAPI, - false}, - {wrf::EnableTimerThrottlingForBackgroundTabs, - switches::kDisableBackgroundTimerThrottling, false}, {wrf::EnableAccessibilityObjectModel, switches::kEnableAccessibilityObjectModel, true}, {wrf::EnableAllowSyncXHRInPageDismissal,
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn index 2bed6dd4..45cb40e 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn
@@ -71,7 +71,6 @@ "cursors/webcursor_aura.cc", "cursors/webcursor_aurawin.cc", "cursors/webcursor_ozone.cc", - "drag_messages.h", "fetch/fetch_api_request_proto.cc", "fetch/fetch_api_request_proto.h", "fetch/fetch_request_type_converters.cc",
diff --git a/content/common/content_message_generator.h b/content/common/content_message_generator.h index 5c026e1a..21fa179 100644 --- a/content/common/content_message_generator.h +++ b/content/common/content_message_generator.h
@@ -6,11 +6,6 @@ // NOLINT(build/header_guard) #include "build/build_config.h" -#undef CONTENT_COMMON_DRAG_MESSAGES_H_ -#include "content/common/drag_messages.h" -#ifndef CONTENT_COMMON_DRAG_MESSAGES_H_ -#error "Failed to include content/common/drag_messages.h" -#endif #undef CONTENT_COMMON_FRAME_MESSAGES_H_ #include "content/common/frame_messages.h" #ifndef CONTENT_COMMON_FRAME_MESSAGES_H_
diff --git a/content/common/drag_messages.h b/content/common/drag_messages.h deleted file mode 100644 index 208cbd4..0000000 --- a/content/common/drag_messages.h +++ /dev/null
@@ -1,35 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_COMMON_DRAG_MESSAGES_H_ -#define CONTENT_COMMON_DRAG_MESSAGES_H_ - -// IPC messages for drag and drop. - -#include <vector> - -#include "content/public/common/drop_data.h" -#include "ipc/ipc_message_macros.h" -#include "third_party/blink/public/common/page/drag_operation.h" -#include "ui/gfx/geometry/point_f.h" - -#define IPC_MESSAGE_START DragMsgStart - -// Messages sent from the browser to the renderer. - -IPC_MESSAGE_ROUTED5(DragMsg_TargetDragEnter, - std::vector<content::DropData::Metadata> /* drop_data */, - gfx::PointF /* client_pt */, - gfx::PointF /* screen_pt */, - blink::DragOperationsMask /* ops_allowed */, - int /* key_modifiers */) - -// Messages sent from the renderer to the browser. - -// The page wants to update the mouse cursor during a drag & drop operation. -// |is_drop_target| is true if the mouse is over a valid drop target. -IPC_MESSAGE_ROUTED1(DragHostMsg_UpdateDragCursor, - blink::DragOperation /* drag_operation */) - -#endif // CONTENT_COMMON_DRAG_MESSAGES_H_
diff --git a/content/public/test/browser_test_base.cc b/content/public/test/browser_test_base.cc index 9038f77..b457149 100644 --- a/content/public/test/browser_test_base.cc +++ b/content/public/test/browser_test_base.cc
@@ -580,7 +580,6 @@ ShutDownNetworkService(); service_manager_env.reset(); discardable_shared_memory_manager.reset(); - spawned_test_server_.reset(); } base::PostTaskAndroid::SignalNativeSchedulerShutdownForTesting(); @@ -799,9 +798,6 @@ } void BrowserTestBase::CreateTestServer(const base::FilePath& test_server_base) { - CHECK(!spawned_test_server_.get()); - spawned_test_server_ = std::make_unique<net::SpawnedTestServer>( - net::SpawnedTestServer::TYPE_HTTP, test_server_base); embedded_test_server()->AddDefaultHandlers(test_server_base); }
diff --git a/content/public/test/browser_test_base.h b/content/public/test/browser_test_base.h index 0d13f5c..39ceea1 100644 --- a/content/public/test/browser_test_base.h +++ b/content/public/test/browser_test_base.h
@@ -15,7 +15,6 @@ #include "content/public/test/no_renderer_crashes_assertion.h" #include "content/public/test/test_host_resolver.h" #include "net/test/embedded_test_server/embedded_test_server.h" -#include "net/test/spawned_test_server/spawned_test_server.h" #include "storage/browser/quota/quota_settings.h" #include "testing/gtest/include/gtest/gtest.h" @@ -112,13 +111,6 @@ // Sets expected browser exit code, in case it's different than 0 (success). void set_expected_exit_code(int code) { expected_exit_code_ = code; } - const net::SpawnedTestServer* spawned_test_server() const { - return spawned_test_server_.get(); - } - net::SpawnedTestServer* spawned_test_server() { - return spawned_test_server_.get(); - } - // Returns the embedded test server. Guaranteed to be non-NULL. const net::EmbeddedTestServer* embedded_test_server() const { return embedded_test_server_.get(); @@ -182,9 +174,6 @@ // added in SetUpOnMainThread. void InitializeNetworkProcess(); - // Testing server, started on demand. - std::unique_ptr<net::SpawnedTestServer> spawned_test_server_; - // Embedded test server, cheap to create, started on demand. std::unique_ptr<net::EmbeddedTestServer> embedded_test_server_;
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc index 86880da..fbd19e60 100644 --- a/content/public/test/browser_test_utils.cc +++ b/content/public/test/browser_test_utils.cc
@@ -801,7 +801,7 @@ aura::WindowEventDispatcher* dispatcher = window_host->dispatcher(); aura::test::WindowEventDispatcherTestApi dispatcher_test(dispatcher); RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()); + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()); if (!IsResizeComplete(&dispatcher_test, widget_host)) { WindowedNotificationObserver resize_observer( NOTIFICATION_RENDER_WIDGET_HOST_DID_UPDATE_VISUAL_PROPERTIES, @@ -937,7 +937,7 @@ wheel_event.delta_y = delta.y(); wheel_event.phase = phase; RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()); + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()); widget_host->ForwardWheelEvent(wheel_event); } @@ -957,7 +957,7 @@ wheel_event.wheel_ticks_y = (zoom_in ? 1.0 : -1.0); wheel_event.phase = phase; RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()); + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()); widget_host->ForwardWheelEvent(wheel_event); } @@ -990,7 +990,7 @@ float scale, blink::WebGestureDevice source_device) { RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()); + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()); blink::WebGestureEvent pinch_begin( blink::WebInputEvent::Type::kGesturePinchBegin, @@ -1019,7 +1019,7 @@ const gfx::Point& point, const gfx::Vector2dF& delta) { RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()); + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()); blink::WebGestureEvent scroll_begin( blink::WebGestureEvent::Type::kGestureScrollBegin, @@ -1053,7 +1053,7 @@ const gfx::Point& point, const gfx::Vector2dF& velocity) { RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()); + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()); blink::WebGestureEvent scroll_begin( blink::WebGestureEvent::Type::kGestureScrollBegin, @@ -1095,7 +1095,7 @@ blink::WebGestureDevice::kTouchscreen); gesture.SetPositionInWidget(gfx::PointF(point)); RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()); + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()); widget_host->ForwardGestureEvent(gesture); } @@ -1117,7 +1117,7 @@ blink::WebGestureDevice::kTouchpad); tap.SetPositionInWidget(gfx::PointF(point)); RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()); + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()); widget_host->ForwardGestureEvent(tap); } @@ -2208,12 +2208,12 @@ RenderFrameMetadataProviderImpl* RenderFrameMetadataProviderFromWebContents( WebContents* web_contents) { DCHECK(web_contents); - DCHECK(web_contents->GetRenderViewHost()); - DCHECK( - RenderWidgetHostImpl::From(web_contents->GetRenderViewHost()->GetWidget()) - ->render_frame_metadata_provider()); + DCHECK(web_contents->GetMainFrame()->GetRenderViewHost()); + DCHECK(RenderWidgetHostImpl::From( + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()) + ->render_frame_metadata_provider()); return RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()) + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()) ->render_frame_metadata_provider(); } @@ -2544,7 +2544,7 @@ bool RequestFrame(WebContents* web_contents) { DCHECK(web_contents); return RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()) + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()) ->RequestRepaintForTesting(); } @@ -3622,7 +3622,7 @@ } auto* rwh = RenderWidgetHostImpl::From( - web_contents->GetRenderViewHost()->GetWidget()); + web_contents->GetMainFrame()->GetRenderViewHost()->GetWidget()); if (!rwh->GetView() || !rwh->GetView()->IsSurfaceAvailableForCopy()) { ADD_FAILURE() << "RWHV surface not available for copy.";
diff --git a/content/public/test/fake_frame_widget.h b/content/public/test/fake_frame_widget.h index cb1ac169..f751641 100644 --- a/content/public/test/fake_frame_widget.h +++ b/content/public/test/fake_frame_widget.h
@@ -36,6 +36,13 @@ base::Optional<bool> GetActive() const; private: + void DragTargetDragEnter( + blink::mojom::DragDataPtr drag_data, + const gfx::PointF& point_in_viewport, + const gfx::PointF& screen_point, + blink::DragOperationsMask operations_allowed, + uint32_t key_modifiers, + base::OnceCallback<void(blink::DragOperation)> callback) override {} void DragTargetDragOver(const gfx::PointF& point_in_viewport, const gfx::PointF& screen_point, blink::DragOperationsMask operations_allowed,
diff --git a/content/public/test/test_renderer_host.cc b/content/public/test/test_renderer_host.cc index 4f54c2f..84fef65f 100644 --- a/content/public/test/test_renderer_host.cc +++ b/content/public/test/test_renderer_host.cc
@@ -178,7 +178,7 @@ } RenderViewHost* RenderViewHostTestHarness::rvh() { - RenderViewHost* result = web_contents()->GetRenderViewHost(); + RenderViewHost* result = web_contents()->GetMainFrame()->GetRenderViewHost(); CHECK_EQ(result, web_contents()->GetMainFrame()->GetRenderViewHost()); return result; }
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn index d9b5338..de552149 100644 --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn
@@ -233,17 +233,11 @@ "seccomp_sandbox_status_android.h", "stream_texture_host_android.cc", "stream_texture_host_android.h", - - # Android shares this file with Linux. - "render_view_linux.cc", ] } if (is_linux || is_chromeos) { - sources += [ - "render_view_linux.cc", - "renderer_main_platform_delegate_linux.cc", - ] + sources += [ "renderer_main_platform_delegate_linux.cc" ] } if (is_mac) { @@ -255,10 +249,7 @@ } if (is_win) { - sources += [ - "render_view_win.cc", - "renderer_main_platform_delegate_win.cc", - ] + sources += [ "renderer_main_platform_delegate_win.cc" ] } if (enable_cast_renderer) { @@ -395,7 +386,6 @@ sources += [ "media/fuchsia_renderer_factory.cc", "media/fuchsia_renderer_factory.h", - "render_view_fuchsia.cc", "renderer_main_platform_delegate_fuchsia.cc", ]
diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc index 9346c39e..e99f312 100644 --- a/content/renderer/pepper/pepper_plugin_instance_impl.cc +++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc
@@ -2033,7 +2033,7 @@ if (fullscreen) { if (!render_frame_->render_view() - ->renderer_preferences() + ->GetRendererPreferences() .plugin_fullscreen_allowed) { return false; }
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 6fa7c61..9b63b6c 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -2788,7 +2788,7 @@ const blink::RendererPreferences& RenderFrameImpl::GetRendererPreferences() const { - return render_view_->renderer_preferences(); + return render_view_->GetRendererPreferences(); } int RenderFrameImpl::ShowContextMenu( @@ -3832,7 +3832,7 @@ // non-PlzDedicatedWorker and worklets. scoped_refptr<WebWorkerFetchContextImpl> worker_fetch_context = WebWorkerFetchContextImpl::Create( - provider->context(), render_view_->renderer_preferences(), + provider->context(), render_view_->GetRendererPreferences(), std::move(watcher_receiver), GetLoaderFactoryBundle()->Clone(), GetLoaderFactoryBundle()->CloneWithoutAppCacheFactory(), /*pending_subresource_loader_updater=*/mojo::NullReceiver(), @@ -3874,7 +3874,8 @@ scoped_refptr<WebWorkerFetchContextImpl> worker_fetch_context = static_cast<DedicatedWorkerHostFactoryClient*>(factory_client) ->CreateWorkerFetchContext( - render_view_->renderer_preferences(), std::move(watcher_receiver), + render_view_->GetRendererPreferences(), + std::move(watcher_receiver), std::move(pending_resource_load_info_notifier)); worker_fetch_context->set_ancestor_frame_id(routing_id_); @@ -4720,7 +4721,7 @@ bool for_main_frame, ui::PageTransition transition_type, ForRedirect for_redirect) { - if (render_view_->renderer_preferences_.enable_do_not_track) { + if (render_view_->GetRendererPreferences().enable_do_not_track) { request.SetHttpHeaderField(blink::WebString::FromUTF8(kDoNotTrackHeader), "1"); } @@ -4771,7 +4772,7 @@ extra_data->set_force_ignore_site_for_cookies(force_ignore_site_for_cookies); extra_data->set_frame_request_blocker(frame_request_blocker_); extra_data->set_allow_cross_origin_auth_prompt( - render_view_->renderer_preferences().allow_cross_origin_auth_prompt); + render_view_->GetRendererPreferences().allow_cross_origin_auth_prompt); request.SetDownloadToNetworkCacheOnly(is_for_no_state_prefetch && !for_main_frame); @@ -4793,7 +4794,7 @@ request.SetRequestorID(render_view_->GetRoutingID()); request.SetHasUserGesture(frame_->HasTransientUserActivation()); - if (!render_view_->renderer_preferences_.enable_referrers) { + if (!render_view_->GetRendererPreferences().enable_referrers) { request.SetReferrerString(WebString()); request.SetReferrerPolicy(network::mojom::ReferrerPolicy::kNever); } @@ -4939,7 +4940,7 @@ blink::WebString RenderFrameImpl::UserAgentOverride() { if (ShouldUseUserAgentOverride()) { - return WebString::FromUTF8(render_view_->renderer_preferences_ + return WebString::FromUTF8(render_view_->GetRendererPreferences() .user_agent_override.ua_string_override); } return blink::WebString(); @@ -4948,16 +4949,16 @@ base::Optional<blink::UserAgentMetadata> RenderFrameImpl::UserAgentMetadataOverride() { if (ShouldUseUserAgentOverride()) { - return render_view_->renderer_preferences_.user_agent_override - .ua_metadata_override; + return render_view_->GetRendererPreferences() + .user_agent_override.ua_metadata_override; } return base::nullopt; } bool RenderFrameImpl::ShouldUseUserAgentOverride() const { if (!render_view_->GetWebView() || !render_view_->GetWebView()->MainFrame() || - render_view_->renderer_preferences_.user_agent_override.ua_string_override - .empty()) { + render_view_->GetRendererPreferences() + .user_agent_override.ua_string_override.empty()) { return false; } @@ -4979,7 +4980,7 @@ } blink::WebString RenderFrameImpl::DoNotTrackValue() { - if (render_view_->renderer_preferences_.enable_do_not_track) + if (render_view_->GetRendererPreferences().enable_do_not_track) return WebString::FromUTF8("1"); return WebString(); } @@ -5602,7 +5603,7 @@ // If the browser is interested, then give it a chance to look at the request. if (IsTopLevelNavigation(frame_) && - render_view_->renderer_preferences_ + render_view_->GetRendererPreferences() .browser_handles_all_top_level_requests) { OpenURL(std::move(info)); return; // Suppress the load here.
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc index 4d626254..9e4da24 100644 --- a/content/renderer/render_view_browsertest.cc +++ b/content/renderer/render_view_browsertest.cc
@@ -993,9 +993,9 @@ } TEST_F(RenderViewImplTest, BeginNavigationHandlesAllTopLevel) { - blink::RendererPreferences prefs = view()->renderer_preferences(); + blink::RendererPreferences prefs = view()->GetRendererPreferences(); prefs.browser_handles_all_top_level_requests = true; - view()->OnSetRendererPreferences(prefs); + view()->GetWebView()->SetRendererPreferences(prefs); const blink::WebNavigationType kNavTypes[] = { blink::kWebNavigationTypeLinkClicked,
diff --git a/content/renderer/render_view_fuchsia.cc b/content/renderer/render_view_fuchsia.cc deleted file mode 100644 index 64b0ee0..0000000 --- a/content/renderer/render_view_fuchsia.cc +++ /dev/null
@@ -1,50 +0,0 @@ -// Copyright (c) 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/render_view_impl.h" - -#include "skia/ext/legacy_display_globals.h" -#include "third_party/blink/public/platform/web_font_render_style.h" - -namespace content { - -namespace { - -SkFontHinting RendererPreferencesToSkiaHinting( - const blink::RendererPreferences& prefs) { - switch (prefs.hinting) { - case gfx::FontRenderParams::HINTING_NONE: - return SkFontHinting::kNone; - case gfx::FontRenderParams::HINTING_SLIGHT: - return SkFontHinting::kSlight; - case gfx::FontRenderParams::HINTING_MEDIUM: - return SkFontHinting::kNormal; - case gfx::FontRenderParams::HINTING_FULL: - return SkFontHinting::kFull; - default: - NOTREACHED(); - return SkFontHinting::kNormal; - } -} - -} // namespace - -void RenderViewImpl::UpdateFontRenderingFromRendererPrefs() { - const blink::RendererPreferences& prefs = renderer_preferences_; - blink::WebFontRenderStyle::SetHinting( - RendererPreferencesToSkiaHinting(prefs)); - blink::WebFontRenderStyle::SetAutoHint(prefs.use_autohinter); - blink::WebFontRenderStyle::SetUseBitmaps(prefs.use_bitmaps); - skia::LegacyDisplayGlobals::SetCachedPixelGeometry( - gfx::FontRenderParams::SubpixelRenderingToSkiaPixelGeometry( - prefs.subpixel_rendering)); - blink::WebFontRenderStyle::SetAntiAlias(prefs.should_antialias_text); - blink::WebFontRenderStyle::SetSubpixelRendering( - prefs.subpixel_rendering != - gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE); - blink::WebFontRenderStyle::SetSubpixelPositioning( - prefs.use_subpixel_positioning); -} - -} // namespace content
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 95188bbb..f949305 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc
@@ -11,6 +11,7 @@ #include "base/location.h" #include "base/single_thread_task_runner.h" #include "base/strings/string_piece.h" +#include "content/child/webthemeengine_impl_default.h" #include "content/common/page_messages.h" #include "content/common/view_messages.h" #include "content/public/common/content_client.h" @@ -29,7 +30,6 @@ #include "third_party/blink/public/web/modules/mediastream/web_media_stream_device_observer.h" #include "third_party/blink/public/web/web_frame_widget.h" #include "third_party/blink/public/web/web_local_frame.h" -#include "third_party/blink/public/web/web_render_theme.h" #include "third_party/blink/public/web/web_view.h" #include "third_party/blink/public/web/web_window_features.h" #include "ui/base/ui_base_features.h" @@ -168,7 +168,7 @@ if (params->window_was_created_with_opener) GetWebView()->SetOpenedByDOM(); - OnSetRendererPreferences(params->renderer_preferences); + webview_->SetRendererPreferences(params->renderer_preferences); GetContentClient()->renderer()->RenderViewCreated(this); @@ -457,7 +457,7 @@ DCHECK_EQ(GetRoutingID(), creator_frame->render_view()->GetRoutingID()); view_params->window_was_created_with_opener = true; - view_params->renderer_preferences = renderer_preferences_; + view_params->renderer_preferences = GetRendererPreferences(); view_params->web_preferences = webview_->GetWebPreferences(); view_params->view_id = reply->route_id; view_params->main_frame_frame_token = reply->main_frame_frame_token; @@ -636,7 +636,7 @@ } bool RenderViewImpl::AcceptsLoadDrops() { - return renderer_preferences_.can_accept_load_drops; + return GetRendererPreferences().can_accept_load_drops; } void RenderViewImpl::DidUpdateMainFrameLayout() { @@ -646,7 +646,12 @@ void RenderViewImpl::RegisterRendererPreferenceWatcher( mojo::PendingRemote<blink::mojom::RendererPreferenceWatcher> watcher) { - renderer_preference_watchers_.Add(std::move(watcher)); + GetWebView()->RegisterRendererPreferenceWatcher(std::move(watcher)); +} + +const blink::RendererPreferences& RenderViewImpl::GetRendererPreferences() + const { + return webview_->GetRendererPreferences(); } int RenderViewImpl::HistoryBackListCount() { @@ -686,7 +691,7 @@ } blink::WebString RenderViewImpl::AcceptLanguages() { - return WebString::FromUTF8(renderer_preferences_.accept_languages); + return WebString::FromUTF8(GetRendererPreferences().accept_languages); } // RenderView implementation --------------------------------------------------- @@ -724,52 +729,16 @@ return webview_; } -void RenderViewImpl::OnSetRendererPreferences( - const blink::RendererPreferences& renderer_prefs) { - std::string old_accept_languages = renderer_preferences_.accept_languages; - - renderer_preferences_ = renderer_prefs; - - for (auto& watcher : renderer_preference_watchers_) - watcher->NotifyUpdate(renderer_prefs); - - UpdateFontRenderingFromRendererPrefs(); - UpdateThemePrefs(); - blink::SetCaretBlinkInterval( - renderer_prefs.caret_blink_interval.has_value() - ? renderer_prefs.caret_blink_interval.value() - : base::TimeDelta::FromMilliseconds( - blink::mojom::kDefaultCaretBlinkIntervalInMilliseconds)); - -#if defined(USE_AURA) - if (renderer_prefs.use_custom_colors) { - blink::SetFocusRingColor(renderer_prefs.focus_ring_color); - blink::SetSelectionColors(renderer_prefs.active_selection_bg_color, - renderer_prefs.active_selection_fg_color, - renderer_prefs.inactive_selection_bg_color, - renderer_prefs.inactive_selection_fg_color); - if (GetWebView() && GetWebView()->MainFrameWidget()) - GetWebView()->MainFrameWidget()->ThemeChanged(); - } +void RenderViewImpl::DidUpdateRendererPreferences() { +#if defined(OS_WIN) + // Update Theme preferences on Windows. + const blink::RendererPreferences& renderer_prefs = GetRendererPreferences(); + WebThemeEngineDefault::cacheScrollBarMetrics( + renderer_prefs.vertical_scroll_bar_width_in_dips, + renderer_prefs.horizontal_scroll_bar_height_in_dips, + renderer_prefs.arrow_bitmap_height_vertical_scroll_bar_in_dips, + renderer_prefs.arrow_bitmap_width_horizontal_scroll_bar_in_dips); #endif - - if (features::IsFormControlsRefreshEnabled() && - renderer_prefs.use_custom_colors) { - blink::SetFocusRingColor(renderer_prefs.focus_ring_color); - } - - if (GetWebView()) { - if (old_accept_languages != renderer_preferences_.accept_languages) - GetWebView()->AcceptLanguagesChanged(); - - GetWebView()->GetSettings()->SetCaretBrowsingEnabled( - renderer_preferences_.caret_browsing_enabled); - } - -#if defined(USE_X11) || defined(USE_OZONE) - GetWebView()->GetSettings()->SetSelectionClipboardBufferAvailable( - renderer_preferences_.selection_clipboard_buffer_available); -#endif // defined(USE_X11) || defined(USE_OZONE) } void RenderViewImpl::OnMoveOrResizeStarted() {
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h index cb733055..e54c06b 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h
@@ -140,10 +140,6 @@ // or not. bool widgets_never_composited() const { return widgets_never_composited_; } - const blink::RendererPreferences& renderer_preferences() const { - return renderer_preferences_; - } - void set_send_content_state_immediately(bool value) { send_content_state_immediately_ = value; } @@ -172,6 +168,9 @@ void RegisterRendererPreferenceWatcher( mojo::PendingRemote<blink::mojom::RendererPreferenceWatcher> watcher); + // Returns the current instance of blink::RendererPreferences. + const blink::RendererPreferences& GetRendererPreferences() const; + // IPC::Listener implementation. bool OnMessageReceived(const IPC::Message& msg) override; @@ -203,8 +202,7 @@ bool CanHandleGestureEvent() override; void OnPageVisibilityChanged(PageVisibilityState visibility) override; void OnPageFrozenChanged(bool frozen) override; - void OnSetRendererPreferences( - const blink::RendererPreferences& renderer_prefs) override; + void DidUpdateRendererPreferences() override; void ZoomLevelChanged() override; void DidCommitCompositorFrameForLocalMainFrame( base::TimeTicks commit_start_time) override; @@ -336,23 +334,10 @@ void SuspendVideoCaptureDevices(bool suspend); #endif -#if defined(OS_MAC) - void UpdateFontRenderingFromRendererPrefs() {} -#else - void UpdateFontRenderingFromRendererPrefs(); -#endif - // In OOPIF-enabled modes, this tells each RenderFrame with a pending state // update to inform the browser process. void SendFrameStateUpdates(); -// Platform specific theme preferences if any are updated here. -#if defined(OS_WIN) - void UpdateThemePrefs(); -#elif defined(OS_POSIX) || defined(OS_FUCHSIA) - void UpdateThemePrefs() {} -#endif - // --------------------------------------------------------------------------- // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put // it in the same order in the .cc file as it was in the header. @@ -386,12 +371,6 @@ // Settings ------------------------------------------------------------------ - blink::RendererPreferences renderer_preferences_; - // These are observing changes in |renderer_preferences_|. This is used for - // keeping WorkerFetchContext in sync. - mojo::RemoteSet<blink::mojom::RendererPreferenceWatcher> - renderer_preference_watchers_; - // Whether content state (such as form state, scroll position and page // contents) should be sent to the browser immediately. This is normally // false, but set to true by some tests.
diff --git a/content/renderer/render_view_linux.cc b/content/renderer/render_view_linux.cc deleted file mode 100644 index 108619c9..0000000 --- a/content/renderer/render_view_linux.cc +++ /dev/null
@@ -1,75 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/render_view_impl.h" - -#include "skia/ext/legacy_display_globals.h" -#include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h" -#include "third_party/blink/public/platform/web_font_render_style.h" -#include "ui/gfx/font_render_params.h" - -using blink::WebFontRenderStyle; - -namespace content { - -namespace { - -SkFontHinting RendererPreferencesToSkiaHinting( - const blink::RendererPreferences& prefs) { - if (!prefs.should_antialias_text) { - // When anti-aliasing is off, GTK maps all non-zero hinting settings to - // 'Normal' hinting so we do the same. Otherwise, folks who have 'Slight' - // hinting selected will see readable text in everything expect Chromium. - switch (prefs.hinting) { - case gfx::FontRenderParams::HINTING_NONE: - return SkFontHinting::kNone; - case gfx::FontRenderParams::HINTING_SLIGHT: - case gfx::FontRenderParams::HINTING_MEDIUM: - case gfx::FontRenderParams::HINTING_FULL: - return SkFontHinting::kNormal; - default: - NOTREACHED(); - return SkFontHinting::kNormal; - } - } - - switch (prefs.hinting) { - case gfx::FontRenderParams::HINTING_NONE: - return SkFontHinting::kNone; - case gfx::FontRenderParams::HINTING_SLIGHT: - return SkFontHinting::kSlight; - case gfx::FontRenderParams::HINTING_MEDIUM: - return SkFontHinting::kNormal; - case gfx::FontRenderParams::HINTING_FULL: - return SkFontHinting::kFull; - default: - NOTREACHED(); - return SkFontHinting::kNormal; - } -} - -} // namespace - -void RenderViewImpl::UpdateFontRenderingFromRendererPrefs() { - const blink::RendererPreferences& prefs = renderer_preferences_; - WebFontRenderStyle::SetHinting(RendererPreferencesToSkiaHinting(prefs)); - WebFontRenderStyle::SetAutoHint(prefs.use_autohinter); - WebFontRenderStyle::SetUseBitmaps(prefs.use_bitmaps); - skia::LegacyDisplayGlobals::SetCachedPixelGeometry( - gfx::FontRenderParams::SubpixelRenderingToSkiaPixelGeometry( - prefs.subpixel_rendering)); - WebFontRenderStyle::SetAntiAlias(prefs.should_antialias_text); - WebFontRenderStyle::SetSubpixelRendering( - prefs.subpixel_rendering != - gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE); - WebFontRenderStyle::SetSubpixelPositioning(prefs.use_subpixel_positioning); -#if !defined(OS_ANDROID) - if (!prefs.system_font_family_name.empty()) { - WebFontRenderStyle::SetSystemFontFamily( - blink::WebString::FromUTF8(prefs.system_font_family_name)); - } -#endif -} - -} // namespace content
diff --git a/content/renderer/render_view_win.cc b/content/renderer/render_view_win.cc deleted file mode 100644 index c55d5de..0000000 --- a/content/renderer/render_view_win.cc +++ /dev/null
@@ -1,49 +0,0 @@ -// Copyright (c) 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/child/webthemeengine_impl_default.h" -#include "content/renderer/render_view_impl.h" -#include "skia/ext/legacy_display_globals.h" -#include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h" -#include "third_party/blink/public/web/win/web_font_rendering.h" -#include "ui/gfx/font_render_params.h" - -using blink::WebFontRendering; - -namespace content { - -void RenderViewImpl::UpdateFontRenderingFromRendererPrefs() { - const blink::RendererPreferences& prefs = renderer_preferences_; - - // Cache the system font metrics in blink. - blink::WebFontRendering::SetMenuFontMetrics( - prefs.menu_font_family_name.c_str(), prefs.menu_font_height); - - blink::WebFontRendering::SetSmallCaptionFontMetrics( - prefs.small_caption_font_family_name.c_str(), - prefs.small_caption_font_height); - - blink::WebFontRendering::SetStatusFontMetrics( - prefs.status_font_family_name.c_str(), prefs.status_font_height); - - skia::LegacyDisplayGlobals::SetCachedPixelGeometry( - gfx::FontRenderParams::SubpixelRenderingToSkiaPixelGeometry( - prefs.subpixel_rendering)); - - blink::WebFontRendering::SetAntialiasedTextEnabled( - prefs.should_antialias_text); - blink::WebFontRendering::SetLCDTextEnabled( - prefs.subpixel_rendering != - gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE); -} - -void RenderViewImpl::UpdateThemePrefs() { - WebThemeEngineDefault::cacheScrollBarMetrics( - renderer_preferences_.vertical_scroll_bar_width_in_dips, - renderer_preferences_.horizontal_scroll_bar_height_in_dips, - renderer_preferences_.arrow_bitmap_height_vertical_scroll_bar_in_dips, - renderer_preferences_.arrow_bitmap_width_horizontal_scroll_bar_in_dips); -} - -} // namespace content
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index dbefa78..6979a8d1 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc
@@ -16,9 +16,7 @@ #include "base/metrics/histogram_macros.h" #include "cc/trees/layer_tree_host.h" #include "cc/trees/ukm_manager.h" -#include "content/common/drag_messages.h" #include "content/common/widget_messages.h" -#include "content/public/common/drop_data.h" #include "content/renderer/agent_scheduling_group.h" #include "content/renderer/pepper/pepper_plugin_instance_impl.h" #include "content/renderer/render_frame_impl.h" @@ -26,7 +24,6 @@ #include "ppapi/buildflags/buildflags.h" #include "third_party/blink/public/common/page/drag_operation.h" #include "third_party/blink/public/platform/file_path_conversion.h" -#include "third_party/blink/public/platform/web_drag_data.h" #include "third_party/blink/public/platform/web_rect.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/web/web_frame_widget.h" @@ -36,9 +33,6 @@ #include "ui/base/clipboard/clipboard_constants.h" #include "ui/gfx/geometry/rect_conversions.h" -using blink::DragOperation; -using blink::DragOperationsMask; -using blink::WebDragData; using blink::WebNavigationPolicy; using blink::WebString; @@ -49,52 +43,6 @@ RenderWidget::CreateRenderWidgetFunction g_create_render_widget_for_frame = nullptr; -WebDragData DropMetaDataToWebDragData( - const std::vector<DropData::Metadata>& drop_meta_data) { - std::vector<WebDragData::Item> item_list; - for (const auto& meta_data_item : drop_meta_data) { - if (meta_data_item.kind == DropData::Kind::STRING) { - WebDragData::Item item; - item.storage_type = WebDragData::Item::kStorageTypeString; - item.string_type = WebString::FromUTF16(meta_data_item.mime_type); - // Have to pass a dummy URL here instead of an empty URL because the - // DropData received by browser_plugins goes through a round trip: - // DropData::MetaData --> WebDragData-->DropData. In the end, DropData - // will contain an empty URL (which means no URL is dragged) if the URL in - // WebDragData is empty. - if (base::EqualsASCII(meta_data_item.mime_type, ui::kMimeTypeURIList)) { - item.string_data = WebString::FromUTF8("about:dragdrop-placeholder"); - } - item_list.push_back(item); - continue; - } - - // TODO(hush): crbug.com/584789. Blink needs to support creating a file with - // just the mimetype. This is needed to drag files to WebView on Android - // platform. - if ((meta_data_item.kind == DropData::Kind::FILENAME) && - !meta_data_item.filename.empty()) { - WebDragData::Item item; - item.storage_type = WebDragData::Item::kStorageTypeFilename; - item.filename_data = blink::FilePathToWebString(meta_data_item.filename); - item_list.push_back(item); - continue; - } - - if (meta_data_item.kind == DropData::Kind::FILESYSTEMFILE) { - WebDragData::Item item; - item.storage_type = WebDragData::Item::kStorageTypeFileSystemFile; - item.file_system_url = meta_data_item.file_system_url; - item_list.push_back(item); - continue; - } - } - - WebDragData result; - result.SetItems(item_list); - return result; -} - } // namespace // RenderWidget --------------------------------------------------------------- @@ -204,7 +152,6 @@ bool handled = false; IPC_BEGIN_MESSAGE_MAP(RenderWidget, message) IPC_MESSAGE_HANDLER(WidgetMsg_SetBounds_ACK, OnRequestSetBoundsAck) - IPC_MESSAGE_HANDLER(DragMsg_TargetDragEnter, OnDragTargetDragEnter) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() return handled; @@ -335,23 +282,6 @@ SetPendingWindowRect(window_rect); } -void RenderWidget::OnDragTargetDragEnter( - const std::vector<DropData::Metadata>& drop_meta_data, - const gfx::PointF& client_point, - const gfx::PointF& screen_point, - DragOperationsMask ops, - int key_modifiers) { - blink::WebFrameWidget* frame_widget = GetFrameWidget(); - if (!frame_widget) - return; - - DragOperation operation = frame_widget->DragTargetDragEnter( - DropMetaDataToWebDragData(drop_meta_data), client_point, screen_point, - ops, key_modifiers); - - Send(new DragHostMsg_UpdateDragCursor(routing_id(), operation)); -} - void RenderWidget::ConvertViewportToWindow(blink::WebRect* rect) { if (compositor_deps_->IsUseZoomForDSFEnabled()) { float reverse =
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h index 43460f7..95ec0bf 100644 --- a/content/renderer/render_widget.h +++ b/content/renderer/render_widget.h
@@ -32,7 +32,6 @@ #include "content/common/buildflags.h" #include "content/common/content_export.h" #include "content/common/renderer.mojom-forward.h" -#include "content/public/common/drop_data.h" #include "content/renderer/render_widget_delegate.h" #include "ipc/ipc_listener.h" #include "ipc/ipc_message.h" @@ -240,13 +239,6 @@ // RenderWidget IPC message handlers. void OnRequestSetBoundsAck(); - void OnDragTargetDragEnter( - const std::vector<DropData::Metadata>& drop_meta_data, - const gfx::PointF& client_pt, - const gfx::PointF& screen_pt, - blink::DragOperationsMask operations_allowed, - int key_modifiers); - // Set the pending window rect. // Because the real render_widget is hosted in another process, there is // a time period where we may have set a new window rect which has not yet
diff --git a/content/shell/browser/shell_content_browser_client.cc b/content/shell/browser/shell_content_browser_client.cc index 62f6315..078df57 100644 --- a/content/shell/browser/shell_content_browser_client.cc +++ b/content/shell/browser/shell_content_browser_client.cc
@@ -293,6 +293,13 @@ prefs->preferred_color_scheme = blink::mojom::PreferredColorScheme::kLight; } + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kForceHighContrast)) { + prefs->preferred_contrast = blink::mojom::PreferredContrast::kMore; + } else { + prefs->preferred_contrast = blink::mojom::PreferredContrast::kNoPreference; + } + if (override_web_preferences_callback_) override_web_preferences_callback_.Run(prefs); }
diff --git a/content/test/data/accessibility/aria/aria-current-expected-android.txt b/content/test/data/accessibility/aria/aria-current-expected-android.txt new file mode 100644 index 0000000..4390f29 --- /dev/null +++ b/content/test/data/accessibility/aria/aria-current-expected-android.txt
@@ -0,0 +1,28 @@ +android.webkit.WebView focusable focused scrollable +++android.view.View role_description='link' clickable focusable link name='Section one' +++++android.widget.TextView name='Section one' +++android.widget.TextView name=' ' +++android.view.View role_description='link' clickable focusable link name='Section two' +++++android.widget.TextView name='Section two' +++android.widget.TextView name=' ' +++android.view.View role_description='link' clickable focusable link name='Section three' state_description='current location' +++++android.widget.TextView name='Section three' +++android.view.View name='<newline>' +++android.view.View role_description='heading 1' heading name='Section one heading' +++android.view.View role_description='heading 1' heading name='Section two heading' +++android.view.View role_description='heading 1' heading name='Section three heading' +++android.view.View name='<newline>' +++android.view.View +++++android.widget.TextView name='Span 1' +++++android.widget.TextView name=' ' +++++android.view.View name='Span 2' state_description='current item' +++++android.widget.TextView name=' ' +++++android.widget.TextView name='Span 3' +++android.view.View name='aria-current is true' state_description='current item' +++android.view.View name='aria-current is false' +++android.view.View name='aria-current is time' state_description='current time' +++android.view.View name='aria-current is date' state_description='current date' +++android.view.View name='aria-current is location' state_description='current location' +++android.view.View name='aria-current is step' state_description='current step' +++android.view.View name='aria-current is page' state_description='current page' +++android.view.View name='aria-current is empty string'
diff --git a/content/test/data/accessibility/aria/aria-current-expected-auralinux.txt b/content/test/data/accessibility/aria/aria-current-expected-auralinux.txt index 3e98e9a..f0140898 100644 --- a/content/test/data/accessibility/aria/aria-current-expected-auralinux.txt +++ b/content/test/data/accessibility/aria/aria-current-expected-auralinux.txt
@@ -22,3 +22,19 @@ ++++++[static] name='Span 2' ++++[static] name=' ' ++++[static] name='Span 3' +++[paragraph] current:true +++++[static] name='aria-current is true' +++[paragraph] current:false +++++[static] name='aria-current is false' +++[paragraph] current:time +++++[static] name='aria-current is time' +++[paragraph] current:date +++++[static] name='aria-current is date' +++[paragraph] current:location +++++[static] name='aria-current is location' +++[paragraph] current:step +++++[static] name='aria-current is step' +++[paragraph] current:page +++++[static] name='aria-current is page' +++[paragraph] +++++[static] name='aria-current is empty string' \ No newline at end of file
diff --git a/content/test/data/accessibility/aria/aria-current-expected-blink.txt b/content/test/data/accessibility/aria/aria-current-expected-blink.txt index 4c6856720..c06afcab 100644 --- a/content/test/data/accessibility/aria/aria-current-expected-blink.txt +++ b/content/test/data/accessibility/aria/aria-current-expected-blink.txt
@@ -39,3 +39,27 @@ ++++++++++inlineTextBox name=' ' ++++++++staticText name='Span 3' ++++++++++inlineTextBox name='Span 3' +++++++paragraph ariaCurrentState=true +++++++++staticText name='aria-current is true' +++++++++++inlineTextBox name='aria-current is true' +++++++paragraph ariaCurrentState=false +++++++++staticText name='aria-current is false' +++++++++++inlineTextBox name='aria-current is false' +++++++paragraph ariaCurrentState=time +++++++++staticText name='aria-current is time' +++++++++++inlineTextBox name='aria-current is time' +++++++paragraph ariaCurrentState=date +++++++++staticText name='aria-current is date' +++++++++++inlineTextBox name='aria-current is date' +++++++paragraph ariaCurrentState=location +++++++++staticText name='aria-current is location' +++++++++++inlineTextBox name='aria-current is location' +++++++paragraph ariaCurrentState=step +++++++++staticText name='aria-current is step' +++++++++++inlineTextBox name='aria-current is step' +++++++paragraph ariaCurrentState=page +++++++++staticText name='aria-current is page' +++++++++++inlineTextBox name='aria-current is page' +++++++paragraph +++++++++staticText name='aria-current is empty string' +++++++++++inlineTextBox name='aria-current is empty string' \ No newline at end of file
diff --git a/content/test/data/accessibility/aria/aria-current-expected-win.txt b/content/test/data/accessibility/aria/aria-current-expected-win.txt index 710cfc0..d0598d06 100644 --- a/content/test/data/accessibility/aria/aria-current-expected-win.txt +++ b/content/test/data/accessibility/aria/aria-current-expected-win.txt
@@ -21,4 +21,20 @@ ++++IA2_ROLE_SECTION current:true ++++++ROLE_SYSTEM_STATICTEXT name='Span 2' ++++ROLE_SYSTEM_STATICTEXT name=' ' -++++ROLE_SYSTEM_STATICTEXT name='Span 3' \ No newline at end of file +++++ROLE_SYSTEM_STATICTEXT name='Span 3' +++IA2_ROLE_PARAGRAPH current:true +++++ROLE_SYSTEM_STATICTEXT name='aria-current is true' +++IA2_ROLE_PARAGRAPH current:false +++++ROLE_SYSTEM_STATICTEXT name='aria-current is false' +++IA2_ROLE_PARAGRAPH current:time +++++ROLE_SYSTEM_STATICTEXT name='aria-current is time' +++IA2_ROLE_PARAGRAPH current:date +++++ROLE_SYSTEM_STATICTEXT name='aria-current is date' +++IA2_ROLE_PARAGRAPH current:location +++++ROLE_SYSTEM_STATICTEXT name='aria-current is location' +++IA2_ROLE_PARAGRAPH current:step +++++ROLE_SYSTEM_STATICTEXT name='aria-current is step' +++IA2_ROLE_PARAGRAPH current:page +++++ROLE_SYSTEM_STATICTEXT name='aria-current is page' +++IA2_ROLE_PARAGRAPH +++++ROLE_SYSTEM_STATICTEXT name='aria-current is empty string' \ No newline at end of file
diff --git a/content/test/data/accessibility/aria/aria-current.html b/content/test/data/accessibility/aria/aria-current.html index ec9f8da..92a2f9a 100644 --- a/content/test/data/accessibility/aria/aria-current.html +++ b/content/test/data/accessibility/aria/aria-current.html
@@ -19,5 +19,13 @@ <span aria-current="true">Span 2</span> <span>Span 3</span> </div> + <p aria-current="true">aria-current is true</p> + <p aria-current="false">aria-current is false</p> + <p aria-current="time">aria-current is time</p> + <p aria-current="date">aria-current is date</p> + <p aria-current="location">aria-current is location</p> + <p aria-current="step">aria-current is step</p> + <p aria-current="page">aria-current is page</p> + <p aria-current="">aria-current is empty string</p> </body> </html>
diff --git a/content/test/data/accessibility/html/add-click-listener-expected-blink.txt b/content/test/data/accessibility/html/add-click-listener-expected-blink.txt deleted file mode 100644 index dd02511..0000000 --- a/content/test/data/accessibility/html/add-click-listener-expected-blink.txt +++ /dev/null
@@ -1,7 +0,0 @@ -rootWebArea name='Done' -++genericContainer ignored name='Done' -++++genericContainer -++++++genericContainer -++++++++button name='This should be accessible' -++++++++++staticText name='This should be accessible' -++++++++++++inlineTextBox name='This should be accessible'
diff --git a/content/test/data/accessibility/html/add-click-listener.html b/content/test/data/accessibility/html/add-click-listener.html deleted file mode 100644 index 4d10d31..0000000 --- a/content/test/data/accessibility/html/add-click-listener.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!-- -This is a regression test for a bug where a node is ignored in the -accessibility tree (in this case the BODY), and then by adding a click -listener to it we can make it no longer ignored without correctly firing -the right notifications - with the end result being that the whole -accessibility tree is broken. - -@WAIT-FOR:Done ---> -<!DOCTYPE html> -<head> - <script> - window.setTimeout(function() { - document.body.addEventListener('mousedown', function() {}); - document.documentElement.setAttribute('aria-label', 'Done'); - }, 100); - </script> -</head> -<body> - <div> - <button>This should be accessible</button> - </div> -</body>
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt index 5966141..a9291e4 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -444,6 +444,7 @@ # Mac / Passthrough command decoder / OpenGL / NVIDIA crbug.com/982294 [ mac passthrough nvidia angle-opengl ] conformance/renderbuffers/framebuffer-object-attachment.html [ Failure ] crbug.com/982294 [ mac passthrough nvidia angle-opengl ] conformance/textures/misc/tex-input-validation.html [ Failure ] +crbug.com/982294 [ mac passthrough nvidia angle-opengl ] conformance/textures/misc/texture-corner-case-videos.html [ Failure ] # Mac ASAN flakes crbug.com/1059760 [ mac asan ] conformance/textures/image_bitmap_from_video/* [ RetryOnFailure ]
diff --git a/content/web_test/browser/web_test_control_host.cc b/content/web_test/browser/web_test_control_host.cc index f18312b..d2cee26d 100644 --- a/content/web_test/browser/web_test_control_host.cc +++ b/content/web_test/browser/web_test_control_host.cc
@@ -752,6 +752,13 @@ } else { prefs->preferred_color_scheme = blink::mojom::PreferredColorScheme::kLight; } + + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kForceHighContrast)) { + prefs->preferred_contrast = blink::mojom::PreferredContrast::kMore; + } else { + prefs->preferred_contrast = blink::mojom::PreferredContrast::kNoPreference; + } } void WebTestControlHost::OpenURL(const GURL& url) {
diff --git a/content/web_test/renderer/event_sender.cc b/content/web_test/renderer/event_sender.cc index d91aebf..70b1767 100644 --- a/content/web_test/renderer/event_sender.cc +++ b/content/web_test/renderer/event_sender.cc
@@ -1332,12 +1332,18 @@ current_drag_data_ = drag_data; current_drag_effects_allowed_ = mask; - current_drag_effect_ = MainFrameWidget()->DragTargetDragEnter( + MainFrameWidget()->DragTargetDragEnter( drag_data, event.PositionInWidget(), event.PositionInScreen(), current_drag_effects_allowed_, ModifiersWithButtons( current_pointer_state_[kRawMousePointerId].modifiers_, - current_pointer_state_[kRawMousePointerId].current_buttons_)); + current_pointer_state_[kRawMousePointerId].current_buttons_), + base::BindOnce( + [](base::WeakPtr<EventSender> sender, blink::DragOperation op) { + if (sender) + sender->current_drag_effect_ = op; + }, + weak_factory_.GetWeakPtr())); // Finish processing events. ReplaySavedEvents(); @@ -1919,9 +1925,9 @@ current_pointer_state_[kRawMousePointerId].last_pos_; // Provide a drag source. - MainFrameWidget()->DragTargetDragEnter(*current_drag_data_, last_pos, - last_pos, - current_drag_effects_allowed_, 0); + MainFrameWidget()->DragTargetDragEnter( + *current_drag_data_, last_pos, last_pos, current_drag_effects_allowed_, 0, + base::DoNothing()); // |is_drag_mode_| saves events and then replays them later. We don't // need/want that. is_drag_mode_ = false;
diff --git a/docs/enterprise/description_guidelines.md b/docs/enterprise/description_guidelines.md index 8e14c0f8..9dd5890 100644 --- a/docs/enterprise/description_guidelines.md +++ b/docs/enterprise/description_guidelines.md
@@ -6,6 +6,7 @@ * Chrome Browser Cloud Management: `<ph name="CHROME_BROWSER_CLOUSE_MANAGEMENT_NAME">Chrome Browser Cloud Management</ph>` * Linux: `<ph name="LINUX_OS_NAME">Linux</ph>` * Internet Explorer: `<ph name="IE_PRODUCT_NAME">Internet® Explorer®</ph>` +* Google Admin console: `<ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME">Google Admin console</ph>` * Google Cast: `<ph name="PRODUCT_NAME">Google Cast</ph>` * Google Drive: `<ph name="GOOGLE_DRIVE_NAME">Google Drive</ph>` * macOS: `<ph name="MAC_OS_NAME">macOS</ph>`
diff --git a/extensions/browser/api/networking_private/networking_private_api.cc b/extensions/browser/api/networking_private/networking_private_api.cc index 269782af..44dbaca 100644 --- a/extensions/browser/api/networking_private/networking_private_api.cc +++ b/extensions/browser/api/networking_private/networking_private_api.cc
@@ -133,7 +133,6 @@ const char kErrorInvalidNetworkGuid[] = "Error.InvalidNetworkGuid"; const char kErrorInvalidNetworkOperation[] = "Error.InvalidNetworkOperation"; const char kErrorNetworkUnavailable[] = "Error.NetworkUnavailable"; -const char kErrorNotReady[] = "Error.NotReady"; const char kErrorNotSupported[] = "Error.NotSupported"; const char kErrorPolicyControlled[] = "Error.PolicyControlled"; const char kErrorSimLocked[] = "Error.SimLocked";
diff --git a/extensions/browser/api/networking_private/networking_private_api.h b/extensions/browser/api/networking_private/networking_private_api.h index 33b6902..51beb30f 100644 --- a/extensions/browser/api/networking_private/networking_private_api.h +++ b/extensions/browser/api/networking_private/networking_private_api.h
@@ -22,7 +22,6 @@ extern const char kErrorInvalidNetworkGuid[]; extern const char kErrorInvalidNetworkOperation[]; extern const char kErrorNetworkUnavailable[]; -extern const char kErrorNotReady[]; extern const char kErrorNotSupported[]; extern const char kErrorPolicyControlled[]; extern const char kErrorSimLocked[];
diff --git a/extensions/browser/api/networking_private/networking_private_chromeos.cc b/extensions/browser/api/networking_private/networking_private_chromeos.cc index 805d296a..88c644e 100644 --- a/extensions/browser/api/networking_private/networking_private_chromeos.cc +++ b/extensions/browser/api/networking_private/networking_private_chromeos.cc
@@ -233,6 +233,33 @@ return api_cert; } +// This returns the strings provided by NetworkPortalDetector for backwards +// compatibility, even though the implementation no longer queries +// NetworkPortalDetector directly. +// static +std::string PortalStatusString( + chromeos::NetworkState::PortalState portal_state) { + using PortalState = chromeos::NetworkState::PortalState; + switch (portal_state) { + case PortalState::kUnknown: + return chromeos::NetworkPortalDetector::CaptivePortalStatusString( + chromeos::NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN); + case PortalState::kOnline: + return chromeos::NetworkPortalDetector::CaptivePortalStatusString( + chromeos::NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE); + case PortalState::kPortalSuspected: + case PortalState::kPortal: + case PortalState::kNoInternet: + return chromeos::NetworkPortalDetector::CaptivePortalStatusString( + chromeos::NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL); + case PortalState::kProxyAuthRequired: + return chromeos::NetworkPortalDetector::CaptivePortalStatusString( + chromeos::NetworkPortalDetector:: + CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED); + } + return "Unrecognized"; +} + } // namespace //////////////////////////////////////////////////////////////////////////////// @@ -533,16 +560,21 @@ const std::string& guid, StringCallback success_callback, FailureCallback failure_callback) { - if (!chromeos::network_portal_detector::IsInitialized()) { - std::move(failure_callback).Run(networking_private::kErrorNotReady); + const chromeos::NetworkState* network = + GetStateHandler()->GetNetworkStateFromGuid(guid); + if (!network) { + std::move(failure_callback) + .Run(extensions::networking_private::kErrorInvalidNetworkGuid); return; } - - std::move(success_callback) - .Run(chromeos::NetworkPortalDetector::CaptivePortalStatusString( - chromeos::network_portal_detector::GetInstance() - ->GetCaptivePortalState(guid) - .status)); + if (!network->IsConnectedState()) { + std::move(success_callback) + .Run(chromeos::NetworkPortalDetector::CaptivePortalStatusString( + chromeos::NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE)); + return; + } + chromeos::NetworkState::PortalState portal_state = network->portal_state(); + std::move(success_callback).Run(PortalStatusString(portal_state)); } void NetworkingPrivateChromeOS::UnlockCellularSim(
diff --git a/extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc b/extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc index 1fed7fdd..a74c753b 100644 --- a/extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc +++ b/extensions/browser/api/networking_private/networking_private_event_router_chromeos.cc
@@ -14,7 +14,6 @@ #include "chromeos/network/network_state_handler_observer.h" #include "chromeos/network/onc/onc_signature.h" #include "chromeos/network/onc/onc_translator.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/onc/onc_constants.h" #include "content/public/browser/browser_context.h" @@ -25,17 +24,39 @@ using chromeos::DeviceState; using chromeos::NetworkHandler; -using chromeos::NetworkPortalDetector; using chromeos::NetworkState; using chromeos::NetworkStateHandler; namespace extensions { +namespace { + +api::networking_private::CaptivePortalStatus GetCaptivePortalStatus( + const NetworkState* network) { + if (!network) + return api::networking_private::CAPTIVE_PORTAL_STATUS_UNKNOWN; + if (!network->IsConnectedState()) + return api::networking_private::CAPTIVE_PORTAL_STATUS_OFFLINE; + switch (network->portal_state()) { + case NetworkState::PortalState::kUnknown: + return api::networking_private::CAPTIVE_PORTAL_STATUS_UNKNOWN; + case NetworkState::PortalState::kOnline: + return api::networking_private::CAPTIVE_PORTAL_STATUS_ONLINE; + case NetworkState::PortalState::kPortalSuspected: + case NetworkState::PortalState::kPortal: + case NetworkState::PortalState::kNoInternet: + return api::networking_private::CAPTIVE_PORTAL_STATUS_PORTAL; + case NetworkState::PortalState::kProxyAuthRequired: + return api::networking_private::CAPTIVE_PORTAL_STATUS_PROXYAUTHREQUIRED; + } +} + +} // namespace + class NetworkingPrivateEventRouterImpl : public NetworkingPrivateEventRouter, public chromeos::NetworkStateHandlerObserver, - public chromeos::NetworkCertificateHandler::Observer, - public NetworkPortalDetector::Observer { + public chromeos::NetworkCertificateHandler::Observer { public: explicit NetworkingPrivateEventRouterImpl(content::BrowserContext* context); ~NetworkingPrivateEventRouterImpl() override; @@ -51,6 +72,8 @@ // NetworkStateHandlerObserver overrides: void NetworkListChanged() override; void DeviceListChanged() override; + void PortalStateChanged(const NetworkState* default_network, + NetworkState::PortalState portal_state) override; void NetworkPropertiesUpdated(const NetworkState* network) override; void DevicePropertiesUpdated(const DeviceState* device) override; void ScanCompleted(const DeviceState* device) override; @@ -58,11 +81,6 @@ // NetworkCertificateHandler::Observer overrides: void OnCertificatesChanged() override; - // NetworkPortalDetector::Observer overrides: - void OnPortalDetectionCompleted( - const NetworkState* network, - const NetworkPortalDetector::CaptivePortalState& state) override; - private: // Decide if we should listen for network changes or not. If there are any // JavaScript listeners registered for the onNetworkChanged event, then we @@ -149,14 +167,10 @@ NetworkHandler::Get()->network_state_handler()->AddObserver(this, FROM_HERE); NetworkHandler::Get()->network_certificate_handler()->AddObserver(this); - if (chromeos::network_portal_detector::IsInitialized()) - chromeos::network_portal_detector::GetInstance()->AddObserver(this); } else if (!should_listen && listening_) { NetworkHandler::Get()->network_state_handler()->RemoveObserver(this, FROM_HERE); NetworkHandler::Get()->network_certificate_handler()->RemoveObserver(this); - if (chromeos::network_portal_detector::IsInitialized()) - chromeos::network_portal_detector::GetInstance()->RemoveObserver(this); } listening_ = should_listen; } @@ -268,9 +282,9 @@ event_router->BroadcastEvent(std::move(extension_event)); } -void NetworkingPrivateEventRouterImpl::OnPortalDetectionCompleted( +void NetworkingPrivateEventRouterImpl::PortalStateChanged( const NetworkState* network, - const NetworkPortalDetector::CaptivePortalState& state) { + NetworkState::PortalState portal_state) { const std::string guid = network ? network->guid() : std::string(); EventRouter* event_router = EventRouter::Get(context_); @@ -284,32 +298,9 @@ NET_LOG(EVENT) << "NetworkingPrivate.OnPortalDetectionCompleted: " << (network ? NetworkId(network) : ""); - api::networking_private::CaptivePortalStatus status = - api::networking_private::CAPTIVE_PORTAL_STATUS_UNKNOWN; - switch (state.status) { - case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN: - status = api::networking_private::CAPTIVE_PORTAL_STATUS_UNKNOWN; - break; - case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE: - status = api::networking_private::CAPTIVE_PORTAL_STATUS_OFFLINE; - break; - case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE: - status = api::networking_private::CAPTIVE_PORTAL_STATUS_ONLINE; - break; - case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL: - status = api::networking_private::CAPTIVE_PORTAL_STATUS_PORTAL; - break; - case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED: - status = api::networking_private::CAPTIVE_PORTAL_STATUS_PROXYAUTHREQUIRED; - break; - default: - NOTREACHED(); - break; - } - std::unique_ptr<base::ListValue> args( - api::networking_private::OnPortalDetectionCompleted::Create(guid, - status)); + api::networking_private::OnPortalDetectionCompleted::Create( + guid, GetCaptivePortalStatus(network))); std::unique_ptr<Event> extension_event( new Event(events::NETWORKING_PRIVATE_ON_PORTAL_DETECTION_COMPLETED, api::networking_private::OnPortalDetectionCompleted::kEventName,
diff --git a/gpu/vulkan/vulkan_util_posix.cc b/gpu/vulkan/vulkan_util_posix.cc index a0be87d..70181c52 100644 --- a/gpu/vulkan/vulkan_util_posix.cc +++ b/gpu/vulkan/vulkan_util_posix.cc
@@ -37,24 +37,23 @@ base::ScopedFD fd = handle.TakeHandle(); const auto is_sync_fd = handle_type == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT; - VkImportSemaphoreFdInfoKHR import = { + const VkImportSemaphoreFdInfoKHR import = { .sType = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR, .semaphore = semaphore, .flags = is_sync_fd ? VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR : 0, .handleType = handle_type, - .fd = fd.get(), + .fd = fd.release(), }; result = vkImportSemaphoreFdKHR(vk_device, &import); if (result != VK_SUCCESS) { DLOG(ERROR) << "vkImportSemaphoreFdKHR failed: " << result; vkDestroySemaphore(vk_device, semaphore, nullptr); + // If import failed, we need to close fd manually. + base::ScopedFD close_fd(import.fd); return VK_NULL_HANDLE; } - // If import is successful, the VkSemaphore takes the ownership of the fd. - ignore_result(fd.release()); - return semaphore; }
diff --git a/headless/lib/headless_devtools_client_browsertest.cc b/headless/lib/headless_devtools_client_browsertest.cc index 52dde8f..2acfac09 100644 --- a/headless/lib/headless_devtools_client_browsertest.cc +++ b/headless/lib/headless_devtools_client_browsertest.cc
@@ -33,6 +33,7 @@ #include "headless/public/headless_devtools_client.h" #include "headless/public/headless_devtools_target.h" #include "headless/test/headless_browser_test.h" +#include "net/test/spawned_test_server/spawned_test_server.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h"
diff --git a/ios/BUILD.gn b/ios/BUILD.gn index 167e6ac..7443a00e 100644 --- a/ios/BUILD.gn +++ b/ios/BUILD.gn
@@ -22,9 +22,6 @@ deps = [ # List all the targets that need to be built on iOS by default. "//ios/chrome/app:chrome", - "//ios/chrome/content_widget_extension", - "//ios/chrome/search_widget_extension", - "//ios/chrome/share_extension", "//ios/showcase", "//ios/web/shell:ios_web_shell", "//ios/web_view/shell:ios_web_view_shell",
diff --git a/ios/build/chrome_build.gni b/ios/build/chrome_build.gni index 82ab4c8..2accc085 100644 --- a/ios/build/chrome_build.gni +++ b/ios/build/chrome_build.gni
@@ -67,6 +67,9 @@ ios_chrome_cpe_entitlements_additions = [] } +# ScreenTime is only available in iOS 14.0+ SDK. +ios_enable_screen_time = xcode_version_int >= 1200 + # Configure whether breakpad support is enabled. breakpad_enabled = is_official_build && is_chrome_branded
diff --git a/ios/chrome/app/BUILD.gn b/ios/chrome/app/BUILD.gn index 488c89c..722f18d9 100644 --- a/ios/chrome/app/BUILD.gn +++ b/ios/chrome/app/BUILD.gn
@@ -217,7 +217,7 @@ "//ios/chrome/browser/crash_report:crash_report_internal", "//ios/chrome/browser/crash_report/breadcrumbs", "//ios/chrome/browser/crash_report/breadcrumbs:feature_flags", - "//ios/chrome/browser/credential_provider", + "//ios/chrome/browser/credential_provider:buildflags", "//ios/chrome/browser/download", "//ios/chrome/browser/external_files", "//ios/chrome/browser/favicon", @@ -288,6 +288,10 @@ "//ui/strings:ui_strings", ] + if (ios_enable_credential_provider_extension) { + deps += [ "//ios/chrome/browser/credential_provider" ] + } + frameworks = [ "CoreSpotlight.framework", "MediaPlayer.framework",
diff --git a/ios/chrome/app/main_controller.mm b/ios/chrome/app/main_controller.mm index ac12c023..bcab6cc0 100644 --- a/ios/chrome/app/main_controller.mm +++ b/ios/chrome/app/main_controller.mm
@@ -57,8 +57,7 @@ #include "ios/chrome/browser/crash_report/crash_loop_detection_util.h" #include "ios/chrome/browser/crash_report/crash_report_helper.h" #import "ios/chrome/browser/crash_report/crash_restore_helper.h" -#include "ios/chrome/browser/credential_provider/credential_provider_service_factory.h" -#include "ios/chrome/browser/credential_provider/credential_provider_support.h" +#include "ios/chrome/browser/credential_provider/credential_provider_buildflags.h" #include "ios/chrome/browser/download/download_directory_util.h" #import "ios/chrome/browser/external_files/external_file_remover_factory.h" #import "ios/chrome/browser/external_files/external_file_remover_impl.h" @@ -112,6 +111,11 @@ #import "net/base/mac/url_conversions.h" #include "services/network/public/cpp/shared_url_loader_factory.h" +#if BUILDFLAG(IOS_CREDENTIAL_PROVIDER_ENABLED) +#include "ios/chrome/browser/credential_provider/credential_provider_service_factory.h" +#include "ios/chrome/browser/credential_provider/credential_provider_support.h" +#endif + #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif @@ -534,10 +538,12 @@ self.appState.mainBrowserState); service->Initialize(); +#if BUILDFLAG(IOS_CREDENTIAL_PROVIDER_ENABLED) if (IsCredentialProviderExtensionSupported()) { CredentialProviderServiceFactory::GetForBrowserState( self.appState.mainBrowserState); } +#endif _windowConfigurationRecorder = [[WindowConfigurationRecorder alloc] init];
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb index 7b869a4..a78e7410 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">Неуспешно отпечатване.</translation> <translation id="1125564390852150847">Създаване на нов раздел.</translation> <translation id="1145536944570833626">Изтриване на съществуващите данни.</translation> +<translation id="1154690515305205900">Не може да се създаде връзка към откроения текст.</translation> <translation id="1165039591588034296">Грешка</translation> <translation id="1172898394251786223">Следващото поле</translation> <translation id="1176932207622159128">Изобр. не може да се запази</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Отворени раздели</translation> <translation id="3272527697863656322">Отказ</translation> <translation id="3277021493514034324">Адресът на сайта бе копиран</translation> +<translation id="3285962946108803577">Споделяне на страницата...</translation> <translation id="3290875554372353449">Изберете профил</translation> <translation id="3311748811247479259">Изключено</translation> <translation id="3324193307694657476">Адрес 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">Отказ</translation> <translation id="766891008101699113">За да сърфирате в мрежата частно, добавете нов раздел.</translation> <translation id="7671141431838911305">INSTALL</translation> +<translation id="7690812411882623730">Неуспешно генериране на връзка към текста</translation> <translation id="7701040980221191251">Няма</translation> <translation id="7765158879357617694">Преместване</translation> <translation id="7771470029643830783">Като излезете от профила си в Google, вашите отметки, история, пароли и други данни в Chrome повече няма да се синхронизират с него.
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index a14359036..74ee4f5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">Error en imprimir</translation> <translation id="1125564390852150847">Crea una pestanya nova.</translation> <translation id="1145536944570833626">Suprimeix les dades existents.</translation> +<translation id="1154690515305205900">No es pot crear un enllaç al text marcat.</translation> <translation id="1165039591588034296">Error</translation> <translation id="1172898394251786223">Camp següent</translation> <translation id="1176932207622159128">No es pot desar.</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Pestanyes obertes</translation> <translation id="3272527697863656322">Cancel·la</translation> <translation id="3277021493514034324">S'ha copiat l'adreça del lloc web</translation> +<translation id="3285962946108803577">Comparteix la pàgina...</translation> <translation id="3290875554372353449">Tria un compte</translation> <translation id="3311748811247479259">Desactivat</translation> <translation id="3324193307694657476">Adreça 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">Cancel·la</translation> <translation id="766891008101699113">Per navegar pel web de manera privada, obre una pestanya nova.</translation> <translation id="7671141431838911305">INSTAL·LA</translation> +<translation id="7690812411882623730">No es pot enllaçar al text</translation> <translation id="7701040980221191251">Cap</translation> <translation id="7765158879357617694">Mou</translation> <translation id="7771470029643830783">En tancar la sessió, les adreces d'interès, l'historial, les contrasenyes i altres dades de Chrome es deixaran de sincronitzar amb el teu Compte de Google
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb index b0b9f1a..220a5db 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">چاپ انجام نشد.</translation> <translation id="1125564390852150847">ایجاد برگه جدید</translation> <translation id="1145536944570833626">حذف دادههای موجود.</translation> +<translation id="1154690515305205900">نمیتوان پیوند به نوشتار برجستهشده را ایجاد کرد.</translation> <translation id="1165039591588034296">خطا</translation> <translation id="1172898394251786223">فیلد بعدی</translation> <translation id="1176932207622159128">ذخیره تصویر ممکن نشد</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">برگههای باز</translation> <translation id="3272527697863656322">لغو</translation> <translation id="3277021493514034324">نشانی سایت کپی شد</translation> +<translation id="3285962946108803577">همرسانی صفحه…</translation> <translation id="3290875554372353449">انتخاب حساب</translation> <translation id="3311748811247479259">خاموش</translation> <translation id="3324193307694657476">آدرس ۲</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">لغو</translation> <translation id="766891008101699113">برای مرور وب بهصورت خصوصی، برگه جدیدی اضافه کنید.</translation> <translation id="7671141431838911305">نصب</translation> +<translation id="7690812411882623730">پیوند به نوشتار ایجاد نمیشود</translation> <translation id="7701040980221191251">هیچکدام</translation> <translation id="7765158879357617694">انتقال</translation> <translation id="7771470029643830783">با خروج از سیستم، نشانکها، سابقه، گذرواژهها، و سایر دادههای Chrome دیگر با «حساب Google» شما همگامسازی نمیشوند.
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb index d4b1d0d..20cd8991 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">Hindi na-print.</translation> <translation id="1125564390852150847">Gumawa ng bagong tab.</translation> <translation id="1145536944570833626">I-delete ang kasalukuyang data.</translation> +<translation id="1154690515305205900">Hindi makagawa ng link sa naka-highlight na text.</translation> <translation id="1165039591588034296">Error</translation> <translation id="1172898394251786223">Susunod na field</translation> <translation id="1176932207622159128">Di Ma-save Larawan</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Mga Bukas na Tab</translation> <translation id="3272527697863656322">Kanselahin</translation> <translation id="3277021493514034324">Nakopya ang address ng site</translation> +<translation id="3285962946108803577">Ibahagi ang Page...</translation> <translation id="3290875554372353449">Pumili ng Account</translation> <translation id="3311748811247479259">Naka-off</translation> <translation id="3324193307694657476">Address 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">Kanselahin</translation> <translation id="766891008101699113">Para pribadong mag-browse sa web, magdagdag ng bagong tab.</translation> <translation id="7671141431838911305">INSTALL</translation> +<translation id="7690812411882623730">Hindi Maka-link sa Text</translation> <translation id="7701040980221191251">Wala</translation> <translation id="7765158879357617694">Ilipat</translation> <translation id="7771470029643830783">Sa pamamagitan ng pag-sign out, hindi na masi-sync sa iyong Google Account ang mga bookmark, history, mga password, at iba mo pang data ng Chrome.
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb index 96d9810..0cf1d52 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">Échec impr.</translation> <translation id="1125564390852150847">Créer un onglet.</translation> <translation id="1145536944570833626">Supprimer toutes les données existantes.</translation> +<translation id="1154690515305205900">Impossible de créer un lien vers le texte mis en évidence.</translation> <translation id="1165039591588034296">Erreur</translation> <translation id="1172898394251786223">Champ suivant</translation> <translation id="1176932207622159128">Enreg. image imposs.</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Onglets ouverts</translation> <translation id="3272527697863656322">Annuler</translation> <translation id="3277021493514034324">Adresse du site copiée</translation> +<translation id="3285962946108803577">Partager la page…</translation> <translation id="3290875554372353449">Choisir un compte</translation> <translation id="3311748811247479259">Désactivé</translation> <translation id="3324193307694657476">Ligne adresse 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">Annuler</translation> <translation id="766891008101699113">Pour naviguer confidentiellement sur le Web, ajoutez un nouvel onglet.</translation> <translation id="7671141431838911305">INSTALLER</translation> +<translation id="7690812411882623730">Impossible de créer un lien vers le texte</translation> <translation id="7701040980221191251">Aucun</translation> <translation id="7765158879357617694">Déplacer</translation> <translation id="7771470029643830783">Si vous vous déconnectez, vos favoris, votre historique, vos mots de passe et d'autres données de Chrome ne seront plus synchronisés avec votre compte Google.
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb index bbb7090..4ba21ee 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">인쇄 실패</translation> <translation id="1125564390852150847">새 탭 만들기</translation> <translation id="1145536944570833626">기존 데이터 삭제</translation> +<translation id="1154690515305205900">강조표시된 텍스트로 연결되는 링크를 생성할 수 없습니다.</translation> <translation id="1165039591588034296">오류</translation> <translation id="1172898394251786223">다음 필드</translation> <translation id="1176932207622159128">이미지를 저장할 수 없음</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">열린 탭</translation> <translation id="3272527697863656322">취소</translation> <translation id="3277021493514034324">사이트 주소가 복사되었습니다.</translation> +<translation id="3285962946108803577">페이지 공유...</translation> <translation id="3290875554372353449">계정 선택</translation> <translation id="3311748811247479259">사용 안함</translation> <translation id="3324193307694657476">주소 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">취소</translation> <translation id="766891008101699113">비공개로 웹을 탐색하려면 새 탭을 추가하세요.</translation> <translation id="7671141431838911305">설치</translation> +<translation id="7690812411882623730">텍스트 링크를 생성할 수 없음</translation> <translation id="7701040980221191251">없음</translation> <translation id="7765158879357617694">이동</translation> <translation id="7771470029643830783">로그아웃하면 북마크, 방문 기록, 비밀번호 및 기타 Chrome 데이터가 더 이상 Google 계정과 동기화되지 않습니다.
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index 9c877fa..7ba6041 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">പ്രിന്റിംഗ് പരാജയപ്പെട്ടു.</translation> <translation id="1125564390852150847">പുതിയ ടാബ് സൃഷ്ടിക്കുക.</translation> <translation id="1145536944570833626">നിലവിലുള്ള വിവരങ്ങൾ ഇല്ലാതാക്കുക.</translation> +<translation id="1154690515305205900">ഹൈലൈറ്റ് ചെയ്ത ടെക്സ്റ്റിലേക്കുള്ള ലിങ്ക് സൃഷ്ടിക്കാനാകുന്നില്ല.</translation> <translation id="1165039591588034296">പിശക്</translation> <translation id="1172898394251786223">അടുത്ത ഫീൽഡ്</translation> <translation id="1176932207622159128">ചിത്രം സംരക്ഷിക്കാൻ കഴിയില്ല.</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">ഓപ്പൺ ടാബുകൾ</translation> <translation id="3272527697863656322">റദ്ദാക്കുക</translation> <translation id="3277021493514034324">സൈറ്റ് വിലാസം പകർത്തി</translation> +<translation id="3285962946108803577">പേജ് പങ്കിടുക...</translation> <translation id="3290875554372353449">ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കൂ</translation> <translation id="3311748811247479259">ഓഫാണ്</translation> <translation id="3324193307694657476">വിലാസം 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">റദ്ദാക്കൂ</translation> <translation id="766891008101699113">വെബ് സ്വകാര്യമായി ബ്രൗസ് ചെയ്യാൻ, ഒരു പുതിയ ടാബ് ചേർക്കുക.</translation> <translation id="7671141431838911305">ഇൻസ്റ്റാൾ ചെയ്യുക</translation> +<translation id="7690812411882623730">ടെക്സ്റ്റിലേക്ക് ലിങ്ക് ചെയ്യാനാകുന്നില്ല</translation> <translation id="7701040980221191251">ഒന്നുമില്ല</translation> <translation id="7765158879357617694">നീക്കുക</translation> <translation id="7771470029643830783">സൈൻ ഔട്ട് ചെയ്താൽ നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ, ചരിത്രം, പാസ്വേഡുകൾ, മറ്റ് Chrome ഡാറ്റ എന്നിവ ഇനി Google അക്കൗണ്ടിലേക്ക് സമന്വയിപ്പിക്കില്ല.
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb index f140e46..1148588 100644 --- a/ios/chrome/app/strings/resources/ios_strings_or.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">ପ୍ରିଣ୍ଟ ହେଲାନାହିଁ।</translation> <translation id="1125564390852150847">ନୂତନ ଟାବ୍ ତିଆରି କରନ୍ତୁ।</translation> <translation id="1145536944570833626">ବିଦ୍ୟମାନ ଥିବା ଡାଟାକୁ ଡିଲିଟ୍ କରନ୍ତୁ।</translation> +<translation id="1154690515305205900">ହାଇଲାଇଟ୍ କରାଯାଇଥିବା ଟେକ୍ସଟ୍ ସହିତ ଲିଙ୍କ ତିଆରି କରାଯାଇପାରିବ ନାହିଁ।</translation> <translation id="1165039591588034296">ତ୍ରୁଟି</translation> <translation id="1172898394251786223">ପରବର୍ତ୍ତୀ କ୍ଷେତ୍ର</translation> <translation id="1176932207622159128">ଛବିକୁ ସେଭ୍ କରିହେବ ନାହିଁ</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">ଖୋଲାଥିବା ଟାବ୍ଗୁଡ଼ିକ</translation> <translation id="3272527697863656322">ବାତିଲ୍ କରନ୍ତୁ</translation> <translation id="3277021493514034324">ସାଇଟ୍ ଠିକଣା କପି କରାଯାଇଛି</translation> +<translation id="3285962946108803577">ପୃଷ୍ଠା ସେୟାର୍ କରନ୍ତୁ...</translation> <translation id="3290875554372353449">ଗୋଟିଏ ଆକାଉଣ୍ଟ ଚୟନ କରନ୍ତୁ</translation> <translation id="3311748811247479259">ବନ୍ଦ ଅଛି</translation> <translation id="3324193307694657476">ଠିକଣା 2</translation> @@ -610,6 +612,7 @@ <translation id="7658239707568436148">ବାତିଲ୍</translation> <translation id="766891008101699113">ୱେବ୍କୁ ବ୍ୟକ୍ତିଗତ ଭାବେ ବ୍ରାଉଜ୍ କରିବାକୁ, ଏକ ନୂଆ ଟାବ୍ ଯୋଗ କରନ୍ତୁ।</translation> <translation id="7671141431838911305">ଇନ୍ଷ୍ଟଲ୍ କରନ୍ତୁ</translation> +<translation id="7690812411882623730">ଟେକ୍ସଟ୍ ସହିତ ଲିଙ୍କ୍ କରିବାକୁ ଅସମର୍ଥ</translation> <translation id="7701040980221191251">କିଛି ନାହିଁ</translation> <translation id="7765158879357617694">ନିଅନ୍ତୁ</translation> <translation id="7771470029643830783">ସାଇନ୍ ଆଉଟ୍ କରିବା ଦ୍ୱାରା, ଆପଣଙ୍କ ବୁକମାର୍କଗୁଡ଼ିକ, ଇତିହାସ, ପାସୱାର୍ଡଗୁଡ଼ିକ ଏବଂ ଅନ୍ୟ Chrome ଡାଟା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ଆଉ ସିଙ୍କ୍ କରାଯିବ ନାହିଁ।
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 5961a60..1cf785cc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">Štampanje nije uspelo.</translation> <translation id="1125564390852150847">Napravi novu karticu.</translation> <translation id="1145536944570833626">Izbrišite postojeće podatke</translation> +<translation id="1154690515305205900">Pravljenje linka do istaknutog teksta nije uspelo.</translation> <translation id="1165039591588034296">Greška</translation> <translation id="1172898394251786223">Sledeće polje</translation> <translation id="1176932207622159128">Nije moguće sačuvati sliku</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Otvorene kartice</translation> <translation id="3272527697863656322">Otkaži</translation> <translation id="3277021493514034324">Adresa sajta je kopirana</translation> +<translation id="3285962946108803577">Deli stranicu…</translation> <translation id="3290875554372353449">Izaberite nalog</translation> <translation id="3311748811247479259">Isključeno</translation> <translation id="3324193307694657476">2. red za adresu</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">Otkaži</translation> <translation id="766891008101699113">Da biste privatno pregledali veb, dodajte novu karticu.</translation> <translation id="7671141431838911305">INSTALIRANJE</translation> +<translation id="7690812411882623730">Generisanje linka do teksta nije uspelo</translation> <translation id="7701040980221191251">Ništa</translation> <translation id="7765158879357617694">Premesti</translation> <translation id="7771470029643830783">Ako se odjavite, obeleživači, istorija, lozinke i drugi Chrome podaci više se neće sinhronizovati sa Google nalogom.
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb index 7572291..fee6632a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">Штампање није успело.</translation> <translation id="1125564390852150847">Направи нову картицу.</translation> <translation id="1145536944570833626">Избришите постојеће податке</translation> +<translation id="1154690515305205900">Прављење линка до истакнутог текста није успело.</translation> <translation id="1165039591588034296">Грешка</translation> <translation id="1172898394251786223">Следеће поље</translation> <translation id="1176932207622159128">Није могуће сачувати слику</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Отворене картице</translation> <translation id="3272527697863656322">Откажи</translation> <translation id="3277021493514034324">Адреса сајта је копирана</translation> +<translation id="3285962946108803577">Дели страницу…</translation> <translation id="3290875554372353449">Изаберите налог</translation> <translation id="3311748811247479259">Искључено</translation> <translation id="3324193307694657476">2. ред за адресу</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">Откажи</translation> <translation id="766891008101699113">Да бисте приватно прегледали веб, додајте нову картицу.</translation> <translation id="7671141431838911305">ИНСТАЛИРАЊЕ</translation> +<translation id="7690812411882623730">Генерисање линка до текста није успело</translation> <translation id="7701040980221191251">Ништа</translation> <translation id="7765158879357617694">Премести</translation> <translation id="7771470029643830783">Ако се одјавите, обележивачи, историја, лозинке и други Chrome подаци више се неће синхронизовати са Google налогом.
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb index 69ce1c3d..a731d66 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">Imeshindwa kuchapisha.</translation> <translation id="1125564390852150847">Unda kichupo kipya</translation> <translation id="1145536944570833626">Futa data iliyopo.</translation> +<translation id="1154690515305205900">Imeshindwa kuunda kiungo cha kuelekeza kwenye maandishi yaliyoangaziwa.</translation> <translation id="1165039591588034296">Hitilafu</translation> <translation id="1172898394251786223">Sehemu inayofuata</translation> <translation id="1176932207622159128">Haiwezi Kuhifadhi Picha</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Fungua Vichupo</translation> <translation id="3272527697863656322">Ghairi</translation> <translation id="3277021493514034324">Anwani ya tovuti imenakiliwa</translation> +<translation id="3285962946108803577">Shiriki Ukurasa...</translation> <translation id="3290875554372353449">Chagua Akaunti</translation> <translation id="3311748811247479259">Imezimwa</translation> <translation id="3324193307694657476">Anwani ya 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">Ghairi</translation> <translation id="766891008101699113">Ili uvinjari kwenye wavuti kwa faragha, ongeza kichupo kipya.</translation> <translation id="7671141431838911305">SAKINISHA</translation> +<translation id="7690812411882623730">Haijaweka Kiungo Kinachoelekeza kwenye Maandishi</translation> <translation id="7701040980221191251">Hamna</translation> <translation id="7765158879357617694">Sogeza</translation> <translation id="7771470029643830783">Kwa kuondoka katika akaunti, alamisho, historia, manenosiri na data yako nyingine ya Chrome hazitasawazishwa tena kwenye Akaunti yako ya Google.
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb index 94d54047..1756697 100644 --- a/ios/chrome/app/strings/resources/ios_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">การพิมพ์ล้มเหลว</translation> <translation id="1125564390852150847">สร้างแท็บใหม่</translation> <translation id="1145536944570833626">ลบข้อมูลที่มีอยู่</translation> +<translation id="1154690515305205900">สร้างลิงก์ไปยังข้อความที่ไฮไลต์ไม่สำเร็จ</translation> <translation id="1165039591588034296">ข้อผิดพลาด</translation> <translation id="1172898394251786223">ช่องถัดไป</translation> <translation id="1176932207622159128">ไม่สามารถบันทึกภาพ</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">แท็บที่เปิดอยู่</translation> <translation id="3272527697863656322">ยกเลิก</translation> <translation id="3277021493514034324">คัดลอกที่อยู่เว็บไซต์แล้ว</translation> +<translation id="3285962946108803577">แชร์หน้าเว็บ...</translation> <translation id="3290875554372353449">เลือกบัญชี</translation> <translation id="3311748811247479259">ปิด</translation> <translation id="3324193307694657476">ที่อยู่ 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">ยกเลิก</translation> <translation id="766891008101699113">หากต้องการท่องเว็บแบบเป็นส่วนตัว ให้เพิ่มแท็บใหม่</translation> <translation id="7671141431838911305">ติดตั้ง</translation> +<translation id="7690812411882623730">สร้างลิงก์ไปยังข้อความไม่สำเร็จ</translation> <translation id="7701040980221191251">ไม่มี</translation> <translation id="7765158879357617694">ย้าย</translation> <translation id="7771470029643830783">การออกจากระบบจะทำให้บุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และข้อมูลอื่นๆ ใน Chrome ไม่ซิงค์กับบัญชี Google อีกต่อไป
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb index 7175d24..a96cf76 100644 --- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">Yazdırılamadı.</translation> <translation id="1125564390852150847">Yeni sekme oluştur.</translation> <translation id="1145536944570833626">Mevcut verileri silin.</translation> +<translation id="1154690515305205900">Vurgulanan metne bağlantı oluşturulamadı.</translation> <translation id="1165039591588034296">Hata</translation> <translation id="1172898394251786223">Sonraki alan</translation> <translation id="1176932207622159128">Görüntü Kaydedilemiyor</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Açık Sekmeler</translation> <translation id="3272527697863656322">İptal</translation> <translation id="3277021493514034324">Site adresi kopyalandı</translation> +<translation id="3285962946108803577">Sayfayı Paylaş...</translation> <translation id="3290875554372353449">Bir Hesap Seçin</translation> <translation id="3311748811247479259">Kapalı</translation> <translation id="3324193307694657476">Adres 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">İptal</translation> <translation id="766891008101699113">Web'e gizli modda göz atmak için yeni bir sekme ekleyin.</translation> <translation id="7671141431838911305">YÜKLE</translation> +<translation id="7690812411882623730">Metne Bağlantı Oluşturulamadı</translation> <translation id="7701040980221191251">Yok</translation> <translation id="7765158879357617694">Taşı</translation> <translation id="7771470029643830783">Oturumu kapattığınızda, yer işaretleri, geçmiş, şifreler ve diğer Chrome verileriniz artık Google Hesabınız ile senkronize edilmeyecek.
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb index 131f6ca..1069753 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">Не надруковано.</translation> <translation id="1125564390852150847">Створити вкладку.</translation> <translation id="1145536944570833626">Видалити наявні дані.</translation> +<translation id="1154690515305205900">Помилка створення посилання на виділений текст.</translation> <translation id="1165039591588034296">Помилка</translation> <translation id="1172898394251786223">Наступне поле</translation> <translation id="1176932207622159128">Помилка збереження</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Відкриті вкладки</translation> <translation id="3272527697863656322">Скасувати</translation> <translation id="3277021493514034324">Адресу сайту скопійовано</translation> +<translation id="3285962946108803577">Поділитися сторінкою…</translation> <translation id="3290875554372353449">Виберіть обліковий запис</translation> <translation id="3311748811247479259">Вимкнено</translation> <translation id="3324193307694657476">Адреса 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">Скасувати</translation> <translation id="766891008101699113">Щоб переглядати веб-сторінки конфіденційно, додайте нову вкладку.</translation> <translation id="7671141431838911305">INSTALL</translation> +<translation id="7690812411882623730">Не вдалося створити посилання на текст</translation> <translation id="7701040980221191251">Немає</translation> <translation id="7765158879357617694">Перемістити</translation> <translation id="7771470029643830783">Якщо ви вийдете, дані Chrome (зокрема закладки, історія та паролі) більше не синхронізуватимуться з вашим обліковим записом Google.
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb index 814084b..ab2cd9a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">پرنٹنگ ناکام۔</translation> <translation id="1125564390852150847">نیا ٹیب بنائیں۔</translation> <translation id="1145536944570833626">موجودہ ڈیٹا کو حذف کریں۔</translation> +<translation id="1154690515305205900">نمایاں کردہ ٹیکسٹ کا لنک تخلیق نہیں کیا جا سکتا۔</translation> <translation id="1165039591588034296">خرابی</translation> <translation id="1172898394251786223">اگلا فیلڈ</translation> <translation id="1176932207622159128">تصویر کو محفوظ نہیں کر سکتے ہیں</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">کھلے ٹیبز</translation> <translation id="3272527697863656322">منسوخ کریں</translation> <translation id="3277021493514034324">سائٹ کا پتہ کاپی ہو گیا</translation> +<translation id="3285962946108803577">صفحہ کا اشتراک کریں...</translation> <translation id="3290875554372353449">اکاؤنٹ منتخب کریں</translation> <translation id="3311748811247479259">آف</translation> <translation id="3324193307694657476">پتہ 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">منسوخ کریں</translation> <translation id="766891008101699113">نجی طور پر ویب پر براوز کرنے کیلئے، نیا ٹیب شامل کریں۔</translation> <translation id="7671141431838911305">انسٹال کریں</translation> +<translation id="7690812411882623730">ٹیکسٹ سے لنک کرنے سے قاصر</translation> <translation id="7701040980221191251">کوئی نہیں</translation> <translation id="7765158879357617694">منتقل کریں</translation> <translation id="7771470029643830783">سائن آؤٹ کر کے، آپ کے بُک مارکس، سرگزشت، پاس ورڈز اور Chrome کے دیگر ڈیٹا کی اب آپ کے Google اکاؤنٹ کے ساتھ مطابقت پذیری نہیں کی جائے گی۔
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb index 88bd6c2..5dd8bdd 100644 --- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">In không thành công.</translation> <translation id="1125564390852150847">Tạo thẻ mới.</translation> <translation id="1145536944570833626">Xóa dữ liệu hiện có.</translation> +<translation id="1154690515305205900">Không thể tạo đường liên kết đến văn bản được đánh dấu.</translation> <translation id="1165039591588034296">Lỗi</translation> <translation id="1172898394251786223">Trường tiếp theo</translation> <translation id="1176932207622159128">Không thể lưu ảnh</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">Thẻ đang mở</translation> <translation id="3272527697863656322">Hủy</translation> <translation id="3277021493514034324">Đã sao chép địa chỉ trang web</translation> +<translation id="3285962946108803577">Chia sẻ trang...</translation> <translation id="3290875554372353449">Chọn một tài khoản</translation> <translation id="3311748811247479259">Đang tắt</translation> <translation id="3324193307694657476">Địa chỉ 2</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">Hủy</translation> <translation id="766891008101699113">Để duyệt web ở chế độ riêng tư, hãy thêm thẻ mới.</translation> <translation id="7671141431838911305">CÀI ĐẶT</translation> +<translation id="7690812411882623730">Không thể liên kết đến văn bản</translation> <translation id="7701040980221191251">Không có</translation> <translation id="7765158879357617694">Di chuyển</translation> <translation id="7771470029643830783">Khi bạn đăng xuất, dấu trang, lịch sử hoạt động, mật khẩu và các dữ liệu khác của bạn trên Chrome sẽ không được đồng bộ hóa với Tài khoản Google nữa.
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb index fa593b9..9c292ae 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -18,6 +18,7 @@ <translation id="1112015203684611006">打印操作失败。</translation> <translation id="1125564390852150847">创建新的标签页。</translation> <translation id="1145536944570833626">删除现有数据。</translation> +<translation id="1154690515305205900">无法创建指向突出显示的文本的链接。</translation> <translation id="1165039591588034296">错误</translation> <translation id="1172898394251786223">下一个字段</translation> <translation id="1176932207622159128">无法保存图片</translation> @@ -212,6 +213,7 @@ <translation id="3268451620468152448">打开的标签页</translation> <translation id="3272527697863656322">取消</translation> <translation id="3277021493514034324">已复制网站地址</translation> +<translation id="3285962946108803577">分享页面…</translation> <translation id="3290875554372353449">选择帐号</translation> <translation id="3311748811247479259">已关闭</translation> <translation id="3324193307694657476">地址第2行</translation> @@ -612,6 +614,7 @@ <translation id="7658239707568436148">取消</translation> <translation id="766891008101699113">要以私密方式浏览网页,请添加新标签页。</translation> <translation id="7671141431838911305">安装</translation> +<translation id="7690812411882623730">无法链接到所选文本</translation> <translation id="7701040980221191251">无</translation> <translation id="7765158879357617694">移动</translation> <translation id="7771470029643830783">退出帐号后,您的书签、历史记录、密码及其他 Chrome 数据将不再同步到您的 Google 帐号中。
diff --git a/ios/chrome/browser/application_context_impl.h b/ios/chrome/browser/application_context_impl.h index 026c01e..15217f9 100644 --- a/ios/chrome/browser/application_context_impl.h +++ b/ios/chrome/browser/application_context_impl.h
@@ -100,7 +100,10 @@ std::unique_ptr<BreadcrumbPersistentStorageManager> breadcrumb_persistent_storage_manager_; - // Must be destroyed after |local_state_|. + // Must be destroyed after |local_state_|. BrowserStatePolicyConnector isn't a + // keyed service because the pref service, which isn't a keyed service, has a + // hard dependency on the policy infrastructure. In order to outlive the pref + // service, the policy connector must live outside the keyed services. std::unique_ptr<BrowserPolicyConnectorIOS> browser_policy_connector_; std::unique_ptr<PrefService> local_state_;
diff --git a/ios/chrome/browser/browser_state/BUILD.gn b/ios/chrome/browser/browser_state/BUILD.gn index 0b7d6d6..0c1f491 100644 --- a/ios/chrome/browser/browser_state/BUILD.gn +++ b/ios/chrome/browser/browser_state/BUILD.gn
@@ -2,6 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//ios/build/chrome_build.gni") + source_set("browser_state") { sources = [ "browser_state_otr_helper.cc", @@ -94,7 +96,7 @@ "//ios/chrome/browser/browsing_data", "//ios/chrome/browser/content_settings", "//ios/chrome/browser/crash_report/breadcrumbs", - "//ios/chrome/browser/credential_provider", + "//ios/chrome/browser/credential_provider:buildflags", "//ios/chrome/browser/device_sharing", "//ios/chrome/browser/discover_feed", "//ios/chrome/browser/dom_distiller", @@ -117,8 +119,7 @@ "//ios/chrome/browser/prefs:browser_prefs", "//ios/chrome/browser/reading_list", "//ios/chrome/browser/safe_browsing", - "//ios/chrome/browser/screen_time", - "//ios/chrome/browser/screen_time:feature_flags", + "//ios/chrome/browser/screen_time:buildflags", "//ios/chrome/browser/search_engines", "//ios/chrome/browser/send_tab_to_self", "//ios/chrome/browser/sessions", @@ -141,6 +142,15 @@ "//net", "//net:extras", ] + if (ios_enable_screen_time) { + deps += [ + "//ios/chrome/browser/screen_time", + "//ios/chrome/browser/screen_time:feature_flags", + ] + } + if (ios_enable_credential_provider_extension) { + deps += [ "//ios/chrome/browser/credential_provider" ] + } allow_circular_includes_from = [ "//ios/chrome/browser", "//ios/chrome/browser/browser_state_metrics",
diff --git a/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm b/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm index c460e9d..cf00f57 100644 --- a/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm +++ b/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm
@@ -14,7 +14,7 @@ #include "ios/chrome/browser/browsing_data/browsing_data_remover_factory.h" #include "ios/chrome/browser/content_settings/cookie_settings_factory.h" #include "ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_manager_keyed_service_factory.h" -#include "ios/chrome/browser/credential_provider/credential_provider_service_factory.h" +#include "ios/chrome/browser/credential_provider/credential_provider_buildflags.h" #import "ios/chrome/browser/device_sharing/device_sharing_manager_factory.h" #include "ios/chrome/browser/discover_feed/discover_feed_service_factory.h" #include "ios/chrome/browser/dom_distiller/dom_distiller_service_factory.h" @@ -41,7 +41,7 @@ #include "ios/chrome/browser/reading_list/reading_list_model_factory.h" #import "ios/chrome/browser/safe_browsing/real_time_url_lookup_service_factory.h" #import "ios/chrome/browser/safe_browsing/verdict_cache_manager_factory.h" -#import "ios/chrome/browser/screen_time/features.h" +#include "ios/chrome/browser/screen_time/screen_time_buildflags.h" #include "ios/chrome/browser/search_engines/template_url_service_factory.h" #include "ios/chrome/browser/signin/about_signin_internals_factory.h" #include "ios/chrome/browser/signin/account_consistency_service_factory.h" @@ -64,9 +64,14 @@ #include "ios/chrome/browser/unified_consent/unified_consent_service_factory.h" #include "ios/chrome/browser/webdata_services/web_data_service_factory.h" -#if defined(__IPHONE_14_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 +#if BUILDFLAG(IOS_CREDENTIAL_PROVIDER_ENABLED) +#include "ios/chrome/browser/credential_provider/credential_provider_service_factory.h" +#endif + +#if BUILDFLAG(IOS_SCREEN_TIME_ENABLED) +#import "ios/chrome/browser/screen_time/features.h" #import "ios/chrome/browser/screen_time/screen_time_history_deleter_factory.h" -#endif // __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 +#endif #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." @@ -108,7 +113,6 @@ BrowserDownloadServiceFactory::GetInstance(); BrowsingDataRemoverFactory::GetInstance(); ConsentAuditorFactory::GetInstance(); - CredentialProviderServiceFactory::GetInstance(); DeviceSharingManagerFactory::GetInstance(); DiscoverFeedServiceFactory::GetInstance(); GoogleLogoServiceFactory::GetInstance(); @@ -142,11 +146,15 @@ PolicyBlocklistServiceFactory::GetInstance(); } -#if defined(__IPHONE_14_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 - if (@available(iOS 14, *)) { - if (IsScreenTimeIntegrationEnabled()) { +#if BUILDFLAG(IOS_CREDENTIAL_PROVIDER_ENABLED) + CredentialProviderServiceFactory::GetInstance(); +#endif + +#if BUILDFLAG(IOS_SCREEN_TIME_ENABLED) + if (IsScreenTimeIntegrationEnabled()) { + if (@available(iOS 14, *)) { ScreenTimeHistoryDeleterFactory::GetInstance(); } } -#endif // __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 +#endif }
diff --git a/ios/chrome/browser/credential_provider/BUILD.gn b/ios/chrome/browser/credential_provider/BUILD.gn index 8a00e1d1..68c97e9 100644 --- a/ios/chrome/browser/credential_provider/BUILD.gn +++ b/ios/chrome/browser/credential_provider/BUILD.gn
@@ -6,74 +6,75 @@ import("//build/config/ios/ios_sdk.gni") import("//ios/build/chrome_build.gni") -source_set("credential_provider") { - configs += [ "//build/config/compiler:enable_arc" ] - sources = [ - "archivable_credential+password_form.h", - "archivable_credential+password_form.mm", - "credential_provider_service.h", - "credential_provider_service.mm", - "credential_provider_service_factory.h", - "credential_provider_service_factory.mm", - "credential_provider_support.cc", - "credential_provider_support.h", - "credential_provider_util.h", - "credential_provider_util.mm", - ] - deps = [ - ":buildflags", - "//base", - "//components/autofill/core/common", - "//components/keyed_service/core", - "//components/keyed_service/ios", - "//components/password_manager/core/browser", - "//components/password_manager/core/browser:affiliation", - "//components/signin/public/identity_manager", - "//ios/chrome/browser/browser_state", - "//ios/chrome/browser/passwords", - "//ios/chrome/browser/signin", - "//ios/chrome/browser/sync", - "//ios/chrome/common/app_group", - "//ios/chrome/common/credential_provider", - "//ios/public/provider/chrome/browser/signin", - "//url", - ] - frameworks = [ - "AuthenticationServices.framework", - "Foundation.framework", - ] -} - buildflag_header("buildflags") { header = "credential_provider_buildflags.h" - header_dir = "ios/chrome/browser/ui/util" flags = [ "IOS_CREDENTIAL_PROVIDER_ENABLED=$ios_enable_credential_provider_extension", ] } -source_set("unit_tests") { - configs += [ "//build/config/compiler:enable_arc" ] - testonly = true - sources = [ - "archivable_credential+password_form_unittest.mm", - "credential_provider_service_unittest.mm", - ] - deps = [ - ":credential_provider", - "//base/test:test_support", - "//components/autofill/core/common", - "//components/password_manager/core/browser:test_support", - "//ios/chrome/browser/browser_state:test_support", - "//ios/chrome/browser/signin", - "//ios/chrome/browser/signin:test_support", - "//ios/chrome/common/app_group", - "//ios/chrome/common/credential_provider", - "//ios/chrome/common/credential_provider:ui", - "//ios/public/provider/chrome/browser/signin:fake_chrome_identity", - "//ios/public/provider/chrome/browser/signin:test_support", - "//ios/web/public/test", - "//testing/gtest", - "//url", - ] +if (ios_enable_credential_provider_extension) { + source_set("credential_provider") { + configs += [ "//build/config/compiler:enable_arc" ] + sources = [ + "archivable_credential+password_form.h", + "archivable_credential+password_form.mm", + "credential_provider_service.h", + "credential_provider_service.mm", + "credential_provider_service_factory.h", + "credential_provider_service_factory.mm", + "credential_provider_support.cc", + "credential_provider_support.h", + "credential_provider_util.h", + "credential_provider_util.mm", + ] + deps = [ + ":buildflags", + "//base", + "//components/autofill/core/common", + "//components/keyed_service/core", + "//components/keyed_service/ios", + "//components/password_manager/core/browser", + "//components/password_manager/core/browser:affiliation", + "//components/signin/public/identity_manager", + "//ios/chrome/browser/browser_state", + "//ios/chrome/browser/passwords", + "//ios/chrome/browser/signin", + "//ios/chrome/browser/sync", + "//ios/chrome/common/app_group", + "//ios/chrome/common/credential_provider", + "//ios/public/provider/chrome/browser/signin", + "//url", + ] + frameworks = [ + "AuthenticationServices.framework", + "Foundation.framework", + ] + } + + source_set("unit_tests") { + configs += [ "//build/config/compiler:enable_arc" ] + testonly = true + sources = [ + "archivable_credential+password_form_unittest.mm", + "credential_provider_service_unittest.mm", + ] + deps = [ + ":credential_provider", + "//base/test:test_support", + "//components/autofill/core/common", + "//components/password_manager/core/browser:test_support", + "//ios/chrome/browser/browser_state:test_support", + "//ios/chrome/browser/signin", + "//ios/chrome/browser/signin:test_support", + "//ios/chrome/common/app_group", + "//ios/chrome/common/credential_provider", + "//ios/chrome/common/credential_provider:ui", + "//ios/public/provider/chrome/browser/signin:fake_chrome_identity", + "//ios/public/provider/chrome/browser/signin:test_support", + "//ios/web/public/test", + "//testing/gtest", + "//url", + ] + } }
diff --git a/ios/chrome/browser/credential_provider/credential_provider_support.cc b/ios/chrome/browser/credential_provider/credential_provider_support.cc index be1b6e0..6107a2e5 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_support.cc +++ b/ios/chrome/browser/credential_provider/credential_provider_support.cc
@@ -4,7 +4,7 @@ #include "ios/chrome/browser/credential_provider/credential_provider_support.h" -#include "ios/chrome/browser/ui/util/credential_provider_buildflags.h" +#include "ios/chrome/browser/credential_provider/credential_provider_buildflags.h" bool IsCredentialProviderExtensionSupported() { return BUILDFLAG(IOS_CREDENTIAL_PROVIDER_ENABLED);
diff --git a/ios/chrome/browser/flags/BUILD.gn b/ios/chrome/browser/flags/BUILD.gn index db054b3a..09b8727f 100644 --- a/ios/chrome/browser/flags/BUILD.gn +++ b/ios/chrome/browser/flags/BUILD.gn
@@ -2,6 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//ios/build/chrome_build.gni") + source_set("flags") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ @@ -49,7 +51,7 @@ "//ios/chrome/browser/drag_and_drop", "//ios/chrome/browser/open_in:features", "//ios/chrome/browser/policy:feature_flags", - "//ios/chrome/browser/screen_time:feature_flags", + "//ios/chrome/browser/screen_time:buildflags", "//ios/chrome/browser/ui:feature_flags", "//ios/chrome/browser/ui/content_suggestions:feature_flags", "//ios/chrome/browser/ui/download:features", @@ -67,6 +69,10 @@ "//ios/web/common:web_view_creation_util", "//ios/web/public", ] + + if (ios_enable_screen_time) { + deps += [ "//ios/chrome/browser/screen_time:feature_flags" ] + } } source_set("unit_tests") {
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index b9aaf50..1158d011 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -62,7 +62,7 @@ #include "ios/chrome/browser/flags/ios_chrome_flag_descriptions.h" #import "ios/chrome/browser/open_in/features.h" #include "ios/chrome/browser/policy/policy_features.h" -#include "ios/chrome/browser/screen_time/features.h" +#include "ios/chrome/browser/screen_time/screen_time_buildflags.h" #include "ios/chrome/browser/system_flags.h" #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.h" #import "ios/chrome/browser/ui/download/features.h" @@ -81,6 +81,10 @@ #include "ios/web/common/user_agent.h" #include "ios/web/common/web_view_creation_util.h" +#if BUILDFLAG(IOS_SCREEN_TIME_ENABLED) +#include "ios/chrome/browser/screen_time/features.h" +#endif + #if !defined(OFFICIAL_BUILD) #include "components/variations/variations_switches.h" #endif @@ -614,10 +618,12 @@ flag_descriptions::kEnableCloseAllTabsConfirmationName, flag_descriptions::kEnableCloseAllTabsConfirmationDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(kEnableCloseAllTabsConfirmation)}, +#if BUILDFLAG(IOS_SCREEN_TIME_ENABLED) {"screen-time-integration-ios", flag_descriptions::kScreenTimeIntegrationName, flag_descriptions::kScreenTimeIntegrationDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(kScreenTimeIntegration)}, +#endif {"mobile-identity-consistency", flag_descriptions::kMobileIdentityConsistencyName, flag_descriptions::kMobileIdentityConsistencyDescription, flags_ui::kOsIos,
diff --git a/ios/chrome/browser/passwords/password_controller_unittest.mm b/ios/chrome/browser/passwords/password_controller_unittest.mm index 7b714d7..69f25ceb 100644 --- a/ios/chrome/browser/passwords/password_controller_unittest.mm +++ b/ios/chrome/browser/passwords/password_controller_unittest.mm
@@ -411,8 +411,8 @@ void InjectGeneratedPassword(FormRendererId form_id, FieldRendererId field_id, NSString* password) { - autofill::PasswordFormGenerationData generation_data(form_id, field_id, - FieldRendererId()); + autofill::PasswordFormGenerationData generation_data = {form_id, field_id, + FieldRendererId()}; [passwordController_.sharedPasswordController formEligibleForGenerationFound:generation_data]; __block BOOL block_was_called = NO;
diff --git a/ios/chrome/browser/policy/browser_state_policy_connector.h b/ios/chrome/browser/policy/browser_state_policy_connector.h index c049860..e934a264 100644 --- a/ios/chrome/browser/policy/browser_state_policy_connector.h +++ b/ios/chrome/browser/policy/browser_state_policy_connector.h
@@ -18,6 +18,10 @@ // BrowserStatePolicyConnector creates and manages the per-BrowserState policy // components and their integration with PrefService. +// BrowserStatePolicyConnector isn't a keyed service because the pref service, +// which isn't a keyed service, has a hard dependency on the policy +// infrastructure. In order to outlive the pref service, the policy connector +// must live outside the keyed services. class BrowserStatePolicyConnector { public: BrowserStatePolicyConnector();
diff --git a/ios/chrome/browser/policy/browser_state_policy_connector_mock.h b/ios/chrome/browser/policy/browser_state_policy_connector_mock.h index bbd4d36..b099156 100644 --- a/ios/chrome/browser/policy/browser_state_policy_connector_mock.h +++ b/ios/chrome/browser/policy/browser_state_policy_connector_mock.h
@@ -16,6 +16,10 @@ // BrowserStatePolicyConnector creates and manages the per-BrowserState policy // components and their integration with PrefService. +// BrowserStatePolicyConnector isn't a keyed service because the pref service, +// which isn't a keyed service, has a hard dependency on the policy +// infrastructure. In order to outlive the pref service, the policy connector +// must live outside the keyed services. class BrowserStatePolicyConnectorMock : public BrowserStatePolicyConnector { public: BrowserStatePolicyConnectorMock(
diff --git a/ios/chrome/browser/policy/reporting/report_scheduler_ios.h b/ios/chrome/browser/policy/reporting/report_scheduler_ios.h index 823426c1..b97990ac 100644 --- a/ios/chrome/browser/policy/reporting/report_scheduler_ios.h +++ b/ios/chrome/browser/policy/reporting/report_scheduler_ios.h
@@ -27,7 +27,9 @@ void StartWatchingUpdatesIfNeeded(base::Time last_upload, base::TimeDelta upload_interval) override; void StopWatchingUpdates() override; - void SaveLastUploadVersion() override; + void OnBrowserVersionUploaded() override; + void StopWatchingExtensionRequest() override; + void OnExtensionRequestUploaded() override; }; } // namespace enterprise_reporting
diff --git a/ios/chrome/browser/policy/reporting/report_scheduler_ios.mm b/ios/chrome/browser/policy/reporting/report_scheduler_ios.mm index fc8f4b27..0e348ab 100644 --- a/ios/chrome/browser/policy/reporting/report_scheduler_ios.mm +++ b/ios/chrome/browser/policy/reporting/report_scheduler_ios.mm
@@ -30,7 +30,15 @@ // Not used on iOS because there is no in-app auto-update. } -void ReportSchedulerIOS::SaveLastUploadVersion() { +void ReportSchedulerIOS::OnBrowserVersionUploaded() { + // Not used on iOS because there is no in-app auto-update. +} + +void ReportSchedulerIOS::StopWatchingExtensionRequest() { + // Not used on iOS because there is no in-app auto-update. +} + +void ReportSchedulerIOS::OnExtensionRequestUploaded() { // Not used on iOS because there is no in-app auto-update. }
diff --git a/ios/chrome/browser/screen_time/BUILD.gn b/ios/chrome/browser/screen_time/BUILD.gn index 07936d7..6731ac9 100644 --- a/ios/chrome/browser/screen_time/BUILD.gn +++ b/ios/chrome/browser/screen_time/BUILD.gn
@@ -2,12 +2,25 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/ios/ios_sdk.gni") +import("//build/buildflag_header.gni") +import("//ios/build/chrome_build.gni") -source_set("screen_time") { - # TODO(crbug.com/1123704): remove when it is recommended to build Chromium - # with version 12.0 or later of Xcode. - if (xcode_version_int >= 1200) { +buildflag_header("buildflags") { + header = "screen_time_buildflags.h" + flags = [ "IOS_SCREEN_TIME_ENABLED=$ios_enable_screen_time" ] +} + +if (ios_enable_screen_time) { + source_set("feature_flags") { + sources = [ + "features.h", + "features.mm", + ] + configs += [ "//build/config/compiler:enable_arc" ] + deps = [ "//base" ] + } + + source_set("screen_time") { sources = [ "screen_time_history_deleter.h", "screen_time_history_deleter.mm", @@ -26,12 +39,3 @@ ] } } - -source_set("feature_flags") { - sources = [ - "features.h", - "features.mm", - ] - configs += [ "//build/config/compiler:enable_arc" ] - deps = [ "//base" ] -}
diff --git a/ios/chrome/browser/ui/browser_container/BUILD.gn b/ios/chrome/browser/ui/browser_container/BUILD.gn index 52f9f88..ae95b9a 100644 --- a/ios/chrome/browser/ui/browser_container/BUILD.gn +++ b/ios/chrome/browser/ui/browser_container/BUILD.gn
@@ -2,6 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//ios/build/chrome_build.gni") + source_set("browser_container") { sources = [ "browser_container_coordinator.h", @@ -18,16 +20,22 @@ "//ios/chrome/browser/main", "//ios/chrome/browser/overlays", "//ios/chrome/browser/overlays/public/web_content_area", - "//ios/chrome/browser/screen_time:feature_flags", + "//ios/chrome/browser/screen_time:buildflags", "//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/link_to_text", "//ios/chrome/browser/ui/overlays", - "//ios/chrome/browser/ui/screen_time", "//ios/chrome/browser/web_state_list", "//ios/web/public", "//url", ] + + if (ios_enable_screen_time) { + deps += [ + "//ios/chrome/browser/screen_time:feature_flags", + "//ios/chrome/browser/ui/screen_time", + ] + } } source_set("ui") {
diff --git a/ios/chrome/browser/ui/browser_container/browser_container_coordinator.mm b/ios/chrome/browser/ui/browser_container/browser_container_coordinator.mm index 39846a2..1da706f 100644 --- a/ios/chrome/browser/ui/browser_container/browser_container_coordinator.mm +++ b/ios/chrome/browser/ui/browser_container/browser_container_coordinator.mm
@@ -9,7 +9,7 @@ #include "base/check.h" #import "ios/chrome/browser/main/browser.h" #import "ios/chrome/browser/overlays/public/overlay_presenter.h" -#import "ios/chrome/browser/screen_time/features.h" +#include "ios/chrome/browser/screen_time/screen_time_buildflags.h" #import "ios/chrome/browser/ui/browser_container/browser_container_mediator.h" #import "ios/chrome/browser/ui/browser_container/browser_container_view_controller.h" #import "ios/chrome/browser/ui/commands/activity_service_commands.h" @@ -18,9 +18,10 @@ #import "ios/chrome/browser/ui/overlays/overlay_container_coordinator.h" #import "url/gurl.h" -#if defined(__IPHONE_14_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 +#if BUILDFLAG(IOS_SCREEN_TIME_ENABLED) +#import "ios/chrome/browser/screen_time/features.h" #import "ios/chrome/browser/ui/screen_time/screen_time_coordinator.h" -#endif // __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 +#endif #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." @@ -98,10 +99,10 @@ // Sets up the ScreenTime coordinator, which installs and manages the ScreenTime // blocking view. - (void)setUpScreenTimeIfEnabled { +#if BUILDFLAG(IOS_SCREEN_TIME_ENABLED) if (!IsScreenTimeIntegrationEnabled()) return; -#if defined(__IPHONE_14_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 if (@available(iOS 14, *)) { ScreenTimeCoordinator* screenTimeCoordinator = [[ScreenTimeCoordinator alloc] @@ -112,7 +113,7 @@ screenTimeCoordinator.viewController; self.screenTimeCoordinator = screenTimeCoordinator; } -#endif // __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 +#endif } @end
diff --git a/ios/chrome/browser/ui/screen_time/BUILD.gn b/ios/chrome/browser/ui/screen_time/BUILD.gn index 3234100..feb3588 100644 --- a/ios/chrome/browser/ui/screen_time/BUILD.gn +++ b/ios/chrome/browser/ui/screen_time/BUILD.gn
@@ -2,36 +2,36 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/ios/ios_sdk.gni") +import("//ios/build/chrome_build.gni") + +assert( + ios_enable_screen_time, + "ios_enable_screen_time must be true to depend on //ios/chrome/browser/ui/screen_time") source_set("screen_time") { - # TODO(crbug.com/1123704): remove when it is recommended to build Chromium - # with version 12.0 or later of Xcode. - if (xcode_version_int >= 1200) { - sources = [ - "screen_time_consumer.h", - "screen_time_coordinator.h", - "screen_time_coordinator.mm", - "screen_time_mediator.h", - "screen_time_mediator.mm", - "screen_time_view_controller.h", - "screen_time_view_controller.mm", - ] - frameworks = [ - "UIKit.framework", - "ScreenTime.framework", - ] - configs += [ "//build/config/compiler:enable_arc" ] - deps = [ - "//base", - "//ios/chrome/browser/browser_state", - "//ios/chrome/browser/main:public", - "//ios/chrome/browser/screen_time", - "//ios/chrome/browser/ui/coordinators:chrome_coordinators", - "//ios/chrome/browser/web_state_list", - "//ios/chrome/common/ui/util", - "//ios/web/public", - "//net", - ] - } + sources = [ + "screen_time_consumer.h", + "screen_time_coordinator.h", + "screen_time_coordinator.mm", + "screen_time_mediator.h", + "screen_time_mediator.mm", + "screen_time_view_controller.h", + "screen_time_view_controller.mm", + ] + frameworks = [ + "UIKit.framework", + "ScreenTime.framework", + ] + configs += [ "//build/config/compiler:enable_arc" ] + deps = [ + "//base", + "//ios/chrome/browser/browser_state", + "//ios/chrome/browser/main:public", + "//ios/chrome/browser/screen_time", + "//ios/chrome/browser/ui/coordinators:chrome_coordinators", + "//ios/chrome/browser/web_state_list", + "//ios/chrome/common/ui/util", + "//ios/web/public", + "//net", + ] }
diff --git a/ios/chrome/browser/ui/settings/cells/settings_image_detail_text_cell.mm b/ios/chrome/browser/ui/settings/cells/settings_image_detail_text_cell.mm index a0a3e5a1..c0b3f4c 100644 --- a/ios/chrome/browser/ui/settings/cells/settings_image_detail_text_cell.mm +++ b/ios/chrome/browser/ui/settings/cells/settings_image_detail_text_cell.mm
@@ -110,6 +110,10 @@ constraintGreaterThanOrEqualToAnchor:textStackView.bottomAnchor constant: kTableViewTwoLabelsCellVerticalSpacing], + + // Leading constraint for |customSepartor|. + [self.customSeparator.leadingAnchor + constraintEqualToAnchor:self.textLabel.leadingAnchor], ]]; }
diff --git a/ios/chrome/browser/ui/settings/cells/settings_switch_cell.mm b/ios/chrome/browser/ui/settings/cells/settings_switch_cell.mm index afc7cb1..eecad01 100644 --- a/ios/chrome/browser/ui/settings/cells/settings_switch_cell.mm +++ b/ios/chrome/browser/ui/settings/cells/settings_switch_cell.mm
@@ -150,6 +150,10 @@ constraintEqualToAnchor:_detailTextLabel.bottomAnchor], [_textLabel.bottomAnchor constraintEqualToAnchor:_detailTextLabel.topAnchor], + + // Leading constraint for |customSepartor|. + [self.customSeparator.leadingAnchor + constraintEqualToAnchor:_textLabel.leadingAnchor], ]]; if (UIContentSizeCategoryIsAccessibilityCategory(
diff --git a/ios/chrome/browser/ui/settings/google_services/google_services_settings_egtest.mm b/ios/chrome/browser/ui/settings/google_services/google_services_settings_egtest.mm index 626fc1f..2820093 100644 --- a/ios/chrome/browser/ui/settings/google_services/google_services_settings_egtest.mm +++ b/ios/chrome/browser/ui/settings/google_services/google_services_settings_egtest.mm
@@ -35,6 +35,8 @@ using chrome_test_util::ButtonWithAccessibilityLabelId; using chrome_test_util::GoogleServicesSettingsButton; using chrome_test_util::SettingsDoneButton; +using chrome_test_util::SettingsMenuBackButton; +using chrome_test_util::SyncSettingsConfirmButton; // Integration tests using the Google services settings screen. @interface GoogleServicesSettingsTestCase : ChromeTestCase @@ -349,6 +351,47 @@ @"Failed to toggle-on password leak checks"); } +// Tests the following steps: +// + Opens sign-in from Google services +// + Taps on the settings link to open the advanced sign-in settings +// + Opens "Manage Sync" twice +// The "Manage Sync" should not be disabled when closing "Manage Sync" view. +- (void)testOpenManageSyncSettings { + FakeChromeIdentity* fakeIdentity = [SigninEarlGrey fakeIdentity1]; + [SigninEarlGrey addFakeIdentity:fakeIdentity]; + + [ChromeEarlGreyUI openSettingsMenu]; + [ChromeEarlGreyUI + tapSettingsMenuButton:chrome_test_util::PrimarySignInButton()]; + [SigninEarlGreyUI tapSettingsLink]; + // Open "Manage Sync" settings. + id<GREYMatcher> manageSyncMatcher = + [self cellMatcherWithTitleID:IDS_IOS_MANAGE_SYNC_SETTINGS_TITLE + detailTextID:0]; + [[EarlGrey selectElementWithMatcher:manageSyncMatcher] + performAction:grey_tap()]; + + id<GREYMatcher> backButtonMatcher = + grey_allOf(SettingsMenuBackButton(), + grey_descendant(grey_kindOfClass([UIImageView class])), nil); + // Back to the Google services settings view. + [[EarlGrey selectElementWithMatcher:backButtonMatcher] + performAction:grey_tap()]; + // Open "Manage Sync" settings, again. + [[EarlGrey selectElementWithMatcher:manageSyncMatcher] + performAction:grey_tap()]; + // Back to the Google services settings view. + [[EarlGrey selectElementWithMatcher:backButtonMatcher] + performAction:grey_tap()]; + + // Close the advance settings. + [[EarlGrey selectElementWithMatcher:SyncSettingsConfirmButton()] + performAction:grey_tap()]; + + // Test the user is signed in. + [SigninEarlGrey verifySignedInWithFakeIdentity:fakeIdentity]; +} + #pragma mark - Helpers // Opens the Google services settings.
diff --git a/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_coordinator.mm b/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_coordinator.mm index 7041d20..f61c601 100644 --- a/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_coordinator.mm +++ b/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_coordinator.mm
@@ -113,9 +113,16 @@ } - (void)stop { + // If kMobileIdentityConsistency is disabled, + // GoogleServicesSettingsCoordinator is in charge to enable sync or not when + // being closed. This coordinator displays a sub view. + // With kMobileIdentityConsistency enabled: + // This coordinator displays the main view and it is in charge to enable sync + // or not when being closed. // Sync changes should only be commited if the user is authenticated and // the sign-in has not been interrupted. - if (self.authService->IsAuthenticated() || !self.signinInterrupted) { + if (base::FeatureList::IsEnabled(signin::kMobileIdentityConsistency) && + (self.authService->IsAuthenticated() || !self.signinInterrupted)) { SyncSetupService* syncSetupService = SyncSetupServiceFactory::GetForBrowserState( self.browser->GetBrowserState());
diff --git a/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_controller.mm b/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_controller.mm index 64ddef90..61bc0cef 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_controller.mm +++ b/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_controller.mm
@@ -425,12 +425,7 @@ } - (void)tableViewItemDidChange:(TableViewTextEditItem*)tableViewItem { - BOOL isInputValid = YES; - - if (tableViewItem == self.usernameTextItem) { - isInputValid = [self checkIfValidUsername]; - } - + BOOL isInputValid = [self checkIfValidUsername] & [self checkIfValidPassword]; self.navigationItem.rightBarButtonItem.enabled = isInputValid; } @@ -623,6 +618,17 @@ return !showUsernameAlreadyUsed; } +// Checks if the password is valid and updates item accordingly. +- (BOOL)checkIfValidPassword { + DCHECK(self.password.password); + + BOOL passwordEmpty = [self.passwordTextItem.textFieldValue length] == 0; + self.passwordTextItem.hasValidText = !passwordEmpty; + + [self reconfigureCellsForItems:@[ self.passwordTextItem ]]; + return !passwordEmpty; +} + #pragma mark - Actions // Called when the user tapped on the show/hide button near password.
diff --git a/ios/chrome/browser/ui/settings/password/passwords_settings_egtest.mm b/ios/chrome/browser/ui/settings/password/passwords_settings_egtest.mm index c7f6069..92d86d8a 100644 --- a/ios/chrome/browser/ui/settings/password/passwords_settings_egtest.mm +++ b/ios/chrome/browser/ui/settings/password/passwords_settings_egtest.mm
@@ -1417,6 +1417,14 @@ [[EarlGrey selectElementWithMatcher:PasswordDetailPassword()] assertWithMatcher:grey_textFieldValue(@"concrete password")]; + // Check that empty password is not allowed, and done button is disabled. + [[EarlGrey selectElementWithMatcher:PasswordDetailPassword()] + performAction:grey_clearText()]; + + [[EarlGrey selectElementWithMatcher:NavigationBarDoneButton()] + assertWithMatcher:grey_allOf(grey_sufficientlyVisible(), + grey_not(grey_enabled()), nil)]; + [[EarlGrey selectElementWithMatcher:PasswordDetailPassword()] performAction:grey_replaceText(@"new password")];
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_detail_icon_item.mm b/ios/chrome/browser/ui/table_view/cells/table_view_detail_icon_item.mm index 5cb8f52..a6cec59 100644 --- a/ios/chrome/browser/ui/table_view/cells/table_view_detail_icon_item.mm +++ b/ios/chrome/browser/ui/table_view/cells/table_view_detail_icon_item.mm
@@ -185,6 +185,10 @@ [_iconImageView.centerYAnchor constraintEqualToAnchor:contentView.centerYAnchor], _iconHiddenConstraint, + + // Leading constraint for |customSepartor|. + [self.customSeparator.leadingAnchor + constraintEqualToAnchor:_textLabel.leadingAnchor], ]]; AddOptionalVerticalPadding(contentView, _textLabel,
diff --git a/ios/chrome/browser/ui/toolbar/primary_toolbar_view.mm b/ios/chrome/browser/ui/toolbar/primary_toolbar_view.mm index aec0ac7..8b33c3e 100644 --- a/ios/chrome/browser/ui/toolbar/primary_toolbar_view.mm +++ b/ios/chrome/browser/ui/toolbar/primary_toolbar_view.mm
@@ -55,9 +55,6 @@ // Separator below the toolbar, redefined as readwrite. @property(nonatomic, strong, readwrite) UIView* separator; -// HandleBar attached to the bottom of the toolbar, redefined as readwrite. -@property(nonatomic, strong, readwrite) UIView* handleBar; - #pragma mark** Buttons in the leading stack view. ** // Button to navigate back, redefined as readwrite. @property(nonatomic, strong, readwrite) ToolbarButton* backButton; @@ -150,9 +147,6 @@ [self setUpProgressBar]; [self setUpCollapsedToolbarButton]; [self setUpSeparator]; - if (IsThumbStripEnabled()) { - [self setUpHandleBar]; - } [self setUpConstraints]; } @@ -296,15 +290,6 @@ [self addSubview:self.separator]; } -// Sets the handleBar up. -- (void)setUpHandleBar { - self.handleBar = [[UIView alloc] init]; - self.handleBar.backgroundColor = [UIColor colorNamed:kToolbarShadowColor]; - self.handleBar.layer.cornerRadius = kHandleBarHeight / 2.0; - self.handleBar.translatesAutoresizingMaskIntoConstraints = NO; - [self addSubview:self.handleBar]; -} - // Sets the constraints up. - (void)setUpConstraints { id<LayoutGuideProvider> safeArea = self.safeAreaLayoutGuide; @@ -414,18 +399,6 @@ // CollapsedToolbarButton constraints. AddSameConstraints(self, self.collapsedToolbarButton); - - // HandleBar Constraints. - if (self.handleBar) { - [NSLayoutConstraint activateConstraints:@[ - [self.handleBar.bottomAnchor - constraintEqualToAnchor:self.bottomAnchor - constant:-kHandleBarBottomAnchorConstant], - [self.handleBar.centerXAnchor constraintEqualToAnchor:self.centerXAnchor], - [self.handleBar.heightAnchor constraintEqualToConstant:kHandleBarHeight], - [self.handleBar.widthAnchor constraintEqualToConstant:kHandleBarWidth], - ]]; - } } #pragma mark - Property accessors
diff --git a/ios/chrome/browser/ui/toolbar/public/toolbar_constants.h b/ios/chrome/browser/ui/toolbar/public/toolbar_constants.h index 80ac2f6..f5eb437b 100644 --- a/ios/chrome/browser/ui/toolbar/public/toolbar_constants.h +++ b/ios/chrome/browser/ui/toolbar/public/toolbar_constants.h
@@ -34,11 +34,6 @@ // Height of the separator. Should be aligned to upper pixel. extern const CGFloat kToolbarSeparatorHeight; -// HandleBar width, height, and bottom anchor constant. -extern const CGFloat kHandleBarWidth; -extern const CGFloat kHandleBarHeight; -extern const CGFloat kHandleBarBottomAnchorConstant; - // Toolbar Buttons. extern const CGFloat kAdaptiveToolbarButtonHeight; extern const CGFloat kAdaptiveToolbarButtonWidth;
diff --git a/ios/chrome/browser/ui/toolbar/public/toolbar_constants.mm b/ios/chrome/browser/ui/toolbar/public/toolbar_constants.mm index bcca7726..0655562 100644 --- a/ios/chrome/browser/ui/toolbar/public/toolbar_constants.mm +++ b/ios/chrome/browser/ui/toolbar/public/toolbar_constants.mm
@@ -23,10 +23,6 @@ const CGFloat kToolbarSeparatorHeight = 0.1f; -const CGFloat kHandleBarWidth = 60.0f; -const CGFloat kHandleBarHeight = 4.5f; -const CGFloat kHandleBarBottomAnchorConstant = 2.7f; - const CGFloat kAdaptiveToolbarButtonHeight = 44.0f; const CGFloat kAdaptiveToolbarButtonWidth = 44.0f; const CGFloat kSearchButtonWidth = 70.0f;
diff --git a/ios/chrome/content_widget_extension/BUILD.gn b/ios/chrome/content_widget_extension/BUILD.gn index e44f7c8d..fbbd460 100644 --- a/ios/chrome/content_widget_extension/BUILD.gn +++ b/ios/chrome/content_widget_extension/BUILD.gn
@@ -11,6 +11,10 @@ import("//ios/chrome/tools/strings/generate_localizable_strings.gni") import("//tools/grit/repack.gni") +assert( + ios_enable_content_widget_extension, + "ios_enable_content_widget_extension must be true to depend on //ios/chrome/content_widget_extension") + tweak_info_plist("tweak_info_plist") { info_plist = "Info.plist"
diff --git a/ios/chrome/credential_provider_extension/BUILD.gn b/ios/chrome/credential_provider_extension/BUILD.gn index 56709582..dece710 100644 --- a/ios/chrome/credential_provider_extension/BUILD.gn +++ b/ios/chrome/credential_provider_extension/BUILD.gn
@@ -12,6 +12,10 @@ import("//ios/chrome/tools/strings/generate_localizable_strings.gni") import("//ios/public/provider/chrome/browser/build_config.gni") +assert( + ios_enable_credential_provider_extension, + "ios_enable_credential_provider_extension must be true to depend on //ios/chrome/credential_provider_extension") + group("resources") { deps = [ "//ios/chrome/credential_provider_extension/strings" ] }
diff --git a/ios/chrome/search_widget_extension/BUILD.gn b/ios/chrome/search_widget_extension/BUILD.gn index ab38075..e05fce0c 100644 --- a/ios/chrome/search_widget_extension/BUILD.gn +++ b/ios/chrome/search_widget_extension/BUILD.gn
@@ -11,6 +11,10 @@ import("//ios/chrome/tools/strings/generate_localizable_strings.gni") import("//tools/grit/repack.gni") +assert( + ios_enable_search_widget_extension, + "ios_enable_search_widget_extension must be true to depend on //ios/chrome/search_widget_extension") + tweak_info_plist("tweak_info_plist") { info_plist = "Info.plist"
diff --git a/ios/chrome/share_extension/BUILD.gn b/ios/chrome/share_extension/BUILD.gn index a7370cc..4caef1d7 100644 --- a/ios/chrome/share_extension/BUILD.gn +++ b/ios/chrome/share_extension/BUILD.gn
@@ -12,6 +12,10 @@ import("//ios/chrome/tools/strings/generate_localizable_strings.gni") import("//ios/public/provider/chrome/browser/build_config.gni") +assert( + ios_enable_share_extension, + "ios_enable_share_extension must be true to depend on //ios/chrome/share_extension") + group("resources") { deps = [ "//ios/chrome/share_extension/strings" ] }
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn index 476ceb28..5e37eeb 100644 --- a/ios/chrome/test/BUILD.gn +++ b/ios/chrome/test/BUILD.gn
@@ -178,7 +178,6 @@ "//ios/chrome/browser/complex_tasks:unit_tests", "//ios/chrome/browser/crash_report:unit_tests", "//ios/chrome/browser/crash_report/breadcrumbs:unit_tests", - "//ios/chrome/browser/credential_provider:unit_tests", "//ios/chrome/browser/device_sharing:unit_tests", "//ios/chrome/browser/download:unit_tests", "//ios/chrome/browser/drag_and_drop:unit_tests", @@ -337,12 +336,24 @@ "//ios/chrome/common/credential_provider:unit_tests", "//ios/chrome/common/ui/reauthentication:unit_tests", "//ios/chrome/common/ui/util:unit_tests", - "//ios/chrome/content_widget_extension:unit_tests", - "//ios/chrome/credential_provider_extension:unit_tests", - "//ios/chrome/search_widget_extension:unit_tests", "//ios/public/provider/chrome/browser/signin:unit_tests", "//ios/testing:http_server_bundle_data", ] + if (ios_enable_search_widget_extension) { + deps += [ "//ios/chrome/search_widget_extension:unit_tests" ] + } + + if (ios_enable_content_widget_extension) { + deps += [ "//ios/chrome/content_widget_extension:unit_tests" ] + } + + if (ios_enable_credential_provider_extension) { + deps += [ + "//ios/chrome/browser/credential_provider:unit_tests", + "//ios/chrome/credential_provider_extension:unit_tests", + ] + } + assert_no_deps = ios_assert_no_deps }
diff --git a/ios/chrome/test/testing_application_context.h b/ios/chrome/test/testing_application_context.h index 40d1e7e..82c786b 100644 --- a/ios/chrome/test/testing_application_context.h +++ b/ios/chrome/test/testing_application_context.h
@@ -70,8 +70,13 @@ base::ThreadChecker thread_checker_; std::string application_locale_; PrefService* local_state_; - // Must be destroyed after |local_state_|. + + // Must be destroyed after |local_state_|. BrowserStatePolicyConnector isn't a + // keyed service because the pref service, which isn't a keyed service, has a + // hard dependency on the policy infrastructure. In order to outlive the pref + // service, the policy connector must live outside the keyed services. std::unique_ptr<BrowserPolicyConnectorIOS> browser_policy_connector_; + ios::ChromeBrowserStateManager* chrome_browser_state_manager_; std::unique_ptr<network_time::NetworkTimeTracker> network_time_tracker_; bool was_last_shutdown_clean_;
diff --git a/ios/net/clients/crn_network_client_protocol.h b/ios/net/clients/crn_network_client_protocol.h index d095e87a..f1ca340 100644 --- a/ios/net/clients/crn_network_client_protocol.h +++ b/ios/net/clients/crn_network_client_protocol.h
@@ -15,12 +15,6 @@ class URLRequest; } // namespace net -namespace network_client { -typedef base::Callback<void(bool auth_ok, - const base::string16& username, - const base::string16& password)> AuthCallback; -} // namespace network_client - // CRNNetworkClientProtocol provides an interface for delegate classes that // receive calls about data loading from the Chromium network stack. // Many methods in this protocol correspond to the NSURLProtocol methods, and
diff --git a/ios/net/http_cache_helper.cc b/ios/net/http_cache_helper.cc index 0c9c72aa..40030d7 100644 --- a/ios/net/http_cache_helper.cc +++ b/ios/net/http_cache_helper.cc
@@ -71,7 +71,8 @@ // Clear QUIC server information from memory and the disk cache. http_cache->GetSession() ->quic_stream_factory() - ->ClearCachedStatesInCryptoConfig(base::Callback<bool(const GURL&)>()); + ->ClearCachedStatesInCryptoConfig( + base::RepeatingCallback<bool(const GURL&)>()); std::unique_ptr<disk_cache::Backend*> backend( new disk_cache::Backend*(nullptr));
diff --git a/ios/showcase/BUILD.gn b/ios/showcase/BUILD.gn index 47324da..f5bbe77 100644 --- a/ios/showcase/BUILD.gn +++ b/ios/showcase/BUILD.gn
@@ -15,10 +15,11 @@ ":features", "//ios/showcase/core:main", ] - bundle_deps = [ - "//ios/chrome/credential_provider_extension:system_strings", - "//ios/showcase/core/resources", - ] + bundle_deps = [ "//ios/showcase/core/resources" ] + if (ios_enable_credential_provider_extension) { + bundle_deps += + [ "//ios/chrome/credential_provider_extension:system_strings" ] + } assert_no_deps = ios_assert_no_deps }
diff --git a/ios/showcase/core/BUILD.gn b/ios/showcase/core/BUILD.gn index 64f24a05..bbbf7c7b 100644 --- a/ios/showcase/core/BUILD.gn +++ b/ios/showcase/core/BUILD.gn
@@ -2,6 +2,18 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/buildflag_header.gni") +import("//ios/build/chrome_build.gni") + +buildflag_header("buildflags") { + header = "showcase_model_buildflags.h" + flags = [ + "SHOWCASE_CREDENTIAL_PROVIDER_ENABLED=ios_enable_credential_provider_extension", + "SHOWCASE_CONTENT_WIDGET_ENABLED=$ios_enable_content_widget_extension", + "SHOWCASE_SEARCH_WIDGET_ENABLED=$ios_enable_search_widget_extension", + ] +} + source_set("core") { sources = [ "app_delegate.h", @@ -12,6 +24,7 @@ "showcase_view_controller.mm", ] deps = [ + ":buildflags", "//base", "//base:i18n", "//ios/chrome/browser/ui/main",
diff --git a/ios/showcase/core/showcase_model.mm b/ios/showcase/core/showcase_model.mm index d21e01d..ca70323 100644 --- a/ios/showcase/core/showcase_model.mm +++ b/ios/showcase/core/showcase_model.mm
@@ -4,6 +4,8 @@ #import "ios/showcase/core/showcase_model.h" +#import "ios/showcase/core/showcase_model_buildflags.h" + #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif @@ -31,11 +33,13 @@ showcase::kClassForInstantiationKey : @"StaleCredentialsViewController", showcase::kUseCaseKey : @"Credential Provider Stale Credentials UI", }, +#if BUILDFLAG(SHOWCASE_CREDENTIAL_PROVIDER_ENABLED) @{ showcase::kClassForDisplayKey : @"CredentialListViewController", showcase::kClassForInstantiationKey : @"SCCredentialListCoordinator", showcase::kUseCaseKey : @"Credential Provider Credentials List UI", }, +#endif @{ showcase::kClassForDisplayKey : @"ContentSuggestionsViewController", showcase::kClassForInstantiationKey : @"SCContentSuggestionsCoordinator", @@ -66,16 +70,20 @@ showcase::kClassForInstantiationKey : @"UIKitTableViewCellViewController", showcase::kUseCaseKey : @"UIKit Table Cells", }, +#if BUILDFLAG(SHOWCASE_SEARCH_WIDGET_ENABLED) @{ showcase::kClassForDisplayKey : @"SearchWidgetViewController", showcase::kClassForInstantiationKey : @"SCSearchWidgetCoordinator", showcase::kUseCaseKey : @"Search Widget", }, +#endif +#if BUILDFLAG(SHOWCASE_CONTENT_WIDGET_ENABLED) @{ showcase::kClassForDisplayKey : @"ContentWidgetViewController", showcase::kClassForInstantiationKey : @"SCContentWidgetCoordinator", showcase::kUseCaseKey : @"Content Widget", }, +#endif @{ showcase::kClassForDisplayKey : @"TextBadgeView", showcase::kClassForInstantiationKey : @"SCTextBadgeViewController",
diff --git a/ios/showcase/credential_provider/BUILD.gn b/ios/showcase/credential_provider/BUILD.gn index 654c73e..4363bbb1 100644 --- a/ios/showcase/credential_provider/BUILD.gn +++ b/ios/showcase/credential_provider/BUILD.gn
@@ -2,16 +2,21 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//ios/build/chrome_build.gni") + source_set("credential_provider") { - sources = [ - "sc_credential_list_coordinator.h", - "sc_credential_list_coordinator.mm", - ] - deps = [ - "//ios/chrome/common/credential_provider:ui", - "//ios/chrome/credential_provider_extension/ui", - "//ios/showcase/common", - ] + sources = [] + deps = [ "//ios/showcase/common" ] + if (ios_enable_credential_provider_extension) { + sources += [ + "sc_credential_list_coordinator.h", + "sc_credential_list_coordinator.mm", + ] + deps += [ + "//ios/chrome/common/credential_provider:ui", + "//ios/chrome/credential_provider_extension/ui", + ] + } frameworks = [ "UIKit.framework" ] configs += [ "//build/config/compiler:enable_arc" ] } @@ -23,7 +28,7 @@ "//build/config/ios:xctest_config", ] testonly = true - sources = [ "credential_provider_egtest.mm" ] + sources = [] deps = [ "//base", "//ios/chrome/common/ui/confirmation_alert", @@ -32,5 +37,10 @@ "//ios/third_party/earl_grey2:test_lib", "//ui/base", ] + + if (ios_enable_credential_provider_extension) { + sources += [ "credential_provider_egtest.mm" ] + } + frameworks = [ "UIKit.framework" ] }
diff --git a/ios/showcase/widget/BUILD.gn b/ios/showcase/widget/BUILD.gn index 27440dcd..54203f7 100644 --- a/ios/showcase/widget/BUILD.gn +++ b/ios/showcase/widget/BUILD.gn
@@ -2,18 +2,25 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//ios/build/chrome_build.gni") + source_set("widget") { - sources = [ - "sc_content_widget_coordinator.h", - "sc_content_widget_coordinator.mm", - "sc_search_widget_coordinator.h", - "sc_search_widget_coordinator.mm", - ] - deps = [ - "//ios/chrome/content_widget_extension:content_widget", - "//ios/chrome/search_widget_extension:search_widget", - "//ios/showcase/common", - ] + sources = [] + deps = [ "//ios/showcase/common" ] + if (ios_enable_content_widget_extension) { + sources += [ + "sc_content_widget_coordinator.h", + "sc_content_widget_coordinator.mm", + ] + deps += [ "//ios/chrome/content_widget_extension:content_widget" ] + } + if (ios_enable_search_widget_extension) { + sources += [ + "sc_search_widget_coordinator.h", + "sc_search_widget_coordinator.mm", + ] + deps += [ "//ios/chrome/search_widget_extension:search_widget" ] + } frameworks = [ "UIKit.framework" ] configs += [ "//build/config/compiler:enable_arc" ] }
diff --git a/net/cookies/parse_cookie_line_fuzzer.cc b/net/cookies/parse_cookie_line_fuzzer.cc index 4ea774a..0376622 100644 --- a/net/cookies/parse_cookie_line_fuzzer.cc +++ b/net/cookies/parse_cookie_line_fuzzer.cc
@@ -25,7 +25,7 @@ // Call zero or one of ParsedCookie's mutator methods. Should not call // anything other than SetName/SetValue when !IsValid(). - const uint8_t action = data_provider.ConsumeIntegralInRange(0, 10); + const uint8_t action = data_provider.ConsumeIntegralInRange(0, 11); switch (action) { case 1: parsed_cookie.SetName(GetArbitraryString(&data_provider)); @@ -62,6 +62,9 @@ case 10: parsed_cookie.SetPriority(GetArbitraryString(&data_provider)); break; + case 11: + parsed_cookie.SetIsSameParty(data_provider.ConsumeBool()); + break; } }
diff --git a/net/cookies/parsed_cookie.cc b/net/cookies/parsed_cookie.cc index 6da2134..a2626774 100644 --- a/net/cookies/parsed_cookie.cc +++ b/net/cookies/parsed_cookie.cc
@@ -60,6 +60,7 @@ const char kHttpOnlyTokenName[] = "httponly"; const char kSameSiteTokenName[] = "samesite"; const char kPriorityTokenName[] = "priority"; +const char kSamePartyTokenName[] = "sameparty"; const char kTerminator[] = "\n\r\0"; const int kTerminatorLen = sizeof(kTerminator) - 1; @@ -129,15 +130,7 @@ namespace net { -ParsedCookie::ParsedCookie(const std::string& cookie_line) - : path_index_(0), - domain_index_(0), - expires_index_(0), - maxage_index_(0), - secure_index_(0), - httponly_index_(0), - same_site_index_(0), - priority_index_(0) { +ParsedCookie::ParsedCookie(const std::string& cookie_line) { if (cookie_line.size() > kMaxCookieSize) { DVLOG(1) << "Not parsing cookie, too large: " << cookie_line.size(); return; @@ -232,6 +225,10 @@ return SetString(&priority_index_, kPriorityTokenName, priority); } +bool ParsedCookie::SetIsSameParty(bool is_same_party) { + return SetBool(&same_party_index_, kSamePartyTokenName, is_same_party); +} + std::string ParsedCookie::ToCookieLine() const { std::string out; for (auto it = pairs_.begin(); it != pairs_.end(); ++it) { @@ -242,7 +239,8 @@ // print it for the first pair(see crbug.com/977619). After the first pair, // we need to consider whether the name component is a special token. if (it == pairs_.begin() || - (it->first != kSecureTokenName && it->first != kHttpOnlyTokenName)) { + (it->first != kSecureTokenName && it->first != kHttpOnlyTokenName && + it->first != kSamePartyTokenName)) { out.append("="); out.append(it->second); } @@ -464,6 +462,8 @@ same_site_index_ = i; } else if (pairs_[i].first == kPriorityTokenName) { priority_index_ = i; + } else if (pairs_[i].first == kSamePartyTokenName) { + same_party_index_ = i; } else { /* some attribute we don't know or don't care about. */ } @@ -529,9 +529,9 @@ if (index == 0) return; - size_t* indexes[] = {&path_index_, &domain_index_, &expires_index_, - &maxage_index_, &secure_index_, &httponly_index_, - &same_site_index_, &priority_index_}; + size_t* indexes[] = {&path_index_, &domain_index_, &expires_index_, + &maxage_index_, &secure_index_, &httponly_index_, + &same_site_index_, &priority_index_, &same_party_index_}; for (size_t* attribute_index : indexes) { if (*attribute_index == index) *attribute_index = 0;
diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h index 7917c68..f555814 100644 --- a/net/cookies/parsed_cookie.h +++ b/net/cookies/parsed_cookie.h
@@ -53,6 +53,7 @@ CookieSameSite SameSite( CookieSameSiteString* samesite_string = nullptr) const; CookiePriority Priority() const; + bool IsSameParty() const { return same_party_index_ != 0; } // Returns the number of attributes, for example, returning 2 for: // "BLAH=hah; path=/; domain=.google.com" @@ -76,6 +77,7 @@ bool SetIsHttpOnly(bool is_http_only); bool SetSameSite(const std::string& same_site); bool SetPriority(const std::string& priority); + bool SetIsSameParty(bool is_same_party); // Returns the cookie description as it appears in a HTML response header. std::string ToCookieLine() const; @@ -139,17 +141,16 @@ PairList pairs_; // These will default to 0, but that should never be valid since the - // 0th index is the user supplied token/value, not an attribute. - // We're really never going to have more than like 8 attributes, so we - // could fit these into 3 bits each if we're worried about size... - size_t path_index_; - size_t domain_index_; - size_t expires_index_; - size_t maxage_index_; - size_t secure_index_; - size_t httponly_index_; - size_t same_site_index_; - size_t priority_index_; + // 0th index is the user supplied cookie name/value, not an attribute. + size_t path_index_ = 0; + size_t domain_index_ = 0; + size_t expires_index_ = 0; + size_t maxage_index_ = 0; + size_t secure_index_ = 0; + size_t httponly_index_ = 0; + size_t same_site_index_ = 0; + size_t priority_index_ = 0; + size_t same_party_index_ = 0; DISALLOW_COPY_AND_ASSIGN(ParsedCookie); };
diff --git a/net/cookies/parsed_cookie_unittest.cc b/net/cookies/parsed_cookie_unittest.cc index 83eb7079..d467151 100644 --- a/net/cookies/parsed_cookie_unittest.cc +++ b/net/cookies/parsed_cookie_unittest.cc
@@ -11,11 +11,38 @@ namespace net { TEST(ParsedCookieTest, TestBasic) { - ParsedCookie pc("a=b"); - EXPECT_TRUE(pc.IsValid()); - EXPECT_FALSE(pc.IsSecure()); - EXPECT_EQ("a", pc.Name()); - EXPECT_EQ("b", pc.Value()); + ParsedCookie pc1("a=b"); + EXPECT_TRUE(pc1.IsValid()); + EXPECT_FALSE(pc1.IsSecure()); + EXPECT_FALSE(pc1.IsHttpOnly()); + EXPECT_FALSE(pc1.IsSameParty()); + EXPECT_EQ("a", pc1.Name()); + EXPECT_EQ("b", pc1.Value()); + EXPECT_FALSE(pc1.HasPath()); + EXPECT_FALSE(pc1.HasDomain()); + EXPECT_FALSE(pc1.HasExpires()); + EXPECT_FALSE(pc1.HasMaxAge()); + EXPECT_EQ(CookieSameSite::UNSPECIFIED, pc1.SameSite()); + EXPECT_EQ(CookiePriority::COOKIE_PRIORITY_DEFAULT, pc1.Priority()); + + ParsedCookie pc2( + "c=d; secure; httponly; sameparty; path=/foo; domain=bar.test; " + "max-age=60; samesite=lax; priority=high"); + EXPECT_TRUE(pc2.IsValid()); + EXPECT_TRUE(pc2.IsSecure()); + EXPECT_TRUE(pc2.IsHttpOnly()); + EXPECT_TRUE(pc2.IsSameParty()); + EXPECT_EQ("c", pc2.Name()); + EXPECT_EQ("d", pc2.Value()); + EXPECT_TRUE(pc2.HasPath()); + EXPECT_EQ("/foo", pc2.Path()); + EXPECT_TRUE(pc2.HasDomain()); + EXPECT_EQ("bar.test", pc2.Domain()); + EXPECT_FALSE(pc2.HasExpires()); + EXPECT_TRUE(pc2.HasMaxAge()); + EXPECT_EQ("60", pc2.MaxAge()); + EXPECT_EQ(CookieSameSite::LAX_MODE, pc2.SameSite()); + EXPECT_EQ(CookiePriority::COOKIE_PRIORITY_HIGH, pc2.Priority()); } TEST(ParsedCookieTest, TestEmpty) { @@ -111,17 +138,18 @@ TEST(ParsedCookieTest, TestAttributeCase) { ParsedCookie pc( - "BLAHHH; Path=/; sECuRe; httpONLY; sAmESitE=StrIct; pRIoRitY=hIgH"); + "BLAH; Path=/; sECuRe; httpONLY; sAmESitE=LaX; pRIoRitY=hIgH; samePaRtY"); EXPECT_TRUE(pc.IsValid()); EXPECT_TRUE(pc.IsSecure()); EXPECT_TRUE(pc.IsHttpOnly()); - EXPECT_EQ(CookieSameSite::STRICT_MODE, pc.SameSite()); + EXPECT_TRUE(pc.IsSameParty()); + EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite()); EXPECT_TRUE(pc.HasPath()); EXPECT_EQ("/", pc.Path()); EXPECT_EQ("", pc.Name()); - EXPECT_EQ("BLAHHH", pc.Value()); + EXPECT_EQ("BLAH", pc.Value()); EXPECT_EQ(COOKIE_PRIORITY_HIGH, pc.Priority()); - EXPECT_EQ(5U, pc.NumberOfAttributes()); + EXPECT_EQ(6U, pc.NumberOfAttributes()); } TEST(ParsedCookieTest, TestDoubleQuotedNameless) { @@ -367,10 +395,11 @@ EXPECT_TRUE(pc.SetIsHttpOnly(true)); EXPECT_TRUE(pc.SetSameSite("LAX")); EXPECT_TRUE(pc.SetPriority("HIGH")); + EXPECT_TRUE(pc.SetIsSameParty(true)); EXPECT_EQ( "name=value; domain=domain.com; path=/; " "expires=Sun, 18-Apr-2027 21:06:29 GMT; max-age=12345; secure; " - "httponly; samesite=LAX; priority=HIGH", + "httponly; samesite=LAX; priority=HIGH; sameparty", pc.ToCookieLine()); EXPECT_TRUE(pc.HasDomain()); EXPECT_TRUE(pc.HasPath()); @@ -380,22 +409,35 @@ EXPECT_TRUE(pc.IsHttpOnly()); EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite()); EXPECT_EQ(COOKIE_PRIORITY_HIGH, pc.Priority()); + EXPECT_TRUE(pc.IsSameParty()); - // Clear one attribute from the middle. + // Modify one attribute in the middle. EXPECT_TRUE(pc.SetPath("/foo")); EXPECT_TRUE(pc.HasDomain()); EXPECT_TRUE(pc.HasPath()); + EXPECT_EQ("/foo", pc.Path()); EXPECT_TRUE(pc.HasExpires()); EXPECT_TRUE(pc.IsSecure()); EXPECT_TRUE(pc.IsHttpOnly()); + EXPECT_TRUE(pc.IsSameParty()); EXPECT_EQ( "name=value; domain=domain.com; path=/foo; " "expires=Sun, 18-Apr-2027 21:06:29 GMT; max-age=12345; secure; " - "httponly; samesite=LAX; priority=HIGH", + "httponly; samesite=LAX; priority=HIGH; sameparty", pc.ToCookieLine()); // Set priority to medium. EXPECT_TRUE(pc.SetPriority("medium")); + EXPECT_EQ(CookiePriority::COOKIE_PRIORITY_MEDIUM, pc.Priority()); + EXPECT_EQ( + "name=value; domain=domain.com; path=/foo; " + "expires=Sun, 18-Apr-2027 21:06:29 GMT; max-age=12345; secure; " + "httponly; samesite=LAX; priority=medium; sameparty", + pc.ToCookieLine()); + + // Clear attribute from the end. + EXPECT_TRUE(pc.SetIsSameParty(false)); + EXPECT_FALSE(pc.IsSameParty()); EXPECT_EQ( "name=value; domain=domain.com; path=/foo; " "expires=Sun, 18-Apr-2027 21:06:29 GMT; max-age=12345; secure; " @@ -421,6 +463,7 @@ EXPECT_FALSE(pc.IsHttpOnly()); EXPECT_EQ(CookieSameSite::UNSPECIFIED, pc.SameSite()); EXPECT_EQ("name2=value2", pc.ToCookieLine()); + EXPECT_FALSE(pc.IsSameParty()); } // Set the domain attribute twice in a cookie line. If the second attribute's @@ -570,8 +613,8 @@ } TEST(ParsedCookieTest, ToCookieLineSpecialTokens) { - // Special tokens "secure" and "httponly" should be treated as any other name - // when they are in the first position. + // Special tokens "secure", "httponly", and "sameparty" should be treated as + // any other name when they are in the first position. { ParsedCookie pc(""); pc.SetName("secure"); @@ -594,6 +637,10 @@ EXPECT_EQ(pc.ToCookieLine(), "httponly=foo"); } { + ParsedCookie pc("sameparty=foo"); + EXPECT_EQ(pc.ToCookieLine(), "sameparty=foo"); + } + { ParsedCookie pc("foo"); pc.SetName("secure"); EXPECT_EQ(pc.ToCookieLine(), "secure=foo"); @@ -622,9 +669,29 @@ EXPECT_EQ(pc.ToCookieLine(), "name=foo; httponly"); } { + ParsedCookie pc("name=foo; sameparty=baz"); + EXPECT_EQ(pc.ToCookieLine(), "name=foo; sameparty"); + } + { ParsedCookie pc("name=foo; bar=secure"); EXPECT_EQ(pc.ToCookieLine(), "name=foo; bar=secure"); } + // Repeated instances of the special tokens are also fine. + { + ParsedCookie pc("name=foo; secure; secure=yesplease; secure; secure"); + EXPECT_TRUE(pc.IsValid()); + EXPECT_TRUE(pc.IsSecure()); + EXPECT_FALSE(pc.IsHttpOnly()); + EXPECT_FALSE(pc.IsSameParty()); + } + { + ParsedCookie pc("sameparty; sameparty; secure; httponly; httponly; secure"); + EXPECT_EQ("", pc.Name()); + EXPECT_EQ("sameparty", pc.Value()); + EXPECT_TRUE(pc.IsSecure()); + EXPECT_TRUE(pc.IsSameParty()); + EXPECT_TRUE(pc.IsHttpOnly()); + } } TEST(ParsedCookieTest, SameSiteValues) {
diff --git a/net/quic/platform/impl/quic_flags_impl.cc b/net/quic/platform/impl/quic_flags_impl.cc index de513ea6..e78398f 100644 --- a/net/quic/platform/impl/quic_flags_impl.cc +++ b/net/quic/platform/impl/quic_flags_impl.cc
@@ -21,7 +21,7 @@ #include "build/build_config.h" #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h" -#define QUIC_FLAG(type, flag, value) type flag = value; +#define QUIC_FLAG(flag, value) bool flag = value; #include "net/quic/quic_flags_list.h" #undef QUIC_FLAG @@ -304,10 +304,10 @@ } // namespace void SetQuicFlagByName(const std::string& flag_name, const std::string& value) { -#define QUIC_FLAG(type, flag, default_value) \ - if (flag_name == #flag) { \ - SetQuicFlagByName_##type(&flag, value); \ - return; \ +#define QUIC_FLAG(flag, default_value) \ + if (flag_name == #flag) { \ + SetQuicFlagByName_bool(&flag, value); \ + return; \ } #include "net/quic/quic_flags_list.h" #undef QUIC_FLAG
diff --git a/net/quic/platform/impl/quic_flags_impl.h b/net/quic/platform/impl/quic_flags_impl.h index 02803f7..d9ba806 100644 --- a/net/quic/platform/impl/quic_flags_impl.h +++ b/net/quic/platform/impl/quic_flags_impl.h
@@ -16,7 +16,7 @@ #include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h" #include "net/third_party/quiche/src/quic/platform/api/quic_export.h" -#define QUIC_FLAG(type, flag, value) QUIC_EXPORT_PRIVATE extern type flag; +#define QUIC_FLAG(flag, value) QUIC_EXPORT_PRIVATE extern bool flag; #include "net/quic/quic_flags_list.h" #undef QUIC_FLAG
diff --git a/net/quic/platform/impl/quic_test_impl.cc b/net/quic/platform/impl/quic_test_impl.cc index 9feb757..1b5545e 100644 --- a/net/quic/platform/impl/quic_test_impl.cc +++ b/net/quic/platform/impl/quic_test_impl.cc
@@ -8,13 +8,13 @@ #include "base/path_service.h" QuicFlagSaverImpl::QuicFlagSaverImpl() { -#define QUIC_FLAG(type, flag, value) saved_##flag##_ = flag; +#define QUIC_FLAG(flag, value) saved_##flag##_ = flag; #include "net/quic/quic_flags_list.h" #undef QUIC_FLAG } QuicFlagSaverImpl::~QuicFlagSaverImpl() { -#define QUIC_FLAG(type, flag, value) flag = saved_##flag##_; +#define QUIC_FLAG(flag, value) flag = saved_##flag##_; #include "net/quic/quic_flags_list.h" #undef QUIC_FLAG }
diff --git a/net/quic/platform/impl/quic_test_impl.h b/net/quic/platform/impl/quic_test_impl.h index 1bcda9f..ed326f0 100644 --- a/net/quic/platform/impl/quic_test_impl.h +++ b/net/quic/platform/impl/quic_test_impl.h
@@ -21,7 +21,7 @@ ~QuicFlagSaverImpl(); private: -#define QUIC_FLAG(type, flag, value) type saved_##flag##_; +#define QUIC_FLAG(flag, value) bool saved_##flag##_; #include "net/quic/quic_flags_list.h" #undef QUIC_FLAG }; @@ -30,7 +30,7 @@ class QuicFlagChecker { public: QuicFlagChecker() { -#define QUIC_FLAG(type, flag, value) \ +#define QUIC_FLAG(flag, value) \ CHECK_EQ(value, flag) \ << "Flag set to an unexpected value. A prior test is likely " \ << "setting a flag without using a QuicFlagSaver. Use QuicTest to " \
diff --git a/net/quic/quic_flags_list.h b/net/quic/quic_flags_list.h index a73b0b4..fb202ab 100644 --- a/net/quic/quic_flags_list.h +++ b/net/quic/quic_flags_list.h
@@ -8,407 +8,334 @@ // no-include-guard-because-multiply-included // NOLINT(build/header_guard) -// This file contains the list of QUIC protocol flags. +// This file contains the list of QUIC reloadable and restart flags. // If true, require handshake confirmation for QUIC connections, functionally // disabling 0-rtt handshakes. // TODO(rtenneti): Enable this flag after CryptoServerTest's are fixed. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_require_handshake_confirmation, - false) - -// If greater than zero, mean RTT variation is multiplied by the specified -// factor and added to the congestion window limit. -QUIC_FLAG(double, FLAGS_quic_bbr_rtt_variation_weight, 0.0f) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_require_handshake_confirmation, false) // When true, defaults to BBR congestion control instead of Cubic. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_default_to_bbr, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_to_bbr, false) // If true, use BBRv2 as the default congestion controller. // Takes precedence over --quic_default_to_bbr. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_default_to_bbr_v2, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_to_bbr_v2, false) // When true, set the initial congestion control window from connection options // in QuicSentPacketManager rather than TcpCubicSenderBytes. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_unified_iw_options, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_unified_iw_options, false) // If true, QUIC offload pacing when using USPS as egress method. -QUIC_FLAG(bool, FLAGS_quic_restart_flag_quic_offload_pacing_to_usps2, false) - -// Mechanism to override version label and ALPN for IETF interop. -QUIC_FLAG(int32_t, FLAGS_quic_ietf_draft_version, 0) +QUIC_FLAG(FLAGS_quic_restart_flag_quic_offload_pacing_to_usps2, false) // If true, stop resetting ideal_next_packet_send_time_ in pacing sender. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_donot_reset_ideal_next_packet_send_time, false) // When the STMP connection option is sent by the client, timestamps in the QUIC // ACK frame are sent and processed. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_send_timestamps, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_send_timestamps, false) // If true and using Leto for QUIC shared-key calculations, GFE will react to a // failure to contact Leto by sending a REJ containing a fallback ServerConfig, // allowing the client to continue the handshake. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_send_quic_fallback_server_config_on_leto_error, false) // If true, GFE will not request private keys when fetching QUIC ServerConfigs // from Leto. -QUIC_FLAG(bool, - FLAGS_quic_restart_flag_dont_fetch_quic_private_keys_from_leto, - false) +QUIC_FLAG(FLAGS_quic_restart_flag_dont_fetch_quic_private_keys_from_leto, false) // If true, set burst token to 2 in cwnd bootstrapping experiment. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_conservative_bursts, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_conservative_bursts, false) // If true, uses conservative cwnd gain and pacing gain. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_conservative_cwnd_and_pacing_gains, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_conservative_cwnd_and_pacing_gains, false) // If true, allow client to enable BBRv2 on server via connection option 'B2ON'. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_allow_client_enabled_bbr_v2, - false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_allow_client_enabled_bbr_v2, false) // If true, disable QUIC version Q043. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_disable_version_q043, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_q043, false) // If true, disable QUIC version Q046. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_disable_version_q046, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_q046, false) // If true, disable QUIC version Q050. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_disable_version_q050, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_q050, false) // A testonly reloadable flag that will always default to false. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_testonly_default_false, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_testonly_default_false, false) // A testonly reloadable flag that will always default to true. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_testonly_default_true, true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_testonly_default_true, true) // A testonly restart flag that will always default to false. -QUIC_FLAG(bool, FLAGS_quic_restart_flag_quic_testonly_default_false, false) +QUIC_FLAG(FLAGS_quic_restart_flag_quic_testonly_default_false, false) // A testonly restart flag that will always default to true. -QUIC_FLAG(bool, FLAGS_quic_restart_flag_quic_testonly_default_true, true) +QUIC_FLAG(FLAGS_quic_restart_flag_quic_testonly_default_true, true) // When true, ensure the ACK delay is never less than the alarm granularity when // ACK decimation is enabled. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_ack_delay_alarm_granularity, - false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_ack_delay_alarm_granularity, false) // If true, disable QUIC version h3-27. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_disable_version_draft_27, true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_draft_27, true) // If true, QUIC BBRv2\'s PROBE_BW mode will not reduce cwnd below // BDP+ack_height. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_bbr2_avoid_too_low_probe_bw_cwnd, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_avoid_too_low_probe_bw_cwnd, false) // When true, the 1RTT and 2RTT connection options decrease the number of round // trips in BBRv2 STARTUP without a 25% bandwidth increase to 1 or 2 round trips // respectively. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_bbr2_fewer_startup_round_trips, - false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_fewer_startup_round_trips, false) // If true, support for IETF QUIC 0-rtt is enabled. -QUIC_FLAG(bool, FLAGS_quic_restart_flag_quic_enable_zero_rtt_for_tls_v2, true) +QUIC_FLAG(FLAGS_quic_restart_flag_quic_enable_zero_rtt_for_tls_v2, true) // If true, default on PTO which unifies TLP + RTO loss recovery. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_default_on_pto, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_on_pto, false) // If true, the B2HI connection option limits reduction of inflight_hi to // (1-Beta)*CWND. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr2_limit_inflight_hi, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_limit_inflight_hi, false) // If true, disable QUIC version h3-T050. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_disable_version_t050, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_t050, false) // If true, default-enable 5RTO blachole detection. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_default_enable_5rto_blackhole_detection2, true) // If true, disable QUIC version h3-29. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_disable_version_draft_29, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_draft_29, false) // If true, record the received min_ack_delay in transport parameters to QUIC // config. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_record_received_min_ack_delay, - false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_record_received_min_ack_delay, false) // If true, disable blackhole detection on server side. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_disable_server_blackhole_detection, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_server_blackhole_detection, false) // If true, QUIC will default enable MTU discovery, with a target of 1450 bytes. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_enable_mtu_discovery_at_server, - false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_mtu_discovery_at_server, false) // If true, while reading an IETF quic packet, start peer migration immediately // when detecting the existence of any non-probing frame instead of at the end // of the packet. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_start_peer_migration_earlier, - false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_start_peer_migration_earlier, false) // If true, neuter initial packet in the coalescer when discarding initial keys. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_neuter_initial_packet_in_coalescer_with_initial_key_discarded, true) // If true, convert bytes_left_for_batch_write_ to unsigned int. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_fix_bytes_left_for_batch_write, - true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_bytes_left_for_batch_write, true) // If true, add missing connected checks. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_add_missing_connected_checks, - true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_add_missing_connected_checks, true) // If true, QuicStream::kDefaultUrgency is 3, otherwise 1. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_http3_new_default_urgency_value, - true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_http3_new_default_urgency_value, true) // If true, close connection on packet serialization failures QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_close_connection_on_serialization_failure, true) // If true, send PATH_RESPONSE upon receiving PATH_CHALLENGE regardless // of perspective. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_send_path_response, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_send_path_response, false) // If true, when switching from BBR to BBR2, use BBR's CWND as the initial CWND. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_copy_bbr_cwnd_to_bbr2, true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_copy_bbr_cwnd_to_bbr2, true) // If true, send the lowest stream ID that can be retried by the client in a // GOAWAY frame. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_fix_http3_goaway_stream_id, - true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_http3_goaway_stream_id, true) // If true, close connection if writer is still blocked when OnCanWrite is // called. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_close_connection_in_on_can_write_with_blocked_writer, true) // If true, include stream information in idle timeout connection close detail. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_add_stream_info_to_idle_close_detail, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_add_stream_info_to_idle_close_detail, true) // If true, use IETF QUIC application error codes in STOP_SENDING frames. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_stop_sending_uses_ietf_error_code, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_stop_sending_uses_ietf_error_code, true) // If true, QuicSpdySession's destructor won't need to do cleanup. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_clean_up_spdy_session_destructor, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_clean_up_spdy_session_destructor, true) // If true, discard INITIAL packet if the key has been dropped. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_discard_initial_packet_with_key_dropped, true) // If true, disable QUIC version h3-T051. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_disable_version_t051, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_t051, false) // If true, make sure there is pending timer credit when trying to PTO // retransmit any packets. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_fix_pto_pending_timer_count, - true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_pto_pending_timer_count, true) // If true, QUIC connection will pass sent packet information to the debug // visitor after a packet is recorded as sent in sent packet manager. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_give_sent_packet_to_debug_visitor_after_sent, true) // If true, abort async QPACK header decompression in QuicSpdyStream::OnClose(). -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_abort_qpack_on_stream_close, - true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_abort_qpack_on_stream_close, true) // If true, do not arm PTO for application data until handshake confirmed. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_fix_arm_pto_for_application_data, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_arm_pto_for_application_data, true) // If true, cap client suggested initial RTT to 1s if it is longer than 1s. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_cap_large_client_initial_rtt, - true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_cap_large_client_initial_rtt, true) // If true, fix a potential out of order sending caused by handshake gets // confirmed while the coalescer is not empty. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_out_of_order_sending2, true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_out_of_order_sending2, true) // If true, remove processed undecryptable packets. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_fix_undecryptable_packets2, - true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_undecryptable_packets2, true) // If true, QUIC BBRv2 will use inflight byte after congestion event to detect // queuing during PROBE_UP. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_bbr2_use_post_inflight_to_detect_queuing, true) // If true, QUIC BBRv2 will use 15% inflight_hi headroom, which is the default // for TCP. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_bbr2_use_tcp_inflight_hi_headroom, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_use_tcp_inflight_hi_headroom, true) // If true, HTTP/3 will treat HTTP/2 specific SETTINGS as error. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_reject_spdy_settings, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_reject_spdy_settings, true) // If true, discard 0-RTT keys after installing 1-RTT keys on the client side. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_postpone_discarding_zero_rtt_keys, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_postpone_discarding_zero_rtt_keys, true) // If true, for IETF QUIC, uses 2 * RTTVAR when calculating PTO delay. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_default_to_2_rttvar, true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_to_2_rttvar, true) // Deallocate data in QuicMessageFrame right after the corresponding packet is // sent. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_deallocate_message_right_after_sent, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_deallocate_message_right_after_sent, true) // If true, drop initial keys at the end of writing and unify the fixes for // missing initial keys. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_missing_initial_keys2, true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_missing_initial_keys2, true) // If true, check whether framer has the right key before writing data. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_check_keys_before_writing, true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_check_keys_before_writing, true) // If true, received error codes larger than QUIC_LAST_ERROR are preserved. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_do_not_clip_received_error_code, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_do_not_clip_received_error_code, false) // If true, HTTP/3 sesions will report error and close connection upon receiving // HTTP/2 only frames. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_reject_spdy_frames, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_reject_spdy_frames, false) // If true, QuicConnection will initialize its self address to the self address // of the first received packet, for all server connections and client // connections that know its own address. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_connection_set_initial_self_address, - false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_connection_set_initial_self_address, + true) // If true, let QUIC connection handle PINGs instead of going through session. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_let_connection_handle_pings, - true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_let_connection_handle_pings, true) // If true, BBRv2 will 1) change the default STARTUP and DRAIN cwnd gain to 2.0, // and 2) change the meaning of connection option BBQ2 to use 2.885 for STARTUP // and DRAIN cwnd gain. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr2_flip_bbq2, true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_flip_bbq2, true) // If true, use http2::HuffmanEncodeFast() instead of HuffmanEncode() and // eliminate one string copy for QPACK encoding used in IETF QUIC. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_use_fast_huffman_encoder, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_use_fast_huffman_encoder, true) // When true, QUIC+TLS versions will support key updates. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_key_update_supported, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_key_update_supported, false) // If true, address is validated by successfully processing a HANDSHAKE or 1-RTT // packet. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_address_validation, true) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_address_validation, true) // If true, QuicStream will explicitly specify which RST_STREAM, STOP_SENDING // frame to send. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_split_up_send_rst, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_split_up_send_rst, false) // If true, send HTTP/3 GOAWAY frame when sending CONNECTION_CLOSE. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_send_goaway_with_connection_close, +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_send_goaway_with_connection_close, false) // If true, ack frequency frame can be sent from server to client. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_can_send_ack_frequency, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_can_send_ack_frequency, false) // If true, QUIC BBRv2 will support NetworkParams.max_initial_congestion_window // when bootstrapping cwnd. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_bbr2_support_max_bootstrap_cwnd, - false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_support_max_bootstrap_cwnd, true) // If true, QUIC BBR2 will not exit STARTUP on excessive loss, if there was // enough bandwidth growth in round. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_bbr2_no_exit_startup_on_loss_with_bw_growth, - false) + true) // Honor the AEAD confidentiality and integrity limits by initiating key update // (if enabled) and/or closing the connection, as necessary. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_aead_limits, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_aead_limits, false) // If true, try to process undecryptable packets at the end of // TlsServerHandshaker::DecryptCallback, if it is callback is run // asynchronously. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_process_undecryptable_packets_after_async_decrypt_callback, false) // When true, QUIC server will send version negotiation packets even if the // original connection ID was under 64bits in length. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_send_version_negotiation_for_short_connection_ids, false) // If true, use one of the 12 QPACK encoder stream error codes and 5 QPACK // decoder stream error codes and QUIC_INTERNAL_ERROR instead of the two generic // ones. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_granular_qpack_error_codes, - false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_granular_qpack_error_codes, false) // When true, the server delays its Initial ACK-only packets the full // max_ack_delay. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_delay_initial_ack, false) +QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_delay_initial_ack, false) // If true, session tickets will always be enabled in QUIC. -QUIC_FLAG(bool, - FLAGS_quic_restart_flag_quic_session_tickets_always_enabled, - false) +QUIC_FLAG(FLAGS_quic_restart_flag_quic_session_tickets_always_enabled, false) // If true and B2SL connection option is set, when QUIC BBR2 exits STARTUP due // to loss, it will set the inflight_hi to the max of bdp and // max_bytes_delivered_in_round. QUIC_FLAG( - bool, FLAGS_quic_reloadable_flag_quic_bbr2_startup_loss_exit_use_max_delivered, false)
diff --git a/services/device/generic_sensor/BUILD.gn b/services/device/generic_sensor/BUILD.gn index 4b38cb9..b6a347950 100644 --- a/services/device/generic_sensor/BUILD.gn +++ b/services/device/generic_sensor/BUILD.gn
@@ -105,6 +105,8 @@ "linux/sensor_device_manager.h", "platform_sensor_provider_linux.cc", "platform_sensor_provider_linux.h", + "platform_sensor_provider_linux_base.cc", + "platform_sensor_provider_linux_base.h", ] } }
diff --git a/services/device/generic_sensor/platform_sensor_provider_linux.cc b/services/device/generic_sensor/platform_sensor_provider_linux.cc index 63e7459..cf15ae5 100644 --- a/services/device/generic_sensor/platform_sensor_provider_linux.cc +++ b/services/device/generic_sensor/platform_sensor_provider_linux.cc
@@ -12,15 +12,9 @@ #include "base/task/post_task.h" #include "base/task/thread_pool.h" #include "base/task_runner_util.h" -#include "services/device/generic_sensor/absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.h" -#include "services/device/generic_sensor/linear_acceleration_fusion_algorithm_using_accelerometer.h" #include "services/device/generic_sensor/linux/sensor_data_linux.h" -#include "services/device/generic_sensor/orientation_quaternion_fusion_algorithm_using_euler_angles.h" -#include "services/device/generic_sensor/platform_sensor_fusion.h" #include "services/device/generic_sensor/platform_sensor_linux.h" #include "services/device/generic_sensor/platform_sensor_reader_linux.h" -#include "services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer.h" -#include "services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_gyroscope.h" namespace device { namespace { @@ -29,18 +23,6 @@ base::MayBlock(), base::TaskPriority::USER_VISIBLE, base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}; -bool IsFusionSensorType(mojom::SensorType type) { - switch (type) { - case mojom::SensorType::LINEAR_ACCELERATION: - case mojom::SensorType::ABSOLUTE_ORIENTATION_EULER_ANGLES: - case mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION: - case mojom::SensorType::RELATIVE_ORIENTATION_EULER_ANGLES: - case mojom::SensorType::RELATIVE_ORIENTATION_QUATERNION: - return true; - default: - return false; - } -} } // namespace PlatformSensorProviderLinux::PlatformSensorProviderLinux() @@ -94,10 +76,16 @@ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); } -SensorInfoLinux* PlatformSensorProviderLinux::GetSensorDevice( - mojom::SensorType type) { +bool PlatformSensorProviderLinux::IsSensorTypeAvailable( + mojom::SensorType type) const { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - auto sensor = sensor_devices_by_type_.find(type); + return GetSensorDevice(type); +} + +SensorInfoLinux* PlatformSensorProviderLinux::GetSensorDevice( + mojom::SensorType type) const { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + const auto sensor = sensor_devices_by_type_.find(type); if (sensor == sensor_devices_by_type_.end()) return nullptr; return sensor->second.get(); @@ -178,47 +166,4 @@ } } -void PlatformSensorProviderLinux::CreateFusionSensor( - mojom::SensorType type, - SensorReadingSharedBuffer* reading_buffer, - CreateSensorCallback callback) { - DCHECK(IsFusionSensorType(type)); - std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm; - switch (type) { - case mojom::SensorType::LINEAR_ACCELERATION: - fusion_algorithm = std::make_unique< - LinearAccelerationFusionAlgorithmUsingAccelerometer>(); - break; - case mojom::SensorType::ABSOLUTE_ORIENTATION_EULER_ANGLES: - fusion_algorithm = std::make_unique< - AbsoluteOrientationEulerAnglesFusionAlgorithmUsingAccelerometerAndMagnetometer>(); - break; - case mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION: - fusion_algorithm = std::make_unique< - OrientationQuaternionFusionAlgorithmUsingEulerAngles>( - true /* absolute */); - break; - case mojom::SensorType::RELATIVE_ORIENTATION_EULER_ANGLES: - if (GetSensorDevice(mojom::SensorType::GYROSCOPE)) { - fusion_algorithm = std::make_unique< - RelativeOrientationEulerAnglesFusionAlgorithmUsingAccelerometerAndGyroscope>(); - } else { - fusion_algorithm = std::make_unique< - RelativeOrientationEulerAnglesFusionAlgorithmUsingAccelerometer>(); - } - break; - case mojom::SensorType::RELATIVE_ORIENTATION_QUATERNION: - fusion_algorithm = std::make_unique< - OrientationQuaternionFusionAlgorithmUsingEulerAngles>( - false /* absolute */); - break; - default: - NOTREACHED(); - } - - DCHECK(fusion_algorithm); - PlatformSensorFusion::Create( - reading_buffer, this, std::move(fusion_algorithm), std::move(callback)); -} - } // namespace device
diff --git a/services/device/generic_sensor/platform_sensor_provider_linux.h b/services/device/generic_sensor/platform_sensor_provider_linux.h index 820003f1..9130a86 100644 --- a/services/device/generic_sensor/platform_sensor_provider_linux.h +++ b/services/device/generic_sensor/platform_sensor_provider_linux.h
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef SERVICES_DEVICE_GENERIC_SENSOR_PUBLIC_PLATFORM_SENSOR_PROVIDER_LINUX_H_ -#define SERVICES_DEVICE_GENERIC_SENSOR_PUBLIC_PLATFORM_SENSOR_PROVIDER_LINUX_H_ +#ifndef SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_PROVIDER_LINUX_H_ +#define SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_PROVIDER_LINUX_H_ -#include "services/device/generic_sensor/platform_sensor_provider.h" +#include "services/device/generic_sensor/platform_sensor_provider_linux_base.h" #include "base/memory/weak_ptr.h" #include "base/sequenced_task_runner.h" @@ -15,7 +15,7 @@ struct SensorInfoLinux; -class PlatformSensorProviderLinux : public PlatformSensorProvider, +class PlatformSensorProviderLinux : public PlatformSensorProviderLinuxBase, public SensorDeviceManager::Delegate { public: PlatformSensorProviderLinux(); @@ -26,11 +26,12 @@ std::unique_ptr<SensorDeviceManager> sensor_device_manager); protected: + // PlatformSensorProviderLinuxBase overrides: void CreateSensorInternal(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, CreateSensorCallback callback) override; - void FreeResources() override; + bool IsSensorTypeAvailable(mojom::SensorType type) const override; private: friend class PlatformSensorAndProviderLinuxTest; @@ -46,7 +47,7 @@ // If a request cannot be processed immediately, returns nullptr and // all the requests stored in |requests_map_| are processed after // enumeration is ready. - SensorInfoLinux* GetSensorDevice(mojom::SensorType type); + SensorInfoLinux* GetSensorDevice(mojom::SensorType type) const; // Processed stored requests in |request_map_|. void ProcessStoredRequests(); @@ -55,17 +56,13 @@ void CreateSensorAndNotify(mojom::SensorType type, SensorInfoLinux* sensor_device); - // SensorDeviceManager::Delegate implements: + // SensorDeviceManager::Delegate overrides: void OnSensorNodesEnumerated() override; void OnDeviceAdded(mojom::SensorType type, std::unique_ptr<SensorInfoLinux> sensor_device) override; void OnDeviceRemoved(mojom::SensorType type, const std::string& device_node) override; - void CreateFusionSensor(mojom::SensorType type, - SensorReadingSharedBuffer* reading_buffer, - CreateSensorCallback callback); - // Set to true when enumeration is ready. bool sensor_nodes_enumerated_; @@ -91,4 +88,4 @@ } // namespace device -#endif // SERVICES_DEVICE_GENERIC_SENSOR_PUBLIC_PLATFORM_SENSOR_PROVIDER_LINUX_H_ +#endif // SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_PROVIDER_LINUX_H_
diff --git a/services/device/generic_sensor/platform_sensor_provider_linux_base.cc b/services/device/generic_sensor/platform_sensor_provider_linux_base.cc new file mode 100644 index 0000000..85edf85 --- /dev/null +++ b/services/device/generic_sensor/platform_sensor_provider_linux_base.cc
@@ -0,0 +1,77 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "services/device/generic_sensor/platform_sensor_provider_linux_base.h" + +#include <memory> +#include <utility> + +#include "services/device/generic_sensor/absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.h" +#include "services/device/generic_sensor/linear_acceleration_fusion_algorithm_using_accelerometer.h" +#include "services/device/generic_sensor/orientation_quaternion_fusion_algorithm_using_euler_angles.h" +#include "services/device/generic_sensor/platform_sensor_fusion.h" +#include "services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer.h" +#include "services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_gyroscope.h" + +namespace device { + +// static +bool PlatformSensorProviderLinuxBase::IsFusionSensorType( + mojom::SensorType type) { + switch (type) { + case mojom::SensorType::LINEAR_ACCELERATION: + case mojom::SensorType::ABSOLUTE_ORIENTATION_EULER_ANGLES: + case mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION: + case mojom::SensorType::RELATIVE_ORIENTATION_EULER_ANGLES: + case mojom::SensorType::RELATIVE_ORIENTATION_QUATERNION: + return true; + default: + return false; + } +} + +void PlatformSensorProviderLinuxBase::CreateFusionSensor( + mojom::SensorType type, + SensorReadingSharedBuffer* reading_buffer, + CreateSensorCallback callback) { + DCHECK(IsFusionSensorType(type)); + std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm; + switch (type) { + case mojom::SensorType::LINEAR_ACCELERATION: + fusion_algorithm = std::make_unique< + LinearAccelerationFusionAlgorithmUsingAccelerometer>(); + break; + case mojom::SensorType::ABSOLUTE_ORIENTATION_EULER_ANGLES: + fusion_algorithm = std::make_unique< + AbsoluteOrientationEulerAnglesFusionAlgorithmUsingAccelerometerAndMagnetometer>(); + break; + case mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION: + fusion_algorithm = std::make_unique< + OrientationQuaternionFusionAlgorithmUsingEulerAngles>( + true /* absolute */); + break; + case mojom::SensorType::RELATIVE_ORIENTATION_EULER_ANGLES: + if (IsSensorTypeAvailable(mojom::SensorType::GYROSCOPE)) { + fusion_algorithm = std::make_unique< + RelativeOrientationEulerAnglesFusionAlgorithmUsingAccelerometerAndGyroscope>(); + } else { + fusion_algorithm = std::make_unique< + RelativeOrientationEulerAnglesFusionAlgorithmUsingAccelerometer>(); + } + break; + case mojom::SensorType::RELATIVE_ORIENTATION_QUATERNION: + fusion_algorithm = std::make_unique< + OrientationQuaternionFusionAlgorithmUsingEulerAngles>( + false /* absolute */); + break; + default: + NOTREACHED(); + } + + DCHECK(fusion_algorithm); + PlatformSensorFusion::Create( + reading_buffer, this, std::move(fusion_algorithm), std::move(callback)); +} + +} // namespace device
diff --git a/services/device/generic_sensor/platform_sensor_provider_linux_base.h b/services/device/generic_sensor/platform_sensor_provider_linux_base.h new file mode 100644 index 0000000..338f712 --- /dev/null +++ b/services/device/generic_sensor/platform_sensor_provider_linux_base.h
@@ -0,0 +1,25 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_PROVIDER_LINUX_BASE_H_ +#define SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_PROVIDER_LINUX_BASE_H_ + +#include "services/device/generic_sensor/platform_sensor_provider.h" + +namespace device { + +class PlatformSensorProviderLinuxBase : public PlatformSensorProvider { + protected: + static bool IsFusionSensorType(mojom::SensorType type); + + void CreateFusionSensor(mojom::SensorType type, + SensorReadingSharedBuffer* reading_buffer, + CreateSensorCallback callback); + + virtual bool IsSensorTypeAvailable(mojom::SensorType type) const = 0; +}; + +} // namespace device + +#endif // SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_PROVIDER_LINUX_BASE_H_
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn index 17ae123..b476e5e7 100644 --- a/services/device/geolocation/BUILD.gn +++ b/services/device/geolocation/BUILD.gn
@@ -54,7 +54,6 @@ "//mojo/public/cpp/bindings", "//mojo/public/cpp/system", "//net", - "//services/device/public/cpp:device_features", "//ui/gfx", ] public_deps = [ @@ -85,9 +84,8 @@ sources += [ "core_location_provider.h", "core_location_provider.mm", - "mac_location_permission_delegate.h", - "mac_location_permission_delegate.mm", ] + deps += [ "//services/device/public/cpp:device_features" ] } if (is_win) {
diff --git a/services/device/geolocation/core_location_provider.mm b/services/device/geolocation/core_location_provider.mm index 87b590f..ad3aff9a6 100644 --- a/services/device/geolocation/core_location_provider.mm +++ b/services/device/geolocation/core_location_provider.mm
@@ -137,7 +137,7 @@ // static std::unique_ptr<LocationProvider> NewSystemLocationProvider() { - if (!base::FeatureList::IsEnabled(features::kMacCoreLocationBackend)) + if (!base::FeatureList::IsEnabled(features::kMacCoreLocationImplementation)) return nullptr; return std::make_unique<CoreLocationProvider>();
diff --git a/services/device/geolocation/empty_wifi_data_provider.cc b/services/device/geolocation/empty_wifi_data_provider.cc index 029afe0..ba4787a3 100644 --- a/services/device/geolocation/empty_wifi_data_provider.cc +++ b/services/device/geolocation/empty_wifi_data_provider.cc
@@ -23,8 +23,6 @@ return true; } -void EmptyWifiDataProvider::ForceRescan() {} - // static WifiDataProvider* WifiDataProviderManager::DefaultFactoryFunction() { return new EmptyWifiDataProvider();
diff --git a/services/device/geolocation/empty_wifi_data_provider.h b/services/device/geolocation/empty_wifi_data_provider.h index 5ac432d..f7f4541 100644 --- a/services/device/geolocation/empty_wifi_data_provider.h +++ b/services/device/geolocation/empty_wifi_data_provider.h
@@ -21,7 +21,6 @@ void StopDataProvider() override {} bool DelayedByPolicy() override; bool GetData(WifiData* data) override; - void ForceRescan() override; private: ~EmptyWifiDataProvider() override;
diff --git a/services/device/geolocation/mac_location_permission_delegate.h b/services/device/geolocation/mac_location_permission_delegate.h deleted file mode 100644 index 3ac974dd..0000000 --- a/services/device/geolocation/mac_location_permission_delegate.h +++ /dev/null
@@ -1,39 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef SERVICES_DEVICE_GEOLOCATION_MAC_LOCATION_PERMISSION_DELEGATE_H_ -#define SERVICES_DEVICE_GEOLOCATION_MAC_LOCATION_PERMISSION_DELEGATE_H_ - -#include <memory> - -#include "base/callback.h" -#include "base/memory/weak_ptr.h" - -namespace device { - -class LocationManagerHolder; - -class MacLocationPermissionDelegate { - using PermissionUpdateCallback = base::RepeatingCallback<void(bool)>; - - public: - MacLocationPermissionDelegate(); - ~MacLocationPermissionDelegate(); - - bool IsLocationPermissionGranted(); - void SetPermissionUpdateCallback(PermissionUpdateCallback callback); - - // Only to be called by the CLLocationDelegate. - void SetPermission(bool allowed); - - private: - std::unique_ptr<LocationManagerHolder> permission_delegate_; - PermissionUpdateCallback callback_; - bool has_permission_ = false; - base::WeakPtrFactory<MacLocationPermissionDelegate> weak_ptr_factory_{this}; -}; - -} // namespace device - -#endif // SERVICES_DEVICE_GEOLOCATION_MAC_LOCATION_PERMISSION_DELEGATE_H_
diff --git a/services/device/geolocation/mac_location_permission_delegate.mm b/services/device/geolocation/mac_location_permission_delegate.mm deleted file mode 100644 index 2d5214c3..0000000 --- a/services/device/geolocation/mac_location_permission_delegate.mm +++ /dev/null
@@ -1,93 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import <CoreLocation/CoreLocation.h> - -#include "base/mac/scoped_nsobject.h" -#include "base/memory/weak_ptr.h" -#include "services/device/geolocation/mac_location_permission_delegate.h" - -@interface LocationPermissionDelegate : NSObject <CLLocationManagerDelegate> { - base::WeakPtr<device::MacLocationPermissionDelegate> permission_delegate_; -} - -- (id)initWithPermissionDelegate: - (base::WeakPtr<device::MacLocationPermissionDelegate>)provider; - -- (void)locationManager:(CLLocationManager*)manager - didChangeAuthorizationStatus:(CLAuthorizationStatus)status; - -@end - -@implementation LocationPermissionDelegate - -- (id)initWithPermissionDelegate: - (base::WeakPtr<device::MacLocationPermissionDelegate>)permission_delegate { - self = [super init]; - permission_delegate_ = permission_delegate; - return self; -} - -- (void)locationManager:(CLLocationManager*)manager - didChangeAuthorizationStatus:(CLAuthorizationStatus)status { - if (!permission_delegate_) - return; - if (@available(macOS 10.12.0, *)) { - if (status == kCLAuthorizationStatusAuthorizedAlways) { - permission_delegate_->SetPermission(true); - } else { - permission_delegate_->SetPermission(false); - } - } else { - if (status == kCLAuthorizationStatusAuthorized) { - permission_delegate_->SetPermission(true); - } else { - permission_delegate_->SetPermission(false); - } - } -} - -@end - -namespace device { - -class LocationManagerHolder { - public: - LocationManagerHolder(base::WeakPtr<device::MacLocationPermissionDelegate> - location_permission) { - location_manager_.reset([[CLLocationManager alloc] init]); - delegate_.reset([[LocationPermissionDelegate alloc] - initWithPermissionDelegate:location_permission]); - location_manager_.get().delegate = delegate_; - } - ~LocationManagerHolder() = default; - - private: - base::scoped_nsobject<CLLocationManager> location_manager_; - base::scoped_nsobject<LocationPermissionDelegate> delegate_; - base::WeakPtrFactory<LocationManagerHolder> weak_ptr_factory_{this}; -}; - -MacLocationPermissionDelegate::MacLocationPermissionDelegate() { - permission_delegate_ = - std::make_unique<LocationManagerHolder>(weak_ptr_factory_.GetWeakPtr()); -} - -MacLocationPermissionDelegate::~MacLocationPermissionDelegate() {} - -bool MacLocationPermissionDelegate::IsLocationPermissionGranted() { - return has_permission_; -} - -void MacLocationPermissionDelegate::SetPermissionUpdateCallback( - PermissionUpdateCallback callback) { - callback_ = callback; -} - -void MacLocationPermissionDelegate::SetPermission(bool allowed) { - has_permission_ = allowed; - callback_.Run(allowed); -} - -} // namespace device
diff --git a/services/device/geolocation/network_location_provider.cc b/services/device/geolocation/network_location_provider.cc index 637e827e..331c9144 100644 --- a/services/device/geolocation/network_location_provider.cc +++ b/services/device/geolocation/network_location_provider.cc
@@ -19,11 +19,6 @@ #include "services/device/public/cpp/geolocation/geoposition.h" #include "services/network/public/cpp/shared_url_loader_factory.h" -#if defined(OS_MAC) -#include "services/device/geolocation/mac_location_permission_delegate.h" -#include "services/device/public/cpp/device_features.h" -#endif - namespace device { namespace { // The maximum period of time we'll wait for a complete set of wifi data @@ -55,12 +50,6 @@ base::BindRepeating(&NetworkLocationProvider::OnLocationResponse, base::Unretained(this)))) { DCHECK(position_cache_); -#if defined(OS_MAC) - permission_delegate_ = std::make_unique<MacLocationPermissionDelegate>(); - permission_delegate_->SetPermissionUpdateCallback( - base::BindRepeating(&NetworkLocationProvider::OnSystemPermissionUpdated, - base::Unretained(this))); -#endif } NetworkLocationProvider::~NetworkLocationProvider() { @@ -82,27 +71,9 @@ RequestPosition(); } -#if defined(OS_MAC) -void NetworkLocationProvider::OnSystemPermissionUpdated( - bool permission_granted) { - const bool was_permission_granted = is_system_permission_granted_; - is_system_permission_granted_ = permission_granted; - if (!was_permission_granted && is_system_permission_granted_ && IsStarted()) { - wifi_data_provider_manager_->ForceRescan(); - OnWifiDataUpdate(); - } -} -#endif - void NetworkLocationProvider::OnWifiDataUpdate() { DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(IsStarted()); -#if defined(OS_MAC) - if (!is_system_permission_granted_ && - base::FeatureList::IsEnabled(features::kMacCoreLocationImplementation)) { - return; - } -#endif is_wifi_data_complete_ = wifi_data_provider_manager_->GetData(&wifi_data_); if (is_wifi_data_complete_) { wifi_timestamp_ = base::Time::Now(); @@ -178,13 +149,6 @@ void NetworkLocationProvider::RequestPosition() { DCHECK(thread_checker_.CalledOnValidThread()); -#if defined(OS_MAC) - if (!is_system_permission_granted_ && - base::FeatureList::IsEnabled(features::kMacCoreLocationImplementation)) { - return; - } -#endif - // The wifi polling policy may require us to wait for several minutes before // fresh wifi data is available. To ensure we can return a position estimate // quickly when the network location provider is the primary provider, allow @@ -237,7 +201,6 @@ // Let listeners know that we now have a position available. if (!location_provider_update_callback_.is_null()) location_provider_update_callback_.Run(this, position); - return; } // Don't send network requests until authorized. http://crbug.com/39171
diff --git a/services/device/geolocation/network_location_provider.h b/services/device/geolocation/network_location_provider.h index a5854774..9337ccd 100644 --- a/services/device/geolocation/network_location_provider.h +++ b/services/device/geolocation/network_location_provider.h
@@ -18,14 +18,12 @@ #include "base/strings/string16.h" #include "base/threading/thread.h" #include "base/threading/thread_checker.h" -#include "build/build_config.h" #include "services/device/geolocation/network_location_request.h" #include "services/device/geolocation/wifi_data_provider_manager.h" #include "services/device/public/cpp/geolocation/location_provider.h" #include "services/device/public/mojom/geoposition.mojom.h" namespace device { -class MacLocationPermissionDelegate; class PositionCache; class NetworkLocationProvider : public LocationProvider { public: @@ -42,9 +40,6 @@ const mojom::Geoposition& GetPosition() override; void OnPermissionGranted() override; -#if defined(OS_MAC) - void OnSystemPermissionUpdated(bool permission_granted); -#endif private: // Tries to update |position_| request from cache or network. void RequestPosition(); @@ -87,11 +82,6 @@ base::ThreadChecker thread_checker_; -#if defined(OS_MAC) - std::unique_ptr<MacLocationPermissionDelegate> permission_delegate_; - bool is_system_permission_granted_ = false; -#endif - base::WeakPtrFactory<NetworkLocationProvider> weak_factory_{this}; DISALLOW_COPY_AND_ASSIGN(NetworkLocationProvider);
diff --git a/services/device/geolocation/network_location_provider_unittest.cc b/services/device/geolocation/network_location_provider_unittest.cc index dfaa959..59af9998 100644 --- a/services/device/geolocation/network_location_provider_unittest.cc +++ b/services/device/geolocation/network_location_provider_unittest.cc
@@ -22,7 +22,6 @@ #include "base/strings/utf_string_conversions.h" #include "base/test/task_environment.h" #include "base/values.h" -#include "build/build_config.h" #include "net/base/net_errors.h" #include "services/device/geolocation/fake_position_cache.h" #include "services/device/geolocation/location_arbitrator.h" @@ -84,8 +83,6 @@ return got_data_; } - void ForceRescan() override {} - void SetData(const WifiData& new_data) { got_data_ = true; const bool differs = data_.DiffersSignificantly(new_data); @@ -129,16 +126,9 @@ &position_cache_); if (set_permission_granted) provider->OnPermissionGranted(); -// For macOS we must simulate the granting of location permission -#if defined(OS_MAC) - if (grant_system_permission_by_default_) - provider->OnSystemPermissionUpdated(/*granted=*/true); -#endif return provider; } - bool grant_system_permission_by_default_ = true; - protected: GeolocationNetworkProviderTest() : wifi_data_provider_(MockWifiDataProvider::CreateInstance()) { @@ -547,86 +537,6 @@ CheckRequestIsValid(kScanCount, 0); } -#if defined(OS_MAC) -// Tests that, callbacks and network requests are never made until we have -// system location permission. -TEST_F(GeolocationNetworkProviderTest, MacOSSystemPermissionsTest) { - // Do not grant system permission when creating the provider. - grant_system_permission_by_default_ = false; - - LocationUpdateListener listener; - mojom::Geoposition last_position = CreateReferencePosition(0); - EXPECT_TRUE(ValidateGeoposition(last_position)); - // Set up a fake cached position so the NetworkLocationProvider would be able - // to call the update callback if permission was allowed. - position_cache_.SetLastUsedNetworkPosition(last_position); - - wifi_data_provider_->set_got_data(false); - - std::unique_ptr<LocationProvider> provider( - CreateProvider(/*set_permission_granted=*/false)); - provider->StartProvider(/*high_accuracy=*/false); - provider->SetUpdateCallback(listener.callback); - - // Under normal circumstances, when there is no initial wifi data - // RequestPosition is not called until a few seconds after the provider is - // started to allow time for the wifi scan to complete. To avoid waiting, - // grant permissions once the provider is running to cause RequestPosition to - // be called immediately. - provider->OnPermissionGranted(); - - // Ensure the callback was never called. - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(0, listener.update_count); - - // Now try to make a request for new wifi data. - wifi_data_provider_->set_got_data(true); - provider->StopProvider(); - provider->StartProvider(false); - - // Normally when starting the provider a network request should be sent - // out. This is tested in other tests. However, when we do not have system - // permission we should not send out any requests. - ASSERT_EQ(0, test_url_loader_factory_.NumPending()); - - // Now wifi data arrives; new request will try to send but should not - // because we do not have permission. - wifi_data_provider_->SetData(CreateReferenceWifiScanData(2)); - base::RunLoop().RunUntilIdle(); - ASSERT_EQ(0, test_url_loader_factory_.NumPending()); - - // Ensure that we immediately make a new network request to acquire the - // location when permission is granted. - static_cast<NetworkLocationProvider*>(provider.get()) - ->OnSystemPermissionUpdated(true); - ASSERT_EQ(1, test_url_loader_factory_.NumPending()); - - // Clear pending requests for later testing. - const std::string& request_url = - test_url_loader_factory_.pending_requests()->back().request.url.spec(); - const char* kReferenceNetworkResponse = - R"({ - "accuracy": 1200.4, - "location": { - "lat": 51.0, - "lng": -0.1 - } - })"; - test_url_loader_factory_.AddResponse(request_url, kReferenceNetworkResponse); - base::RunLoop().RunUntilIdle(); - test_url_loader_factory_.ClearResponses(); - - // Ensure more network requests are not sent out when permission is denied - // again. - static_cast<NetworkLocationProvider*>(provider.get()) - ->OnSystemPermissionUpdated(false); - provider->StartProvider(false); - wifi_data_provider_->SetData(CreateReferenceWifiScanData(4)); - base::RunLoop().RunUntilIdle(); - ASSERT_EQ(0, test_url_loader_factory_.NumPending()); -} -#endif - // Tests that the provider's last position cache delegate is correctly used to // cache the most recent network position estimate, and that this estimate is // not lost when the provider is torn down and recreated.
diff --git a/services/device/geolocation/wifi_data_provider.h b/services/device/geolocation/wifi_data_provider.h index 2a60f1bf..cc5a645 100644 --- a/services/device/geolocation/wifi_data_provider.h +++ b/services/device/geolocation/wifi_data_provider.h
@@ -35,8 +35,6 @@ // obtain. virtual bool GetData(WifiData* data) = 0; - virtual void ForceRescan() = 0; - typedef base::RepeatingClosure WifiDataUpdateCallback; void AddCallback(WifiDataUpdateCallback* callback);
diff --git a/services/device/geolocation/wifi_data_provider_chromeos.cc b/services/device/geolocation/wifi_data_provider_chromeos.cc index 5fecd63..37bc1d5 100644 --- a/services/device/geolocation/wifi_data_provider_chromeos.cc +++ b/services/device/geolocation/wifi_data_provider_chromeos.cc
@@ -60,10 +60,6 @@ return is_first_scan_complete_; } -// There is currently no reason to force a rescan on ChromeOS so this has not -// been implemented. -void WifiDataProviderChromeOs::ForceRescan() {} - std::unique_ptr<WifiPollingPolicy> WifiDataProviderChromeOs::CreatePollingPolicy() { return std::make_unique<GenericWifiPollingPolicy<
diff --git a/services/device/geolocation/wifi_data_provider_chromeos.h b/services/device/geolocation/wifi_data_provider_chromeos.h index 76ba4594..30857a14 100644 --- a/services/device/geolocation/wifi_data_provider_chromeos.h +++ b/services/device/geolocation/wifi_data_provider_chromeos.h
@@ -23,7 +23,6 @@ void StopDataProvider() override; bool DelayedByPolicy() override; bool GetData(WifiData* data) override; - void ForceRescan() override; private: friend class GeolocationChromeOsWifiDataProviderTest;
diff --git a/services/device/geolocation/wifi_data_provider_common.cc b/services/device/geolocation/wifi_data_provider_common.cc index 72d2e81..3987d9e 100644 --- a/services/device/geolocation/wifi_data_provider_common.cc +++ b/services/device/geolocation/wifi_data_provider_common.cc
@@ -58,10 +58,6 @@ return is_first_scan_complete_; } -void WifiDataProviderCommon::ForceRescan() { - DoWifiScanTask(); -} - void WifiDataProviderCommon::DoWifiScanTask() { // Abort the wifi scan if the provider is already being torn down. if (!wlan_api_)
diff --git a/services/device/geolocation/wifi_data_provider_common.h b/services/device/geolocation/wifi_data_provider_common.h index 8aa6f098..2590e0a 100644 --- a/services/device/geolocation/wifi_data_provider_common.h +++ b/services/device/geolocation/wifi_data_provider_common.h
@@ -44,7 +44,6 @@ void StopDataProvider() override; bool DelayedByPolicy() override; bool GetData(WifiData* data) override; - void ForceRescan() override; protected: ~WifiDataProviderCommon() override;
diff --git a/services/device/geolocation/wifi_data_provider_manager.cc b/services/device/geolocation/wifi_data_provider_manager.cc index 67c6018..75277c2 100644 --- a/services/device/geolocation/wifi_data_provider_manager.cc +++ b/services/device/geolocation/wifi_data_provider_manager.cc
@@ -79,10 +79,6 @@ return impl_->GetData(data); } -void WifiDataProviderManager::ForceRescan() { - impl_->ForceRescan(); -} - void WifiDataProviderManager::AddCallback(WifiDataUpdateCallback* callback) { impl_->AddCallback(callback); }
diff --git a/services/device/geolocation/wifi_data_provider_manager.h b/services/device/geolocation/wifi_data_provider_manager.h index 2ba02e5e..22e8fb0 100644 --- a/services/device/geolocation/wifi_data_provider_manager.h +++ b/services/device/geolocation/wifi_data_provider_manager.h
@@ -65,8 +65,6 @@ // obtain. bool GetData(WifiData* data); - void ForceRescan(); - private: // Private constructor and destructor, callers access singleton through // Register and Unregister.
diff --git a/services/device/public/cpp/device_features.cc b/services/device/public/cpp/device_features.cc index 6942bd0..7094d63 100644 --- a/services/device/public/cpp/device_features.cc +++ b/services/device/public/cpp/device_features.cc
@@ -19,16 +19,9 @@ const base::Feature kWinrtGeolocationImplementation{ "WinrtGeolocationImplementation", base::FEATURE_DISABLED_BY_DEFAULT}; // Enables usage of the CoreLocation API for LocationProvider instead of -// NetworkLocationProvider for macOS. The |kMacCoreLocationImplementation| flag -// enables a permissions UX workflow that navigates the user to give the -// browser location permission in the macOS System Preferences. The -// |kMacCoreLocationBackend| flag switches to using the the macOS Core Location -// API instead of using the NetworkLocationProvider to gather location through -// WiFi scans. +// NetworkLocationProvider for macOS. const base::Feature kMacCoreLocationImplementation{ - "MacCoreLocationImplementation", base::FEATURE_ENABLED_BY_DEFAULT}; -const base::Feature kMacCoreLocationBackend{"MacCoreLocationBackend", - base::FEATURE_DISABLED_BY_DEFAULT}; + "kMacCoreLocationImplementation", base::FEATURE_ENABLED_BY_DEFAULT}; #if defined(OS_WIN) // Switches from enumerating serial ports using GUID_DEVINTERFACE_SERIALPORT to
diff --git a/services/device/public/cpp/device_features.h b/services/device/public/cpp/device_features.h index f42e2a3..d55380d 100644 --- a/services/device/public/cpp/device_features.h +++ b/services/device/public/cpp/device_features.h
@@ -22,7 +22,6 @@ kWinrtGeolocationImplementation; DEVICE_FEATURES_EXPORT extern const base::Feature kMacCoreLocationImplementation; -DEVICE_FEATURES_EXPORT extern const base::Feature kMacCoreLocationBackend; #if defined(OS_WIN) DEVICE_FEATURES_EXPORT extern const base::Feature kUseSerialBusEnumerator;
diff --git a/testing/scripts/run_wpt_tests.py b/testing/scripts/run_wpt_tests.py index 7f8d53b..41802641 100755 --- a/testing/scripts/run_wpt_tests.py +++ b/testing/scripts/run_wpt_tests.py
@@ -56,6 +56,7 @@ "--binary-arg=--host-resolver-rules=" "MAP nonexistent.*.test ~NOTFOUND, MAP *.test 127.0.0.1", "--binary-arg=--enable-experimental-web-platform-features", + "--binary-arg=--enable-blink-test-features", "--binary-arg=--enable-blink-features=MojoJS,MojoJSTest", "--webdriver-binary=" + CHROMEDRIVER_BINARY.format(target_dir), "--webdriver-arg=--enable-chrome-logs",
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index ef1f91a1..644c2cb 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -3769,6 +3769,27 @@ ] } ], + "InvalidateBookmarkSyncMetadataIfClientTagMissing": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "InvalidateBookmarkSyncMetadataIfClientTagMissing" + ] + } + ] + } + ], "IsolatePasswordSites": [ { "platforms": [ @@ -6289,6 +6310,21 @@ ] } ], + "SafetyCheckIOS": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SafetyCheckIOS" + ] + } + ] + } + ], "SaveEditedPDFForm": [ { "platforms": [
diff --git a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc index 912c1bf5..57ee921 100644 --- a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc +++ b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
@@ -329,6 +329,7 @@ data.do_not_update_selection_on_mutating_selection_range(); out->autoplay_policy = data.autoplay_policy(); out->preferred_color_scheme = data.preferred_color_scheme(); + out->preferred_contrast = data.preferred_contrast(); out->picture_in_picture_enabled = data.picture_in_picture_enabled(); out->translate_service_available = data.translate_service_available(); out->lazy_load_enabled = data.lazy_load_enabled();
diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h index 81e4729..97f7260 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences.h +++ b/third_party/blink/public/common/web_preferences/web_preferences.h
@@ -15,6 +15,7 @@ #include "net/nqe/effective_connection_type.h" #include "third_party/blink/public/common/common_export.h" #include "third_party/blink/public/mojom/css/preferred_color_scheme.mojom-shared.h" +#include "third_party/blink/public/mojom/css/preferred_contrast.mojom-shared.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-forward.h" #include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-shared.h" #include "ui/base/pointer/pointer_device.h" @@ -293,6 +294,11 @@ blink::mojom::PreferredColorScheme preferred_color_scheme = blink::mojom::PreferredColorScheme::kLight; + // The preferred contrast for the web content. The contrast is used to + // evaluate the prefers-contrast media query. + blink::mojom::PreferredContrast preferred_contrast = + blink::mojom::PreferredContrast::kNoPreference; + // Network quality threshold below which resources from iframes are assigned // either kVeryLow or kVeryLow Blink priority. net::EffectiveConnectionType low_priority_iframes_threshold;
diff --git a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h index 74b22fba..2c83c0c 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h +++ b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
@@ -717,6 +717,11 @@ return r.preferred_color_scheme; } + static blink::mojom::PreferredContrast preferred_contrast( + const blink::web_pref::WebPreferences& r) { + return r.preferred_contrast; + } + static net::EffectiveConnectionType low_priority_iframes_threshold( const blink::web_pref::WebPreferences& r) { return r.low_priority_iframes_threshold;
diff --git a/third_party/blink/public/mojom/page/drag.mojom b/third_party/blink/public/mojom/page/drag.mojom index 67169b6f..a391718a 100644 --- a/third_party/blink/public/mojom/page/drag.mojom +++ b/third_party/blink/public/mojom/page/drag.mojom
@@ -76,7 +76,7 @@ struct DragItemFileSystemFile { url.mojom.Url url; int64 size; - string file_system_id; + string? file_system_id; }; union DragItem {
diff --git a/third_party/blink/public/mojom/page/widget.mojom b/third_party/blink/public/mojom/page/widget.mojom index c57b8f7..878125f6 100644 --- a/third_party/blink/public/mojom/page/widget.mojom +++ b/third_party/blink/public/mojom/page/widget.mojom
@@ -36,8 +36,27 @@ // |point_in_viewport| is the position of the drag event in the viewport // coordinates. // |screen_point| is the absolute position of the mouse pointer. + // |key_modifiers| the event/keyboard modifiers that are active during the + // operation. See WebInputEvent::Modifiers. - // Notifies the Widget of a drag over operation. + // Notifies the Widget of a drag enter operation. |drag_data| only + // contains a subset of the actual drag data the browser has and it + // used to only start the drag action. Once the item is dropped |drag_data| + // will be provided with the complete data. Once the renderer has + // completed processing the event the callback is called with the type of + // the current drag operation that is active and the browser will update + // the mouse cursor displayed to the user. + DragTargetDragEnter(DragData drag_data, + gfx.mojom.PointF point_in_viewport, + gfx.mojom.PointF screen_point, + AllowedDragOperations operations_allowed, + uint32 key_modifiers) + => (DragOperation operation); + + // Notifies the Widget of a drag over operation. Once the renderer has + // completed processing the event the callback is called with the type of + // the current drag operation that is active and the browser will update + // the mouse cursor displayed to the user. DragTargetDragOver(gfx.mojom.PointF point_in_viewport, gfx.mojom.PointF screen_point, AllowedDragOperations operations_allowed,
diff --git a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom index ac1099c8..9a42241 100644 --- a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom +++ b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
@@ -5,6 +5,7 @@ module blink.mojom; import "third_party/blink/public/mojom/css/preferred_color_scheme.mojom"; +import "third_party/blink/public/mojom/css/preferred_contrast.mojom"; import "third_party/blink/public/mojom/v8_cache_options.mojom"; import "url/mojom/url.mojom"; import "mojo/public/mojom/base/string16.mojom"; @@ -385,6 +386,10 @@ // to be used based on the supported-color-schemes META tag and CSS property. PreferredColorScheme preferred_color_scheme; + // The preferred contrast for the web content. Used to evaluate the + // prefers-contrast media query. + PreferredContrast preferred_contrast; + // Network quality threshold below which resources from iframes are assigned // either kVeryLow or kVeryLow Blink priority. EffectiveConnectionType low_priority_iframes_threshold;
diff --git a/third_party/blink/public/strings/blink_strings.grd b/third_party/blink/public/strings/blink_strings.grd index 579947c..03ea12c1 100644 --- a/third_party/blink/public/strings/blink_strings.grd +++ b/third_party/blink/public/strings/blink_strings.grd
@@ -805,6 +805,27 @@ <message name="IDS_AX_LIST_BOX_ITEM_STATE_DESCRIPTION" desc="Accessibility state description for an item that is part of a list box"> in list, item <ph name="INDEX">$1<ex>1</ex></ph> of <ph name="COUNT">$2<ex>3</ex></ph> </message> + <message name="IDS_AX_ARIA_CURRENT_STATE_DESCRIPTION_BASE" desc="Accessibility state description for a node that has aria-current value set to something other than false"> + current <ph name="TYPE">$1<ex>page</ex></ph> + </message> + <message name="IDS_AX_ARIA_CURRENT_PAGE" desc="Accessibility state description for aria-current value of page."> + page + </message> + <message name="IDS_AX_ARIA_CURRENT_STEP" desc="Accessibility state description for aria-current value of step."> + step + </message> + <message name="IDS_AX_ARIA_CURRENT_LOCATION" desc="Accessibility state description for aria-current value of location."> + location + </message> + <message name="IDS_AX_ARIA_CURRENT_DATE" desc="Accessibility state description for aria-current value of date."> + date + </message> + <message name="IDS_AX_ARIA_CURRENT_TIME" desc="Accessibility state description for aria-current value of time."> + time + </message> + <message name="IDS_AX_ARIA_CURRENT_TRUE" desc="Accessibility state description for aria-current value of true."> + item + </message> </if> <!-- Automatic image annotations for accessibility --> @@ -820,6 +841,14 @@ </message> </else> </if> + <if expr="is_android"> + <message name="IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_LTR" desc="Accessibility message spoken out loud to screen reader users on Android to inform them that they can get a description of an image by opening the 'More Options' menu on the top right. This is only for LTR languages. The 'more options' text should match TC ID 8110367050267853536"> + This image isn‘t labeled. Open the More Options menu at the top right to get image descriptions. + </message> + <message name="IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_RTL" desc="Accessibility message spoken out loud to screen reader users on Android to inform them that they can get a description of an image by opening the 'More Options' menu on the top left. This is only for RTL languages. The 'more options' text should match TC ID 8110367050267853536"> + This image isn‘t labeled. Open the More Options menu at the top left to get image descriptions. + </message> + </if> <message name="IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION" desc="Accessibility message spoken out loud to screen reader users to inform them that they can get a description of an image by opening the context menu."> To get missing image descriptions, open the context menu. </message>
diff --git a/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_DATE.png.sha1 b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_DATE.png.sha1 new file mode 100644 index 0000000..ffccd06 --- /dev/null +++ b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_DATE.png.sha1
@@ -0,0 +1 @@ +5c5e9686c2277aa998a4a271e5166c8d0cba8b9e \ No newline at end of file
diff --git a/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_LOCATION.png.sha1 b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_LOCATION.png.sha1 new file mode 100644 index 0000000..c372a98 --- /dev/null +++ b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_LOCATION.png.sha1
@@ -0,0 +1 @@ +59a0673045e1793e36f1312e11a330271f296f60 \ No newline at end of file
diff --git a/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_PAGE.png.sha1 b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_PAGE.png.sha1 new file mode 100644 index 0000000..26c1969 --- /dev/null +++ b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_PAGE.png.sha1
@@ -0,0 +1 @@ +9ea85c50785469543867f7152f1c3be0489d95f4 \ No newline at end of file
diff --git a/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_STATE_DESCRIPTION_BASE.png.sha1 b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_STATE_DESCRIPTION_BASE.png.sha1 new file mode 100644 index 0000000..382a13a3 --- /dev/null +++ b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_STATE_DESCRIPTION_BASE.png.sha1
@@ -0,0 +1 @@ +493f231daab8a46d4e2e9a1f6e82c771a9269db7 \ No newline at end of file
diff --git a/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_STEP.png.sha1 b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_STEP.png.sha1 new file mode 100644 index 0000000..0f651121 --- /dev/null +++ b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_STEP.png.sha1
@@ -0,0 +1 @@ +42fe4f745cb09a95ecb4820c3c2abd8eb6c7d813 \ No newline at end of file
diff --git a/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_TIME.png.sha1 b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_TIME.png.sha1 new file mode 100644 index 0000000..fb0ed8c --- /dev/null +++ b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_TIME.png.sha1
@@ -0,0 +1 @@ +052c3ce2f0154d34fcf38469aaaf1c0532f7646e \ No newline at end of file
diff --git a/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_TRUE.png.sha1 b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_TRUE.png.sha1 new file mode 100644 index 0000000..b75bf2b --- /dev/null +++ b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_ARIA_CURRENT_TRUE.png.sha1
@@ -0,0 +1 @@ +de2faaa74be06d01cd11e3b910371ba665984ed0 \ No newline at end of file
diff --git a/third_party/blink/public/strings/blink_strings_grd/IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_LTR.png.sha1 b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_LTR.png.sha1 new file mode 100644 index 0000000..83ebb7f --- /dev/null +++ b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_LTR.png.sha1
@@ -0,0 +1 @@ +c3f68c79183044269c04adec6b62fc027a06c857 \ No newline at end of file
diff --git a/third_party/blink/public/strings/blink_strings_grd/IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_RTL.png.sha1 b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_RTL.png.sha1 new file mode 100644 index 0000000..83ebb7f --- /dev/null +++ b/third_party/blink/public/strings/blink_strings_grd/IDS_AX_IMAGE_ELIGIBLE_FOR_ANNOTATION_ANDROID_RTL.png.sha1
@@ -0,0 +1 @@ +c3f68c79183044269c04adec6b62fc027a06c857 \ No newline at end of file
diff --git a/third_party/blink/public/web/web_frame_widget.h b/third_party/blink/public/web/web_frame_widget.h index e5e47ed..a48cc7d 100644 --- a/third_party/blink/public/web/web_frame_widget.h +++ b/third_party/blink/public/web/web_frame_widget.h
@@ -99,12 +99,13 @@ // Callback methods when a drag-and-drop operation is trying to drop something // on the WebFrameWidget. - virtual DragOperation DragTargetDragEnter( + virtual void DragTargetDragEnter( const WebDragData&, const gfx::PointF& point_in_viewport, const gfx::PointF& screen_point, DragOperationsMask operations_allowed, - uint32_t key_modifiers) = 0; + uint32_t key_modifiers, + base::OnceCallback<void(blink::DragOperation)> callback) = 0; virtual void DragTargetDragOver( const gfx::PointF& point_in_viewport, const gfx::PointF& screen_point,
diff --git a/third_party/blink/public/web/web_settings.h b/third_party/blink/public/web/web_settings.h index 781ac08..ae9c9be6 100644 --- a/third_party/blink/public/web/web_settings.h +++ b/third_party/blink/public/web/web_settings.h
@@ -35,7 +35,6 @@ #include "third_party/blink/public/common/css/navigation_controls.h" #include "third_party/blink/public/common/web_preferences/web_preferences.h" -#include "third_party/blink/public/mojom/css/preferred_contrast.mojom-forward.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-forward.h" #include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-forward.h" #include "third_party/blink/public/platform/web_common.h"
diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h index 5b9b882..500f7da 100644 --- a/third_party/blink/public/web/web_view.h +++ b/third_party/blink/public/web/web_view.h
@@ -33,10 +33,12 @@ #include "base/time/time.h" #include "third_party/blink/public/common/page/drag_operation.h" +#include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h" #include "third_party/blink/public/common/web_preferences/web_preferences.h" #include "third_party/blink/public/mojom/input/focus_type.mojom-shared.h" #include "third_party/blink/public/mojom/page/page.mojom-shared.h" #include "third_party/blink/public/mojom/page/page_visibility_state.mojom-shared.h" +#include "third_party/blink/public/mojom/renderer_preference_watcher.mojom-shared.h" #include "third_party/blink/public/mojom/widget/screen_orientation.mojom-shared.h" #include "third_party/blink/public/platform/cross_variant_mojo_util.h" #include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h" @@ -435,6 +437,16 @@ // after. virtual void PaintContent(cc::PaintCanvas*, const gfx::Rect& viewport) = 0; + // Renderer preferences --------------------------------------------------- + + virtual void RegisterRendererPreferenceWatcher( + CrossVariantMojoRemote<mojom::RendererPreferenceWatcherInterfaceBase> + watcher) = 0; + + virtual void SetRendererPreferences( + const RendererPreferences& preferences) = 0; + virtual const RendererPreferences& GetRendererPreferences() = 0; + // Web preferences --------------------------------------------------- // Applies blink related preferences to this view.
diff --git a/third_party/blink/public/web/web_view_client.h b/third_party/blink/public/web/web_view_client.h index 946a785..ad959e1 100644 --- a/third_party/blink/public/web/web_view_client.h +++ b/third_party/blink/public/web/web_view_client.h
@@ -102,8 +102,7 @@ virtual void OnPageFrozenChanged(bool frozen) {} - virtual void OnSetRendererPreferences( - const blink::RendererPreferences& renderer_prefs) {} + virtual void DidUpdateRendererPreferences() {} // UI ------------------------------------------------------------------
diff --git a/third_party/blink/renderer/bindings/scripts/code_generator.py b/third_party/blink/renderer/bindings/scripts/code_generator.py index adbc487..13d02c2 100644 --- a/third_party/blink/renderer/bindings/scripts/code_generator.py +++ b/third_party/blink/renderer/bindings/scripts/code_generator.py
@@ -13,6 +13,7 @@ import sys from idl_types import set_ancestors, IdlType +from itertools import groupby from v8_globals import includes from v8_interface import constant_filters from v8_types import set_component_dirs @@ -43,6 +44,7 @@ # after path[0] == invoking script dir sys.path.insert(1, THIRD_PARTY_DIR) import jinja2 +from jinja2.filters import make_attrgetter, environmentfilter def generate_indented_conditional(code, conditional): @@ -88,6 +90,13 @@ return generate_indented_conditional(code, function) +@environmentfilter +def do_stringify_key_group_by(environment, value, attribute): + expr = make_attrgetter(environment, attribute) + key = lambda item: '' if expr(item) is None else str(expr(item)) + return groupby(sorted(value, key=key), expr) + + def initialize_jinja_env(cache_dir): jinja_env = jinja2.Environment( loader=jinja2.FileSystemLoader(TEMPLATES_DIR), @@ -117,6 +126,7 @@ }) jinja_env.filters.update(constant_filters()) jinja_env.filters.update(method_filters()) + jinja_env.filters["stringifykeygroupby"] = do_stringify_key_group_by return jinja_env
diff --git a/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl b/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl index 0add9c45..dc910f6d 100644 --- a/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl +++ b/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl
@@ -59,9 +59,9 @@ DCHECK(executionContext); {% endif %}{# has_origin_trial_members #} {% endif %}{# members #} - {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %} + {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %} {% filter origin_trial_enabled(origin_trial_test, "executionContext") %} - {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %} + {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %} {% filter runtime_enabled(feature_name) %} {% for member in member_list %} v8::Local<v8::Value> {{member.v8_value}}; @@ -147,9 +147,9 @@ DCHECK(executionContext); {% endif %}{# has_origin_trial_members #} {% endif %}{# members #} - {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %} + {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %} {% filter origin_trial_enabled(origin_trial_test, "executionContext") %} - {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %} + {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %} {% filter runtime_enabled(feature_name) %} {% for member in member_list %} v8::Local<v8::Value> {{member.v8_value}};
diff --git a/third_party/blink/renderer/build/scripts/core/css/css_properties.py b/third_party/blink/renderer/build/scripts/core/css/css_properties.py index 506083c..45c33f2 100755 --- a/third_party/blink/renderer/build/scripts/core/css/css_properties.py +++ b/third_party/blink/renderer/build/scripts/core/css/css_properties.py
@@ -37,6 +37,8 @@ 'Only longhands can be valid_for_cue [%s]' % name assert not prop['valid_for_marker'] or prop['is_longhand'], \ 'Only longhands can be valid_for_marker [%s]' % name + assert not prop['valid_for_highlight'] or prop['is_longhand'], \ + 'Only longhands can be valid_for_highlight [%s]' % name def validate_alias(alias):
diff --git a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl index 69eb4418..25fcbd9 100644 --- a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl +++ b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl
@@ -51,6 +51,7 @@ (property.is_border and 'kBorder' or ''), (property.computed_value_comparable and 'kComputedValueComparable' or ''), (property.tree_scoped_value and 'kTreeScopedValue' or ''), + (property.valid_for_highlight and 'kValidForHighlight' or ''), ] | reject('==', '') | join(' | ') %} {% set ctor_args = (not is_alias and [property_id, flags, separator] or []) %} // {{property.name}}
diff --git a/third_party/blink/renderer/core/accessibility/ax_object_cache.h b/third_party/blink/renderer/core/accessibility/ax_object_cache.h index d0ac133..b7651d5 100644 --- a/third_party/blink/renderer/core/accessibility/ax_object_cache.h +++ b/third_party/blink/renderer/core/accessibility/ax_object_cache.h
@@ -118,6 +118,10 @@ virtual void HandleClicked(Node*) = 0; virtual void HandleValidationMessageVisibilityChanged( const Node* form_control) = 0; + virtual void HandleEventListenerAdded(const Node& node, + const AtomicString& event_type) = 0; + virtual void HandleEventListenerRemoved(const Node& node, + const AtomicString& event_type) = 0; // Handle any notifications which arrived while layout was dirty. virtual void ProcessDeferredAccessibilityEvents(Document&) = 0;
diff --git a/third_party/blink/renderer/core/animation/element_animations.cc b/third_party/blink/renderer/core/animation/element_animations.cc index 6b26648..705df935 100644 --- a/third_party/blink/renderer/core/animation/element_animations.cc +++ b/third_party/blink/renderer/core/animation/element_animations.cc
@@ -142,6 +142,8 @@ for (auto& entry : animations_) { Animation& animation = *entry.key; if (auto* effect = DynamicTo<KeyframeEffect>(animation.effect())) { + if (!effect->IsCurrent() && !effect->IsInEffect()) + continue; if (!effect->UpdateBoxSizeAndCheckTransformAxisAlignment(box_size)) preserves_axis_alignment = false; }
diff --git a/third_party/blink/renderer/core/css/css_keyframes_rule.h b/third_party/blink/renderer/core/css/css_keyframes_rule.h index e7a96141..344b1d9 100644 --- a/third_party/blink/renderer/core/css/css_keyframes_rule.h +++ b/third_party/blink/renderer/core/css/css_keyframes_rule.h
@@ -52,7 +52,7 @@ void WrapperAppendKeyframe(StyleRuleKeyframe*); void WrapperRemoveKeyframe(unsigned); - String GetName() const { return name_; } + AtomicString GetName() const { return name_; } void SetName(const String& name) { name_ = AtomicString(name); } bool IsVendorPrefixed() const { return is_prefixed_; }
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 index 08eee8e3..04986d01 100644 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -479,6 +479,14 @@ valid_type: "bool", }, + // - valid_for_highlight: true + // + // https://drafts.csswg.org/css-pseudo-4/#highlight-styling + valid_for_highlight: { + default: false, + valid_type: "bool", + }, + // - is_border // The property, when used by the author, will disable any native // appearance on UI elements. @@ -714,6 +722,7 @@ valid_for_first_letter: true, valid_for_cue: true, valid_for_marker: true, + valid_for_highlight: true, }, { name: "direction", @@ -969,6 +978,7 @@ keywords: ["auto", "none"], typedom_types: ["Keyword"], default_value: "auto", + valid_for_highlight: true, }, { name: "-webkit-locale", @@ -1201,6 +1211,7 @@ affected_by_forced_colors: true, valid_for_first_letter: true, valid_for_cue: true, + valid_for_highlight: true, is_background: true, }, { @@ -1742,6 +1753,7 @@ style_builder_custom_functions: ["initial", "inherit", "value"], keywords: ["auto", "currentcolor"], typedom_types: ["Keyword"], + valid_for_highlight: true, }, { name: "clear", @@ -1823,6 +1835,7 @@ type_name: "Vector<AtomicString>", default_value: "Vector<AtomicString, 0>()", field_template: "external", + valid_for_highlight: true, }, { name: "column-fill", @@ -1919,7 +1932,8 @@ ], default_value: "auto", style_builder_custom_functions: ["initial", "inherit", "value"], - typedom_types: ["Keyword"] + typedom_types: ["Keyword"], + valid_for_highlight: true, }, { name: "cx", @@ -1988,6 +2002,7 @@ getter: "FillPaint", converter: "ConvertSVGPaint", affected_by_forced_colors: true, + valid_for_highlight: true, }, { name: "fill-opacity", @@ -2373,6 +2388,7 @@ typedom_types: ["Keyword", "Length", "Number", "Percentage"], valid_for_first_letter: true, valid_for_cue: true, + valid_for_marker: true, }, { name: "line-height-step", @@ -3474,6 +3490,7 @@ getter: "StrokePaint", converter: "ConvertSVGPaint", affected_by_forced_colors: true, + valid_for_highlight: true, }, { name: "stroke-dasharray", @@ -3542,7 +3559,8 @@ inherited: true, svg: true, converter: "ConvertUnzoomedLength", - typedom_types: ["Length", "Percentage"] + typedom_types: ["Length", "Percentage"], + valid_for_highlight: true, }, { name: "table-layout", @@ -3632,6 +3650,7 @@ affected_by_forced_colors: true, valid_for_first_letter: true, valid_for_cue: true, + valid_for_highlight: true, computed_value_comparable: true, }, { @@ -3647,6 +3666,7 @@ converter: "ConvertFlags<TextDecoration>", valid_for_first_letter: true, valid_for_cue: true, + valid_for_highlight: true, computed_value_comparable: true, }, { @@ -3661,6 +3681,7 @@ valid_for_first_letter: true, valid_for_cue: true, valid_for_marker: true, + valid_for_highlight: true, computed_value_comparable: true, }, { @@ -3673,6 +3694,7 @@ default_value: "solid", valid_for_first_letter: true, valid_for_cue: true, + valid_for_highlight: true, computed_value_comparable: true, }, { @@ -3689,6 +3711,7 @@ keywords: ["auto", "from-font"], typedom_types: ["Keyword", "Length", "Percentage"], valid_for_first_letter: true, + valid_for_highlight: true, computed_value_comparable: true, }, { @@ -3744,6 +3767,7 @@ valid_for_first_letter: true, valid_for_cue: true, valid_for_marker: true, + valid_for_highlight: true, }, { name: "text-size-adjust", @@ -4461,6 +4485,7 @@ style_builder_template: "color", affected_by_forced_colors: true, valid_for_marker: true, + valid_for_highlight: true, }, { name: "-webkit-text-emphasis-position", @@ -4493,6 +4518,7 @@ computed_style_custom_functions: ["getter"], converter: "ConvertStyleColor", style_builder_template: "color", + valid_for_highlight: true, }, { name: "-webkit-text-security", @@ -4516,6 +4542,7 @@ computed_style_custom_functions: ["getter"], converter: "ConvertStyleColor", style_builder_template: "color", + valid_for_highlight: true, }, { name: "-webkit-text-stroke-width", @@ -4526,6 +4553,7 @@ default_value: "0", type_name: "float", converter: "ConvertTextStrokeWidth", + valid_for_highlight: true, }, { name: "-webkit-transform-origin-x", @@ -5744,6 +5772,7 @@ valid_for_first_letter: true, valid_for_cue: true, valid_for_marker: true, + valid_for_highlight: true, }, { name: "-internal-visited-caret-color", @@ -5761,6 +5790,7 @@ style_builder_template_args: { initial_color: "StyleAutoColor::AutoColor", }, + valid_for_highlight: true, }, { name: "-internal-visited-column-rule-color", @@ -5794,6 +5824,7 @@ affected_by_forced_colors: true, valid_for_first_letter: true, valid_for_cue: true, + valid_for_highlight: true, }, { name: "-internal-visited-border-left-color", @@ -5906,6 +5937,7 @@ getter: "FillPaint", converter: "ConvertSVGPaint", affected_by_forced_colors: true, + valid_for_highlight: true, }, { name: "-internal-visited-outline-color", @@ -5933,6 +5965,7 @@ getter: "StrokePaint", converter: "ConvertSVGPaint", affected_by_forced_colors: true, + valid_for_highlight: true, }, { name: "-internal-visited-text-decoration-color", @@ -5949,6 +5982,7 @@ affected_by_forced_colors: true, valid_for_first_letter: true, valid_for_cue: true, + valid_for_highlight: true, }, { name: "-internal-visited-text-emphasis-color", @@ -5964,6 +5998,7 @@ converter: "ConvertStyleColor", style_builder_template: "visited_color", affected_by_forced_colors: true, + valid_for_highlight: true, }, { name: "-internal-visited-text-fill-color", @@ -5978,6 +6013,7 @@ computed_style_custom_functions: ["getter", "setter"], converter: "ConvertStyleColor", style_builder_template: "visited_color", + valid_for_highlight: true, }, { name: "-internal-visited-text-stroke-color", @@ -5992,6 +6028,7 @@ computed_style_custom_functions: ["getter", "setter"], converter: "ConvertStyleColor", style_builder_template: "visited_color", + valid_for_highlight: true, }, // Name: -internal-empty-line-height:
diff --git a/third_party/blink/renderer/core/css/properties/css_property.h b/third_party/blink/renderer/core/css/properties/css_property.h index 2979d0d4..a1e467e 100644 --- a/third_party/blink/renderer/core/css/properties/css_property.h +++ b/third_party/blink/renderer/core/css/properties/css_property.h
@@ -56,6 +56,7 @@ bool IsValidForFirstLetter() const { return flags_ & kValidForFirstLetter; } bool IsValidForCue() const { return flags_ & kValidForCue; } bool IsValidForMarker() const { return flags_ & kValidForMarker; } + bool IsValidForHighlight() const { return flags_ & kValidForHighlight; } bool IsSurrogate() const { return flags_ & kSurrogate; } bool AffectsFont() const { return flags_ & kAffectsFont; } bool IsBackground() const { return flags_ & kBackground; } @@ -152,6 +153,8 @@ kComputedValueComparable = 1 << 18, // Set if the property values are tree-scoped references. kTreeScopedValue = 1 << 19, + // https://drafts.csswg.org/css-pseudo-4/#highlight-styling + kValidForHighlight = 1 << 20, }; constexpr CSSProperty(CSSPropertyID property_id,
diff --git a/third_party/blink/renderer/core/css/properties/longhands/variable.h b/third_party/blink/renderer/core/css/properties/longhands/variable.h index 012dc77..97c19f5 100644 --- a/third_party/blink/renderer/core/css/properties/longhands/variable.h +++ b/third_party/blink/renderer/core/css/properties/longhands/variable.h
@@ -35,7 +35,8 @@ protected: explicit constexpr Variable(CSSProperty::Flags flags) : Longhand(CSSPropertyID::kVariable, - kProperty | kValidForFirstLetter | kValidForMarker | flags, + kProperty | kValidForFirstLetter | kValidForMarker | + kValidForHighlight | flags, '\0') {} };
diff --git a/third_party/blink/renderer/core/css/resolver/cascade_expansion.cc b/third_party/blink/renderer/core/css/resolver/cascade_expansion.cc index 29185ff..cde81867 100644 --- a/third_party/blink/renderer/core/css/resolver/cascade_expansion.cc +++ b/third_party/blink/renderer/core/css/resolver/cascade_expansion.cc
@@ -24,6 +24,8 @@ return filter.Add(CSSProperty::kValidForFirstLetter, false); case ValidPropertyFilter::kMarker: return filter.Add(CSSProperty::kValidForMarker, false); + case ValidPropertyFilter::kHighlight: + return filter.Add(CSSProperty::kValidForHighlight, false); } }
diff --git a/third_party/blink/renderer/core/css/resolver/cascade_expansion_test.cc b/third_party/blink/renderer/core/css/resolver/cascade_expansion_test.cc index ea2715b0..0b423841 100644 --- a/third_party/blink/renderer/core/css/resolver/cascade_expansion_test.cc +++ b/third_party/blink/renderer/core/css/resolver/cascade_expansion_test.cc
@@ -453,6 +453,25 @@ EXPECT_TRUE(e.AtEnd()); } +TEST_F(CascadeExpansionTest, FilterHighlight) { + MatchResult result; + result.FinishAddingUARules(); + result.FinishAddingUserRules(); + result.AddMatchedProperties( + ParseDeclarationBlock("display:block;background-color:lime;"), + CSSSelector::kMatchAll, ValidPropertyFilter::kHighlight); + result.FinishAddingAuthorRulesForTreeScope(GetDocument()); + + auto e = ExpansionAt(result, 0); + ASSERT_FALSE(e.AtEnd()); + EXPECT_EQ(CSSPropertyID::kBackgroundColor, e.Id()); + e.Next(); + ASSERT_FALSE(e.AtEnd()); + EXPECT_EQ(CSSPropertyID::kInternalVisitedBackgroundColor, e.Id()); + e.Next(); + EXPECT_TRUE(e.AtEnd()); +} + TEST_F(CascadeExpansionTest, FilterAllNonInherited) { MatchResult result; result.FinishAddingUARules();
diff --git a/third_party/blink/renderer/core/css/resolver/element_style_resources.cc b/third_party/blink/renderer/core/css/resolver/element_style_resources.cc index 0b8172f6..7c3b4695 100644 --- a/third_party/blink/renderer/core/css/resolver/element_style_resources.cc +++ b/third_party/blink/renderer/core/css/resolver/element_style_resources.cc
@@ -120,12 +120,11 @@ return nullptr; } -void ElementStyleResources::LoadPendingSVGResources( - ComputedStyle* computed_style) { - if (!computed_style->HasFilter()) +void ElementStyleResources::LoadPendingSVGResources(ComputedStyle& style) { + if (!style.HasFilter()) return; FilterOperations::FilterOperationVector& filter_operations = - computed_style->MutableFilter().Operations(); + style.MutableFilter().Operations(); for (const auto& filter_operation : filter_operations) { auto* reference_operation = DynamicTo<ReferenceFilterOperation>(filter_operation.Get()); @@ -147,7 +146,7 @@ } StyleImage* ElementStyleResources::LoadPendingImage( - ComputedStyle* style, + ComputedStyle& style, StylePendingImage* pending_image, FetchParameters::ImageRequestBehavior image_request_behavior, CrossOriginAttributeValue cross_origin) { @@ -158,7 +157,7 @@ if (CSSPaintValue* paint_value = pending_image->CssPaintValue()) { auto* image = MakeGarbageCollected<StyleGeneratedImage>(*paint_value); - style->AddPaintImage(image); + style.AddPaintImage(image); return image; } @@ -178,7 +177,7 @@ return nullptr; } -void ElementStyleResources::LoadPendingImages(ComputedStyle* style) { +void ElementStyleResources::LoadPendingImages(ComputedStyle& style) { // We must loop over the properties and then look at the style to see if // a pending image exists, and only load that image. For example: // @@ -200,7 +199,7 @@ for (CSSPropertyID property : pending_image_properties_) { switch (property) { case CSSPropertyID::kBackgroundImage: { - for (FillLayer* background_layer = &style->AccessBackgroundLayers(); + for (FillLayer* background_layer = &style.AccessBackgroundLayers(); background_layer; background_layer = background_layer->Next()) { StyleImage* background_image = background_layer->GetImage(); if (background_image && background_image->IsPendingImage()) { @@ -228,7 +227,7 @@ } case CSSPropertyID::kContent: { for (ContentData* content_data = - const_cast<ContentData*>(style->GetContentData()); + const_cast<ContentData*>(style.GetContentData()); content_data; content_data = content_data->Next()) { if (content_data->IsImage()) { StyleImage* image = To<ImageContentData>(content_data)->GetImage(); @@ -243,7 +242,7 @@ break; } case CSSPropertyID::kCursor: { - if (CursorList* cursor_list = style->Cursors()) { + if (CursorList* cursor_list = style.Cursors()) { for (wtf_size_t i = 0; i < cursor_list->size(); ++i) { CursorData& current_cursor = cursor_list->at(i); if (StyleImage* image = current_cursor.GetImage()) { @@ -258,25 +257,25 @@ break; } case CSSPropertyID::kListStyleImage: { - if (style->ListStyleImage() && - style->ListStyleImage()->IsPendingImage()) { - style->SetListStyleImage(LoadPendingImage( - style, To<StylePendingImage>(style->ListStyleImage()), + if (style.ListStyleImage() && + style.ListStyleImage()->IsPendingImage()) { + style.SetListStyleImage(LoadPendingImage( + style, To<StylePendingImage>(style.ListStyleImage()), FetchParameters::kNone)); } break; } case CSSPropertyID::kBorderImageSource: { - if (style->BorderImageSource() && - style->BorderImageSource()->IsPendingImage()) { - style->SetBorderImageSource(LoadPendingImage( - style, To<StylePendingImage>(style->BorderImageSource()), + if (style.BorderImageSource() && + style.BorderImageSource()->IsPendingImage()) { + style.SetBorderImageSource(LoadPendingImage( + style, To<StylePendingImage>(style.BorderImageSource()), FetchParameters::kNone)); } break; } case CSSPropertyID::kWebkitBoxReflect: { - if (StyleReflection* reflection = style->BoxReflect()) { + if (StyleReflection* reflection = style.BoxReflect()) { const NinePieceImage& mask_image = reflection->Mask(); if (mask_image.GetImage() && mask_image.GetImage()->IsPendingImage()) { @@ -292,16 +291,16 @@ break; } case CSSPropertyID::kWebkitMaskBoxImageSource: { - if (style->MaskBoxImageSource() && - style->MaskBoxImageSource()->IsPendingImage()) { - style->SetMaskBoxImageSource(LoadPendingImage( - style, To<StylePendingImage>(style->MaskBoxImageSource()), + if (style.MaskBoxImageSource() && + style.MaskBoxImageSource()->IsPendingImage()) { + style.SetMaskBoxImageSource(LoadPendingImage( + style, To<StylePendingImage>(style.MaskBoxImageSource()), FetchParameters::kNone)); } break; } case CSSPropertyID::kWebkitMaskImage: { - for (FillLayer* mask_layer = &style->AccessMaskLayers(); mask_layer; + for (FillLayer* mask_layer = &style.AccessMaskLayers(); mask_layer; mask_layer = mask_layer->Next()) { if (mask_layer->GetImage() && mask_layer->GetImage()->IsPendingImage()) { @@ -313,10 +312,10 @@ break; } case CSSPropertyID::kShapeOutside: - if (style->ShapeOutside() && style->ShapeOutside()->GetImage() && - style->ShapeOutside()->GetImage()->IsPendingImage()) { - style->ShapeOutside()->SetImage(LoadPendingImage( - style, To<StylePendingImage>(style->ShapeOutside()->GetImage()), + if (style.ShapeOutside() && style.ShapeOutside()->GetImage() && + style.ShapeOutside()->GetImage()->IsPendingImage()) { + style.ShapeOutside()->SetImage(LoadPendingImage( + style, To<StylePendingImage>(style.ShapeOutside()->GetImage()), FetchParameters::kNone, kCrossOriginAttributeAnonymous)); } break; @@ -327,7 +326,7 @@ } void ElementStyleResources::LoadPendingResources( - ComputedStyle* computed_style) { + ComputedStyle& computed_style) { LoadPendingImages(computed_style); LoadPendingSVGResources(computed_style); }
diff --git a/third_party/blink/renderer/core/css/resolver/element_style_resources.h b/third_party/blink/renderer/core/css/resolver/element_style_resources.h index 9c730028..2925ff4 100644 --- a/third_party/blink/renderer/core/css/resolver/element_style_resources.h +++ b/third_party/blink/renderer/core/css/resolver/element_style_resources.h
@@ -74,17 +74,17 @@ const cssvalue::CSSURIValue&, AllowExternal = kDontAllowExternalResource) const; - void LoadPendingResources(ComputedStyle*); + void LoadPendingResources(ComputedStyle&); private: StyleImage* GeneratedOrPendingFromValue(CSSPropertyID, const CSSImageGeneratorValue&); - void LoadPendingSVGResources(ComputedStyle*); - void LoadPendingImages(ComputedStyle*); + void LoadPendingSVGResources(ComputedStyle&); + void LoadPendingImages(ComputedStyle&); StyleImage* LoadPendingImage( - ComputedStyle*, + ComputedStyle&, StylePendingImage*, FetchParameters::ImageRequestBehavior, CrossOriginAttributeValue = kCrossOriginAttributeNotSet);
diff --git a/third_party/blink/renderer/core/css/resolver/match_result.h b/third_party/blink/renderer/core/css/resolver/match_result.h index 08e6df5..0786dab 100644 --- a/third_party/blink/renderer/core/css/resolver/match_result.h +++ b/third_party/blink/renderer/core/css/resolver/match_result.h
@@ -50,7 +50,7 @@ struct Data { unsigned link_match_type : 2; - unsigned valid_property_filter : 2; + unsigned valid_property_filter : 3; CascadeOrigin origin; // This is approximately equivalent to the 'shadow-including tree order'. // It can be used to evaluate the 'Shadow Tree' criteria. Note that the
diff --git a/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc b/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc index 416794a..b27f3c5 100644 --- a/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc
@@ -143,7 +143,7 @@ } StyleRuleKeyframes* ScopedStyleResolver::KeyframeStylesForAnimation( - const StringImpl* animation_name) { + const AtomicString& animation_name) { if (keyframes_rule_map_.IsEmpty()) return nullptr; @@ -155,16 +155,16 @@ } void ScopedStyleResolver::AddKeyframeStyle(StyleRuleKeyframes* rule) { - AtomicString s(rule->GetName()); + AtomicString name = rule->GetName(); if (rule->IsVendorPrefixed()) { - KeyframesRuleMap::iterator it = keyframes_rule_map_.find(s.Impl()); + KeyframesRuleMap::iterator it = keyframes_rule_map_.find(name); if (it == keyframes_rule_map_.end()) - keyframes_rule_map_.Set(s.Impl(), rule); + keyframes_rule_map_.Set(name, rule); else if (it->value->IsVendorPrefixed()) - keyframes_rule_map_.Set(s.Impl(), rule); + keyframes_rule_map_.Set(name, rule); } else { - keyframes_rule_map_.Set(s.Impl(), rule); + keyframes_rule_map_.Set(name, rule); } }
diff --git a/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.h b/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.h index 9f3400f..aa42dfd30 100644 --- a/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.h +++ b/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.h
@@ -57,7 +57,7 @@ ScopedStyleResolver* Parent() const; StyleRuleKeyframes* KeyframeStylesForAnimation( - const StringImpl* animation_name); + const AtomicString& animation_name); void AppendActiveStyleSheets(unsigned index, const ActiveStyleSheetVector&); void CollectMatchingAuthorRules(ElementRuleCollector&, @@ -107,7 +107,7 @@ MediaQueryResultList device_dependent_media_query_results_; using KeyframesRuleMap = - HeapHashMap<const StringImpl*, Member<StyleRuleKeyframes>>; + HeapHashMap<AtomicString, Member<StyleRuleKeyframes>>; KeyframesRuleMap keyframes_rule_map_; class RuleSubSet final : public GarbageCollected<RuleSubSet> {
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc index f1a8cd7..b5c2db0 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -1434,6 +1434,8 @@ filter = filter.Add(CSSProperty::kIsAffectedByForcedColors, true); if (state.Style()->StyleType() == kPseudoIdMarker) filter = filter.Add(CSSProperty::kValidForMarker, false); + if (IsHighlightPseudoElement(state.Style()->StyleType())) + filter = filter.Add(CSSProperty::kValidForHighlight, false); filter = filter.Add(CSSProperty::kAnimation, true); cascade.Apply(filter); @@ -1457,7 +1459,7 @@ for (auto& resolver : resolvers) { if (StyleRuleKeyframes* keyframes_rule = - resolver->KeyframeStylesForAnimation(animation_name.Impl())) + resolver->KeyframeStylesForAnimation(animation_name)) return keyframes_rule; }
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver_state.cc b/third_party/blink/renderer/core/css/resolver/style_resolver_state.cc index b1017198..6a45207 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver_state.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver_state.cc
@@ -152,11 +152,16 @@ if (pseudo_request_type_ == PseudoElementStyleRequest::kForComputedStyle || (ParentStyle() && ParentStyle()->IsEnsuredInDisplayNone()) || StyleRef().Display() == EDisplay::kNone || - StyleRef().Display() == EDisplay::kContents || StyleRef().IsEnsuredOutsideFlatTree()) return; - element_style_resources_.LoadPendingResources(Style()); + if (StyleRef().StyleType() == kPseudoIdTargetText) { + // Do not load any resources for ::target-text since that could leak text + // content to external stylesheets. + return; + } + + element_style_resources_.LoadPendingResources(StyleRef()); } const FontDescription& StyleResolverState::ParentFontDescription() const {
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver_test.cc b/third_party/blink/renderer/core/css/resolver/style_resolver_test.cc index c798f06..8c96a3d 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver_test.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver_test.cc
@@ -472,6 +472,13 @@ display: contents; background-image: url(img-contents.png); } + #inside-contents-parent { + display: contents; + background-image: url(img-inside-contents.png); + } + #inside-contents { + background-image: inherit; + } #non-slotted { background-image: url(img-non-slotted.png); } @@ -496,6 +503,9 @@ <div id="inside-hidden"></div> </div> <div id="contents"></div> + <div id="inside-contents-parent"> + <div id="inside-contents"></div> + </div> <div id="host"> <div id="non-slotted"></div> </div> @@ -514,6 +524,7 @@ auto* hidden = GetDocument().getElementById("hidden"); auto* inside_hidden = GetDocument().getElementById("inside-hidden"); auto* contents = GetDocument().getElementById("contents"); + auto* inside_contents = GetDocument().getElementById("inside-contents"); auto* non_slotted = GetDocument().getElementById("non-slotted"); auto* no_pseudo = GetDocument().getElementById("no-pseudo"); auto* first_line = GetDocument().getElementById("first-line"); @@ -549,8 +560,10 @@ << "Fetch for visibility:hidden"; EXPECT_FALSE(GetBackgroundImageValue(inside_hidden).IsCachePending()) << "Fetch for inherited visibility:hidden"; - EXPECT_TRUE(GetBackgroundImageValue(contents).IsCachePending()) - << "No fetch for display:contents"; + EXPECT_FALSE(GetBackgroundImageValue(contents).IsCachePending()) + << "Fetch for display:contents"; + EXPECT_FALSE(GetBackgroundImageValue(inside_contents).IsCachePending()) + << "Fetch for image inherited from display:contents"; EXPECT_TRUE(GetBackgroundImageValue(non_slotted).IsCachePending()) << "No fetch for element outside the flat tree"; } @@ -580,6 +593,64 @@ EXPECT_TRUE(To<CSSImageValue>(bg_img_list->Item(0)).IsCachePending()); } +TEST_F(StyleResolverTest, NoFetchForHighlightPseudoElements) { + ScopedCSSTargetTextPseudoElementForTest scoped_feature(true); + + GetDocument().body()->setInnerHTML(R"HTML( + <style> + body::target-text, body::selection { + color: green; + background-image: url(bg-img.png); + cursor: url(cursor.ico), auto; + } + </style> + )HTML"); + + UpdateAllLifecyclePhasesForTest(); + + auto* body = GetDocument().body(); + ASSERT_TRUE(body); + const auto* element_style = body->GetComputedStyle(); + ASSERT_TRUE(element_style); + + scoped_refptr<ComputedStyle> target_text_style = + GetDocument().GetStyleResolver().PseudoStyleForElement( + GetDocument().body(), PseudoElementStyleRequest(kPseudoIdTargetText), + element_style, element_style); + ASSERT_TRUE(target_text_style); + + scoped_refptr<ComputedStyle> selection_style = + GetDocument().GetStyleResolver().PseudoStyleForElement( + GetDocument().body(), PseudoElementStyleRequest(kPseudoIdSelection), + element_style, element_style); + ASSERT_TRUE(selection_style); + + // Check that we don't fetch the cursor url() for ::target-text. + CursorList* cursor_list = target_text_style->Cursors(); + ASSERT_TRUE(cursor_list->size()); + CursorData& current_cursor = cursor_list->at(0); + StyleImage* image = current_cursor.GetImage(); + ASSERT_TRUE(image); + EXPECT_TRUE(image->IsPendingImage()); + + for (const auto* pseudo_style : + {target_text_style.get(), selection_style.get()}) { + // Check that the color applies. + EXPECT_EQ(Color(0, 128, 0), + pseudo_style->VisitedDependentColor(GetCSSPropertyColor())); + + // Check that the background-image does not apply. + const CSSValue* computed_value = ComputedStyleUtils::ComputedPropertyValue( + GetCSSPropertyBackgroundImage(), *pseudo_style); + const CSSValueList* list = DynamicTo<CSSValueList>(computed_value); + ASSERT_TRUE(list); + ASSERT_EQ(1u, list->length()); + const auto* keyword = DynamicTo<CSSIdentifierValue>(list->Item(0)); + ASSERT_TRUE(keyword); + EXPECT_EQ(CSSValueID::kNone, keyword->GetValueID()); + } +} + TEST_F(StyleResolverTest, CSSMarkerPseudoElement) { GetDocument().body()->setInnerHTML(R"HTML( <style> @@ -949,4 +1020,78 @@ } } +TEST_F(StyleResolverTest, InheritStyleImagesFromDisplayContents) { + GetDocument().documentElement()->setInnerHTML(R"HTML( + <style> + #parent { + display: contents; + + background-image: url(1.png); + border-image-source: url(2.png); + cursor: url(3.ico), text; + list-style-image: url(4.png); + shape-outside: url(5.png); + -webkit-box-reflect: below 0 url(6.png); + -webkit-mask-box-image-source: url(7.png); + -webkit-mask-image: url(8.png); + } + #child { + background-image: inherit; + border-image-source: inherit; + cursor: inherit; + list-style-image: inherit; + shape-outside: inherit; + -webkit-box-reflect: inherit; + -webkit-mask-box-image-source: inherit; + -webkit-mask-image: inherit; + } + </style> + <div id="parent"> + <div id="child"></div> + </div> + )HTML"); + + UpdateAllLifecyclePhasesForTest(); + + auto* child = GetDocument().getElementById("child"); + auto* style = child->GetComputedStyle(); + ASSERT_TRUE(style); + + ASSERT_TRUE(style->BackgroundLayers().GetImage()); + EXPECT_FALSE(style->BackgroundLayers().GetImage()->IsPendingImage()) + << "background-image is fetched"; + + ASSERT_TRUE(style->BorderImageSource()); + EXPECT_FALSE(style->BorderImageSource()->IsPendingImage()) + << "border-image-source is fetched"; + + ASSERT_TRUE(style->Cursors()); + ASSERT_TRUE(style->Cursors()->size()); + ASSERT_TRUE(style->Cursors()->at(0).GetImage()); + EXPECT_FALSE(style->Cursors()->at(0).GetImage()->IsPendingImage()) + << "cursor is fetched"; + + ASSERT_TRUE(style->ListStyleImage()); + EXPECT_FALSE(style->ListStyleImage()->IsPendingImage()) + << "list-style-image is fetched"; + + ASSERT_TRUE(style->ShapeOutside()); + ASSERT_TRUE(style->ShapeOutside()->GetImage()); + EXPECT_FALSE(style->ShapeOutside()->GetImage()->IsPendingImage()) + << "shape-outside is fetched"; + + ASSERT_TRUE(style->BoxReflect()); + ASSERT_TRUE(style->BoxReflect()->Mask().GetImage()); + EXPECT_FALSE(style->BoxReflect()->Mask().GetImage()->IsPendingImage()) + << "-webkit-box-reflect is fetched"; + + ASSERT_TRUE(style->MaskBoxImageSource()); + EXPECT_FALSE(style->MaskBoxImageSource()->IsPendingImage()) + << "-webkit-mask-box-image-source"; + + ASSERT_TRUE(style->MaskImage()); + EXPECT_FALSE(style->MaskImage()->IsPendingImage()) + << "-webkit-mask-image is fetched"; +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/css/rule_set.cc b/third_party/blink/renderer/core/css/rule_set.cc index 980ff85..daea58f6 100644 --- a/third_party/blink/renderer/core/css/rule_set.cc +++ b/third_party/blink/renderer/core/css/rule_set.cc
@@ -51,14 +51,23 @@ const CSSSelector& selector) { for (const CSSSelector* component = &selector; component; component = component->TagHistory()) { - if (component->GetPseudoType() == CSSSelector::kPseudoCue || - (component->Match() == CSSSelector::kPseudoElement && - component->Value() == TextTrackCue::CueShadowPseudoId())) + if (component->Match() == CSSSelector::kPseudoElement && + component->Value() == TextTrackCue::CueShadowPseudoId()) { return ValidPropertyFilter::kCue; - if (component->GetPseudoType() == CSSSelector::kPseudoFirstLetter) - return ValidPropertyFilter::kFirstLetter; - if (component->GetPseudoType() == CSSSelector::kPseudoMarker) - return ValidPropertyFilter::kMarker; + } + switch (component->GetPseudoType()) { + case CSSSelector::kPseudoCue: + return ValidPropertyFilter::kCue; + case CSSSelector::kPseudoFirstLetter: + return ValidPropertyFilter::kFirstLetter; + case CSSSelector::kPseudoMarker: + return ValidPropertyFilter::kMarker; + case CSSSelector::kPseudoSelection: + case CSSSelector::kPseudoTargetText: + return ValidPropertyFilter::kHighlight; + default: + break; + } } return ValidPropertyFilter::kNoFilter; }
diff --git a/third_party/blink/renderer/core/css/rule_set.h b/third_party/blink/renderer/core/css/rule_set.h index f67587cc..1d1edb87 100644 --- a/third_party/blink/renderer/core/css/rule_set.h +++ b/third_party/blink/renderer/core/css/rule_set.h
@@ -58,6 +58,10 @@ // Defined in a ::marker pseudo-element scope. Only properties listed in // https://drafts.csswg.org/css-pseudo-4/#marker-pseudo are valid. kMarker, + // Defined in a highlight pseudo-element scope like ::selection and + // ::target-text. Only properties listed in + // https://drafts.csswg.org/css-pseudo-4/#highlight-styling are valid. + kHighlight, }; class CSSSelector; @@ -151,8 +155,8 @@ unsigned specificity_ : 24; unsigned link_match_type_ : 2; unsigned has_document_security_origin_ : 1; - unsigned valid_property_filter_ : 2; - // 29 bits above + unsigned valid_property_filter_ : 3; + // 30 bits above // Use plain array instead of a Vector to minimize memory overhead. unsigned descendant_selector_identifier_hashes_[kMaximumIdentifierCount]; };
diff --git a/third_party/blink/renderer/core/dom/events/event_target.h b/third_party/blink/renderer/core/dom/events/event_target.h index 2bec93e..2cac08c3 100644 --- a/third_party/blink/renderer/core/dom/events/event_target.h +++ b/third_party/blink/renderer/core/dom/events/event_target.h
@@ -172,6 +172,7 @@ bool HasEventListeners() const override; bool HasEventListeners(const AtomicString& event_type) const; + bool HasAnyEventListeners(const Vector<AtomicString>& event_types) const; bool HasCapturingEventListeners(const AtomicString& event_type); bool HasJSBasedEventListeners(const AtomicString& event_type) const; EventListenerVector* GetEventListeners(const AtomicString& event_type); @@ -334,6 +335,16 @@ return false; } +DISABLE_CFI_PERF +inline bool EventTarget::HasAnyEventListeners( + const Vector<AtomicString>& event_types) const { + for (const AtomicString& event_type : event_types) { + if (HasEventListeners(event_type)) + return true; + } + return false; +} + inline bool EventTarget::HasCapturingEventListeners( const AtomicString& event_type) { EventTargetData* d = GetEventTargetData();
diff --git a/third_party/blink/renderer/core/dom/node.cc b/third_party/blink/renderer/core/dom/node.cc index cef59fe..2cc3b62 100644 --- a/third_party/blink/renderer/core/dom/node.cc +++ b/third_party/blink/renderer/core/dom/node.cc
@@ -78,6 +78,7 @@ #include "third_party/blink/renderer/core/dom/v0_insertion_point.h" #include "third_party/blink/renderer/core/editing/editing_utilities.h" #include "third_party/blink/renderer/core/editing/markers/document_marker_controller.h" +#include "third_party/blink/renderer/core/events/event_util.h" #include "third_party/blink/renderer/core/events/gesture_event.h" #include "third_party/blink/renderer/core/events/input_event.h" #include "third_party/blink/renderer/core/events/keyboard_event.h" @@ -2716,6 +2717,8 @@ frame->AddedSuddenTerminationDisablerListener(*this, event_type); } } + if (AXObjectCache* cache = GetDocument().ExistingAXObjectCache()) + cache->HandleEventListenerAdded(*this, event_type); } void Node::RemovedEventListener( @@ -2734,15 +2737,22 @@ frame->RemovedSuddenTerminationDisablerListener(*this, event_type); } } + if (AXObjectCache* cache = GetDocument().ExistingAXObjectCache()) + cache->HandleEventListenerRemoved(*this, event_type); } void Node::RemoveAllEventListeners() { + Vector<AtomicString> event_types = EventTypes(); if (HasEventListeners() && GetDocument().GetPage()) GetDocument() .GetFrame() ->GetEventHandlerRegistry() .DidRemoveAllEventHandlers(*this); EventTarget::RemoveAllEventListeners(); + if (AXObjectCache* cache = GetDocument().ExistingAXObjectCache()) { + for (const AtomicString& event_type : event_types) + cache->HandleEventListenerRemoved(*this, event_type); + } } void Node::RemoveAllEventListenersRecursively() { @@ -3095,10 +3105,7 @@ return false; GetDocument().UpdateStyleAndLayoutTree(); return HasEditableStyle(*this) || - HasEventListeners(event_type_names::kMouseup) || - HasEventListeners(event_type_names::kMousedown) || - HasEventListeners(event_type_names::kClick) || - HasEventListeners(event_type_names::kDOMActivate); + HasAnyEventListeners(event_util::MouseButtonEventTypes()); } unsigned Node::ConnectedSubframeCount() const {
diff --git a/third_party/blink/renderer/core/events/event_util.cc b/third_party/blink/renderer/core/events/event_util.cc index 962b36ba..a4d311c 100644 --- a/third_party/blink/renderer/core/events/event_util.cc +++ b/third_party/blink/renderer/core/events/event_util.cc
@@ -4,12 +4,26 @@ #include "third_party/blink/renderer/core/events/event_util.h" +#include "base/stl_util.h" #include "third_party/blink/renderer/core/event_type_names.h" +#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h" namespace blink { namespace event_util { +const Vector<AtomicString>& MouseButtonEventTypes() { + DEFINE_STATIC_LOCAL( + const Vector<AtomicString>, mouse_button_event_types, + ({event_type_names::kClick, event_type_names::kMousedown, + event_type_names::kMouseup, event_type_names::kDOMActivate})); + return mouse_button_event_types; +} + +bool IsMouseButtonEventType(const AtomicString& event_type) { + return base::Contains(MouseButtonEventTypes(), event_type); +} + bool IsPointerEventType(const AtomicString& event_type) { return event_type == event_type_names::kGotpointercapture || event_type == event_type_names::kLostpointercapture ||
diff --git a/third_party/blink/renderer/core/events/event_util.h b/third_party/blink/renderer/core/events/event_util.h index 70b37e6..266e9bf 100644 --- a/third_party/blink/renderer/core/events/event_util.h +++ b/third_party/blink/renderer/core/events/event_util.h
@@ -5,15 +5,23 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_EVENT_UTIL_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_EVENT_UTIL_H_ +#include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/event_type_names.h" +#include "third_party/blink/renderer/platform/wtf/forward.h" + +#include <vector> namespace blink { namespace event_util { -bool IsPointerEventType(const AtomicString& event_type); +CORE_EXPORT const Vector<AtomicString>& MouseButtonEventTypes(); -bool IsDOMMutationEventType(const AtomicString& event_type); +CORE_EXPORT bool IsMouseButtonEventType(const AtomicString& event_type); + +CORE_EXPORT bool IsPointerEventType(const AtomicString& event_type); + +CORE_EXPORT bool IsDOMMutationEventType(const AtomicString& event_type); } // namespace event_util
diff --git a/third_party/blink/renderer/core/events/pointer_event_factory.cc b/third_party/blink/renderer/core/events/pointer_event_factory.cc index 781726f2..5f4181a 100644 --- a/third_party/blink/renderer/core/events/pointer_event_factory.cc +++ b/third_party/blink/renderer/core/events/pointer_event_factory.cc
@@ -222,6 +222,7 @@ const WebPointerEvent& web_pointer_event) { WebPointerProperties::PointerType pointer_type = web_pointer_event.pointer_type; + unsigned buttons; if (web_pointer_event.hovering) { buttons = MouseEvent::WebInputEventModifiersToButtons( @@ -248,12 +249,16 @@ } pointer_type = WebPointerProperties::PointerType::kPen; } - PointerEventInit* pointer_event_init = PointerEventInit::Create(); - pointer_event_init->setButtons(buttons); const IncomingId incoming_id(pointer_type, web_pointer_event.id); PointerId pointer_id = AddIdAndActiveButtons(incoming_id, buttons != 0, - web_pointer_event.hovering); + web_pointer_event.hovering, + web_pointer_event.GetType()); + if (pointer_id == kInvalidId) + return nullptr; + + PointerEventInit* pointer_event_init = PointerEventInit::Create(); + pointer_event_init->setButtons(buttons); pointer_event_init->setPointerId(pointer_id); pointer_event_init->setPointerType( PointerTypeNameForWebPointPointerType(pointer_type)); @@ -293,6 +298,8 @@ PointerEventInit* pointer_event_init = ConvertIdTypeButtonsEvent(web_pointer_event); + if (!pointer_event_init) + return nullptr; AtomicString type = PointerEventNameForEventType(event_type); if (event_type == WebInputEvent::Type::kPointerDown || @@ -491,7 +498,7 @@ void PointerEventFactory::Clear() { for (int type = 0; type <= ToInt(WebPointerProperties::PointerType::kMaxValue); type++) { - primary_id_[type] = PointerEventFactory::kInvalidId; + primary_id_[type] = kInvalidId; id_count_[type] = 0; } pointer_incoming_id_mapping_.clear(); @@ -510,9 +517,11 @@ current_id_ = PointerEventFactory::kMouseId + 1; } -PointerId PointerEventFactory::AddIdAndActiveButtons(const IncomingId p, - bool is_active_buttons, - bool hovering) { +PointerId PointerEventFactory::AddIdAndActiveButtons( + const IncomingId p, + bool is_active_buttons, + bool hovering, + WebInputEvent::Type event_type) { // Do not add extra mouse pointer as it was added in initialization. if (p.GetPointerType() == WebPointerProperties::PointerType::kMouse) { pointer_id_mapping_.Set(kMouseId, @@ -526,6 +535,12 @@ PointerAttributes(p, is_active_buttons, hovering)); return mapped_id; } + + // TODO(crbug.com/1141595): We should filter out bad pointercancel events + // further upstream. + if (event_type == WebInputEvent::Type::kPointerCancel) + return kInvalidId; + int type_int = p.PointerTypeInt(); // We do not handle the overflow of |current_id_| as it should be very rare. PointerId mapped_id = current_id_++; @@ -549,7 +564,7 @@ pointer_incoming_id_mapping_.erase(p); RemoveLastPosition(mapped_id); if (primary_id_[type_int] == mapped_id) - primary_id_[type_int] = PointerEventFactory::kInvalidId; + primary_id_[type_int] = kInvalidId; id_count_[type_int]--; return true; } @@ -594,8 +609,7 @@ return true; PointerId pointer_id = GetPointerEventId(properties); - return (pointer_id != PointerEventFactory::kInvalidId && - IsPrimary(pointer_id)); + return (pointer_id != kInvalidId && IsPrimary(pointer_id)); } bool PointerEventFactory::IsActiveButtonsState( @@ -618,7 +632,7 @@ IncomingId id(properties.pointer_type, properties.id); if (pointer_incoming_id_mapping_.Contains(id)) return pointer_incoming_id_mapping_.at(id); - return PointerEventFactory::kInvalidId; + return kInvalidId; } } // namespace blink
diff --git a/third_party/blink/renderer/core/events/pointer_event_factory.h b/third_party/blink/renderer/core/events/pointer_event_factory.h index 416958f..27530ab 100644 --- a/third_party/blink/renderer/core/events/pointer_event_factory.h +++ b/third_party/blink/renderer/core/events/pointer_event_factory.h
@@ -30,6 +30,8 @@ PointerEventFactory(); ~PointerEventFactory(); + // Returns nullptr if the |web_pointer_event| is invalid from event stream + // perspective (e.g. it is a pointercancel for a non-existent id). PointerEvent* Create(const WebPointerEvent& web_pointer_event, const Vector<WebPointerEvent>& coalesced_events, const Vector<WebPointerEvent>& predicted_events, @@ -128,9 +130,14 @@ PointerId AddIdAndActiveButtons(const IncomingId, bool is_active_buttons, - bool hovering); + bool hovering, + WebInputEvent::Type event_type); bool IsPrimary(const PointerId) const; + + // Returns nullptr when the event is unexpected. E.g. pointercancel for a + // non-existent id (see crbug.com/1007164). PointerEventInit* ConvertIdTypeButtonsEvent(const WebPointerEvent&); + void SetEventSpecificFields(PointerEventInit*, const AtomicString& type); // Creates pointerevents like boundary and capture events from another
diff --git a/third_party/blink/renderer/core/exported/DEPS b/third_party/blink/renderer/core/exported/DEPS index 6176d626..71b99d7 100644 --- a/third_party/blink/renderer/core/exported/DEPS +++ b/third_party/blink/renderer/core/exported/DEPS
@@ -12,5 +12,6 @@ "+components/viz/common/features.h", "+media/base/media_switches.h", "+third_party/icu/source/common/unicode/uscript.h", + "+ui/gfx/font_render_params.h", ], }
diff --git a/third_party/blink/renderer/core/exported/web_settings_impl.h b/third_party/blink/renderer/core/exported/web_settings_impl.h index 6dacbbf8..1bf8ad21 100644 --- a/third_party/blink/renderer/core/exported/web_settings_impl.h +++ b/third_party/blink/renderer/core/exported/web_settings_impl.h
@@ -31,7 +31,6 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EXPORTED_WEB_SETTINGS_IMPL_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_EXPORTED_WEB_SETTINGS_IMPL_H_ -#include "third_party/blink/public/mojom/css/preferred_contrast.mojom-blink.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink.h" #include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-blink.h" #include "third_party/blink/public/web/web_settings.h"
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc index f648e99..85614c4 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -46,6 +46,7 @@ #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/common/input/web_menu_source_type.h" #include "third_party/blink/public/common/page/page_zoom.h" +#include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h" #include "third_party/blink/public/common/switches.h" #include "third_party/blink/public/common/web_preferences/web_preferences.h" #include "third_party/blink/public/mojom/input/focus_type.mojom-blink.h" @@ -69,6 +70,7 @@ #include "third_party/blink/public/web/web_node.h" #include "third_party/blink/public/web/web_plugin.h" #include "third_party/blink/public/web/web_range.h" +#include "third_party/blink/public/web/web_render_theme.h" #include "third_party/blink/public/web/web_view_client.h" #include "third_party/blink/public/web/web_widget_client.h" #include "third_party/blink/public/web/web_window_features.h" @@ -170,13 +172,23 @@ #include "third_party/blink/renderer/platform/scheduler/public/page_scheduler.h" #include "third_party/blink/renderer/platform/widget/widget_base.h" #include "third_party/icu/source/common/unicode/uscript.h" - +#include "ui/base/ui_base_features.h" #include "ui/gfx/skia_util.h" #if defined(OS_ANDROID) #include "components/viz/common/features.h" #endif +#if !defined(OS_MAC) +#include "skia/ext/legacy_display_globals.h" +#include "third_party/blink/public/platform/web_font_render_style.h" +#include "ui/gfx/font_render_params.h" +#endif + +#if defined(OS_WIN) +#include "third_party/blink/public/web/win/web_font_rendering.h" +#endif + // Get rid of WTF's pow define so we can use std::pow. #undef pow #include <cmath> // for std::pow @@ -400,6 +412,44 @@ return ui::mojom::blink::WindowOpenDisposition::IGNORE_ACTION; } +#if !defined(OS_MAC) && !defined(OS_WIN) +SkFontHinting RendererPreferencesToSkiaHinting( + const blink::RendererPreferences& prefs) { +#if defined(OS_LINUX) + if (!prefs.should_antialias_text) { + // When anti-aliasing is off, GTK maps all non-zero hinting settings to + // 'Normal' hinting so we do the same. Otherwise, folks who have 'Slight' + // hinting selected will see readable text in everything expect Chromium. + switch (prefs.hinting) { + case gfx::FontRenderParams::HINTING_NONE: + return SkFontHinting::kNone; + case gfx::FontRenderParams::HINTING_SLIGHT: + case gfx::FontRenderParams::HINTING_MEDIUM: + case gfx::FontRenderParams::HINTING_FULL: + return SkFontHinting::kNormal; + default: + NOTREACHED(); + return SkFontHinting::kNormal; + } + } +#endif + + switch (prefs.hinting) { + case gfx::FontRenderParams::HINTING_NONE: + return SkFontHinting::kNone; + case gfx::FontRenderParams::HINTING_SLIGHT: + return SkFontHinting::kSlight; + case gfx::FontRenderParams::HINTING_MEDIUM: + return SkFontHinting::kNormal; + case gfx::FontRenderParams::HINTING_FULL: + return SkFontHinting::kFull; + default: + NOTREACHED(); + return SkFontHinting::kNormal; + } +} +#endif // OS_MAC + } // namespace // WebView ---------------------------------------------------------------- @@ -2164,6 +2214,7 @@ settings->SetLazyLoadEnabled(prefs.lazy_load_enabled); settings->SetPreferredColorScheme(prefs.preferred_color_scheme); + settings->SetPreferredContrast(prefs.preferred_contrast); for (const auto& ect_distance_pair : prefs.lazy_frame_loading_distance_thresholds_px) { @@ -3786,6 +3837,48 @@ } } +void WebViewImpl::UpdateFontRenderingFromRendererPrefs() { +#if !defined(OS_MAC) + skia::LegacyDisplayGlobals::SetCachedPixelGeometry( + gfx::FontRenderParams::SubpixelRenderingToSkiaPixelGeometry( + renderer_preferences_.subpixel_rendering)); +#if defined(OS_WIN) + // Cache the system font metrics in blink. + WebFontRendering::SetMenuFontMetrics( + renderer_preferences_.menu_font_family_name.c_str(), + renderer_preferences_.menu_font_height); + WebFontRendering::SetSmallCaptionFontMetrics( + renderer_preferences_.small_caption_font_family_name.c_str(), + renderer_preferences_.small_caption_font_height); + WebFontRendering::SetStatusFontMetrics( + renderer_preferences_.status_font_family_name.c_str(), + renderer_preferences_.status_font_height); + WebFontRendering::SetAntialiasedTextEnabled( + renderer_preferences_.should_antialias_text); + WebFontRendering::SetLCDTextEnabled( + renderer_preferences_.subpixel_rendering != + gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE); +#else + WebFontRenderStyle::SetHinting( + RendererPreferencesToSkiaHinting(renderer_preferences_)); + WebFontRenderStyle::SetAutoHint(renderer_preferences_.use_autohinter); + WebFontRenderStyle::SetUseBitmaps(renderer_preferences_.use_bitmaps); + WebFontRenderStyle::SetAntiAlias(renderer_preferences_.should_antialias_text); + WebFontRenderStyle::SetSubpixelRendering( + renderer_preferences_.subpixel_rendering != + gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE); + WebFontRenderStyle::SetSubpixelPositioning( + renderer_preferences_.use_subpixel_positioning); +#if defined(OS_LINUX) && !defined(OS_ANDROID) + if (!renderer_preferences_.system_font_family_name.empty()) { + WebFontRenderStyle::SetSystemFontFamily(blink::WebString::FromUTF8( + renderer_preferences_.system_font_family_name)); + } +#endif // defined(OS_LINUX) && !defined(OS_ANDROID) +#endif // defined(OS_WIN) +#endif // !defined(OS_MAC) +} + void WebViewImpl::SetInsidePortal(bool inside_portal) { GetPage()->SetInsidePortal(inside_portal); @@ -3796,6 +3889,69 @@ web_widget_->SetIsNestedMainFrameWidget(inside_portal); } +void WebViewImpl::RegisterRendererPreferenceWatcher( + CrossVariantMojoRemote<mojom::RendererPreferenceWatcherInterfaceBase> + watcher) { + renderer_preference_watchers_.Add(std::move(watcher)); +} + +void WebViewImpl::SetRendererPreferences( + const RendererPreferences& preferences) { + UpdateRendererPreferences(preferences); +} + +const RendererPreferences& WebViewImpl::GetRendererPreferences() { + return renderer_preferences_; +} + +void WebViewImpl::UpdateRendererPreferences( + const RendererPreferences& preferences) { + std::string old_accept_languages = renderer_preferences_.accept_languages; + renderer_preferences_ = preferences; + + for (auto& watcher : renderer_preference_watchers_) + watcher->NotifyUpdate(renderer_preferences_); + + // TODO(crbug.com/1102442): Remove once we no longer need to update theme + // preferences on Windows via content::WebThemeEngineDefault. + web_view_client_->DidUpdateRendererPreferences(); + UpdateFontRenderingFromRendererPrefs(); + + blink::SetCaretBlinkInterval( + renderer_preferences_.caret_blink_interval.has_value() + ? renderer_preferences_.caret_blink_interval.value() + : base::TimeDelta::FromMilliseconds( + mojom::blink::kDefaultCaretBlinkIntervalInMilliseconds)); + +#if defined(USE_AURA) + if (renderer_preferences_.use_custom_colors) { + SetFocusRingColor(renderer_preferences_.focus_ring_color); + SetSelectionColors(renderer_preferences_.active_selection_bg_color, + renderer_preferences_.active_selection_fg_color, + renderer_preferences_.inactive_selection_bg_color, + renderer_preferences_.inactive_selection_fg_color); + if (MainFrameWidget()) + MainFrameWidget()->ThemeChanged(); + } +#endif + + if (::features::IsFormControlsRefreshEnabled() && + renderer_preferences_.use_custom_colors) { + SetFocusRingColor(renderer_preferences_.focus_ring_color); + } + + if (old_accept_languages != renderer_preferences_.accept_languages) + AcceptLanguagesChanged(); + + GetSettings()->SetCaretBrowsingEnabled( + renderer_preferences_.caret_browsing_enabled); + +#if defined(USE_X11) || defined(USE_OZONE) + GetSettings()->SetSelectionClipboardBufferAvailable( + renderer_preferences_.selection_clipboard_buffer_available); +#endif // defined(USE_X11) || defined(USE_OZONE) +} + void WebViewImpl::SetWebPreferences( const web_pref::WebPreferences& preferences) { UpdateWebPreferences(preferences); @@ -3812,11 +3968,6 @@ ApplyCommandLineToSettings(SettingsImpl()); } -void WebViewImpl::UpdateRendererPreferences( - const blink::RendererPreferences& preferences) { - web_view_client_->OnSetRendererPreferences(preferences); -} - void WebViewImpl::SetIsActive(bool active) { if (GetPage()) GetPage()->GetFocusController().SetActive(active);
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h index 0811c8e..0532b136 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h
@@ -37,6 +37,7 @@ #include "build/build_config.h" #include "mojo/public/cpp/bindings/associated_receiver.h" #include "mojo/public/cpp/bindings/associated_remote.h" +#include "mojo/public/cpp/bindings/remote_set.h" #include "third_party/blink/public/common/input/web_gesture_event.h" #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h" @@ -44,6 +45,7 @@ #include "third_party/blink/public/mojom/input/focus_type.mojom-blink-forward.h" #include "third_party/blink/public/mojom/page/page.mojom-blink.h" #include "third_party/blink/public/mojom/page/page_visibility_state.mojom-blink.h" +#include "third_party/blink/public/mojom/renderer_preference_watcher.mojom-blink.h" #include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h" #include "third_party/blink/public/platform/web_input_event_result.h" #include "third_party/blink/public/platform/web_rect.h" @@ -206,6 +208,11 @@ void SetDeviceColorSpaceForTesting( const gfx::ColorSpace& color_space) override; void PaintContent(cc::PaintCanvas*, const gfx::Rect&) override; + void RegisterRendererPreferenceWatcher( + CrossVariantMojoRemote<mojom::RendererPreferenceWatcherInterfaceBase> + watcher) override; + void SetRendererPreferences(const RendererPreferences& preferences) override; + const RendererPreferences& GetRendererPreferences() override; void SetWebPreferences(const web_pref::WebPreferences& preferences) override; const web_pref::WebPreferences& GetWebPreferences() override; @@ -232,7 +239,7 @@ void UpdateWebPreferences( const blink::web_pref::WebPreferences& preferences) override; void UpdateRendererPreferences( - const blink::RendererPreferences& preferences) override; + const RendererPreferences& preferences) override; void DispatchPageshow(base::TimeTicks navigation_start); void DispatchPagehide(mojom::blink::PagehideDispatch pagehide_dispatch); @@ -578,6 +585,7 @@ const IntSize& visible_viewport_size); void UpdateBaseBackgroundColor(); + void UpdateFontRenderingFromRendererPrefs(); // Request the window to close from the renderer by sending the request to the // browser. @@ -824,6 +832,8 @@ web_pref::WebPreferences web_preferences_; + blink::RendererPreferences renderer_preferences_; + // The local root whose document has |popup_mouse_wheel_event_listener_| // registered. WeakPersistent<WebLocalFrameImpl> local_root_with_empty_mouse_wheel_listener_; @@ -861,6 +871,11 @@ mojom::blink::PageLifecycleStatePtr lifecycle_state_; mojo::AssociatedReceiver<mojom::blink::PageBroadcast> receiver_; + // These are observing changes in |renderer_preferences_|. This is used for + // keeping WorkerFetchContext in sync. + mojo::RemoteSet<mojom::blink::RendererPreferenceWatcher> + renderer_preference_watchers_; + base::WeakPtrFactory<WebViewImpl> weak_ptr_factory_{this}; };
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc index 6cc9a64..162980a9 100644 --- a/third_party/blink/renderer/core/exported/web_view_test.cc +++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -2654,7 +2654,7 @@ const gfx::PointF screen_point; WebFrameWidget* widget = web_view->MainFrameImpl()->FrameWidget(); widget->DragTargetDragEnter(drag_data, client_point, screen_point, - kDragOperationCopy, 0); + kDragOperationCopy, 0, base::DoNothing()); widget->DragTargetDrop(drag_data, client_point, screen_point, 0); frame_test_helpers::PumpPendingRequestsForFrameToLoad( web_view->MainFrameImpl());
diff --git a/third_party/blink/renderer/core/frame/csp/csp_directive_list.cc b/third_party/blink/renderer/core/frame/csp/csp_directive_list.cc index 5aec2ca..386e3481 100644 --- a/third_party/blink/renderer/core/frame/csp/csp_directive_list.cc +++ b/third_party/blink/renderer/core/frame/csp/csp_directive_list.cc
@@ -57,8 +57,6 @@ return kContentSecurityPolicyHashAlgorithmSha384; case IntegrityAlgorithm::kSha512: return kContentSecurityPolicyHashAlgorithmSha512; - case IntegrityAlgorithm::kEd25519: - return kContentSecurityPolicyHashAlgorithmEd25519; } NOTREACHED(); return kContentSecurityPolicyHashAlgorithmNone;
diff --git a/third_party/blink/renderer/core/frame/csp/source_list_directive.cc b/third_party/blink/renderer/core/frame/csp/source_list_directive.cc index f71f324..f6eef68 100644 --- a/third_party/blink/renderer/core/frame/csp/source_list_directive.cc +++ b/third_party/blink/renderer/core/frame/csp/source_list_directive.cc
@@ -398,8 +398,7 @@ {"'sha512-", kContentSecurityPolicyHashAlgorithmSha512}, {"'sha-256-", kContentSecurityPolicyHashAlgorithmSha256}, {"'sha-384-", kContentSecurityPolicyHashAlgorithmSha384}, - {"'sha-512-", kContentSecurityPolicyHashAlgorithmSha512}, - {"'ed25519-", kContentSecurityPolicyHashAlgorithmEd25519}}; + {"'sha-512-", kContentSecurityPolicyHashAlgorithmSha512}}; constexpr size_t kSupportedPrefixesLength = sizeof(kSupportedPrefixes) / sizeof(kSupportedPrefixes[0]);
diff --git a/third_party/blink/renderer/core/frame/settings.h b/third_party/blink/renderer/core/frame/settings.h index c635d0e..af8e5f4 100644 --- a/third_party/blink/renderer/core/frame/settings.h +++ b/third_party/blink/renderer/core/frame/settings.h
@@ -32,7 +32,6 @@ #include "base/macros.h" #include "third_party/blink/public/common/css/navigation_controls.h" -#include "third_party/blink/public/mojom/css/preferred_contrast.mojom-blink.h" #include "third_party/blink/public/mojom/manifest/display_mode.mojom-shared.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink.h" #include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-blink.h"
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc index b06fc2e0..2607c7b 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc
@@ -249,19 +249,21 @@ return WebRect(); } -DragOperation WebFrameWidgetBase::DragTargetDragEnter( +void WebFrameWidgetBase::DragTargetDragEnter( const WebDragData& web_drag_data, const gfx::PointF& point_in_viewport, const gfx::PointF& screen_point, DragOperationsMask operations_allowed, - uint32_t key_modifiers) { + uint32_t key_modifiers, + DragTargetDragEnterCallback callback) { DCHECK(!current_drag_data_); current_drag_data_ = DataObject::Create(web_drag_data); operations_allowed_ = operations_allowed; - return DragTargetDragEnterOrOver(point_in_viewport, screen_point, kDragEnter, - key_modifiers); + blink::DragOperation operation = DragTargetDragEnterOrOver( + point_in_viewport, screen_point, kDragEnter, key_modifiers); + std::move(callback).Run(operation); } void WebFrameWidgetBase::DragTargetDragOver(
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_base.h b/third_party/blink/renderer/core/frame/web_frame_widget_base.h index a38820f..414d99d5 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_base.h +++ b/third_party/blink/renderer/core/frame/web_frame_widget_base.h
@@ -258,11 +258,6 @@ // WebFrameWidget implementation. WebLocalFrame* LocalRoot() const override; - DragOperation DragTargetDragEnter(const WebDragData&, - const gfx::PointF& point_in_viewport, - const gfx::PointF& screen_point, - DragOperationsMask operations_allowed, - uint32_t key_modifiers) override; void SendOverscrollEventFromImplSide( const gfx::Vector2dF& overscroll_delta, cc::ElementId scroll_latched_element_id) override; @@ -375,6 +370,12 @@ KURL GetURLForDebugTrace() override; // mojom::blink::FrameWidget methods. + void DragTargetDragEnter(const WebDragData&, + const gfx::PointF& point_in_viewport, + const gfx::PointF& screen_point, + DragOperationsMask operations_allowed, + uint32_t key_modifiers, + DragTargetDragEnterCallback callback) override; void DragTargetDragOver(const gfx::PointF& point_in_viewport, const gfx::PointF& screen_point, DragOperationsMask operations_allowed,
diff --git a/third_party/blink/renderer/core/html/html_frame_owner_element.cc b/third_party/blink/renderer/core/html/html_frame_owner_element.cc index 6bef0603..f8594bca 100644 --- a/third_party/blink/renderer/core/html/html_frame_owner_element.cc +++ b/third_party/blink/renderer/core/html/html_frame_owner_element.cc
@@ -546,6 +546,9 @@ // once they're near the viewport or visible. should_lazy_load_children_ = false; + if (lazy_load_frame_observer_) + lazy_load_frame_observer_->CancelPendingLazyLoad(); + lazy_load_frame_observer_ = MakeGarbageCollected<LazyLoadFrameObserver>( *this, LazyLoadFrameObserver::LoadType::kSubsequent);
diff --git a/third_party/blink/renderer/core/input/pointer_event_manager.cc b/third_party/blink/renderer/core/input/pointer_event_manager.cc index 544acefa..8729273 100644 --- a/third_party/blink/renderer/core/input/pointer_event_manager.cc +++ b/third_party/blink/renderer/core/input/pointer_event_manager.cc
@@ -463,8 +463,12 @@ ? pointer_event_target.target_element->GetDocument().domWindow() : nullptr); - result = SendTouchPointerEvent(pointer_event_target.target_element, - pointer_event, web_pointer_event.hovering); + if (pointer_event) { + result = SendTouchPointerEvent(pointer_event_target.target_element, + pointer_event, web_pointer_event.hovering); + } else { + result = WebInputEventResult::kNotHandled; + } // If a pointerdown has been canceled, queue the unique id to allow // suppressing mouse events from gesture events. For mouse events
diff --git a/third_party/blink/renderer/core/input/pointer_event_manager_test.cc b/third_party/blink/renderer/core/input/pointer_event_manager_test.cc index 3d32c24..7532cb6 100644 --- a/third_party/blink/renderer/core/input/pointer_event_manager_test.cc +++ b/third_party/blink/renderer/core/input/pointer_event_manager_test.cc
@@ -22,23 +22,29 @@ class CheckPointerEventListenerCallback final : public NativeEventListener { public: void Invoke(ExecutionContext*, Event* event) override { - const String pointer_type = ((PointerEvent*)event)->pointerType(); + num_events_received_++; + + const String pointer_type = + static_cast<PointerEvent*>(event)->pointerType(); if (pointer_type == "mouse") - mouse_event_received_count_++; + num_type_mouse_received_++; else if (pointer_type == "touch") - touch_event_received_count_++; + num_type_touch_received_++; else if (pointer_type == "pen") - pen_event_received_count_++; + num_type_pen_received_++; } - int mouseEventCount() const { return mouse_event_received_count_; } - int touchEventCount() const { return touch_event_received_count_; } - int penEventCount() const { return pen_event_received_count_; } + int numEventsReceived() const { return num_events_received_; } + + int numTypeMouseReceived() const { return num_type_mouse_received_; } + int numTypeTouchReceived() const { return num_type_touch_received_; } + int numTypePenReceived() const { return num_type_pen_received_; } private: - int mouse_event_received_count_ = 0; - int touch_event_received_count_ = 0; - int pen_event_received_count_ = 0; + int num_events_received_ = 0; + int num_type_mouse_received_ = 0; + int num_type_touch_received_ = 0; + int num_type_pen_received_ = 0; }; class PointerEventCoordinateListenerCallback final @@ -49,7 +55,7 @@ } void Invoke(ExecutionContext*, Event* event) override { - const PointerEvent* pointer_event = (PointerEvent*)event; + const PointerEvent* pointer_event = static_cast<PointerEvent*>(event); last_client_x_ = pointer_event->clientX(); last_client_y_ = pointer_event->clientY(); last_page_x_ = pointer_event->pageX(); @@ -84,18 +90,22 @@ std::unique_ptr<WebPointerEvent> CreateTestPointerEvent( WebInputEvent::Type type, WebPointerProperties::PointerType pointer_type, - gfx::PointF position_in_widget = gfx::PointF(100, 100), - gfx::PointF position_in_screen = gfx::PointF(100, 100), - int movement_x = 0, - int movement_y = 0, + PointerId id = 1) { + return CreateTestPointerEvent(type, pointer_type, id, gfx::PointF(100, 100), + gfx::PointF(100, 100), 0, 0, 1, 1); + } + std::unique_ptr<WebPointerEvent> CreateTestPointerEvent( + WebInputEvent::Type type, + WebPointerProperties::PointerType pointer_type, + gfx::PointF position_in_widget, + gfx::PointF position_in_screen, + int movement_x, + int movement_y, float width = 1, float height = 1) { - return std::make_unique<WebPointerEvent>( - type, - WebPointerProperties( - 1, pointer_type, WebPointerProperties::Button::kLeft, - position_in_widget, position_in_screen, movement_x, movement_y), - width, height); + return CreateTestPointerEvent(type, pointer_type, 1, position_in_widget, + position_in_screen, movement_x, movement_y, + width, height); } WebMouseEvent CreateTestMouseEvent(WebInputEvent::Type type, const gfx::PointF& coordinates) { @@ -106,6 +116,25 @@ event.SetFrameScale(1); return event; } + + private: + std::unique_ptr<WebPointerEvent> CreateTestPointerEvent( + WebInputEvent::Type type, + WebPointerProperties::PointerType pointer_type, + PointerId id, + gfx::PointF position_in_widget, + gfx::PointF position_in_screen, + int movement_x, + int movement_y, + float width, + float height) { + return std::make_unique<WebPointerEvent>( + type, + WebPointerProperties( + id, pointer_type, WebPointerProperties::Button::kLeft, + position_in_widget, position_in_screen, movement_x, movement_y), + width, height); + } }; TEST_F(PointerEventManagerTest, HasPointerCapture) { @@ -175,34 +204,75 @@ GetEventHandler().HandleMousePressEvent(CreateTestMouseEvent( WebInputEvent::Type::kMouseDown, gfx::PointF(100, 100))); - ASSERT_EQ(callback->mouseEventCount(), 0); - ASSERT_EQ(callback->touchEventCount(), 0); - ASSERT_EQ(callback->penEventCount(), 0); + ASSERT_EQ(callback->numTypeMouseReceived(), 0); + ASSERT_EQ(callback->numTypeTouchReceived(), 0); + ASSERT_EQ(callback->numTypePenReceived(), 0); WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent( CreateTestPointerEvent(WebInputEvent::Type::kPointerCausedUaAction, WebPointerProperties::PointerType::kPen), {}, {}, ui::LatencyInfo())); - ASSERT_EQ(callback->mouseEventCount(), 0); - ASSERT_EQ(callback->touchEventCount(), 1); - ASSERT_EQ(callback->penEventCount(), 1); + ASSERT_EQ(callback->numTypeMouseReceived(), 0); + ASSERT_EQ(callback->numTypeTouchReceived(), 1); + ASSERT_EQ(callback->numTypePenReceived(), 1); WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent( CreateTestPointerEvent(WebInputEvent::Type::kPointerCausedUaAction, WebPointerProperties::PointerType::kTouch), {}, {}, ui::LatencyInfo())); - ASSERT_EQ(callback->mouseEventCount(), 0); - ASSERT_EQ(callback->touchEventCount(), 1); - ASSERT_EQ(callback->penEventCount(), 1); + ASSERT_EQ(callback->numTypeMouseReceived(), 0); + ASSERT_EQ(callback->numTypeTouchReceived(), 1); + ASSERT_EQ(callback->numTypePenReceived(), 1); GetEventHandler().HandleMouseMoveEvent( CreateTestMouseEvent(WebInputEvent::Type::kMouseMove, gfx::PointF(200, 200)), Vector<WebMouseEvent>(), Vector<WebMouseEvent>()); - ASSERT_EQ(callback->mouseEventCount(), 1); - ASSERT_EQ(callback->touchEventCount(), 1); - ASSERT_EQ(callback->penEventCount(), 1); + ASSERT_EQ(callback->numTypeMouseReceived(), 1); + ASSERT_EQ(callback->numTypeTouchReceived(), 1); + ASSERT_EQ(callback->numTypePenReceived(), 1); +} + +TEST_F(PointerEventManagerTest, PointerCancelForNonExistentid) { + WebView().MainFrameViewWidget()->Resize(gfx::Size(400, 400)); + SimRequest request("https://example.com/test.html", "text/html"); + LoadURL("https://example.com/test.html"); + request.Complete( + "<body style='padding: 0px; width: 400px; height: 400px;'>" + "<div draggable='true' style='width: 150px; height: 150px;'></div>" + "</body>"); + auto* callback = MakeGarbageCollected<CheckPointerEventListenerCallback>(); + GetDocument().body()->addEventListener(event_type_names::kPointercancel, + callback); + + WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent( + CreateTestPointerEvent(WebInputEvent::Type::kPointerCancel, + WebPointerProperties::PointerType::kTouch, 100), + {}, {}, ui::LatencyInfo())); + + ASSERT_EQ(callback->numEventsReceived(), 0); + + WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent( + CreateTestPointerEvent(WebInputEvent::Type::kPointerDown, + WebPointerProperties::PointerType::kTouch, 100), + {}, {}, ui::LatencyInfo())); + + ASSERT_EQ(callback->numEventsReceived(), 0); + + WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent( + CreateTestPointerEvent(WebInputEvent::Type::kPointerCancel, + WebPointerProperties::PointerType::kTouch, 100), + {}, {}, ui::LatencyInfo())); + + ASSERT_EQ(callback->numEventsReceived(), 1); + + WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent( + CreateTestPointerEvent(WebInputEvent::Type::kPointerCancel, + WebPointerProperties::PointerType::kTouch, 200), + {}, {}, ui::LatencyInfo())); + + ASSERT_EQ(callback->numEventsReceived(), 1); } TEST_F(PointerEventManagerTest, PointerEventCoordinates) {
diff --git a/third_party/blink/renderer/core/inspector/thread_debugger.cc b/third_party/blink/renderer/core/inspector/thread_debugger.cc index 36d1292..ef7c0431 100644 --- a/third_party/blink/renderer/core/inspector/thread_debugger.cc +++ b/third_party/blink/renderer/core/inspector/thread_debugger.cc
@@ -21,6 +21,9 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_node.h" #include "third_party/blink/renderer/bindings/core/v8/v8_node_list.h" #include "third_party/blink/renderer/bindings/core/v8/v8_script_runner.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_trusted_html.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_trusted_script.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_trusted_script_url.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/core/inspector/inspector_dom_debugger_agent.h" @@ -166,6 +169,8 @@ static const char kArray[] = "array"; static const char kError[] = "error"; static const char kBlob[] = "blob"; + static const char kTrustedType[] = "trustedtype"; + if (V8Node::HasInstance(value, isolate_)) return ToV8InspectorStringBuffer(kNode); if (V8NodeList::HasInstance(value, isolate_) || @@ -178,6 +183,11 @@ return ToV8InspectorStringBuffer(kError); if (V8Blob::HasInstance(value, isolate_)) return ToV8InspectorStringBuffer(kBlob); + if (V8TrustedHTML::HasInstance(value, isolate_) || + V8TrustedScript::HasInstance(value, isolate_) || + V8TrustedScriptURL::HasInstance(value, isolate_)) { + return ToV8InspectorStringBuffer(kTrustedType); + } return nullptr; }
diff --git a/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm.cc index 9a194a3d..9339d94 100644 --- a/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm.cc +++ b/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm.cc
@@ -415,6 +415,7 @@ LayoutUnit ComputeIntrinsicInlineSizeForAspectRatioElement( const NGBlockNode& node, const NGConstraintSpace& space, + const base::Optional<LayoutUnit> definite_block_size, const MinMaxSizes& used_min_max_block_sizes) { DCHECK(node.HasAspectRatio()); LogicalSize aspect_ratio = node.GetAspectRatio(); @@ -422,16 +423,27 @@ NGBoxStrut border_padding = ComputeBorders(space, node) + ComputePadding(space, style); - DCHECK_NE(style.LogicalHeight().GetType(), Length::Type::kFixed) - << "Flex will not use this function if the block size of the replaced " - "element is definite."; - base::Optional<LayoutUnit> intrinsic_inline; base::Optional<LayoutUnit> intrinsic_block; - node.IntrinsicSize(&intrinsic_inline, &intrinsic_block); - // intrinsic_inline and intrinsic_block can be empty independent of each - // other. + base::Optional<LayoutUnit> block_size_border_box; + if (definite_block_size.has_value()) { + block_size_border_box = definite_block_size; + } else { + node.IntrinsicSize(&intrinsic_inline, &intrinsic_block); + if (intrinsic_block) { + block_size_border_box = *intrinsic_block + border_padding.BlockSum(); + } + } + + if (block_size_border_box) { + LayoutUnit clamped_intrinsic_block_border_box = + used_min_max_block_sizes.ClampSizeToMinAndMax(*block_size_border_box); + return InlineSizeFromAspectRatio(border_padding, aspect_ratio, + EBoxSizing::kContentBox, + clamped_intrinsic_block_border_box); + } + if (intrinsic_inline) { MinMaxSizes inline_min_max = ComputeTransferredMinMaxInlineSizes( aspect_ratio, used_min_max_block_sizes, border_padding, @@ -441,14 +453,6 @@ return inline_min_max.ClampSizeToMinAndMax(intrinsic_inline_border_box); } - if (intrinsic_block) { - intrinsic_block = *intrinsic_block + border_padding.BlockSum(); - intrinsic_block = - used_min_max_block_sizes.ClampSizeToMinAndMax(*intrinsic_block); - return InlineSizeFromAspectRatio(border_padding, aspect_ratio, - EBoxSizing::kContentBox, *intrinsic_block); - } - // If control flow reaches here, the item has aspect ratio only, no natural // sizes. Spec says: // * If the available space is definite in the inline axis, use the stretch @@ -706,10 +710,15 @@ if (RuntimeEnabledFeatures::FlexAspectRatioEnabled()) { // Legacy uses child.PreferredLogicalWidths() for this case, which // is not exactly correct. + // ComputeIntrinsicInlineSizeForAspectRatioElement would honor the + // definite block size parameter by multipying it by the aspect + // ratio, but if control flow reaches here, we know we don't have a + // definite inline size. If we did, we would have fallen into the + // "part B" section above, not this "part C, D, E" section. flex_base_border_box = ComputeIntrinsicInlineSizeForAspectRatioElement( - child, flex_basis_space, - min_max_sizes_in_cross_axis_direction); + child, flex_basis_space, /* definite_block_size */ + base::nullopt, min_max_sizes_in_cross_axis_direction); } else { MinMaxSizesInput input(child_percentage_size_.block_size, MinMaxSizesType::kContent); @@ -768,8 +777,27 @@ if (algorithm_->ShouldApplyMinSizeAutoForChild(*child.GetLayoutBox())) { LayoutUnit content_size_suggestion; if (MainAxisIsInlineAxis(child)) { - content_size_suggestion = - MinMaxSizesFunc(MinMaxSizesType::kContent).sizes.min_size; + if (child.IsReplaced() && child.HasAspectRatio() && + RuntimeEnabledFeatures::FlexAspectRatioEnabled()) { + base::Optional<LayoutUnit> definite_block_size; + if (!BlockLengthUnresolvable(flex_basis_space, + child_style.LogicalHeight(), + LengthResolvePhase::kLayout)) { + definite_block_size = ResolveMainBlockLength( + flex_basis_space, child_style, + border_padding_in_child_writing_mode, + child_style.LogicalHeight(), IntrinsicBlockSizeFunc, + LengthResolvePhase::kLayout); + } + + content_size_suggestion = + ComputeIntrinsicInlineSizeForAspectRatioElement( + child, flex_basis_space, definite_block_size, + min_max_sizes_in_cross_axis_direction); + } else { + content_size_suggestion = + MinMaxSizesFunc(MinMaxSizesType::kContent).sizes.min_size; + } } else { LayoutUnit intrinsic_block_size; if (child.IsReplaced()) {
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc index cd5a250..06fea3b 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
@@ -297,8 +297,105 @@ reordered_item_indices_.push_back(i); } +namespace { + +using AxisEdge = NGGridLayoutAlgorithm::AxisEdge; + +// Given an |item_position| determines the correct |AxisEdge| alignment. +// Additionally will determine if the grid-item should be stretched with the +// |is_stretched| out-parameter. +AxisEdge AxisEdgeFromItemPosition(const ComputedStyle& container_style, + const ComputedStyle& style, + const ItemPosition item_position, + bool is_inline_axis, + bool* is_stretched) { + DCHECK(is_stretched); + *is_stretched = false; + + // Auto-margins take precedence over any alignment properties. + if (style.MayHaveMargin()) { + bool start_auto = is_inline_axis + ? style.MarginStartUsing(container_style).IsAuto() + : style.MarginBeforeUsing(container_style).IsAuto(); + bool end_auto = is_inline_axis + ? style.MarginEndUsing(container_style).IsAuto() + : style.MarginAfterUsing(container_style).IsAuto(); + + if (start_auto && end_auto) + return AxisEdge::kCenter; + else if (start_auto) + return AxisEdge::kEnd; + else if (end_auto) + return AxisEdge::kStart; + } + + const auto container_writing_direction = + container_style.GetWritingDirection(); + + switch (item_position) { + case ItemPosition::kSelfStart: + case ItemPosition::kSelfEnd: { + // In order to determine the correct "self" axis-edge without a + // complicated set of if-branches we use two converters. + + // First use the grid-item's writing-direction to convert the logical + // edge into the physical coordinate space. + LogicalToPhysical<AxisEdge> physical(style.GetWritingDirection(), + AxisEdge::kStart, AxisEdge::kEnd, + AxisEdge::kStart, AxisEdge::kEnd); + + // Then use the container's writing-direction to convert the physical + // edges, into our logical coordinate space. + PhysicalToLogical<AxisEdge> logical(container_writing_direction, + physical.Top(), physical.Right(), + physical.Bottom(), physical.Left()); + + if (is_inline_axis) { + return item_position == ItemPosition::kSelfStart ? logical.InlineStart() + : logical.InlineEnd(); + } + return item_position == ItemPosition::kSelfStart ? logical.BlockStart() + : logical.BlockEnd(); + } + case ItemPosition::kCenter: + return AxisEdge::kCenter; + case ItemPosition::kFlexStart: + case ItemPosition::kStart: + return AxisEdge::kStart; + case ItemPosition::kFlexEnd: + case ItemPosition::kEnd: + return AxisEdge::kEnd; + case ItemPosition::kStretch: + *is_stretched = true; + return AxisEdge::kStart; + case ItemPosition::kBaseline: + case ItemPosition::kLastBaseline: + return AxisEdge::kBaseline; + case ItemPosition::kLeft: + DCHECK(is_inline_axis); + return container_writing_direction.IsLtr() ? AxisEdge::kStart + : AxisEdge::kEnd; + case ItemPosition::kRight: + DCHECK(is_inline_axis); + return container_writing_direction.IsRtl() ? AxisEdge::kStart + : AxisEdge::kEnd; + case ItemPosition::kLegacy: + case ItemPosition::kAuto: + case ItemPosition::kNormal: + NOTREACHED(); + break; + } + + NOTREACHED(); + return AxisEdge::kStart; +} + +} // namespace + NGGridLayoutAlgorithm::GridItemData NGGridLayoutAlgorithm::MeasureGridItem( const NGBlockNode node) { + const auto& container_style = Style(); + // Before we take track sizing into account for column width contributions, // have all child inline and min/max sizes measured for content-based width // resolution. @@ -323,6 +420,23 @@ constraint_space, node, border_padding_in_child_writing_mode); } + const ItemPosition normal_behaviour = + node.IsReplaced() ? ItemPosition::kStart : ItemPosition::kStretch; + + // Determine the alignment for the grid-item ahead of time (we may need to + // know if it stretches ahead of time to correctly determine any block-axis + // contribution). + grid_item.inline_axis_alignment = AxisEdgeFromItemPosition( + container_style, child_style, + child_style.ResolvedJustifySelf(normal_behaviour, &container_style) + .GetPosition(), + /* is_inline_axis */ true, &grid_item.is_inline_axis_stretched); + grid_item.block_axis_alignment = AxisEdgeFromItemPosition( + container_style, child_style, + child_style.ResolvedAlignSelf(normal_behaviour, &container_style) + .GetPosition(), + /* is_inline_axis */ false, &grid_item.is_block_axis_stretched); + grid_item.margins = ComputeMarginsFor(constraint_space, child_style, ConstraintSpace()); grid_item.min_max_sizes = @@ -1053,6 +1167,31 @@ } } +namespace { + +// Returns the alignment offset for either the inline or block direction. +LayoutUnit AlignmentOffset(LayoutUnit container_size, + LayoutUnit size, + LayoutUnit margin_start, + LayoutUnit margin_end, + AxisEdge axis_edge) { + switch (axis_edge) { + case AxisEdge::kStart: + return margin_start; + case AxisEdge::kCenter: + return (container_size - size - margin_start - margin_end) / 2; + case AxisEdge::kEnd: + return container_size - margin_end - size; + case AxisEdge::kBaseline: + // TODO(ikilpatrick): Implement baseline alignment. + return margin_start; + } + NOTREACHED(); + return LayoutUnit(); +} + +} // namespace + void NGGridLayoutAlgorithm::PlaceGridItem(const GridItemData& grid_item, LogicalOffset offset, LogicalSize size) { @@ -1064,14 +1203,34 @@ builder.SetAvailableSize(size); builder.SetPercentageResolutionSize(size); builder.SetTextDirection(item_style.Direction()); - builder.SetIsShrinkToFit(item_style.LogicalWidth().IsAuto()); - NGConstraintSpace constraint_space = builder.ToConstraintSpace(); + + // TODO(ikilpatrick): We need a slightly different constraint space API now. + // Instead of a "shrink-to-fit" bit, we should have a "is-stretched" bit to + // indicate if 'auto' should stretch to fill the available space. This should + // apply to both the inline, and block axis. E.g. + // IsInlineSizeStretched / IsBlockSizeStretched or similar. + builder.SetIsFixedBlockSize(item_style.LogicalHeight().IsAuto() && + grid_item.is_block_axis_stretched); + builder.SetIsShrinkToFit(item_style.LogicalWidth().IsAuto() && + !grid_item.is_inline_axis_stretched); + scoped_refptr<const NGLayoutResult> result = - grid_item.node.Layout(constraint_space); - container_builder_.AddChild( - result->PhysicalFragment(), - {offset.inline_offset + grid_item.margins.inline_start, - offset.block_offset + grid_item.margins.block_start}); + grid_item.node.Layout(builder.ToConstraintSpace()); + const auto& physical_fragment = result->PhysicalFragment(); + + // Apply the grid-item's alignment (if any). + NGFragment fragment(ConstraintSpace().GetWritingDirection(), + physical_fragment); + offset += LogicalOffset( + AlignmentOffset(size.inline_size, fragment.InlineSize(), + grid_item.margins.inline_start, + grid_item.margins.inline_end, + grid_item.inline_axis_alignment), + AlignmentOffset( + size.block_size, fragment.BlockSize(), grid_item.margins.block_start, + grid_item.margins.block_end, grid_item.block_axis_alignment)); + + container_builder_.AddChild(physical_fragment, offset); } LayoutUnit NGGridLayoutAlgorithm::GridGap(
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h index 269a4cd..b57210a 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h
@@ -32,6 +32,7 @@ NGBoxFragmentBuilder, NGBlockBreakToken> { public: + enum class AxisEdge { kStart, kCenter, kEnd, kBaseline }; struct GridItemData { explicit GridItemData(const NGBlockNode node); @@ -60,6 +61,12 @@ wtf_size_t rows_begin_set_index; wtf_size_t rows_end_set_index; + AxisEdge inline_axis_alignment; + AxisEdge block_axis_alignment; + + bool is_inline_axis_stretched; + bool is_block_axis_stretched; + bool is_spanning_flex_track : 1; bool is_spanning_intrinsic_track : 1; };
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_block.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_block.cc index 057b02b..8ab2834 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_block.cc +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_block.cc
@@ -47,7 +47,7 @@ void LayoutSVGBlock::WillBeDestroyed() { NOT_DESTROYED(); - SVGResourcesCache::ClientDestroyed(*this); + SVGResourcesCache::RemoveResources(*this); SVGResources::ClearClipPathFilterMask(*GetElement(), Style()); LayoutBlockFlow::WillBeDestroyed(); } @@ -55,7 +55,10 @@ void LayoutSVGBlock::InsertedIntoTree() { NOT_DESTROYED(); LayoutBlockFlow::InsertedIntoTree(); - SVGResourcesCache::ClientWasAddedToTree(*this); + LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation(*this, + false); + if (SVGResourcesCache::AddResources(*this)) + SetNeedsPaintPropertyUpdate(); if (CompositingReasonFinder::DirectReasonsForSVGChildPaintProperties(*this) != CompositingReason::kNone) { SVGLayoutSupport::NotifySVGRootOfChangedCompositingReasons(this); @@ -64,7 +67,10 @@ void LayoutSVGBlock::WillBeRemovedFromTree() { NOT_DESTROYED(); - SVGResourcesCache::ClientWillBeRemovedFromTree(*this); + LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation(*this, + false); + if (SVGResourcesCache::RemoveResources(*this)) + SetNeedsPaintPropertyUpdate(); LayoutBlockFlow::WillBeRemovedFromTree(); if (CompositingReasonFinder::DirectReasonsForSVGChildPaintProperties(*this) != CompositingReason::kNone) {
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_inline.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_inline.cc index 7d150307..7dbab247 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_inline.cc +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_inline.cc
@@ -117,7 +117,7 @@ void LayoutSVGInline::WillBeDestroyed() { NOT_DESTROYED(); - SVGResourcesCache::ClientDestroyed(*this); + SVGResourcesCache::RemoveResources(*this); SVGResources::ClearClipPathFilterMask(To<SVGElement>(*GetNode()), Style()); SVGResources::ClearPaints(To<SVGElement>(*GetNode()), Style()); LayoutInline::WillBeDestroyed(); @@ -162,7 +162,10 @@ void LayoutSVGInline::InsertedIntoTree() { NOT_DESTROYED(); LayoutInline::InsertedIntoTree(); - SVGResourcesCache::ClientWasAddedToTree(*this); + LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation(*this, + false); + if (SVGResourcesCache::AddResources(*this)) + SetNeedsPaintPropertyUpdate(); if (CompositingReasonFinder::DirectReasonsForSVGChildPaintProperties(*this) != CompositingReason::kNone) { SVGLayoutSupport::NotifySVGRootOfChangedCompositingReasons(this); @@ -171,7 +174,10 @@ void LayoutSVGInline::WillBeRemovedFromTree() { NOT_DESTROYED(); - SVGResourcesCache::ClientWillBeRemovedFromTree(*this); + LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation(*this, + false); + if (SVGResourcesCache::RemoveResources(*this)) + SetNeedsPaintPropertyUpdate(); LayoutInline::WillBeRemovedFromTree(); if (CompositingReasonFinder::DirectReasonsForSVGChildPaintProperties(*this) != CompositingReason::kNone) {
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_model_object.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_model_object.cc index 60382689..4395ceb 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_model_object.cc +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_model_object.cc
@@ -108,7 +108,7 @@ void LayoutSVGModelObject::WillBeDestroyed() { NOT_DESTROYED(); - SVGResourcesCache::ClientDestroyed(*this); + SVGResourcesCache::RemoveResources(*this); SVGResources::ClearClipPathFilterMask(*GetElement(), Style()); LayoutObject::WillBeDestroyed(); } @@ -172,7 +172,10 @@ void LayoutSVGModelObject::InsertedIntoTree() { NOT_DESTROYED(); LayoutObject::InsertedIntoTree(); - SVGResourcesCache::ClientWasAddedToTree(*this); + LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation(*this, + false); + if (SVGResourcesCache::AddResources(*this)) + SetNeedsPaintPropertyUpdate(); if (CompositingReasonFinder::DirectReasonsForSVGChildPaintProperties(*this) != CompositingReason::kNone) { SVGLayoutSupport::NotifySVGRootOfChangedCompositingReasons(this); @@ -181,7 +184,10 @@ void LayoutSVGModelObject::WillBeRemovedFromTree() { NOT_DESTROYED(); - SVGResourcesCache::ClientWillBeRemovedFromTree(*this); + LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation(*this, + false); + if (SVGResourcesCache::RemoveResources(*this)) + SetNeedsPaintPropertyUpdate(); LayoutObject::WillBeRemovedFromTree(); if (CompositingReasonFinder::DirectReasonsForSVGChildPaintProperties(*this) != CompositingReason::kNone) {
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc index a9cc14a0..b2cf755e 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
@@ -318,7 +318,7 @@ void LayoutSVGRoot::WillBeDestroyed() { NOT_DESTROYED(); - SVGResourcesCache::ClientDestroyed(*this); + SVGResourcesCache::RemoveResources(*this); SVGResources::ClearClipPathFilterMask(To<SVGSVGElement>(*GetNode()), Style()); LayoutReplaced::WillBeDestroyed(); } @@ -434,12 +434,18 @@ void LayoutSVGRoot::InsertedIntoTree() { NOT_DESTROYED(); LayoutReplaced::InsertedIntoTree(); - SVGResourcesCache::ClientWasAddedToTree(*this); + LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation(*this, + false); + if (SVGResourcesCache::AddResources(*this)) + SetNeedsPaintPropertyUpdate(); } void LayoutSVGRoot::WillBeRemovedFromTree() { NOT_DESTROYED(); - SVGResourcesCache::ClientWillBeRemovedFromTree(*this); + LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation(*this, + false); + if (SVGResourcesCache::RemoveResources(*this)) + SetNeedsPaintPropertyUpdate(); LayoutReplaced::WillBeRemovedFromTree(); }
diff --git a/third_party/blink/renderer/core/layout/svg/svg_resources_cache.cc b/third_party/blink/renderer/core/layout/svg/svg_resources_cache.cc index 16588b0..a75d990 100644 --- a/third_party/blink/renderer/core/layout/svg/svg_resources_cache.cc +++ b/third_party/blink/renderer/core/layout/svg/svg_resources_cache.cc
@@ -125,26 +125,17 @@ layout_object, needs_layout); } -void SVGResourcesCache::ClientWasAddedToTree(LayoutObject& layout_object) { +bool SVGResourcesCache::AddResources(LayoutObject& layout_object) { DCHECK(LayoutObjectCanHaveResources(layout_object)); - LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation( - layout_object, false); - SVGResourcesCache& cache = ResourcesCache(layout_object.GetDocument()); - if (cache.AddResourcesFromLayoutObject(layout_object, - layout_object.StyleRef())) - layout_object.SetNeedsPaintPropertyUpdate(); + return cache.AddResourcesFromLayoutObject(layout_object, + layout_object.StyleRef()); } -void SVGResourcesCache::ClientWillBeRemovedFromTree( - LayoutObject& layout_object) { +bool SVGResourcesCache::RemoveResources(LayoutObject& layout_object) { DCHECK(LayoutObjectCanHaveResources(layout_object)); - LayoutSVGResourceContainer::MarkForLayoutAndParentResourceInvalidation( - layout_object, false); - SVGResourcesCache& cache = ResourcesCache(layout_object.GetDocument()); - if (cache.RemoveResourcesFromLayoutObject(layout_object)) - layout_object.SetNeedsPaintPropertyUpdate(); + return cache.RemoveResourcesFromLayoutObject(layout_object); } bool SVGResourcesCache::UpdateResources(LayoutObject& layout_object) { @@ -154,11 +145,6 @@ layout_object.StyleRef()); } -void SVGResourcesCache::ClientDestroyed(LayoutObject& layout_object) { - SVGResourcesCache& cache = ResourcesCache(layout_object.GetDocument()); - cache.RemoveResourcesFromLayoutObject(layout_object); -} - SVGResourcesCache::TemporaryStyleScope::TemporaryStyleScope( LayoutObject& layout_object, const ComputedStyle& style,
diff --git a/third_party/blink/renderer/core/layout/svg/svg_resources_cache.h b/third_party/blink/renderer/core/layout/svg/svg_resources_cache.h index 33085c0d..25a8e069 100644 --- a/third_party/blink/renderer/core/layout/svg/svg_resources_cache.h +++ b/third_party/blink/renderer/core/layout/svg/svg_resources_cache.h
@@ -42,19 +42,17 @@ static SVGResources* CachedResourcesForLayoutObject(const LayoutObject&); - // Called from all SVG layoutObjects addChild() methods. - static void ClientWasAddedToTree(LayoutObject&); - - // Called from all SVG layoutObjects removeChild() methods. - static void ClientWillBeRemovedFromTree(LayoutObject&); - - // Called from all SVG layoutObjects destroy() methods - except for - // LayoutSVGResourceContainer. - static void ClientDestroyed(LayoutObject&); - // Called from all SVG layoutObjects styleDidChange() methods. static void ClientStyleChanged(LayoutObject&, StyleDifference); + // Called when an SVG LayoutObject has been added to the tree. + // Returns true if an SVGResources object was created. + static bool AddResources(LayoutObject&); + + // Called when an SVG LayoutObject has been removed from the tree. + // Returns true if an SVGResources object was destroyed. + static bool RemoveResources(LayoutObject&); + // Called when the target element of a resource referenced by the // LayoutObject may have changed and we need to recreate the // associated SVGResources object.
diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.cc b/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.cc index edbafb9..cd3514c 100644 --- a/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.cc +++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.cc
@@ -180,6 +180,8 @@ void TextFragmentSelectorGenerator::BindTextFragmentSelectorProducer( mojo::PendingReceiver<mojom::blink::TextFragmentSelectorProducer> producer) { + DCHECK(selection_frame_); + selector_producer_.reset(); selector_producer_.Bind( std::move(producer),
diff --git a/third_party/blink/renderer/core/style/computed_style.cc b/third_party/blink/renderer/core/style/computed_style.cc index 767627b..8aafafb3 100644 --- a/third_party/blink/renderer/core/style/computed_style.cc +++ b/third_party/blink/renderer/core/style/computed_style.cc
@@ -103,7 +103,7 @@ private: void* data_refs[8]; - unsigned bitfields[5]; + unsigned bitfields[6]; }; struct SameSizeAsComputedStyle : public SameSizeAsComputedStyleBase,
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h index c17a5e2..2eef9e3 100644 --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -2985,8 +2985,8 @@ DCHECK(pseudo >= kFirstPublicPseudoId); DCHECK(pseudo < kFirstInternalPseudoId); // TODO: Fix up this code. It is hard to understand. - SetPseudoBitsInternal(static_cast<PseudoId>( - PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId))); + SetPseudoBitsInternal(PseudoBitsInternal() | + 1 << (pseudo - kFirstPublicPseudoId)); } } // namespace blink
diff --git a/third_party/blink/renderer/core/style/computed_style_constants.h b/third_party/blink/renderer/core/style/computed_style_constants.h index af0d21b..c1f9aa7 100644 --- a/third_party/blink/renderer/core/style/computed_style_constants.h +++ b/third_party/blink/renderer/core/style/computed_style_constants.h
@@ -80,6 +80,10 @@ kFirstInternalPseudoId = kPseudoIdFirstLineInherited, }; +inline bool IsHighlightPseudoElement(PseudoId pseudo_id) { + return pseudo_id == kPseudoIdSelection || pseudo_id == kPseudoIdTargetText; +} + enum class OutlineIsAuto : bool { kOff = false, kOn = true }; // Random visual rendering model attributes. Not inherited.
diff --git a/third_party/blink/renderer/core/style/computed_style_extra_fields.json5 b/third_party/blink/renderer/core/style/computed_style_extra_fields.json5 index 57f24f0e..8ef5548b 100644 --- a/third_party/blink/renderer/core/style/computed_style_extra_fields.json5 +++ b/third_party/blink/renderer/core/style/computed_style_extra_fields.json5
@@ -221,7 +221,7 @@ { name: "PseudoBits", field_template: "primitive", - field_size: 8, + field_size: 9, default_value: "kPseudoIdNone", type_name: "unsigned", custom_copy: true,
diff --git a/third_party/blink/renderer/core/style/computed_style_test.cc b/third_party/blink/renderer/core/style/computed_style_test.cc index 8df2985..346813780 100644 --- a/third_party/blink/renderer/core/style/computed_style_test.cc +++ b/third_party/blink/renderer/core/style/computed_style_test.cc
@@ -145,6 +145,9 @@ } TEST(ComputedStyleTest, FirstPublicPseudoStyle) { + static_assert(kFirstPublicPseudoId == kPseudoIdFirstLine, + "Make sure we are testing the first public pseudo id"); + scoped_refptr<ComputedStyle> style = ComputedStyle::Create(); style->SetHasPseudoElementStyle(kPseudoIdFirstLine); EXPECT_TRUE(style->HasPseudoElementStyle(kPseudoIdFirstLine)); @@ -152,9 +155,12 @@ } TEST(ComputedStyleTest, LastPublicPseudoElementStyle) { + static_assert(kFirstInternalPseudoId - 1 == kPseudoIdTargetText, + "Make sure we are testing the last public pseudo id"); + scoped_refptr<ComputedStyle> style = ComputedStyle::Create(); - style->SetHasPseudoElementStyle(kPseudoIdScrollbar); - EXPECT_TRUE(style->HasPseudoElementStyle(kPseudoIdScrollbar)); + style->SetHasPseudoElementStyle(kPseudoIdTargetText); + EXPECT_TRUE(style->HasPseudoElementStyle(kPseudoIdTargetText)); EXPECT_TRUE(style->HasAnyPseudoElementStyles()); }
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc index 71e8e2b7..91505de 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
@@ -38,6 +38,7 @@ #include "third_party/blink/renderer/core/dom/node_computed_style.h" #include "third_party/blink/renderer/core/dom/range.h" #include "third_party/blink/renderer/core/dom/shadow_root.h" +#include "third_party/blink/renderer/core/events/event_util.h" #include "third_party/blink/renderer/core/frame/frame_owner.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame_view.h" @@ -722,11 +723,14 @@ if (block_flow && block_flow->ChildrenInline()) { // If the layout object has any plain text in it, that text will be // inside a LineBox, so the layout object will have a first LineBox. - bool has_any_text = HasLineBox(*block_flow); + const bool has_any_text = HasLineBox(*block_flow); // Always include interesting-looking objects. - if (has_any_text || MouseButtonListener()) + if (has_any_text || + (GetNode() && GetNode()->HasAnyEventListeners( + event_util::MouseButtonEventTypes()))) { return false; + } if (ignored_reasons) ignored_reasons->push_back(IgnoredReason(kAXUninteresting)); @@ -1479,14 +1483,18 @@ return nullptr; } - LayoutObject* obj = node->GetLayoutObject(); - - // Retarget to respect https://dom.spec.whatwg.org/#retarget. - if (auto* elem = DynamicTo<Element>(node)) { - Element* element = &(GetDocument()->Retarget(*elem)); - obj = element->GetLayoutObject(); + // If |node| is in a user-agent shadow tree, reassign it as the host to hide + // details in the shadow tree. Previously this was implemented by using + // Retargeting (https://dom.spec.whatwg.org/#retarget), but this caused + // elements inside regular shadow DOMs to be ignored by screen reader. See + // crbug.com/1111800 and crbug.com/1048959. + const TreeScope& tree_scope = node->GetTreeScope(); + if (auto* shadow_root = DynamicTo<ShadowRoot>(tree_scope.RootNode())) { + if (shadow_root->IsUserAgent()) + node = &shadow_root->host(); } + LayoutObject* obj = node->GetLayoutObject(); if (!obj) return nullptr;
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object_test.cc b/third_party/blink/renderer/modules/accessibility/ax_layout_object_test.cc index 34393bda..7da982bd 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_layout_object_test.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object_test.cc
@@ -96,21 +96,22 @@ ax_select->StringValue().Utf8()); } -// Test if AX takes 'Retarget' described from -// https://dom.spec.whatwg.org/#retarget after hit-testing. +// Test AX hit test for user-agent shadow DOM, which should ignore the shadow +// Node at the given point, and select the host Element instead. TEST_F(AXLayoutObjectTest, AccessibilityHitTest) { SetBodyInnerHTML( - "<style>\ - .A{display:flex;flex:100%;margin-top:-37px;height:34px}\ - .B{display:flex;flex:1;flex-wrap:wrap}\ - .C{flex:100%;height:34px}\ - </style>\ - <div class='B'>\ - <div class='C'></div>\ - <input class='A' aria-label='Search' role='combobox'>\ - </div>"); + "<style>" + " .A{display:flex;flex:100%;margin-top:-37px;height:34px}" + " .B{display:flex;flex:1;flex-wrap:wrap}" + " .C{flex:100%;height:34px}" + "</style>" + "<div class='B'>" + "<div class='C'></div>" + "<input class='A' aria-label='Search' role='combobox'>" + "</div>"); const AXObject* ax_root = GetAXRootObject(); ASSERT_NE(nullptr, ax_root); + // (8, 5) initially hits the editable DIV inside <input>. const IntPoint position(8, 5); AXObject* hit_test_result = ax_root->AccessibilityHitTest(position); EXPECT_NE(nullptr, hit_test_result); @@ -118,4 +119,51 @@ ax::mojom::Role::kTextFieldWithComboBox); } +// Tests AX hit test for open / closed shadow DOM, which should select the +// shadow Node under the given point (as opposed to taking the host Element, +// which is the case for user-agent shadow DOM). +TEST_F(AXLayoutObjectTest, AccessibilityHitTestShadowDOM) { + auto run_test = [&](ShadowRootType root_type) { + SetBodyInnerHTML( + "<style>" + "#host_a{position:absolute;}" + "</style>" + "<div id='host_a'>" + "</div>"); + auto* host_a = GetElementById("host_a"); + auto& shadow_a = host_a->AttachShadowRootInternal(root_type); + shadow_a.setInnerHTML( + "<style>" + "label {" + " display: inline-block;" + " height: 100px;" + " width: 100px;" + "}" + "input {" + " appearance: none;" + " height: 0;" + " width: 0;" + "}" + "</style>" + "<label id='label1' role='radio'>" + " <input type='radio' name='radio-main'>" + "</label>" + "<label id='label2' role='radio'>" + " <input type='radio' name='radio-main'>" + "</label>" + "<label id='label3' role='radio'>" + " <input type='radio' name='radio-main'>" + "</label>", + ASSERT_NO_EXCEPTION); + const AXObject* ax_root = GetAXRootObject(); + ASSERT_NE(nullptr, ax_root); + // (50, 50) initially hits #label1. + AXObject* hit_test_result = ax_root->AccessibilityHitTest({50, 50}); + EXPECT_EQ(hit_test_result->RoleValue(), ax::mojom::Role::kRadioButton); + }; + + run_test(ShadowRootType::kOpen); + run_test(ShadowRootType::kClosed); +} + } // namespace blink
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc index ee711629..c8d0e6a17 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -51,6 +51,7 @@ #include "third_party/blink/renderer/core/editing/editing_utilities.h" #include "third_party/blink/renderer/core/editing/markers/document_marker_controller.h" #include "third_party/blink/renderer/core/editing/position.h" +#include "third_party/blink/renderer/core/events/event_util.h" #include "third_party/blink/renderer/core/events/keyboard_event.h" #include "third_party/blink/renderer/core/frame/local_frame_view.h" #include "third_party/blink/renderer/core/frame/settings.h" @@ -1144,10 +1145,7 @@ for (element = To<Element>(node); element; element = element->parentElement()) { - if (element->HasEventListeners(event_type_names::kClick) || - element->HasEventListeners(event_type_names::kMousedown) || - element->HasEventListeners(event_type_names::kMouseup) || - element->HasEventListeners(event_type_names::kDOMActivate)) + if (element->HasAnyEventListeners(event_util::MouseButtonEventTypes())) return element; } @@ -1403,12 +1401,8 @@ // Note: we can't call |node->WillRespondToMouseClickEvents()| because that // triggers a style recalc and can delete this. - if (node->HasEventListeners(event_type_names::kMouseup) || - node->HasEventListeners(event_type_names::kMousedown) || - node->HasEventListeners(event_type_names::kClick) || - node->HasEventListeners(event_type_names::kDOMActivate)) { + if (node->HasAnyEventListeners(event_util::MouseButtonEventTypes())) return true; - } return IsTextControl() || AXObject::IsClickable(); }
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc index 46e741c..11040ca 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
@@ -44,6 +44,7 @@ #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/document_lifecycle.h" #include "third_party/blink/renderer/core/editing/editing_utilities.h" +#include "third_party/blink/renderer/core/events/event_util.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame_view.h" #include "third_party/blink/renderer/core/frame/settings.h" @@ -2006,6 +2007,44 @@ MarkElementDirty(form_control, false); } +void AXObjectCacheImpl::HandleEventListenerAdded( + const Node& node, + const AtomicString& event_type) { + // If this is the first |event_type| listener for |node|, handle the + // subscription change. + if (node.NumberOfEventListeners(event_type) == 1) + HandleEventSubscriptionChanged(node, event_type); +} + +void AXObjectCacheImpl::HandleEventListenerRemoved( + const Node& node, + const AtomicString& event_type) { + // If there are no more |event_type| listeners for |node|, handle the + // subscription change. + if (node.NumberOfEventListeners(event_type) == 0) + HandleEventSubscriptionChanged(node, event_type); +} + +bool AXObjectCacheImpl::DoesEventListenerImpactIgnoredState( + const AtomicString& event_type) const { + return event_util::IsMouseButtonEventType(event_type); +} + +void AXObjectCacheImpl::HandleEventSubscriptionChanged( + const Node& node, + const AtomicString& event_type) { + // Adding or Removing an event listener for certain events may affect whether + // a node or its descendants should be accessibility ignored. + if (!DoesEventListenerImpactIgnoredState(event_type)) + return; + + // If the |event_type| may affect the ignored state of |node|, invalidate all + // cached values then mark |node| dirty so it may reconsider its accessibility + // ignored state. + modification_count_++; + MarkElementDirty(&node, /*subtree=*/false); +} + void AXObjectCacheImpl::LabelChangedWithCleanLayout(Element* element) { // Will call back to TextChanged() when done updating relation cache. relation_cache_->LabelChanged(element);
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h index bcd69f0..17bf13a 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h +++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
@@ -125,6 +125,10 @@ Element*) override; void HandleValidationMessageVisibilityChanged( const Node* form_control) override; + void HandleEventListenerAdded(const Node& node, + const AtomicString& event_type) override; + void HandleEventListenerRemoved(const Node& node, + const AtomicString& event_type) override; void HandleFocusedUIElementChanged(Element* old_focused_element, Element* new_focused_element) override; void HandleInitialFocus() override; @@ -472,6 +476,11 @@ void HandleAttributeChangedWithCleanLayout(const QualifiedName& attr_name, Element* element); + bool DoesEventListenerImpactIgnoredState( + const AtomicString& event_type) const; + void HandleEventSubscriptionChanged(const Node& node, + const AtomicString& event_type); + // // aria-modal support //
diff --git a/third_party/blink/renderer/modules/credentialmanager/authentication_extensions_client_inputs.idl b/third_party/blink/renderer/modules/credentialmanager/authentication_extensions_client_inputs.idl index 9e0f8704..97c3048 100644 --- a/third_party/blink/renderer/modules/credentialmanager/authentication_extensions_client_inputs.idl +++ b/third_party/blink/renderer/modules/credentialmanager/authentication_extensions_client_inputs.idl
@@ -24,8 +24,7 @@ boolean enforceCredentialProtectionPolicy = false; // https://w3c.github.io/webauthn/#sctn-authenticator-credential-properties-extension - // [RuntimeEnabled=WebAuthenticationResidentKeyRequirement] - boolean credProps = false; + [RuntimeEnabled=WebAuthenticationResidentKeyRequirement] boolean credProps = false; // https://w3c.github.io/webauthn/#sctn-large-blob-extension [RuntimeEnabled=WebAuthenticationLargeBlobExtension] AuthenticationExtensionsLargeBlobInputs largeBlob;
diff --git a/third_party/blink/renderer/modules/media_controls/BUILD.gn b/third_party/blink/renderer/modules/media_controls/BUILD.gn index 35697a1..d3045881 100644 --- a/third_party/blink/renderer/modules/media_controls/BUILD.gn +++ b/third_party/blink/renderer/modules/media_controls/BUILD.gn
@@ -71,8 +71,6 @@ "elements/media_control_time_display_element.h", "elements/media_control_timeline_element.cc", "elements/media_control_timeline_element.h", - "elements/media_control_timeline_metrics.cc", - "elements/media_control_timeline_metrics.h", "elements/media_control_toggle_closed_captions_button_element.cc", "elements/media_control_toggle_closed_captions_button_element.h", "elements/media_control_volume_control_container_element.cc",
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc index ec651f364..c033f9c1 100644 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc +++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
@@ -110,31 +110,19 @@ Platform::Current()->RecordAction( UserMetricsAction("Media.Controls.ScrubbingBegin")); GetMediaControls().BeginScrubbing(MediaControlsImpl::IsTouchEvent(&event)); - Element* thumb = UserAgentShadowRoot()->getElementById( - shadow_element_names::kIdSliderThumb); - bool started_from_thumb = thumb && thumb == event.target()->ToNode(); - metrics_.StartGesture(started_from_thumb); } else if (EndScrubbingEvent(event)) { Platform::Current()->RecordAction( UserMetricsAction("Media.Controls.ScrubbingEnd")); GetMediaControls().EndScrubbing(); - metrics_.RecordEndGesture(TrackWidth(), MediaElement().duration()); } if (event.type() == event_type_names::kFocus) UpdateAria(); - if (event.type() == event_type_names::kKeydown) - metrics_.StartKey(); - - auto* keyboard_event = DynamicTo<KeyboardEvent>(event); - if (event.type() == event_type_names::kKeyup && keyboard_event) - metrics_.RecordEndKey(TrackWidth(), keyboard_event->keyCode()); - MediaControlInputElement::DefaultEventHandler(event); - if (IsA<MouseEvent>(event) || keyboard_event || IsA<GestureEvent>(event) || - IsA<PointerEvent>(event)) { + if (IsA<MouseEvent>(event) || IsA<KeyboardEvent>(event) || + IsA<GestureEvent>(event) || IsA<PointerEvent>(event)) { MaybeRecordInteracted(); } @@ -160,8 +148,6 @@ if (time > duration) time = duration; - metrics_.OnInput(MediaElement().currentTime(), time); - // FIXME: This will need to take the timeline offset into consideration // once that concept is supported, see https://crbug.com/312699 if (MediaElement().seekable()->Contain(time))
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.h index cd33fc5..ed580bd8 100644 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.h +++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.h
@@ -6,7 +6,6 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_TIMELINE_ELEMENT_H_ #include "third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.h" -#include "third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h" #include "third_party/blink/renderer/modules/modules_export.h" namespace blink { @@ -53,8 +52,6 @@ void UpdateAria(); - MediaControlTimelineMetrics metrics_; - bool is_touching_ = false; bool controls_hidden_ = false;
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc deleted file mode 100644 index 25b7001..0000000 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc +++ /dev/null
@@ -1,338 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h" - -#include <stdint.h> -#include <cmath> -#include <limits> - -#include "base/notreached.h" -#include "base/numerics/safe_conversions.h" -#include "base/stl_util.h" -#include "third_party/blink/renderer/platform/instrumentation/histogram.h" -#include "third_party/blink/renderer/platform/keyboard_codes.h" -#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h" - -namespace blink { - -namespace { - -// Correponds to UMA MediaTimelineSeekType enum. Enum values can be added, but -// must never be renumbered or deleted and reused. -enum class SeekType { - kClick = 0, - kDragFromCurrentPosition = 1, - kDragFromElsewhere = 2, - kKeyboardArrowKey = 3, - kKeyboardPageUpDownKey = 4, - kKeyboardHomeEndKey = 5, - // Update kLast when adding new values. - kLast = kKeyboardHomeEndKey -}; - -// Exclusive upper bounds for the positive buckets of UMA MediaTimelinePercent -// enum, which are reflected to form the negative buckets. The custom enum is -// because UMA count histograms don't support negative values. Values must not -// be added/modified/removed due to the way the negative buckets are formed. -constexpr double kPercentIntervals[] = { - 0, // Dedicated zero bucket so upper bound is inclusive, unlike the others. - 0.1, 0.2, 0.3, 0.5, 0.7, 1.0, 1.5, 2.0, 3.0, 5.0, 7.0, 10.0, - 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0, 60.0, 70.0, 80.0, 90.0, - 100.0 // 100% upper bound is inclusive, unlike the others. -}; -// Must match length of UMA MediaTimelinePercent enum. -constexpr int32_t kPercentBucketCount = 51; -static_assert(base::size(kPercentIntervals) * 2 - 1 == kPercentBucketCount, - "Intervals must match UMA MediaTimelinePercent enum"); - -// Corresponds to two UMA enums of different sizes! Values are the exclusive -// upper bounds for buckets of UMA MediaTimelineAbsTimeDelta enum with the same -// index, and also for the positive buckets of UMA MediaTimelineTimeDelta enum, -// which are reflected to form the negative buckets. MediaTimelineTimeDelta -// needed a custom enum because UMA count histograms don't support negative -// values, and MediaTimelineAbsTimeDelta uses the same mechanism so the values -// can be compared easily. Values must not be added/modified/removed due to the -// way the negative buckets are formed. -constexpr double kTimeDeltaMSIntervals[] = { - 1, // 1ms - 16, // 16ms - 32, // 32ms - 64, // 64ms - 128, // 128ms - 256, // 256ms - 512, // 512ms - 1000, // 1s - 2000, // 2s - 4000, // 4s - 8000, // 8s - 15000, // 15s - 30000, // 30s - 60000, // 1m - 120000, // 2m - 240000, // 4m - 480000, // 8m - 900000, // 15m - 1800000, // 30m - 3600000, // 1h - 7200000, // 2h - 14400000, // 4h - 28800000, // 8h - 57600000, // 16h - std::numeric_limits<double>::infinity()}; -// Must match length of UMA MediaTimelineAbsTimeDelta enum. -constexpr int32_t kAbsTimeDeltaBucketCount = 25; -// Must match length of UMA MediaTimelineTimeDelta enum. -constexpr int32_t kTimeDeltaBucketCount = 49; -static_assert(base::size(kTimeDeltaMSIntervals) == kAbsTimeDeltaBucketCount, - "Intervals must match UMA MediaTimelineAbsTimeDelta enum"); -static_assert(base::size(kTimeDeltaMSIntervals) * 2 - 1 == - kTimeDeltaBucketCount, - "Intervals must match UMA MediaTimelineTimeDelta enum"); - -// Calculates index of UMA MediaTimelinePercent enum corresponding to |percent|. -// Negative values use kPercentIntervals in reverse. -int32_t ToPercentSample(double percent) { - constexpr int32_t kNonNegativeBucketCount = base::size(kPercentIntervals); - constexpr int32_t kNegativeBucketCount = base::size(kPercentIntervals) - 1; - bool negative = percent < 0; - double abs_percent = std::abs(percent); - if (abs_percent == 0) - return kNegativeBucketCount; // Dedicated zero bucket. - for (int32_t i = 0; i < kNonNegativeBucketCount; i++) { - if (abs_percent < kPercentIntervals[i]) - return kNegativeBucketCount + (negative ? -i : +i); - } - // No NOTREACHED since the +/-100 bounds are inclusive (even if they are - // slightly exceeded due to floating point inaccuracies). - return negative ? 0 : kPercentBucketCount - 1; -} - -// Calculates index of UMA MediaTimelineAbsTimeDelta enum corresponding to -// |sumAbsDeltaSeconds|. -int32_t ToAbsTimeDeltaSample(double sum_abs_delta_seconds) { - double sum_abs_delta_ms = 1000 * sum_abs_delta_seconds; - if (sum_abs_delta_ms == 0) - return 0; // Dedicated zero bucket. - for (int32_t i = 0; i < kAbsTimeDeltaBucketCount; i++) { - if (sum_abs_delta_ms < kTimeDeltaMSIntervals[i]) - return i; - } - NOTREACHED() << "sumAbsDeltaSeconds shouldn't be infinite"; - return kAbsTimeDeltaBucketCount - 1; -} - -// Calculates index of UMA MediaTimelineTimeDelta enum corresponding to -// |deltaSeconds|. Negative values use kTimeDeltaMSIntervals in reverse. -int32_t ToTimeDeltaSample(double delta_seconds) { - constexpr int32_t kNonNegativeBucketCount = base::size(kTimeDeltaMSIntervals); - constexpr int32_t kNegativeBucketCount = - base::size(kTimeDeltaMSIntervals) - 1; - bool negative = delta_seconds < 0; - double abs_delta_ms = 1000 * std::abs(delta_seconds); - if (abs_delta_ms == 0) - return kNegativeBucketCount; // Dedicated zero bucket. - for (int32_t i = 0; i < kNonNegativeBucketCount; i++) { - if (abs_delta_ms < kTimeDeltaMSIntervals[i]) - return kNegativeBucketCount + (negative ? -i : +i); - } - NOTREACHED() << "deltaSeconds shouldn't be infinite"; - return negative ? 0 : kTimeDeltaBucketCount - 1; -} - -// Helper for RECORD_TIMELINE_UMA_BY_WIDTH. -#define ELSEIF_WIDTH_RECORD_TIMELINE_UMA(width, minWidth, maxWidth, metric, \ - sample, HistogramType, ...) \ - else if (width >= minWidth) { \ - DEFINE_STATIC_LOCAL( \ - HistogramType, metric##minWidth##_##maxWidth##Histogram, \ - ("Media.Timeline." #metric "." #minWidth "_" #maxWidth, \ - ##__VA_ARGS__)); \ - metric##minWidth##_##maxWidth##Histogram.Count(sample); \ - } - -// Records UMA with a histogram suffix based on timelineWidth. -#define RECORD_TIMELINE_UMA_BY_WIDTH(timelineWidth, metric, sample, \ - HistogramType, ...) \ - do { \ - int width = timelineWidth; /* Avoid multiple evaluation. */ \ - if (false) { \ - /* This if(false) allows all the conditions below to start with else. */ \ - } \ - ELSEIF_WIDTH_RECORD_TIMELINE_UMA(width, 512, inf, metric, sample, \ - HistogramType, ##__VA_ARGS__) \ - ELSEIF_WIDTH_RECORD_TIMELINE_UMA(width, 256, 511, metric, sample, \ - HistogramType, ##__VA_ARGS__) \ - ELSEIF_WIDTH_RECORD_TIMELINE_UMA(width, 128, 255, metric, sample, \ - HistogramType, ##__VA_ARGS__) \ - ELSEIF_WIDTH_RECORD_TIMELINE_UMA(width, 80, 127, metric, sample, \ - HistogramType, ##__VA_ARGS__) \ - ELSEIF_WIDTH_RECORD_TIMELINE_UMA(width, 48, 79, metric, sample, \ - HistogramType, ##__VA_ARGS__) \ - ELSEIF_WIDTH_RECORD_TIMELINE_UMA(width, 32, 47, metric, sample, \ - HistogramType, ##__VA_ARGS__) \ - else { \ - /* Skip logging if timeline is narrower than minimum suffix bucket. */ \ - } \ - } while (false) - -void RecordDragGestureDurationByWidth(int timeline_width, - base::TimeDelta duration) { - int32_t sample = base::saturated_cast<int32_t>(duration.InMilliseconds()); - RECORD_TIMELINE_UMA_BY_WIDTH(timeline_width, DragGestureDuration, sample, - CustomCountHistogram, 1 /* 1 ms */, - 60000 /* 1 minute */, 50); -} -void RecordDragPercentByWidth(int timeline_width, double percent) { - int32_t sample = ToPercentSample(percent); - RECORD_TIMELINE_UMA_BY_WIDTH(timeline_width, DragPercent, sample, - EnumerationHistogram, kPercentBucketCount); -} -void RecordDragSumAbsTimeDeltaByWidth(int timeline_width, - double sum_abs_delta_seconds) { - int32_t sample = ToAbsTimeDeltaSample(sum_abs_delta_seconds); - RECORD_TIMELINE_UMA_BY_WIDTH(timeline_width, DragSumAbsTimeDelta, sample, - EnumerationHistogram, kAbsTimeDeltaBucketCount); -} -void RecordDragTimeDeltaByWidth(int timeline_width, double delta_seconds) { - int32_t sample = ToTimeDeltaSample(delta_seconds); - RECORD_TIMELINE_UMA_BY_WIDTH(timeline_width, DragTimeDelta, sample, - EnumerationHistogram, kTimeDeltaBucketCount); -} -void RecordSeekTypeByWidth(int timeline_width, SeekType type) { - int32_t sample = static_cast<int32_t>(type); - constexpr int32_t kBucketCount = static_cast<int32_t>(SeekType::kLast) + 1; - RECORD_TIMELINE_UMA_BY_WIDTH(timeline_width, SeekType, sample, - EnumerationHistogram, kBucketCount); -} - -#undef RECORD_TIMELINE_UMA_BY_WIDTH -#undef ELSEIF_WIDTH_RECORD_TIMELINE_UMA - -} // namespace - -void MediaControlTimelineMetrics::StartGesture(bool from_thumb) { - // Initialize gesture tracking. - state_ = from_thumb ? State::kGestureFromThumb : State::kGestureFromElsewhere; - drag_start_time_ticks_ = base::TimeTicks::Now(); - drag_delta_media_seconds_ = 0; - drag_sum_abs_delta_media_seconds_ = 0; -} - -void MediaControlTimelineMetrics::RecordEndGesture( - int timeline_width, - double media_duration_seconds) { - State end_state = state_; - state_ = State::kInactive; // Reset tracking. - - SeekType seek_type = - SeekType::kLast; // Arbitrary inital val to appease MSVC. - switch (end_state) { - case State::kInactive: - case State::kKeyDown: - return; // Pointer and keys were interleaved. Skip UMA in this edge case. - case State::kGestureFromThumb: - case State::kGestureFromElsewhere: - return; // Empty gesture with no calls to gestureInput. - case State::kDragFromThumb: - seek_type = SeekType::kDragFromCurrentPosition; - break; - case State::kClick: - seek_type = SeekType::kClick; - break; - case State::kDragFromElsewhere: - seek_type = SeekType::kDragFromElsewhere; - break; - } - - RecordSeekTypeByWidth(timeline_width, seek_type); - - if (seek_type == SeekType::kClick) - return; // Metrics below are only for drags. - - RecordDragGestureDurationByWidth( - timeline_width, base::TimeTicks::Now() - drag_start_time_ticks_); - if (std::isfinite(media_duration_seconds)) { - RecordDragPercentByWidth(timeline_width, 100.0 * drag_delta_media_seconds_ / - media_duration_seconds); - } - RecordDragSumAbsTimeDeltaByWidth(timeline_width, - drag_sum_abs_delta_media_seconds_); - RecordDragTimeDeltaByWidth(timeline_width, drag_delta_media_seconds_); -} - -void MediaControlTimelineMetrics::StartKey() { - state_ = State::kKeyDown; -} - -void MediaControlTimelineMetrics::RecordEndKey(int timeline_width, - int key_code) { - State end_state = state_; - state_ = State::kInactive; // Reset tracking. - if (end_state != State::kKeyDown) - return; // Pointer and keys were interleaved. Skip UMA in this edge case. - - SeekType type; - switch (key_code) { - case VKEY_UP: - case VKEY_DOWN: - case VKEY_LEFT: - case VKEY_RIGHT: - type = SeekType::kKeyboardArrowKey; - break; - case VKEY_PRIOR: // PageUp - case VKEY_NEXT: // PageDown - type = SeekType::kKeyboardPageUpDownKey; - break; - case VKEY_HOME: - case VKEY_END: - type = SeekType::kKeyboardHomeEndKey; - break; - default: - return; // Other keys don't seek (at time of writing). - } - RecordSeekTypeByWidth(timeline_width, type); -} - -void MediaControlTimelineMetrics::OnInput(double from_seconds, - double to_seconds) { - switch (state_) { - case State::kInactive: - // Unexpected input. - state_ = State::kInactive; - break; - case State::kGestureFromThumb: - // Drag confirmed now input has been received. - state_ = State::kDragFromThumb; - break; - case State::kGestureFromElsewhere: - // Click/drag confirmed now input has been received. Assume it's a click - // until further input is received. - state_ = State::kClick; - break; - case State::kClick: - // Drag confirmed now further input has been received. - state_ = State::kDragFromElsewhere; - break; - case State::kDragFromThumb: - case State::kDragFromElsewhere: - // Continue tracking drag. - break; - case State::kKeyDown: - // Continue tracking key. - break; - } - - // The following tracking is only for drags. Note that we exclude kClick here, - // as even if it progresses to a kDragFromElsewhere, the first input event - // corresponds to the position jump from the pointer down on the track. - if (state_ != State::kDragFromThumb && state_ != State::kDragFromElsewhere) - return; - - float delta_media_seconds = static_cast<float>(to_seconds - from_seconds); - drag_delta_media_seconds_ += delta_media_seconds; - drag_sum_abs_delta_media_seconds_ += std::abs(delta_media_seconds); -} - -} // namespace blink
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h deleted file mode 100644 index f74e980b..0000000 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h +++ /dev/null
@@ -1,70 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_TIMELINE_METRICS_H_ -#define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_TIMELINE_METRICS_H_ - -#include "base/time/time.h" -#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" - -namespace blink { - -// Helpers for tracking and reporting media control timeline metrics to UMA. -class MediaControlTimelineMetrics { - DISALLOW_NEW(); - - public: - // Start tracking a pointer gesture. |fromThumb| indicates whether the user - // started dragging from the thumb, as opposed to pressing down their pointer - // on some other part of the timeline track (causing time to jump). - void StartGesture(bool from_thumb); - // Finish tracking and report a pointer gesture. - void RecordEndGesture(int timeline_width, double media_duration_seconds); - - // Start tracking a keydown. Ok to call multiple times if key repeats. - void StartKey(); - // Finish tracking and report a keyup. Call only once even if key repeats. - void RecordEndKey(int timeline_width, int key_code); - - // Track an incremental input event caused by the current pointer gesture or - // pressed key. Each sequence of calls to this should usually be sandwiched by - // startGesture/Key and recordEndGesture/Key. - void OnInput(double from_seconds, double to_seconds); - - private: - enum class State { - // No active gesture. Progresses to kKeyDown on |startKey|, or - // kGestureFromThumb/kGestureFromElsewhere on |startGesture|. - kInactive, - - // Pointer down on thumb. Progresses to kDragFromThumb in |onInput|. - kGestureFromThumb, - // Thumb is being dragged (drag started from thumb). - kDragFromThumb, - - // Pointer down on track. Progresses to kClick in |onInput|. - kGestureFromElsewhere, - // Pointer down followed by input. Assumed to be a click, unless additional - // |onInput| are received - if so progresses to kDragFromElsewhere. - kClick, - // Thumb is being dragged (drag started from track). - kDragFromElsewhere, - - // A key is currently pressed down. - kKeyDown - }; - - bool has_never_been_playing_ = true; - - State state_ = State::kInactive; - - // The following are only valid during a pointer gesture. - base::TimeTicks drag_start_time_ticks_; - float drag_delta_media_seconds_ = 0; - float drag_sum_abs_delta_media_seconds_ = 0; -}; - -} // namespace blink - -#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_TIMELINE_METRICS_H_
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc b/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc index cdfdb6c..23acf9e 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc +++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc
@@ -680,158 +680,6 @@ EXPECT_EQ(duration / 4, timeline->valueAsNumber()); } -TEST_F(MediaControlsImplTest, TimelineMetricsClick) { - double duration = 540; // 9 minutes - LoadMediaWithDuration(duration); - EnsureSizing(); - test::RunPendingTasks(); - - ASSERT_TRUE(IsElementVisible(*TimelineElement())); - DOMRect* timelineRect = TimelineElement()->getBoundingClientRect(); - ASSERT_LT(0, timelineRect->width()); - - EXPECT_EQ(0, MediaControls().MediaElement().currentTime()); - - gfx::PointF trackCenter(timelineRect->left() + timelineRect->width() / 2, - timelineRect->top() + timelineRect->height() / 2); - MouseDownAt(trackCenter); - MouseUpAt(trackCenter); - test::RunPendingTasks(); - - EXPECT_LE(0.49 * duration, MediaControls().MediaElement().currentTime()); - EXPECT_GE(0.51 * duration, MediaControls().MediaElement().currentTime()); - - GetHistogramTester().ExpectUniqueSample("Media.Timeline.SeekType." TIMELINE_W, - 0 /* SeekType::kClick */, 1); - GetHistogramTester().ExpectTotalCount( - "Media.Timeline.DragGestureDuration." TIMELINE_W, 0); - GetHistogramTester().ExpectTotalCount( - "Media.Timeline.DragPercent." TIMELINE_W, 0); - GetHistogramTester().ExpectTotalCount( - "Media.Timeline.DragSumAbsTimeDelta." TIMELINE_W, 0); - GetHistogramTester().ExpectTotalCount( - "Media.Timeline.DragTimeDelta." TIMELINE_W, 0); -} - -TEST_F(MediaControlsImplTest, TimelineMetricsDragFromCurrentPosition) { - double duration = 540; // 9 minutes - LoadMediaWithDuration(duration); - EnsureSizing(); - test::RunPendingTasks(); - - ASSERT_TRUE(IsElementVisible(*TimelineElement())); - DOMRect* timeline_rect = TimelineTrackElement()->getBoundingClientRect(); - ASSERT_LT(0, timeline_rect->width()); - - EXPECT_EQ(0, MediaControls().MediaElement().currentTime()); - - DOMRect* thumb_rect = - TimelineElement() - ->UserAgentShadowRoot() - ->getElementById(shadow_element_names::kIdSliderThumb) - ->getBoundingClientRect(); - gfx::PointF thumb(thumb_rect->x() + (thumb_rect->width() / 2), - thumb_rect->y() + 1); - - float y = timeline_rect->top() + timeline_rect->height() / 2; - gfx::PointF track_two_thirds( - timeline_rect->left() + timeline_rect->width() * 2 / 3, y); - MouseDownAt(thumb); - MouseMoveTo(track_two_thirds); - MouseUpAt(track_two_thirds); - - EXPECT_LE(0.66 * duration, MediaControls().MediaElement().currentTime()); - EXPECT_GE(0.68 * duration, MediaControls().MediaElement().currentTime()); - - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.SeekType." TIMELINE_W, - 1 /* SeekType::kDragFromCurrentPosition */, 1); - GetHistogramTester().ExpectTotalCount( - "Media.Timeline.DragGestureDuration." TIMELINE_W, 1); - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.DragPercent." TIMELINE_W, 47 /* [60.0%, 70.0%) */, 1); - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.DragSumAbsTimeDelta." TIMELINE_W, 16 /* [4m, 8m) */, 1); - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.DragTimeDelta." TIMELINE_W, 40 /* [4m, 8m) */, 1); -} - -TEST_F(MediaControlsImplTest, TimelineMetricsDragFromElsewhere) { - double duration = 540; // 9 minutes - LoadMediaWithDuration(duration); - EnsureSizing(); - test::RunPendingTasks(); - - ASSERT_TRUE(IsElementVisible(*TimelineElement())); - DOMRect* timelineRect = TimelineTrackElement()->getBoundingClientRect(); - ASSERT_LT(0, timelineRect->width()); - - EXPECT_EQ(0, MediaControls().MediaElement().currentTime()); - - float y = timelineRect->top() + timelineRect->height() / 2; - gfx::PointF trackOneThird( - timelineRect->left() + timelineRect->width() * 1 / 3, y); - gfx::PointF trackTwoThirds( - timelineRect->left() + timelineRect->width() * 2 / 3, y); - MouseDownAt(trackOneThird); - MouseMoveTo(trackTwoThirds); - MouseUpAt(trackTwoThirds); - - EXPECT_LE(0.66 * duration, MediaControls().MediaElement().currentTime()); - EXPECT_GE(0.68 * duration, MediaControls().MediaElement().currentTime()); - - GetHistogramTester().ExpectUniqueSample("Media.Timeline.SeekType." TIMELINE_W, - 2 /* SeekType::kDragFromElsewhere */, - 1); - GetHistogramTester().ExpectTotalCount( - "Media.Timeline.DragGestureDuration." TIMELINE_W, 1); - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.DragPercent." TIMELINE_W, 42 /* [30.0%, 35.0%) */, 1); - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.DragSumAbsTimeDelta." TIMELINE_W, 15 /* [2m, 4m) */, 1); - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.DragTimeDelta." TIMELINE_W, 39 /* [2m, 4m) */, 1); -} - -TEST_F(MediaControlsImplTest, TimelineMetricsDragBackAndForth) { - double duration = 540; // 9 minutes - LoadMediaWithDuration(duration); - EnsureSizing(); - test::RunPendingTasks(); - - ASSERT_TRUE(IsElementVisible(*TimelineElement())); - DOMRect* timelineRect = TimelineTrackElement()->getBoundingClientRect(); - ASSERT_LT(0, timelineRect->width()); - - EXPECT_EQ(0, MediaControls().MediaElement().currentTime()); - - float y = timelineRect->top() + timelineRect->height() / 2; - gfx::PointF trackTwoThirds( - timelineRect->left() + timelineRect->width() * 2 / 3, y); - gfx::PointF trackEnd(timelineRect->left() + timelineRect->width(), y); - gfx::PointF trackOneThird( - timelineRect->left() + timelineRect->width() * 1 / 3, y); - MouseDownAt(trackTwoThirds); - MouseMoveTo(trackEnd); - MouseMoveTo(trackOneThird); - MouseUpAt(trackOneThird); - - EXPECT_LE(0.32 * duration, MediaControls().MediaElement().currentTime()); - EXPECT_GE(0.34 * duration, MediaControls().MediaElement().currentTime()); - - GetHistogramTester().ExpectUniqueSample("Media.Timeline.SeekType." TIMELINE_W, - 2 /* SeekType::kDragFromElsewhere */, - 1); - GetHistogramTester().ExpectTotalCount( - "Media.Timeline.DragGestureDuration." TIMELINE_W, 1); - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.DragPercent." TIMELINE_W, 8 /* (-35.0%, -30.0%] */, 1); - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.DragSumAbsTimeDelta." TIMELINE_W, 17 /* [8m, 15m) */, 1); - GetHistogramTester().ExpectUniqueSample( - "Media.Timeline.DragTimeDelta." TIMELINE_W, 9 /* (-4m, -2m] */, 1); -} - TEST_F(MediaControlsImplTest, TimeIsCorrectlyFormatted) { struct { double time;
diff --git a/third_party/blink/renderer/platform/loader/DEPS b/third_party/blink/renderer/platform/loader/DEPS index a4589270..d4a0098 100644 --- a/third_party/blink/renderer/platform/loader/DEPS +++ b/third_party/blink/renderer/platform/loader/DEPS
@@ -39,7 +39,6 @@ "+third_party/blink/renderer/platform/weborigin", "+third_party/blink/renderer/platform/web_task_runner.h", "+third_party/blink/renderer/platform/wtf", - "+third_party/boringssl/src/include/openssl/curve25519.h", # for SubresourceIntegrity.cpp ] specific_include_rules = {
diff --git a/third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h b/third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h index 44101df..455494cb 100644 --- a/third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h +++ b/third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h
@@ -49,7 +49,7 @@ kPassed }; -enum class IntegrityAlgorithm : uint8_t { kSha256, kSha384, kSha512, kEd25519 }; +enum class IntegrityAlgorithm : uint8_t { kSha256, kSha384, kSha512 }; } // namespace blink
diff --git a/third_party/blink/renderer/platform/loader/subresource_integrity.cc b/third_party/blink/renderer/platform/loader/subresource_integrity.cc index e3333add..80c409e 100644 --- a/third_party/blink/renderer/platform/loader/subresource_integrity.cc +++ b/third_party/blink/renderer/platform/loader/subresource_integrity.cc
@@ -18,7 +18,6 @@ #include "third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/blink/renderer/platform/wtf/vector.h" -#include "third_party/boringssl/src/include/openssl/curve25519.h" namespace blink { @@ -48,10 +47,6 @@ return true; } -inline bool IsSpaceOrComma(UChar c) { - return IsASCIISpace(c) || c == ','; -} - void SubresourceIntegrity::ReportInfo::AddUseCount(UseCounterFeature feature) { use_counts_.push_back(feature); } @@ -88,9 +83,8 @@ return false; } - return CheckSubresourceIntegrityImpl( - metadata_set, content, size, resource_url, - resource.GetResponse().HttpHeaderField("Integrity"), report_info); + return CheckSubresourceIntegrityImpl(metadata_set, content, size, + resource_url, report_info); } bool SubresourceIntegrity::CheckSubresourceIntegrity( @@ -108,11 +102,8 @@ integrity_metadata, features, metadata_set, &report_info); if (integrity_parse_result != kIntegrityParseValidResult) return true; - // TODO(vogelheim): crbug.com/753349, figure out how deal with Ed25519 - // checking here. - String integrity_header; - return CheckSubresourceIntegrityImpl( - metadata_set, content, size, resource_url, integrity_header, report_info); + return CheckSubresourceIntegrityImpl(metadata_set, content, size, + resource_url, report_info); } bool SubresourceIntegrity::CheckSubresourceIntegrityImpl( @@ -120,27 +111,17 @@ const char* content, size_t size, const KURL& resource_url, - const String integrity_header, ReportInfo& report_info) { if (!metadata_set.size()) return true; // Check any of the "strongest" integrity constraints. IntegrityAlgorithm max_algorithm = FindBestAlgorithm(metadata_set); - CheckFunction checker = GetCheckFunctionForAlgorithm(max_algorithm); - bool report_ed25519 = max_algorithm == IntegrityAlgorithm::kEd25519; - if (report_ed25519) { - report_info.AddUseCount(ReportInfo::UseCounterFeature::kSRISignatureCheck); - } for (const IntegrityMetadata& metadata : metadata_set) { if (metadata.Algorithm() == max_algorithm && - (*checker)(metadata, content, size, integrity_header)) { + CheckSubresourceIntegrityDigest(metadata, content, size)) { report_info.AddUseCount(ReportInfo::UseCounterFeature:: kSRIElementWithMatchingIntegrityAttribute); - if (report_ed25519) { - report_info.AddUseCount( - ReportInfo::UseCounterFeature::kSRISignatureSuccess); - } return true; } } @@ -175,8 +156,7 @@ // IntegrityAlgorithm declaration order matching the "strongest" order, so // make the compiler check this assumption first.) static_assert(IntegrityAlgorithm::kSha256 < IntegrityAlgorithm::kSha384 && - IntegrityAlgorithm::kSha384 < IntegrityAlgorithm::kSha512 && - IntegrityAlgorithm::kSha512 < IntegrityAlgorithm::kEd25519, + IntegrityAlgorithm::kSha384 < IntegrityAlgorithm::kSha512, "IntegrityAlgorithm enum order should match the priority " "of the integrity algorithms."); @@ -192,26 +172,10 @@ return max_algorithm; } -SubresourceIntegrity::CheckFunction -SubresourceIntegrity::GetCheckFunctionForAlgorithm( - IntegrityAlgorithm algorithm) { - switch (algorithm) { - case IntegrityAlgorithm::kSha256: - case IntegrityAlgorithm::kSha384: - case IntegrityAlgorithm::kSha512: - return SubresourceIntegrity::CheckSubresourceIntegrityDigest; - case IntegrityAlgorithm::kEd25519: - return SubresourceIntegrity::CheckSubresourceIntegritySignature; - } - NOTREACHED(); - return nullptr; -} - bool SubresourceIntegrity::CheckSubresourceIntegrityDigest( const IntegrityMetadata& metadata, const char* content, - size_t size, - const String& integrity_header) { + size_t size) { blink::HashAlgorithm hash_algo = kHashAlgorithmSha256; switch (metadata.Algorithm()) { case IntegrityAlgorithm::kSha256: @@ -223,9 +187,6 @@ case IntegrityAlgorithm::kSha512: hash_algo = kHashAlgorithmSha512; break; - case IntegrityAlgorithm::kEd25519: - NOTREACHED(); - break; } DigestValue digest; @@ -240,66 +201,6 @@ return DigestsEqual(digest, converted_hash_vector); } -bool SubresourceIntegrity::CheckSubresourceIntegritySignature( - const IntegrityMetadata& metadata, - const char* content, - size_t size, - const String& integrity_header) { - DCHECK_EQ(IntegrityAlgorithm::kEd25519, metadata.Algorithm()); - - Vector<char> pubkey; - if (!Base64Decode(metadata.Digest(), pubkey) || - pubkey.size() != ED25519_PUBLIC_KEY_LEN) - return false; - - // Parse the Integrity:-header containing the signature(s). - Vector<UChar> integrity_header_chars; - integrity_header.AppendTo(integrity_header_chars); - const UChar* position = integrity_header_chars.begin(); - - const UChar* const end_position = integrity_header_chars.end(); - while (position < end_position) { - // We expect substrings of the form "ed25519-<BASE64>* ,". - // We'll move all of our UChar* pointers up front (before any early exits - // from the loop), since we should cleanly skip the next token in the - // header in all cases, even if the current token doesn't validate. - SkipWhile<UChar, IsSpaceOrComma>(position, end_position); - IntegrityAlgorithm algorithm; - bool found_ed25519 = - kAlgorithmValid == - ParseIntegrityHeaderAlgorithm(position, end_position, algorithm) && - IntegrityAlgorithm::kEd25519 == algorithm; - const UChar* digest_begin = position; - SkipUntil<UChar, IsSpaceOrComma>(position, end_position); - const UChar* const digest_end = position; - - // Now, algorithm contains the parsed algorithm specifier, the digest is - // found at digest_begin..digest_end, and position sits before the next - // token. - - if (!found_ed25519) - continue; - - String signature_raw; - if (!ParseDigest(digest_begin, digest_end, signature_raw)) - continue; - - Vector<char> signature; - Base64Decode(signature_raw, signature); - if (signature.size() != ED25519_SIGNATURE_LEN) - continue; - - // BoringSSL/OpenSSL functions return 1 for success. - if (1 == - ED25519_verify(reinterpret_cast<const uint8_t*>(content), size, - reinterpret_cast<const uint8_t*>(&*signature.begin()), - reinterpret_cast<const uint8_t*>(&*pubkey.begin()))) { - return true; - } - } - return false; -} - SubresourceIntegrity::AlgorithmParseResult SubresourceIntegrity::ParseAttributeAlgorithm(const UChar*& begin, const UChar* end, @@ -311,8 +212,7 @@ {"sha384", IntegrityAlgorithm::kSha384}, {"sha-384", IntegrityAlgorithm::kSha384}, {"sha512", IntegrityAlgorithm::kSha512}, - {"sha-512", IntegrityAlgorithm::kSha512}, - {"ed25519", IntegrityAlgorithm::kEd25519}}; + {"sha-512", IntegrityAlgorithm::kSha512}}; // The last algorithm prefix is the ed25519 signature algorithm, which should // only be enabled if kSignatures is requested. We'll implement this by @@ -325,17 +225,6 @@ } SubresourceIntegrity::AlgorithmParseResult -SubresourceIntegrity::ParseIntegrityHeaderAlgorithm( - const UChar*& begin, - const UChar* end, - IntegrityAlgorithm& algorithm) { - static const AlgorithmPrefixPair kPrefixes[] = { - {"ed25519", IntegrityAlgorithm::kEd25519}}; - return ParseAlgorithmPrefix(begin, end, kPrefixes, base::size(kPrefixes), - algorithm); -} - -SubresourceIntegrity::AlgorithmParseResult SubresourceIntegrity::ParseAlgorithmPrefix( const UChar*& string_position, const UChar* string_end,
diff --git a/third_party/blink/renderer/platform/loader/subresource_integrity.h b/third_party/blink/renderer/platform/loader/subresource_integrity.h index 0f951d63..8e74ba2 100644 --- a/third_party/blink/renderer/platform/loader/subresource_integrity.h +++ b/third_party/blink/renderer/platform/loader/subresource_integrity.h
@@ -91,18 +91,14 @@ friend class SubresourceIntegrityTest; FRIEND_TEST_ALL_PREFIXES(SubresourceIntegrityTest, Parsing); FRIEND_TEST_ALL_PREFIXES(SubresourceIntegrityTest, ParseAlgorithm); - FRIEND_TEST_ALL_PREFIXES(SubresourceIntegrityTest, ParseHeader); FRIEND_TEST_ALL_PREFIXES(SubresourceIntegrityTest, Prioritization); FRIEND_TEST_ALL_PREFIXES(SubresourceIntegrityTest, FindBestAlgorithm); - FRIEND_TEST_ALL_PREFIXES(SubresourceIntegrityTest, - GetCheckFunctionForAlgorithm); // The core implementation for all CheckSubresoureIntegrity functions. static bool CheckSubresourceIntegrityImpl(const IntegrityMetadataSet&, const char*, size_t, const KURL& resource_url, - const String integrity_header, ReportInfo&); enum AlgorithmParseResult { @@ -117,26 +113,18 @@ const char*, size_t, const String&); - static CheckFunction GetCheckFunctionForAlgorithm(IntegrityAlgorithm); static bool CheckSubresourceIntegrityDigest(const IntegrityMetadata&, const char*, - size_t, - const String& integrity_header); - static bool CheckSubresourceIntegritySignature( - const IntegrityMetadata&, - const char*, - size_t, - const String& integrity_header); + size_t); + static bool CheckSubresourceIntegritySignature(const IntegrityMetadata&, + const char*, + size_t); static AlgorithmParseResult ParseAttributeAlgorithm(const UChar*& begin, const UChar* end, IntegrityFeatures, IntegrityAlgorithm&); - static AlgorithmParseResult ParseIntegrityHeaderAlgorithm( - const UChar*& begin, - const UChar* end, - IntegrityAlgorithm&); typedef std::pair<const char*, IntegrityAlgorithm> AlgorithmPrefixPair; static AlgorithmParseResult ParseAlgorithmPrefix( const UChar*& string_position,
diff --git a/third_party/blink/renderer/platform/loader/subresource_integrity_test.cc b/third_party/blink/renderer/platform/loader/subresource_integrity_test.cc index cf9e2d5..2672fa5 100644 --- a/third_party/blink/renderer/platform/loader/subresource_integrity_test.cc +++ b/third_party/blink/renderer/platform/loader/subresource_integrity_test.cc
@@ -257,9 +257,6 @@ EXPECT_EQ( IntegrityAlgorithm::kSha512, std::max({IntegrityAlgorithm::kSha512, IntegrityAlgorithm::kSha512})); - EXPECT_EQ( - IntegrityAlgorithm::kEd25519, - std::max({IntegrityAlgorithm::kEd25519, IntegrityAlgorithm::kEd25519})); // Check a mix of algorithms. EXPECT_EQ(IntegrityAlgorithm::kSha384, @@ -268,11 +265,6 @@ EXPECT_EQ(IntegrityAlgorithm::kSha512, std::max({IntegrityAlgorithm::kSha384, IntegrityAlgorithm::kSha512, IntegrityAlgorithm::kSha256})); - EXPECT_EQ( - IntegrityAlgorithm::kEd25519, - std::max({IntegrityAlgorithm::kSha384, IntegrityAlgorithm::kSha512, - IntegrityAlgorithm::kEd25519, IntegrityAlgorithm::kSha512, - IntegrityAlgorithm::kSha256, IntegrityAlgorithm::kSha512})); } TEST_F(SubresourceIntegrityTest, ParseAlgorithm) { @@ -283,12 +275,7 @@ ExpectAlgorithm("sha-384-", IntegrityAlgorithm::kSha384); ExpectAlgorithm("sha-512-", IntegrityAlgorithm::kSha512); - { - ScopedSignatureBasedIntegrityForTest signature_based_integrity(true); - ExpectAlgorithm("ed25519-", IntegrityAlgorithm::kEd25519); - } ScopedSignatureBasedIntegrityForTest signature_based_integrity(false); - ExpectAlgorithmFailure("ed25519-", SubresourceIntegrity::kAlgorithmUnknown); ExpectAlgorithmFailure("sha1-", SubresourceIntegrity::kAlgorithmUnknown); ExpectAlgorithmFailure("sha-1-", SubresourceIntegrity::kAlgorithmUnknown); @@ -296,8 +283,6 @@ SubresourceIntegrity::kAlgorithmUnknown); ExpectAlgorithmFailure("foobar-", SubresourceIntegrity::kAlgorithmUnknown); ExpectAlgorithmFailure("-", SubresourceIntegrity::kAlgorithmUnknown); - ExpectAlgorithmFailure("ed-25519-", SubresourceIntegrity::kAlgorithmUnknown); - ExpectAlgorithmFailure("ed25518-", SubresourceIntegrity::kAlgorithmUnknown); ExpectAlgorithmFailure("sha256", SubresourceIntegrity::kAlgorithmUnparsable); ExpectAlgorithmFailure("", SubresourceIntegrity::kAlgorithmUnparsable); @@ -474,25 +459,6 @@ ExpectParse("sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=?foo:bar", "BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=", IntegrityAlgorithm::kSha256); - - { - ScopedSignatureBasedIntegrityForTest signature_based_integrity(false); - ExpectEmptyParseResult("ed25519-xxxx"); - ExpectEmptyParseResult( - "ed25519-qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0="); - } - - ScopedSignatureBasedIntegrityForTest signature_based_integrity(true); - ExpectParse("ed25519-xxxx", "xxxx", IntegrityAlgorithm::kEd25519); - ExpectParse("ed25519-qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0=", - "qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0=", - IntegrityAlgorithm::kEd25519); - ExpectParse("ed25519-qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0=?foo=bar", - "qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0=", - IntegrityAlgorithm::kEd25519); - ExpectEmptyParseResult("ed-25519-xxx"); - ExpectEmptyParseResult( - "ed-25519-qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0="); } TEST_F(SubresourceIntegrityTest, ParsingBase64) { @@ -584,9 +550,6 @@ EXPECT_EQ(IntegrityAlgorithm::kSha512, SubresourceIntegrity::FindBestAlgorithm( IntegrityMetadataSet({{"", IntegrityAlgorithm::kSha512}}))); - EXPECT_EQ(IntegrityAlgorithm::kEd25519, - SubresourceIntegrity::FindBestAlgorithm( - IntegrityMetadataSet({{"", IntegrityAlgorithm::kEd25519}}))); // Test combinations of multiple algorithms. EXPECT_EQ(IntegrityAlgorithm::kSha384, @@ -598,26 +561,6 @@ IntegrityMetadataSet({{"", IntegrityAlgorithm::kSha256}, {"", IntegrityAlgorithm::kSha512}, {"", IntegrityAlgorithm::kSha384}}))); - EXPECT_EQ(IntegrityAlgorithm::kEd25519, - SubresourceIntegrity::FindBestAlgorithm( - IntegrityMetadataSet({{"", IntegrityAlgorithm::kSha256}, - {"", IntegrityAlgorithm::kSha512}, - {"", IntegrityAlgorithm::kEd25519}}))); -} - -TEST_F(SubresourceIntegrityTest, GetCheckFunctionForAlgorithm) { - EXPECT_TRUE(SubresourceIntegrity::CheckSubresourceIntegrityDigest == - SubresourceIntegrity::GetCheckFunctionForAlgorithm( - IntegrityAlgorithm::kSha256)); - EXPECT_TRUE(SubresourceIntegrity::CheckSubresourceIntegrityDigest == - SubresourceIntegrity::GetCheckFunctionForAlgorithm( - IntegrityAlgorithm::kSha384)); - EXPECT_TRUE(SubresourceIntegrity::CheckSubresourceIntegrityDigest == - SubresourceIntegrity::GetCheckFunctionForAlgorithm( - IntegrityAlgorithm::kSha512)); - EXPECT_TRUE(SubresourceIntegrity::CheckSubresourceIntegritySignature == - SubresourceIntegrity::GetCheckFunctionForAlgorithm( - IntegrityAlgorithm::kEd25519)); } } // namespace blink
diff --git a/third_party/blink/renderer/platform/mojo/drag_mojom_traits.cc b/third_party/blink/renderer/platform/mojo/drag_mojom_traits.cc index 67ed150..bae9ffb0 100644 --- a/third_party/blink/renderer/platform/mojo/drag_mojom_traits.cc +++ b/third_party/blink/renderer/platform/mojo/drag_mojom_traits.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/platform/mojo/drag_mojom_traits.h" +#include "base/check.h" #include "base/containers/span.h" #include "base/files/file_path.h" #include "base/memory/scoped_refptr.h" @@ -176,6 +177,7 @@ WTF::String StructTraits<blink::mojom::DragItemFileSystemFileDataView, blink::WebDragData::Item>:: file_system_id(const blink::WebDragData::Item& item) { + DCHECK(item.file_system_id.IsNull()); return item.file_system_id; } @@ -185,7 +187,7 @@ native_file_system_token(const blink::WebDragData::Item& item) { // Should never have to send a transfer token information from the renderer // to the browser. - NOTREACHED(); + DCHECK(!item.native_file_system_entry); return mojo::NullRemote(); }
diff --git a/third_party/blink/renderer/platform/network/content_security_policy_parsers.h b/third_party/blink/renderer/platform/network/content_security_policy_parsers.h index 4165e18..248f54f 100644 --- a/third_party/blink/renderer/platform/network/content_security_policy_parsers.h +++ b/third_party/blink/renderer/platform/network/content_security_policy_parsers.h
@@ -17,8 +17,7 @@ kContentSecurityPolicyHashAlgorithmNone = 0, kContentSecurityPolicyHashAlgorithmSha256 = 1 << 2, kContentSecurityPolicyHashAlgorithmSha384 = 1 << 3, - kContentSecurityPolicyHashAlgorithmSha512 = 1 << 4, - kContentSecurityPolicyHashAlgorithmEd25519 = 1 << 5, + kContentSecurityPolicyHashAlgorithmSha512 = 1 << 4 }; PLATFORM_EXPORT bool IsCSPDirectiveNameCharacter(UChar);
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc index 46172cbb..dc9519b3 100644 --- a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc
@@ -129,7 +129,7 @@ task_queue_throttler_->CreateWakeUpBudgetPool("test"); scoped_refptr<base::sequence_manager::TaskQueue> queue = - scheduler_->NewThrottleableTaskQueueForTest(nullptr); + scheduler_->NewTaskQueueForTest(); pool->SetWakeUpInterval(base::TimeTicks(), base::TimeDelta::FromSeconds(10)); pool->SetWakeUpDuration(base::TimeDelta::FromMilliseconds(10));
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc index 1c17624..655f94cf 100644 --- a/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc
@@ -90,13 +90,14 @@ MainThreadTaskQueue::QueueCreationParams( MainThreadTaskQueue::QueueType::kFrameThrottleable) .SetCanBeThrottled(true)); - wake_up_budget_pool_->AddQueue(base::TimeTicks(), timer_queue_.get()); - timer_task_runner_ = timer_queue_->task_runner(); + wake_up_budget_pool_->AddQueue(base::TimeTicks(), + timer_queue_->GetTaskQueue()); + timer_task_runner_ = timer_queue_->GetTaskQueue()->task_runner(); } void TearDown() override { wake_up_budget_pool_->RemoveQueue(test_task_runner_->NowTicks(), - timer_queue_.get()); + timer_queue_->GetTaskQueue()); wake_up_budget_pool_->Close(); scheduler_->Shutdown(); scheduler_.reset(); @@ -148,7 +149,7 @@ std::unique_ptr<MainThreadSchedulerImplForTest> scheduler_; // A queue that is subject to |wake_up_budget_pool_|. - scoped_refptr<TaskQueue> timer_queue_; + scoped_refptr<MainThreadTaskQueue> timer_queue_; scoped_refptr<base::SingleThreadTaskRunner> timer_task_runner_; TaskQueueThrottler* task_queue_throttler_ = nullptr; @@ -211,18 +212,18 @@ testing::Bool()); TEST_F(TaskQueueThrottlerTest, ThrottledTasksReportRealTime) { - EXPECT_EQ(timer_queue_->GetTimeDomain()->Now(), + EXPECT_EQ(timer_queue_->GetTaskQueue()->GetTimeDomain()->Now(), test_task_runner_->NowTicks()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - EXPECT_EQ(timer_queue_->GetTimeDomain()->Now(), + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + EXPECT_EQ(timer_queue_->GetTaskQueue()->GetTimeDomain()->Now(), test_task_runner_->NowTicks()); test_task_runner_->AdvanceMockTickClock( base::TimeDelta::FromMilliseconds(250)); // Make sure the throttled time domain's Now() reports the same as the // underlying clock. - EXPECT_EQ(timer_queue_->GetTimeDomain()->Now(), + EXPECT_EQ(timer_queue_->GetTaskQueue()->GetTimeDomain()->Now(), test_task_runner_->NowTicks()); } @@ -318,7 +319,7 @@ FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_), base::TimeDelta::FromMilliseconds(8300.0)); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); test_task_runner_->FastForwardUntilNoTasksRemain(); @@ -352,8 +353,8 @@ FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_), base::TimeDelta::FromMilliseconds(8300.0)); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); test_task_runner_->FastForwardUntilNoTasksRemain(); @@ -371,53 +372,53 @@ } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, Refcount) { - ExpectUnthrottled(timer_queue_.get()); + ExpectUnthrottled(timer_queue_->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - ExpectThrottled(timer_queue_); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + ExpectThrottled(timer_queue_->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - ExpectThrottled(timer_queue_); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + ExpectThrottled(timer_queue_->GetTaskQueue()); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); - ExpectThrottled(timer_queue_); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + ExpectThrottled(timer_queue_->GetTaskQueue()); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); - ExpectUnthrottled(timer_queue_); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + ExpectUnthrottled(timer_queue_->GetTaskQueue()); // Should be a NOP. - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); - ExpectUnthrottled(timer_queue_); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + ExpectUnthrottled(timer_queue_->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - ExpectThrottled(timer_queue_); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + ExpectThrottled(timer_queue_->GetTaskQueue()); } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, ThrotlingAnEmptyQueueDoesNotPostPumpThrottledTasksLocked) { - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); - EXPECT_TRUE(scheduler_->ControlTaskQueue()->IsEmpty()); + EXPECT_TRUE(scheduler_->ControlTaskQueue()->GetTaskQueue()->IsEmpty()); } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, OnTimeDomainHasImmediateWork_EnabledQueue) { - task_queue_throttler_->OnQueueNextWakeUpChanged(timer_queue_.get(), + task_queue_throttler_->OnQueueNextWakeUpChanged(timer_queue_->GetTaskQueue(), base::TimeTicks()); // Check PostPumpThrottledTasksLocked was called. - EXPECT_FALSE(scheduler_->ControlTaskQueue()->IsEmpty()); + EXPECT_FALSE(scheduler_->ControlTaskQueue()->GetTaskQueue()->IsEmpty()); } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, OnTimeDomainHasImmediateWork_DisabledQueue) { std::unique_ptr<TaskQueue::QueueEnabledVoter> voter = - timer_queue_->CreateQueueEnabledVoter(); + timer_queue_->GetTaskQueue()->CreateQueueEnabledVoter(); voter->SetVoteToEnable(false); - task_queue_throttler_->OnQueueNextWakeUpChanged(timer_queue_.get(), + task_queue_throttler_->OnQueueNextWakeUpChanged(timer_queue_->GetTaskQueue(), base::TimeTicks()); // Check PostPumpThrottledTasksLocked was not called. - EXPECT_TRUE(scheduler_->ControlTaskQueue()->IsEmpty()); + EXPECT_TRUE(scheduler_->ControlTaskQueue()->GetTaskQueue()->IsEmpty()); } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, @@ -425,15 +426,15 @@ timer_task_runner_->PostTask(FROM_HERE, base::BindOnce(&NopTask)); std::unique_ptr<TaskQueue::QueueEnabledVoter> voter = - timer_queue_->CreateQueueEnabledVoter(); + timer_queue_->GetTaskQueue()->CreateQueueEnabledVoter(); voter->SetVoteToEnable(false); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - EXPECT_TRUE(scheduler_->ControlTaskQueue()->IsEmpty()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + EXPECT_TRUE(scheduler_->ControlTaskQueue()->GetTaskQueue()->IsEmpty()); // Enabling it should trigger a call to PostPumpThrottledTasksLocked. voter->SetVoteToEnable(true); - EXPECT_FALSE(scheduler_->ControlTaskQueue()->IsEmpty()); + EXPECT_FALSE(scheduler_->ControlTaskQueue()->GetTaskQueue()->IsEmpty()); } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, @@ -442,22 +443,22 @@ base::TimeDelta::FromMilliseconds(1)); std::unique_ptr<TaskQueue::QueueEnabledVoter> voter = - timer_queue_->CreateQueueEnabledVoter(); + timer_queue_->GetTaskQueue()->CreateQueueEnabledVoter(); voter->SetVoteToEnable(false); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - EXPECT_TRUE(scheduler_->ControlTaskQueue()->IsEmpty()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + EXPECT_TRUE(scheduler_->ControlTaskQueue()->GetTaskQueue()->IsEmpty()); // Enabling it should trigger a call to PostPumpThrottledTasksLocked. voter->SetVoteToEnable(true); - EXPECT_FALSE(scheduler_->ControlTaskQueue()->IsEmpty()); + EXPECT_FALSE(scheduler_->ControlTaskQueue()->GetTaskQueue()->IsEmpty()); } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, WakeUpForNonDelayedTask) { Vector<base::TimeTicks> run_times; // Nothing is posted on timer_queue_ so PumpThrottledTasks will not tick. - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Posting a task should trigger the pump. timer_task_runner_->PostTask( @@ -473,7 +474,7 @@ Vector<base::TimeTicks> run_times; // Nothing is posted on timer_queue_ so PumpThrottledTasks will not tick. - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Posting a task should trigger the pump. timer_task_runner_->PostDelayedTask( @@ -488,7 +489,7 @@ TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, SingleThrottledTaskPumpedAndRunWithNoExtraneousMessageLoopTasks) { - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); base::TimeDelta delay(base::TimeDelta::FromMilliseconds(10)); timer_task_runner_->PostDelayedTask(FROM_HERE, base::BindOnce(&NopTask), @@ -498,7 +499,7 @@ TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, SingleFutureThrottledTaskPumpedAndRunWithNoExtraneousMessageLoopTasks) { - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); base::TimeDelta delay(base::TimeDelta::FromSecondsD(15.5)); timer_task_runner_->PostDelayedTask(FROM_HERE, base::BindOnce(&NopTask), @@ -508,7 +509,7 @@ TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, TwoFutureThrottledTaskPumpedAndRunWithNoExtraneousMessageLoopTasks) { - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); Vector<base::TimeTicks> run_times; base::TimeDelta delay(base::TimeDelta::FromSecondsD(15.5)); @@ -537,7 +538,7 @@ TaskDelayIsBasedOnRealTime) { Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Post an initial task that should run at the first aligned time period. timer_task_runner_->PostDelayedTask( @@ -569,9 +570,9 @@ size_t count = 0; timer_task_runner_->PostTask(FROM_HERE, base::BindOnce(&AddOneTask, &count)); - EXPECT_FALSE(IsQueueBlocked(timer_queue_.get())); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - EXPECT_TRUE(IsQueueBlocked(timer_queue_.get())); + EXPECT_FALSE(IsQueueBlocked(timer_queue_->GetTaskQueue())); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + EXPECT_TRUE(IsQueueBlocked(timer_queue_->GetTaskQueue())); test_task_runner_->FastForwardUntilNoTasksRemain(); // Wait until the pump. EXPECT_EQ(1u, count); // The task got run. @@ -581,13 +582,13 @@ DoubleIncrementDoubleDecrement) { timer_task_runner_->PostTask(FROM_HERE, base::BindOnce(&NopTask)); - EXPECT_FALSE(IsQueueBlocked(timer_queue_.get())); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - EXPECT_TRUE(IsQueueBlocked(timer_queue_.get())); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); - EXPECT_FALSE(IsQueueBlocked(timer_queue_.get())); + EXPECT_FALSE(IsQueueBlocked(timer_queue_->GetTaskQueue())); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + EXPECT_TRUE(IsQueueBlocked(timer_queue_->GetTaskQueue())); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + EXPECT_FALSE(IsQueueBlocked(timer_queue_->GetTaskQueue())); } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, @@ -596,26 +597,29 @@ scheduler_->EnableVirtualTime( MainThreadSchedulerImpl::BaseTimeOverridePolicy::DO_NOT_OVERRIDE); - EXPECT_EQ(timer_queue_->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); + EXPECT_EQ(timer_queue_->GetTaskQueue()->GetTimeDomain(), + scheduler_->GetVirtualTimeDomain()); - EXPECT_FALSE(IsQueueBlocked(timer_queue_.get())); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - EXPECT_FALSE(IsQueueBlocked(timer_queue_.get())); - EXPECT_EQ(timer_queue_->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); + EXPECT_FALSE(IsQueueBlocked(timer_queue_->GetTaskQueue())); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + EXPECT_FALSE(IsQueueBlocked(timer_queue_->GetTaskQueue())); + EXPECT_EQ(timer_queue_->GetTaskQueue()->GetTimeDomain(), + scheduler_->GetVirtualTimeDomain()); } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, IncrementThenEnableVirtualTime) { timer_task_runner_->PostTask(FROM_HERE, base::BindOnce(&NopTask)); - EXPECT_FALSE(IsQueueBlocked(timer_queue_.get())); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - EXPECT_TRUE(IsQueueBlocked(timer_queue_.get())); + EXPECT_FALSE(IsQueueBlocked(timer_queue_->GetTaskQueue())); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + EXPECT_TRUE(IsQueueBlocked(timer_queue_->GetTaskQueue())); scheduler_->EnableVirtualTime( MainThreadSchedulerImpl::BaseTimeOverridePolicy::DO_NOT_OVERRIDE); - EXPECT_FALSE(IsQueueBlocked(timer_queue_.get())); - EXPECT_EQ(timer_queue_->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); + EXPECT_FALSE(IsQueueBlocked(timer_queue_->GetTaskQueue())); + EXPECT_EQ(timer_queue_->GetTaskQueue()->GetTimeDomain(), + scheduler_->GetVirtualTimeDomain()); } TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, TimeBasedThrottling) { @@ -625,9 +629,9 @@ task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Submit two tasks. They should be aligned, and second one should be // throttled. @@ -646,7 +650,8 @@ ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(1), base::TimeTicks() + base::TimeDelta::FromSeconds(3))); - pool->RemoveQueue(test_task_runner_->NowTicks(), timer_queue_.get()); + pool->RemoveQueue(test_task_runner_->NowTicks(), + timer_queue_->GetTaskQueue()); run_times.clear(); // Queue was removed from CPUTimeBudgetPool, only timer alignment should be @@ -667,7 +672,7 @@ ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(4000), base::TimeTicks() + base::TimeDelta::FromMilliseconds(4250))); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); pool->Close(); } @@ -680,9 +685,9 @@ EXPECT_TRUE(pool->IsThrottlingEnabled()); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Post an expensive task. Pool is now throttled. timer_task_runner_->PostDelayedTask( @@ -729,9 +734,10 @@ base::TimeDelta::FromMilliseconds(4000))); run_times.clear(); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); - pool->RemoveQueue(test_task_runner_->NowTicks(), timer_queue_.get()); + pool->RemoveQueue(test_task_runner_->NowTicks(), + timer_queue_->GetTaskQueue()); pool->Close(); } @@ -743,9 +749,9 @@ task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Submit two tasks. They should be aligned, and second one should be // throttled. @@ -762,7 +768,8 @@ ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(1), base::TimeTicks() + base::TimeDelta::FromSeconds(3))); - pool->RemoveQueue(test_task_runner_->NowTicks(), timer_queue_.get()); + pool->RemoveQueue(test_task_runner_->NowTicks(), + timer_queue_->GetTaskQueue()); run_times.clear(); // Queue was removed from CPUTimeBudgetPool, only timer alignment should be @@ -781,7 +788,7 @@ ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(4000), base::TimeTicks() + base::TimeDelta::FromMilliseconds(4250))); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); pool->Close(); } @@ -789,7 +796,7 @@ TwoQueuesTimeBudgetThrottling) { Vector<base::TimeTicks> run_times; - scoped_refptr<TaskQueue> second_queue = scheduler_->NewTaskQueue( + scoped_refptr<MainThreadTaskQueue> second_queue = scheduler_->NewTaskQueue( MainThreadTaskQueue::QueueCreationParams( MainThreadTaskQueue::QueueType::kFrameThrottleable) .SetCanBeThrottled(true)); @@ -798,17 +805,18 @@ task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); - pool->AddQueue(base::TimeTicks(), second_queue.get()); - wake_up_budget_pool_->AddQueue(base::TimeTicks(), second_queue.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); + pool->AddQueue(base::TimeTicks(), second_queue->GetTaskQueue()); + wake_up_budget_pool_->AddQueue(base::TimeTicks(), + second_queue->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - task_queue_throttler_->IncreaseThrottleRefCount(second_queue.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + task_queue_throttler_->IncreaseThrottleRefCount(second_queue->GetTaskQueue()); timer_task_runner_->PostTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_)); - second_queue->task_runner()->PostTask( + second_queue->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_)); @@ -818,13 +826,15 @@ ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(1), base::TimeTicks() + base::TimeDelta::FromSeconds(3))); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); - task_queue_throttler_->DecreaseThrottleRefCount(second_queue.get()); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + task_queue_throttler_->DecreaseThrottleRefCount(second_queue->GetTaskQueue()); - pool->RemoveQueue(test_task_runner_->NowTicks(), timer_queue_.get()); - pool->RemoveQueue(test_task_runner_->NowTicks(), second_queue.get()); + pool->RemoveQueue(test_task_runner_->NowTicks(), + timer_queue_->GetTaskQueue()); + pool->RemoveQueue(test_task_runner_->NowTicks(), + second_queue->GetTaskQueue()); wake_up_budget_pool_->RemoveQueue(test_task_runner_->NowTicks(), - second_queue.get()); + second_queue->GetTaskQueue()); pool->Close(); } @@ -839,9 +849,9 @@ pool->SetTimeBudgetRecoveryRate(lazy_now.Now(), 0.1); pool->DisableThrottling(&lazy_now); - pool->AddQueue(lazy_now.Now(), timer_queue_.get()); + pool->AddQueue(lazy_now.Now(), timer_queue_->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE, @@ -871,7 +881,7 @@ LazyNow lazy_now(test_task_runner_->GetMockTickClock()); pool->DisableThrottling(&lazy_now); - pool->AddQueue(test_task_runner_->NowTicks(), timer_queue_.get()); + pool->AddQueue(test_task_runner_->NowTicks(), timer_queue_->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE, @@ -900,9 +910,9 @@ base::TimeDelta::FromMinutes(1)); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.001); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); for (int i = 0; i < 5; ++i) { timer_task_runner_->PostDelayedTask( @@ -926,7 +936,7 @@ EnableAndDisableThrottling) { Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_), @@ -989,12 +999,12 @@ task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); pool->SetReportingCallback( base::BindRepeating(&RecordThrottling, &reported_throttling_times)); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_), @@ -1019,8 +1029,9 @@ ElementsAre(base::TimeDelta::FromMilliseconds(1255), base::TimeDelta::FromMilliseconds(1755))); - pool->RemoveQueue(test_task_runner_->NowTicks(), timer_queue_.get()); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); + pool->RemoveQueue(test_task_runner_->NowTicks(), + timer_queue_->GetTaskQueue()); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); pool->Close(); } @@ -1031,11 +1042,11 @@ task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); pool->GrantAdditionalBudget(base::TimeTicks(), base::TimeDelta::FromMilliseconds(500)); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Submit five tasks. First three will not be throttled because they have // budget to run. @@ -1056,8 +1067,9 @@ base::TimeTicks() + base::TimeDelta::FromSeconds(3), base::TimeTicks() + base::TimeDelta::FromSeconds(6))); - pool->RemoveQueue(test_task_runner_->NowTicks(), timer_queue_.get()); - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); + pool->RemoveQueue(test_task_runner_->NowTicks(), + timer_queue_->GetTaskQueue()); + task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_->GetTaskQueue()); pool->Close(); } @@ -1071,12 +1083,12 @@ CPUTimeBudgetPool* pool = task_queue_throttler_->CreateCPUTimeBudgetPool("test"); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); LazyNow lazy_now_1(test_task_runner_->GetMockTickClock()); pool->DisableThrottling(&lazy_now_1); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(95)); @@ -1103,7 +1115,7 @@ CPUTimeBudgetPool* pool = task_queue_throttler_->CreateCPUTimeBudgetPool("test"); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(95)); @@ -1111,7 +1123,7 @@ FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_), base::TimeDelta::FromMilliseconds(200)); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); test_task_runner_->FastForwardUntilNoTasksRemain(); @@ -1128,18 +1140,18 @@ MainThreadTaskQueue::QueueType::kFrameThrottleable) .SetCanBeThrottled(true)); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - task_queue_throttler_->IncreaseThrottleRefCount(second_queue.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + task_queue_throttler_->IncreaseThrottleRefCount(second_queue->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_), base::TimeDelta::FromMilliseconds(100)); - second_queue->task_runner()->PostDelayedTask( + second_queue->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_), base::TimeDelta::FromMilliseconds(200)); std::unique_ptr<TaskQueue::QueueEnabledVoter> voter = - timer_queue_->CreateQueueEnabledVoter(); + timer_queue_->GetTaskQueue()->CreateQueueEnabledVoter(); voter->SetVoteToEnable(false); test_task_runner_->AdvanceMockTickClock( @@ -1167,37 +1179,38 @@ TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, TwoBudgetPools) { Vector<base::TimeTicks> run_times; - scoped_refptr<TaskQueue> second_queue = scheduler_->NewTaskQueue( + scoped_refptr<MainThreadTaskQueue> second_queue = scheduler_->NewTaskQueue( MainThreadTaskQueue::QueueCreationParams( MainThreadTaskQueue::QueueType::kFrameThrottleable) .SetCanBeThrottled(true)); - wake_up_budget_pool_->AddQueue(base::TimeTicks(), second_queue.get()); + wake_up_budget_pool_->AddQueue(base::TimeTicks(), + second_queue->GetTaskQueue()); CPUTimeBudgetPool* pool1 = task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool1->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1); - pool1->AddQueue(base::TimeTicks(), timer_queue_.get()); - pool1->AddQueue(base::TimeTicks(), second_queue.get()); + pool1->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); + pool1->AddQueue(base::TimeTicks(), second_queue->GetTaskQueue()); CPUTimeBudgetPool* pool2 = task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool2->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.01); - pool2->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool2->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); - task_queue_throttler_->IncreaseThrottleRefCount(second_queue.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); + task_queue_throttler_->IncreaseThrottleRefCount(second_queue->GetTaskQueue()); timer_task_runner_->PostTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_)); - second_queue->task_runner()->PostTask( + second_queue->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_)); timer_task_runner_->PostTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_)); - second_queue->task_runner()->PostTask( + second_queue->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_)); @@ -1212,13 +1225,13 @@ base::TimeTicks() + base::TimeDelta::FromMilliseconds(26000))); wake_up_budget_pool_->RemoveQueue(test_task_runner_->NowTicks(), - second_queue.get()); + second_queue->GetTaskQueue()); } namespace { void RunChainedTask(Deque<base::TimeDelta> task_durations, - scoped_refptr<TaskQueue> queue, + scoped_refptr<MainThreadTaskQueue> queue, scoped_refptr<TestMockTimeTaskRunner> task_runner, Vector<base::TimeTicks>* run_times, base::TimeDelta delay) { @@ -1231,7 +1244,7 @@ task_runner->AdvanceMockTickClock(task_durations.front()); task_durations.pop_front(); - queue->task_runner()->PostDelayedTask( + queue->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&RunChainedTask, std::move(task_durations), queue, task_runner, run_times, delay), @@ -1245,7 +1258,7 @@ base::TimeDelta::FromMilliseconds(10)); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE, @@ -1275,7 +1288,7 @@ base::TimeDelta::FromMilliseconds(10)); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE, @@ -1308,7 +1321,7 @@ base::TimeDelta::FromMilliseconds(10)); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE, @@ -1339,7 +1352,7 @@ // of one-minute. wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(1)); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); WakeUpBudgetPool* one_minute_pool = wake_up_budget_pool_; scoped_refptr<base::SingleThreadTaskRunner> one_minute_task_runner = timer_task_runner_; @@ -1352,14 +1365,17 @@ two_minutes_pool->SetWakeUpDuration(base::TimeDelta()); two_minutes_pool->SetWakeUpInterval(test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(2)); - scoped_refptr<TaskQueue> two_minutes_queue = scheduler_->NewTaskQueue( - MainThreadTaskQueue::QueueCreationParams( - MainThreadTaskQueue::QueueType::kFrameThrottleable) - .SetCanBeThrottled(true)); - two_minutes_pool->AddQueue(base::TimeTicks(), two_minutes_queue.get()); + scoped_refptr<MainThreadTaskQueue> two_minutes_queue = + scheduler_->NewTaskQueue( + MainThreadTaskQueue::QueueCreationParams( + MainThreadTaskQueue::QueueType::kFrameThrottleable) + .SetCanBeThrottled(true)); + two_minutes_pool->AddQueue(base::TimeTicks(), + two_minutes_queue->GetTaskQueue()); scoped_refptr<base::SingleThreadTaskRunner> two_minutes_task_runner = - two_minutes_queue->task_runner(); - task_queue_throttler_->IncreaseThrottleRefCount(two_minutes_queue.get()); + two_minutes_queue->GetTaskQueue()->task_runner(); + task_queue_throttler_->IncreaseThrottleRefCount( + two_minutes_queue->GetTaskQueue()); // Post a task with a short delay to the first queue. constexpr base::TimeDelta kShortDelay = base::TimeDelta::FromSeconds(1); @@ -1402,7 +1418,7 @@ // Clean up. two_minutes_pool->RemoveQueue(test_task_runner_->NowTicks(), - two_minutes_queue.get()); + two_minutes_queue->GetTaskQueue()); two_minutes_pool->Close(); } @@ -1410,7 +1426,7 @@ WakeUpBasedThrottling_MultiplePoolsWithDifferentIntervals) { wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(1)); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); WakeUpBudgetPool* one_minute_pool = wake_up_budget_pool_; scoped_refptr<base::SingleThreadTaskRunner> one_minute_task_runner = timer_task_runner_; @@ -1422,14 +1438,17 @@ two_minutes_pool->SetWakeUpDuration(base::TimeDelta()); two_minutes_pool->SetWakeUpInterval(test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(2)); - scoped_refptr<TaskQueue> two_minutes_queue = scheduler_->NewTaskQueue( - MainThreadTaskQueue::QueueCreationParams( - MainThreadTaskQueue::QueueType::kFrameThrottleable) - .SetCanBeThrottled(true)); - two_minutes_pool->AddQueue(base::TimeTicks(), two_minutes_queue.get()); + scoped_refptr<MainThreadTaskQueue> two_minutes_queue = + scheduler_->NewTaskQueue( + MainThreadTaskQueue::QueueCreationParams( + MainThreadTaskQueue::QueueType::kFrameThrottleable) + .SetCanBeThrottled(true)); + two_minutes_pool->AddQueue(base::TimeTicks(), + two_minutes_queue->GetTaskQueue()); scoped_refptr<base::SingleThreadTaskRunner> two_minutes_task_runner = - two_minutes_queue->task_runner(); - task_queue_throttler_->IncreaseThrottleRefCount(two_minutes_queue.get()); + two_minutes_queue->GetTaskQueue()->task_runner(); + task_queue_throttler_->IncreaseThrottleRefCount( + two_minutes_queue->GetTaskQueue()); // Post tasks with a short delay to both queues. constexpr base::TimeDelta kShortDelay = base::TimeDelta::FromSeconds(1); @@ -1473,7 +1492,7 @@ // Clean up. two_minutes_pool->RemoveQueue(test_task_runner_->NowTicks(), - two_minutes_queue.get()); + two_minutes_queue->GetTaskQueue()); two_minutes_pool->Close(); } @@ -1486,7 +1505,7 @@ wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(1)); wake_up_budget_pool_->AllowUnalignedWakeUpIfNoRecentWakeUp(); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); WakeUpBudgetPool* one_minute_pool = wake_up_budget_pool_; scoped_refptr<base::SingleThreadTaskRunner> one_minute_task_runner = timer_task_runner_; @@ -1499,14 +1518,17 @@ two_minutes_pool->SetWakeUpInterval(test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(1)); two_minutes_pool->AllowUnalignedWakeUpIfNoRecentWakeUp(); - scoped_refptr<TaskQueue> two_minutes_queue = scheduler_->NewTaskQueue( - MainThreadTaskQueue::QueueCreationParams( - MainThreadTaskQueue::QueueType::kFrameThrottleable) - .SetCanBeThrottled(true)); - two_minutes_pool->AddQueue(base::TimeTicks(), two_minutes_queue.get()); + scoped_refptr<MainThreadTaskQueue> two_minutes_queue = + scheduler_->NewTaskQueue( + MainThreadTaskQueue::QueueCreationParams( + MainThreadTaskQueue::QueueType::kFrameThrottleable) + .SetCanBeThrottled(true)); + two_minutes_pool->AddQueue(base::TimeTicks(), + two_minutes_queue->GetTaskQueue()); scoped_refptr<base::SingleThreadTaskRunner> two_minutes_task_runner = - two_minutes_queue->task_runner(); - task_queue_throttler_->IncreaseThrottleRefCount(two_minutes_queue.get()); + two_minutes_queue->GetTaskQueue()->task_runner(); + task_queue_throttler_->IncreaseThrottleRefCount( + two_minutes_queue->GetTaskQueue()); // Post tasks with short delays to both queues. They should run unaligned. The // wake up in |one_minute_pool| should not be taken into account when @@ -1579,7 +1601,7 @@ // Clean up. two_minutes_pool->RemoveQueue(test_task_runner_->NowTicks(), - two_minutes_queue.get()); + two_minutes_queue->GetTaskQueue()); two_minutes_pool->Close(); } @@ -1592,7 +1614,7 @@ // The 1st WakeUpBudgetPool doesn't allow unaligned wake ups. wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(1)); - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); WakeUpBudgetPool* aligned_pool = wake_up_budget_pool_; scoped_refptr<base::SingleThreadTaskRunner> aligned_task_runner = timer_task_runner_; @@ -1606,14 +1628,15 @@ unaligned_pool->SetWakeUpInterval(test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(1)); unaligned_pool->AllowUnalignedWakeUpIfNoRecentWakeUp(); - scoped_refptr<TaskQueue> unaligned_queue = scheduler_->NewTaskQueue( + scoped_refptr<MainThreadTaskQueue> unaligned_queue = scheduler_->NewTaskQueue( MainThreadTaskQueue::QueueCreationParams( MainThreadTaskQueue::QueueType::kFrameThrottleable) .SetCanBeThrottled(true)); - unaligned_pool->AddQueue(base::TimeTicks(), unaligned_queue.get()); + unaligned_pool->AddQueue(base::TimeTicks(), unaligned_queue->GetTaskQueue()); scoped_refptr<base::SingleThreadTaskRunner> unaligned_task_runner = - unaligned_queue->task_runner(); - task_queue_throttler_->IncreaseThrottleRefCount(unaligned_queue.get()); + unaligned_queue->GetTaskQueue()->task_runner(); + task_queue_throttler_->IncreaseThrottleRefCount( + unaligned_queue->GetTaskQueue()); // Post tasks with short delays to both queues. The 1st task should run // aligned, while the 2nd task should run unaligned. @@ -1688,7 +1711,7 @@ // Clean up. unaligned_pool->RemoveQueue(test_task_runner_->NowTicks(), - unaligned_queue.get()); + unaligned_queue->GetTaskQueue()); unaligned_pool->Close(); } @@ -1701,7 +1724,7 @@ wake_up_budget_pool_->SetWakeUpDuration(base::TimeDelta::FromMilliseconds(1)); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE, @@ -1751,7 +1774,7 @@ const base::TimeTicks start_time = test_task_runner_->NowTicks(); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(1)); @@ -1776,7 +1799,7 @@ base::TimeDelta::FromMinutes(1)); wake_up_budget_pool_->AllowUnalignedWakeUpIfNoRecentWakeUp(); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Task delay: Expected run time: Reason: // 30 seconds 30 seconds >= 60 seconds after last wake up // 80 seconds 90 seconds >= 60 seconds after last wake up @@ -1815,7 +1838,7 @@ TEST_F(TaskQueueThrottlerTest, WakeUpBasedThrottling_IncreaseWakeUpIntervalBeforeWakeUp) { Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Post 2 delayed tasks when the wake up interval is 1 minute. The delay of // the 2nd task is such that it won't be ready when the 1st task completes. @@ -1842,7 +1865,7 @@ TEST_F(TaskQueueThrottlerTest, WakeUpBasedThrottling_DecreaseWakeUpIntervalBeforeWakeUp) { Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Post a delayed task when the wake up interval is 1 hour. wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(), @@ -1868,7 +1891,7 @@ base::TimeDelta::FromMilliseconds(10)); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Post a 1st delayed task when the wake up interval is 1 minute. wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(), @@ -1907,7 +1930,7 @@ base::TimeDelta::FromMilliseconds(10)); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); // Post a 1st delayed task when the wake up interval is 1 hour. wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(), @@ -1950,11 +1973,11 @@ task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); Deque<base::TimeDelta> task_durations = MakeTaskDurations(9, base::TimeDelta()); @@ -1992,7 +2015,7 @@ task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); Vector<base::TimeTicks> run_times; @@ -2008,10 +2031,12 @@ base::TimeDelta::FromMilliseconds(300)); if (is_throttled) { - task_queue_throttler_->DecreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->DecreaseThrottleRefCount( + timer_queue_->GetTaskQueue()); is_throttled = false; } else { - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount( + timer_queue_->GetTaskQueue()); is_throttled = true; } @@ -2049,11 +2074,11 @@ task_queue_throttler_->CreateCPUTimeBudgetPool("test"); pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.01); - pool->AddQueue(base::TimeTicks(), timer_queue_.get()); + pool->AddQueue(base::TimeTicks(), timer_queue_->GetTaskQueue()); Vector<base::TimeTicks> run_times; - task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get()); + task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_->GetTaskQueue()); timer_task_runner_->PostDelayedTask( FROM_HERE,
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.cc b/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.cc index 1d71e34..0a45511 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.cc
@@ -94,7 +94,7 @@ void CompositorPriorityExperiments::OnTaskCompleted( MainThreadTaskQueue* queue, QueuePriority current_compositor_priority, - MainThreadTaskQueue::TaskTiming* task_timing) { + TaskQueue::TaskTiming* task_timing) { if (!queue) return; @@ -182,7 +182,7 @@ "CompositorBudgetPool", this, tracing_controller, now)); compositor_budget_pool_->SetMinBudgetLevelToRun(now, min_budget); compositor_budget_pool_->SetTimeBudgetRecoveryRate(now, budget_recovery_rate); - compositor_budget_pool_->AddQueue(now, compositor_queue); + compositor_budget_pool_->AddQueue(now, compositor_queue->GetTaskQueue()); } CompositorPriorityExperiments::CompositorBudgetPoolController:: @@ -210,7 +210,7 @@ void CompositorPriorityExperiments::CompositorBudgetPoolController:: OnTaskCompleted(MainThreadTaskQueue* queue, - MainThreadTaskQueue::TaskTiming* task_timing, + TaskQueue::TaskTiming* task_timing, bool have_seen_stop_signal) { if (have_seen_stop_signal) { compositor_budget_pool_->RecordTaskRunTime(
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.h b/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.h index 725d31d..96280a39 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.h
@@ -46,7 +46,7 @@ void OnTaskCompleted(MainThreadTaskQueue* queue, QueuePriority current_priority, - MainThreadTaskQueue::TaskTiming* task_timing); + TaskQueue::TaskTiming* task_timing); QueuePriority GetAlternatingPriority() const { return alternating_compositor_priority_; @@ -78,7 +78,7 @@ void UpdateCompositorBudgetState(base::TimeTicks now); void OnTaskCompleted(MainThreadTaskQueue* queue, - MainThreadTaskQueue::TaskTiming* task_timing, + TaskQueue::TaskTiming* task_timing, bool have_seen_stop_signal); // Unimplemented methods.
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/find_in_page_budget_pool_controller.h b/third_party/blink/renderer/platform/scheduler/main_thread/find_in_page_budget_pool_controller.h index 0f7790ed..5042b6a0 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/find_in_page_budget_pool_controller.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/find_in_page_budget_pool_controller.h
@@ -32,7 +32,7 @@ ~FindInPageBudgetPoolController() override; void OnTaskCompleted(MainThreadTaskQueue* queue, - MainThreadTaskQueue::TaskTiming* task_timing); + TaskQueue::TaskTiming* task_timing); QueuePriority CurrentTaskPriority() { return task_priority_; }
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc index 20617597..a93147367 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
@@ -81,7 +81,8 @@ FrameSchedulerImpl* frame_scheduler = task_queue->GetFrameScheduler(); DCHECK(frame_scheduler); - task_queue->SetQueuePriority(frame_scheduler->ComputePriority(task_queue)); + task_queue->GetTaskQueue()->SetQueuePriority( + frame_scheduler->ComputePriority(task_queue)); } } // namespace @@ -212,7 +213,7 @@ queue->DetachFromMainThreadScheduler(); DCHECK(!queue->GetFrameScheduler()); - queue->SetBlameContext(nullptr); + queue->GetTaskQueue()->SetBlameContext(nullptr); } } // namespace @@ -268,8 +269,10 @@ main_thread_scheduler_->tick_clock()) : base::sequence_manager::LazyNow(base::TimeTicks::Now()); - if (cpu_time_budget_pool) - cpu_time_budget_pool->RemoveQueue(lazy_now.Now(), task_queue); + if (cpu_time_budget_pool) { + cpu_time_budget_pool->RemoveQueue(lazy_now.Now(), + task_queue->GetTaskQueue()); + } parent_page_scheduler_->RemoveQueueFromWakeUpBudgetPool( task_queue, frame_origin_type_, &lazy_now); @@ -536,7 +539,7 @@ scoped_refptr<MainThreadTaskQueue> task_queue = frame_task_queue_controller_->NewResourceLoadingTaskQueue(); resource_loading_task_queue_priorities_.insert( - task_queue, task_queue->GetQueuePriority()); + task_queue, task_queue->GetTaskQueue()->GetQueuePriority()); return ResourceLoadingTaskRunnerHandleImpl::WrapTaskRunner(task_queue); } @@ -840,8 +843,10 @@ for (const auto& task_queue_and_voter : frame_task_queue_controller_->GetAllTaskQueuesAndVoters()) { auto* task_queue = task_queue_and_voter.first; - if (task_queue->CanBeFrozen()) - task_queue->SetShouldReportPostedTasksWhenDisabled(should_report); + if (task_queue->CanBeFrozen()) { + task_queue->GetTaskQueue()->SetShouldReportPostedTasksWhenDisabled( + should_report); + } } } @@ -989,10 +994,10 @@ return; if (should_throttle) { main_thread_scheduler_->task_queue_throttler()->IncreaseThrottleRefCount( - task_queue); + task_queue->GetTaskQueue()); } else { main_thread_scheduler_->task_queue_throttler()->DecreaseThrottleRefCount( - task_queue); + task_queue->GetTaskQueue()); } } @@ -1212,7 +1217,7 @@ base::sequence_manager::TaskQueue::QueueEnabledVoter* voter) { DCHECK(parent_page_scheduler_); - task_queue->SetBlameContext(blame_context_); + task_queue->GetTaskQueue()->SetBlameContext(blame_context_); UpdateQueuePolicy(task_queue, voter); if (task_queue->CanBeThrottled()) { @@ -1222,7 +1227,8 @@ CPUTimeBudgetPool* cpu_time_budget_pool = parent_page_scheduler_->background_cpu_time_budget_pool(); if (cpu_time_budget_pool) { - cpu_time_budget_pool->AddQueue(lazy_now.Now(), task_queue); + cpu_time_budget_pool->AddQueue(lazy_now.Now(), + task_queue->GetTaskQueue()); } parent_page_scheduler_->AddQueueToWakeUpBudgetPool(
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc index eedb64bb..d602fee 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc
@@ -280,6 +280,7 @@ FrameSchedulerImpl::PausableTaskQueueTraits().SetPrioritisationType( prioritisation_type); GetTaskQueue(queue_traits) + ->GetTaskQueue() ->task_runner() ->PostTask(FROM_HERE, base::BindOnce(&AppendToVectorTestTask, run_order, @@ -317,7 +318,7 @@ } protected: - scoped_refptr<TaskQueue> throttleable_task_queue() { + scoped_refptr<MainThreadTaskQueue> throttleable_task_queue() { return throttleable_task_queue_; } @@ -333,43 +334,43 @@ queue_traits); } - scoped_refptr<TaskQueue> ThrottleableTaskQueue() { + scoped_refptr<MainThreadTaskQueue> ThrottleableTaskQueue() { return GetTaskQueue(FrameSchedulerImpl::ThrottleableTaskQueueTraits()); } - scoped_refptr<TaskQueue> JavaScriptTimerTaskQueue() { + scoped_refptr<MainThreadTaskQueue> JavaScriptTimerTaskQueue() { return GetTaskQueue( FrameSchedulerImpl::ThrottleableTaskQueueTraits().SetPrioritisationType( PrioritisationType::kJavaScriptTimer)); } - scoped_refptr<TaskQueue> JavaScriptTimerNonThrottleableTaskQueue() { + scoped_refptr<MainThreadTaskQueue> JavaScriptTimerNonThrottleableTaskQueue() { return GetTaskQueue( FrameSchedulerImpl::DeferrableTaskQueueTraits().SetPrioritisationType( PrioritisationType::kJavaScriptTimer)); } - scoped_refptr<TaskQueue> LoadingTaskQueue() { + scoped_refptr<MainThreadTaskQueue> LoadingTaskQueue() { return GetTaskQueue(FrameSchedulerImpl::LoadingTaskQueueTraits()); } - scoped_refptr<TaskQueue> LoadingControlTaskQueue() { + scoped_refptr<MainThreadTaskQueue> LoadingControlTaskQueue() { return GetTaskQueue(FrameSchedulerImpl::LoadingControlTaskQueueTraits()); } - scoped_refptr<TaskQueue> DeferrableTaskQueue() { + scoped_refptr<MainThreadTaskQueue> DeferrableTaskQueue() { return GetTaskQueue(FrameSchedulerImpl::DeferrableTaskQueueTraits()); } - scoped_refptr<TaskQueue> PausableTaskQueue() { + scoped_refptr<MainThreadTaskQueue> PausableTaskQueue() { return GetTaskQueue(FrameSchedulerImpl::PausableTaskQueueTraits()); } - scoped_refptr<TaskQueue> UnpausableTaskQueue() { + scoped_refptr<MainThreadTaskQueue> UnpausableTaskQueue() { return GetTaskQueue(FrameSchedulerImpl::UnpausableTaskQueueTraits()); } - scoped_refptr<TaskQueue> ForegroundOnlyTaskQueue() { + scoped_refptr<MainThreadTaskQueue> ForegroundOnlyTaskQueue() { return GetTaskQueue(FrameSchedulerImpl::ForegroundOnlyTaskQueueTraits()); } @@ -385,12 +386,13 @@ bool IsThrottled() { EXPECT_TRUE(throttleable_task_queue()); return scheduler_->task_queue_throttler()->IsThrottled( - throttleable_task_queue().get()); + throttleable_task_queue()->GetTaskQueue()); } bool IsTaskTypeThrottled(TaskType task_type) { scoped_refptr<MainThreadTaskQueue> task_queue = GetTaskQueue(task_type); - return scheduler_->task_queue_throttler()->IsThrottled(task_queue.get()); + return scheduler_->task_queue_throttler()->IsThrottled( + task_queue->GetTaskQueue()); } SchedulingLifecycleState CalculateLifecycleState( @@ -420,7 +422,7 @@ std::unique_ptr<FrameSchedulerImpl> frame_scheduler_; std::unique_ptr<testing::StrictMock<FrameSchedulerDelegateForTesting>> frame_scheduler_delegate_; - scoped_refptr<TaskQueue> throttleable_task_queue_; + scoped_refptr<MainThreadTaskQueue> throttleable_task_queue_; }; class FrameSchedulerImplStopNonTimersInBackgroundEnabledTest @@ -719,15 +721,15 @@ TEST_F(FrameSchedulerImplTest, PauseAndResume) { int counter = 0; - LoadingTaskQueue()->task_runner()->PostTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - DeferrableTaskQueue()->task_runner()->PostTask( + DeferrableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - PausableTaskQueue()->task_runner()->PostTask( + PausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); frame_scheduler_->SetPaused(true); @@ -744,27 +746,27 @@ } TEST_F(FrameSchedulerImplTest, PauseAndResumeForCooperativeScheduling) { - EXPECT_TRUE(LoadingTaskQueue()->IsQueueEnabled()); - EXPECT_TRUE(ThrottleableTaskQueue()->IsQueueEnabled()); - EXPECT_TRUE(DeferrableTaskQueue()->IsQueueEnabled()); - EXPECT_TRUE(PausableTaskQueue()->IsQueueEnabled()); - EXPECT_TRUE(UnpausableTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(LoadingTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(ThrottleableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(DeferrableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(PausableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(UnpausableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); frame_scheduler_->SetPreemptedForCooperativeScheduling( FrameOrWorkerScheduler::Preempted(true)); - EXPECT_FALSE(LoadingTaskQueue()->IsQueueEnabled()); - EXPECT_FALSE(ThrottleableTaskQueue()->IsQueueEnabled()); - EXPECT_FALSE(DeferrableTaskQueue()->IsQueueEnabled()); - EXPECT_FALSE(PausableTaskQueue()->IsQueueEnabled()); - EXPECT_FALSE(UnpausableTaskQueue()->IsQueueEnabled()); + EXPECT_FALSE(LoadingTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_FALSE(ThrottleableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_FALSE(DeferrableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_FALSE(PausableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_FALSE(UnpausableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); frame_scheduler_->SetPreemptedForCooperativeScheduling( FrameOrWorkerScheduler::Preempted(false)); - EXPECT_TRUE(LoadingTaskQueue()->IsQueueEnabled()); - EXPECT_TRUE(ThrottleableTaskQueue()->IsQueueEnabled()); - EXPECT_TRUE(DeferrableTaskQueue()->IsQueueEnabled()); - EXPECT_TRUE(PausableTaskQueue()->IsQueueEnabled()); - EXPECT_TRUE(UnpausableTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(LoadingTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(ThrottleableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(DeferrableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(PausableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); + EXPECT_TRUE(UnpausableTaskQueue()->GetTaskQueue()->IsQueueEnabled()); } namespace { @@ -931,7 +933,7 @@ TEST_F(FrameSchedulerImplTest, FreezeForegroundOnlyTasks) { int counter = 0; - ForegroundOnlyTaskQueue()->task_runner()->PostTask( + ForegroundOnlyTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); page_scheduler_->SetPageVisible(false); @@ -950,15 +952,15 @@ TEST_F(FrameSchedulerImplStopNonTimersInBackgroundEnabledTest, PageFreezeAndUnfreezeFlagEnabled) { int counter = 0; - LoadingTaskQueue()->task_runner()->PostTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - DeferrableTaskQueue()->task_runner()->PostTask( + DeferrableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - PausableTaskQueue()->task_runner()->PostTask( + PausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); page_scheduler_->SetPageVisible(false); @@ -980,15 +982,15 @@ TEST_F(FrameSchedulerImplStopNonTimersInBackgroundDisabledTest, PageFreezeAndUnfreezeFlagDisabled) { int counter = 0; - LoadingTaskQueue()->task_runner()->PostTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - DeferrableTaskQueue()->task_runner()->PostTask( + DeferrableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - PausableTaskQueue()->task_runner()->PostTask( + PausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); page_scheduler_->SetPageVisible(false); @@ -1010,13 +1012,13 @@ TEST_F(FrameSchedulerImplTest, PagePostsCpuTasks) { EXPECT_TRUE(GetTaskTime().is_zero()); EXPECT_EQ(0, GetTotalUpdateTaskTimeCalls()); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&RunTaskOfLength, &task_environment_, base::TimeDelta::FromMilliseconds(10))); base::RunLoop().RunUntilIdle(); EXPECT_FALSE(GetTaskTime().is_zero()); EXPECT_EQ(0, GetTotalUpdateTaskTimeCalls()); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&RunTaskOfLength, &task_environment_, base::TimeDelta::FromMilliseconds(100))); base::RunLoop().RunUntilIdle(); @@ -1050,7 +1052,7 @@ EXPECT_EQ(0, GetTotalUpdateTaskTimeCalls()); // Check the rest of the values after different types of commit. - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&RunTaskOfLength, &task_environment_, base::TimeDelta::FromMilliseconds(60))); base::RunLoop().RunUntilIdle(); @@ -1059,7 +1061,7 @@ DidCommitProvisionalLoad(test_case.navigation_type); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&RunTaskOfLength, &task_environment_, base::TimeDelta::FromMilliseconds(60))); base::RunLoop().RunUntilIdle(); @@ -1070,21 +1072,27 @@ TEST_F(FrameSchedulerImplTest, PageFreezeWithKeepActive) { Vector<String> tasks; - LoadingTaskQueue()->task_runner()->PostTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, - base::BindOnce(&RecordQueueName, LoadingTaskQueue()->GetName(), &tasks)); - ThrottleableTaskQueue()->task_runner()->PostTask( - FROM_HERE, base::BindOnce(&RecordQueueName, - ThrottleableTaskQueue()->GetName(), &tasks)); - DeferrableTaskQueue()->task_runner()->PostTask( - FROM_HERE, base::BindOnce(&RecordQueueName, - DeferrableTaskQueue()->GetName(), &tasks)); - PausableTaskQueue()->task_runner()->PostTask( + base::BindOnce(&RecordQueueName, + LoadingTaskQueue()->GetTaskQueue()->GetName(), &tasks)); + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, - base::BindOnce(&RecordQueueName, PausableTaskQueue()->GetName(), &tasks)); - UnpausableTaskQueue()->task_runner()->PostTask( - FROM_HERE, base::BindOnce(&RecordQueueName, - UnpausableTaskQueue()->GetName(), &tasks)); + base::BindOnce(&RecordQueueName, + ThrottleableTaskQueue()->GetTaskQueue()->GetName(), + &tasks)); + DeferrableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( + FROM_HERE, + base::BindOnce(&RecordQueueName, + DeferrableTaskQueue()->GetTaskQueue()->GetName(), &tasks)); + PausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( + FROM_HERE, + base::BindOnce(&RecordQueueName, + PausableTaskQueue()->GetTaskQueue()->GetName(), &tasks)); + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( + FROM_HERE, + base::BindOnce(&RecordQueueName, + UnpausableTaskQueue()->GetTaskQueue()->GetName(), &tasks)); page_scheduler_->SetKeepActive(true); // say we have a Service Worker page_scheduler_->SetPageVisible(false); @@ -1094,26 +1102,29 @@ base::RunLoop().RunUntilIdle(); // Everything runs except throttleable tasks (timers) EXPECT_THAT(tasks, - UnorderedElementsAre(String(LoadingTaskQueue()->GetName()), - String(DeferrableTaskQueue()->GetName()), - String(PausableTaskQueue()->GetName()), - String(UnpausableTaskQueue()->GetName()))); + UnorderedElementsAre( + String(LoadingTaskQueue()->GetTaskQueue()->GetName()), + String(DeferrableTaskQueue()->GetTaskQueue()->GetName()), + String(PausableTaskQueue()->GetTaskQueue()->GetName()), + String(UnpausableTaskQueue()->GetTaskQueue()->GetName()))); tasks.clear(); - LoadingTaskQueue()->task_runner()->PostTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, - base::BindOnce(&RecordQueueName, LoadingTaskQueue()->GetName(), &tasks)); + base::BindOnce(&RecordQueueName, + LoadingTaskQueue()->GetTaskQueue()->GetName(), &tasks)); EXPECT_THAT(tasks, UnorderedElementsAre()); base::RunLoop().RunUntilIdle(); // loading task runs - EXPECT_THAT(tasks, - UnorderedElementsAre(String(LoadingTaskQueue()->GetName()))); + EXPECT_THAT(tasks, UnorderedElementsAre(String( + LoadingTaskQueue()->GetTaskQueue()->GetName()))); tasks.clear(); - LoadingTaskQueue()->task_runner()->PostTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, - base::BindOnce(&RecordQueueName, LoadingTaskQueue()->GetName(), &tasks)); + base::BindOnce(&RecordQueueName, + LoadingTaskQueue()->GetTaskQueue()->GetName(), &tasks)); // KeepActive is false when Service Worker stops. page_scheduler_->SetKeepActive(false); EXPECT_THAT(tasks, UnorderedElementsAre()); @@ -1125,22 +1136,22 @@ EXPECT_THAT(tasks, UnorderedElementsAre()); base::RunLoop().RunUntilIdle(); // loading task runs - EXPECT_THAT(tasks, - UnorderedElementsAre(String(LoadingTaskQueue()->GetName()))); + EXPECT_THAT(tasks, UnorderedElementsAre(String( + LoadingTaskQueue()->GetTaskQueue()->GetName()))); } TEST_F(FrameSchedulerImplStopNonTimersInBackgroundEnabledTest, PageFreezeAndPageVisible) { int counter = 0; - LoadingTaskQueue()->task_runner()->PostTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - DeferrableTaskQueue()->task_runner()->PostTask( + DeferrableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - PausableTaskQueue()->task_runner()->PostTask( + PausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); page_scheduler_->SetPageVisible(false); @@ -1470,46 +1481,46 @@ TEST_F(LowPriorityBackgroundPageExperimentTest, FrameQueuesPriorities) { page_scheduler_->SetPageVisible(false); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); page_scheduler_->AudioStateChanged(true); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); page_scheduler_->AudioStateChanged(false); page_scheduler_->SetPageVisible(true); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1522,46 +1533,46 @@ TEST_F(BestEffortPriorityBackgroundPageExperimentTest, FrameQueuesPriorities) { page_scheduler_->SetPageVisible(false); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); page_scheduler_->AudioStateChanged(true); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); page_scheduler_->AudioStateChanged(false); page_scheduler_->SetPageVisible(true); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1575,32 +1586,32 @@ TEST_F(LowPriorityHiddenFrameExperimentTest, FrameQueuesPriorities) { // Hidden Frame Task Queues. frame_scheduler_->SetFrameVisible(false); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); // Visible Frame Task Queues. frame_scheduler_->SetFrameVisible(true); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1625,17 +1636,17 @@ // Hidden Frame Task Queues. frame_scheduler_->SetFrameVisible(false); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); // Main thread scheduler is no longer in loading use case. @@ -1643,17 +1654,17 @@ ASSERT_EQ(scheduler_->current_use_case(), UseCase::kNone); EXPECT_FALSE(page_scheduler_->IsLoading()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1666,17 +1677,17 @@ TEST_F(LowPrioritySubFrameExperimentTest, FrameQueuesPriorities) { // Sub-Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); frame_scheduler_ = @@ -1684,17 +1695,17 @@ FrameScheduler::FrameType::kMainFrame); // Main Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1717,17 +1728,17 @@ ASSERT_EQ(scheduler_->current_use_case(), UseCase::kLoading); // Sub-Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); // Main thread scheduler is no longer in loading use case. @@ -1736,17 +1747,17 @@ EXPECT_FALSE(page_scheduler_->IsLoading()); // Sub-Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1761,17 +1772,17 @@ TEST_F(LowPrioritySubFrameThrottleableTaskExperimentTest, FrameQueuesPriorities) { // Sub-Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); frame_scheduler_ = @@ -1779,17 +1790,17 @@ FrameScheduler::FrameType::kMainFrame); // Main Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1813,17 +1824,17 @@ ASSERT_EQ(scheduler_->current_use_case(), UseCase::kLoading); // Sub-Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); // Main thread scheduler is no longer in loading use case. @@ -1832,17 +1843,17 @@ EXPECT_FALSE(page_scheduler_->IsLoading()); // Sub-Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1856,17 +1867,17 @@ TEST_F(LowPriorityThrottleableTaskExperimentTest, FrameQueuesPriorities) { // Sub-Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); frame_scheduler_ = @@ -1874,17 +1885,17 @@ FrameScheduler::FrameType::kMainFrame); // Main Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1907,17 +1918,17 @@ main_frame_scheduler->OnFirstContentfulPaint(); ASSERT_EQ(scheduler_->current_use_case(), UseCase::kLoading); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); // Main thread is no longer in loading use case. @@ -1926,17 +1937,17 @@ EXPECT_FALSE(page_scheduler_->IsLoading()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1953,17 +1964,17 @@ frame_scheduler_->OnFirstContentfulPaint(); // Main Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); // Main thread is no longer in loading use case. @@ -1971,17 +1982,17 @@ EXPECT_FALSE(page_scheduler_->IsLoading()); // Main Frame Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -1995,34 +2006,34 @@ TEST_F(LowPriorityAdFrameExperimentTest, FrameQueuesPriorities) { EXPECT_FALSE(frame_scheduler_->IsAdFrame()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); frame_scheduler_->SetIsAdFrame(); EXPECT_TRUE(frame_scheduler_->IsAdFrame()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); } @@ -2048,17 +2059,17 @@ main_frame_scheduler->OnFirstContentfulPaint(); ASSERT_EQ(scheduler_->current_use_case(), UseCase::kLoading); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); // Main thread scheduler is no longer in loading use case. @@ -2067,17 +2078,17 @@ EXPECT_FALSE(page_scheduler_->IsLoading()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -2091,34 +2102,34 @@ TEST_F(BestEffortPriorityAdFrameExperimentTest, FrameQueuesPriorities) { EXPECT_FALSE(frame_scheduler_->IsAdFrame()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); frame_scheduler_->SetIsAdFrame(); EXPECT_TRUE(frame_scheduler_->IsAdFrame()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); } @@ -2145,17 +2156,17 @@ main_frame_scheduler->OnFirstContentfulPaint(); ASSERT_EQ(scheduler_->current_use_case(), UseCase::kLoading); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); // Main thread scheduler is no longer in loading use case. @@ -2164,17 +2175,17 @@ EXPECT_FALSE(page_scheduler_->IsLoading()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -2199,15 +2210,16 @@ GetResourceLoadingTaskRunnerHandleImpl(); scoped_refptr<MainThreadTaskQueue> task_queue = handle->task_queue(); - TaskQueue::QueuePriority priority = task_queue->GetQueuePriority(); + TaskQueue::QueuePriority priority = + task_queue->GetTaskQueue()->GetQueuePriority(); EXPECT_EQ(priority, TaskQueue::QueuePriority::kNormalPriority); DidChangeResourceLoadingPriority(task_queue, net::RequestPriority::LOWEST); - EXPECT_EQ(task_queue->GetQueuePriority(), + EXPECT_EQ(task_queue->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); DidChangeResourceLoadingPriority(task_queue, net::RequestPriority::HIGHEST); - EXPECT_EQ(task_queue->GetQueuePriority(), + EXPECT_EQ(task_queue->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); } @@ -2238,12 +2250,12 @@ GetResourceLoadingTaskRunnerHandleImpl(); scoped_refptr<MainThreadTaskQueue> task_queue = handle->task_queue(); - EXPECT_EQ(task_queue->GetQueuePriority(), + EXPECT_EQ(task_queue->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); // Experiment is only enabled during the loading phase. DidChangeResourceLoadingPriority(task_queue, net::RequestPriority::LOWEST); - EXPECT_EQ(task_queue->GetQueuePriority(), + EXPECT_EQ(task_queue->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); // Main thread scheduler is in the loading use case. @@ -2254,11 +2266,11 @@ task_queue = handle->task_queue(); DidChangeResourceLoadingPriority(task_queue, net::RequestPriority::LOWEST); - EXPECT_EQ(task_queue->GetQueuePriority(), + EXPECT_EQ(task_queue->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); DidChangeResourceLoadingPriority(task_queue, net::RequestPriority::HIGHEST); - EXPECT_EQ(task_queue->GetQueuePriority(), + EXPECT_EQ(task_queue->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); } @@ -2272,13 +2284,14 @@ GetResourceLoadingTaskRunnerHandleImpl(); scoped_refptr<MainThreadTaskQueue> task_queue = handle->task_queue(); - TaskQueue::QueuePriority priority = task_queue->GetQueuePriority(); + TaskQueue::QueuePriority priority = + task_queue->GetTaskQueue()->GetQueuePriority(); DidChangeResourceLoadingPriority(task_queue, net::RequestPriority::LOW); - EXPECT_EQ(task_queue->GetQueuePriority(), priority); + EXPECT_EQ(task_queue->GetTaskQueue()->GetQueuePriority(), priority); DidChangeResourceLoadingPriority(task_queue, net::RequestPriority::HIGHEST); - EXPECT_EQ(task_queue->GetQueuePriority(), priority); + EXPECT_EQ(task_queue->GetTaskQueue()->GetQueuePriority(), priority); } class LowPriorityCrossOriginTaskExperimentTest : public FrameSchedulerImplTest { @@ -2291,33 +2304,33 @@ EXPECT_FALSE(frame_scheduler_->IsCrossOriginToMainFrame()); // Same Origin Task Queues. - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); frame_scheduler_->SetCrossOriginToMainFrame(true); EXPECT_TRUE(frame_scheduler_->IsCrossOriginToMainFrame()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); } @@ -2340,33 +2353,33 @@ main_frame_scheduler->OnFirstContentfulPaint(); ASSERT_EQ(scheduler_->current_use_case(), UseCase::kLoading); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); frame_scheduler_->SetCrossOriginToMainFrame(true); EXPECT_TRUE(frame_scheduler_->IsCrossOriginToMainFrame()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kLowPriority); // Main thread is no longer in loading use case. @@ -2374,17 +2387,17 @@ ASSERT_EQ(scheduler_->current_use_case(), UseCase::kNone); EXPECT_FALSE(page_scheduler_->IsLoading()); - EXPECT_EQ(LoadingTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(LoadingControlTaskQueue()->GetQueuePriority(), + EXPECT_EQ(LoadingControlTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); - EXPECT_EQ(DeferrableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(DeferrableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(ThrottleableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(ThrottleableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(PausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(PausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); - EXPECT_EQ(UnpausableTaskQueue()->GetQueuePriority(), + EXPECT_EQ(UnpausableTaskQueue()->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -2445,7 +2458,7 @@ auto da_queue = GetTaskQueue(TaskType::kDatabaseAccess); EXPECT_EQ(da_queue->GetQueueTraits().prioritisation_type, MainThreadTaskQueue::QueueTraits::PrioritisationType::kRegular); - EXPECT_EQ(da_queue->GetQueuePriority(), + EXPECT_EQ(da_queue->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -2461,7 +2474,7 @@ EXPECT_EQ(da_queue->GetQueueTraits().prioritisation_type, MainThreadTaskQueue::QueueTraits::PrioritisationType:: kExperimentalDatabase); - EXPECT_EQ(da_queue->GetQueuePriority(), + EXPECT_EQ(da_queue->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kHighPriority); } @@ -2488,7 +2501,7 @@ auto task_queue = GetTaskQueue(TaskType::kInternalContentCapture); EXPECT_EQ(TaskQueue::QueuePriority::kBestEffortPriority, - task_queue->GetQueuePriority()); + task_queue->GetTaskQueue()->GetQueuePriority()); } TEST_F(FrameSchedulerImplTest, ComputePriorityForDetachedFrame) {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc index 7f982b86..ced5549 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc
@@ -113,7 +113,7 @@ DCHECK(task_queue); std::unique_ptr<QueueEnabledVoter> voter = - task_queue->CreateQueueEnabledVoter(); + task_queue->GetTaskQueue()->CreateQueueEnabledVoter(); delegate_->OnTaskQueueCreated(task_queue.get(), voter.get());
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator.cc b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator.cc index 93b1d0f..ad03fa3 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator.cc
@@ -10,8 +10,7 @@ namespace scheduler { IdleTimeEstimator::IdleTimeEstimator( - const scoped_refptr<base::sequence_manager::TaskQueue>& - compositor_task_runner, + const scoped_refptr<MainThreadTaskQueue>& compositor_task_runner, const base::TickClock* time_source, int sample_count, double estimation_percentile) @@ -21,11 +20,11 @@ estimation_percentile_(estimation_percentile), nesting_level_(0), did_commit_(false) { - compositor_task_queue_->AddTaskObserver(this); + compositor_task_queue_->GetTaskQueue()->AddTaskObserver(this); } IdleTimeEstimator::~IdleTimeEstimator() { - compositor_task_queue_->RemoveTaskObserver(this); + compositor_task_queue_->GetTaskQueue()->RemoveTaskObserver(this); } base::TimeDelta IdleTimeEstimator::GetExpectedIdleDuration(
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator.h b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator.h index d83e5889..db4b01b 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator.h
@@ -6,11 +6,11 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_IDLE_TIME_ESTIMATOR_H_ #include "base/macros.h" -#include "base/task/sequence_manager/task_queue.h" #include "base/task/task_observer.h" #include "base/time/tick_clock.h" #include "cc/base/rolling_time_delta_history.h" #include "third_party/blink/renderer/platform/platform_export.h" +#include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h" namespace blink { namespace scheduler { @@ -18,11 +18,11 @@ // Estimates how much idle time there is available. Ignores nested tasks. class PLATFORM_EXPORT IdleTimeEstimator : public base::TaskObserver { public: - IdleTimeEstimator(const scoped_refptr<base::sequence_manager::TaskQueue>& - compositor_task_runner, - const base::TickClock* time_source, - int sample_count, - double estimation_percentile); + IdleTimeEstimator( + const scoped_refptr<MainThreadTaskQueue>& compositor_task_runner, + const base::TickClock* time_source, + int sample_count, + double estimation_percentile); ~IdleTimeEstimator() override; @@ -41,7 +41,7 @@ void DidProcessTask(const base::PendingTask& pending_task) override; private: - scoped_refptr<base::sequence_manager::TaskQueue> compositor_task_queue_; + scoped_refptr<MainThreadTaskQueue> compositor_task_queue_; cc::RollingTimeDeltaHistory per_frame_compositor_task_runtime_; const base::TickClock* time_source_; // NOT OWNED double estimation_percentile_;
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc index 5861836..47d40f3 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc
@@ -8,13 +8,13 @@ #include "base/memory/scoped_refptr.h" #include "base/task/sequence_manager/sequence_manager.h" -#include "base/task/sequence_manager/task_queue.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h" #include "base/task/sequence_manager/test/test_task_queue.h" #include "base/task/sequence_manager/test/test_task_time_observer.h" #include "base/test/task_environment.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h" namespace blink { namespace scheduler { @@ -22,8 +22,7 @@ class IdleTimeEstimatorForTest : public IdleTimeEstimator { public: IdleTimeEstimatorForTest( - const scoped_refptr<base::sequence_manager::TaskQueue>& - compositor_task_runner, + const scoped_refptr<MainThreadTaskQueue>& compositor_task_runner, const base::TickClock* clock, int sample_count, double estimation_percentile) @@ -48,9 +47,11 @@ nullptr, task_environment_.GetMainThreadTaskRunner(), task_environment_.GetMockTickClock()); compositor_task_queue_ = - manager_ - ->CreateTaskQueueWithType<base::sequence_manager::TestTaskQueue>( - base::sequence_manager::TaskQueue::Spec("test_tq")); + manager_->CreateTaskQueueWithType<MainThreadTaskQueue>( + base::sequence_manager::TaskQueue::Spec("test_tq"), + MainThreadTaskQueue::QueueCreationParams( + MainThreadTaskQueue::QueueType::kCompositor), + nullptr); estimator_.reset(new IdleTimeEstimatorForTest( compositor_task_queue_, task_environment_.GetMockTickClock(), 10, 50)); } @@ -89,7 +90,7 @@ base::test::TaskEnvironment task_environment_; std::unique_ptr<base::sequence_manager::SequenceManager> manager_; - scoped_refptr<base::sequence_manager::TaskQueue> compositor_task_queue_; + scoped_refptr<MainThreadTaskQueue> compositor_task_queue_; std::unique_ptr<IdleTimeEstimatorForTest> estimator_; const base::TimeDelta frame_length_; base::sequence_manager::TestTaskTimeObserver test_task_time_observer_;
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc index e146883..dd2bea55 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc
@@ -567,7 +567,7 @@ UMA_HISTOGRAM_ENUMERATION( "RendererScheduler.ResourceLoadingTaskCountPerPriority", - queue->GetQueuePriority(), + queue->GetTaskQueue()->GetQueuePriority(), base::sequence_manager::TaskQueue::QueuePriority::kQueuePriorityCount); } }
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_helper.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_helper.cc index 4bec7b6..2467e4e 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_helper.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_helper.cc
@@ -24,7 +24,8 @@ NewTaskQueue(MainThreadTaskQueue::QueueCreationParams( MainThreadTaskQueue::QueueType::kControl) .SetShouldNotifyObservers(false))) { - InitDefaultQueues(default_task_queue_, control_task_queue_, + InitDefaultQueues(default_task_queue_->GetTaskQueue(), + control_task_queue_->GetTaskQueue(), TaskType::kMainThreadTaskQueueDefault); sequence_manager_->EnableCrashKeys("blink_scheduler_async_stack"); } @@ -40,7 +41,7 @@ } scoped_refptr<TaskQueue> MainThreadSchedulerHelper::DefaultTaskQueue() { - return default_task_queue_; + return default_task_queue_->GetTaskQueue(); } scoped_refptr<MainThreadTaskQueue> @@ -49,7 +50,7 @@ } scoped_refptr<TaskQueue> MainThreadSchedulerHelper::ControlTaskQueue() { - return control_task_queue_; + return control_task_queue_->GetTaskQueue(); } scoped_refptr<base::SingleThreadTaskRunner>
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc index 34b36e20..9290b8d 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
@@ -210,16 +210,16 @@ base::Optional<base::Time> initial_virtual_time) : sequence_manager_(std::move(sequence_manager)), helper_(sequence_manager_.get(), this), - idle_helper_( - &helper_, - this, - "MainThreadSchedulerIdlePeriod", - base::TimeDelta(), - helper_.NewTaskQueue( - MainThreadTaskQueue::QueueCreationParams( - MainThreadTaskQueue::QueueType::kIdle) - .SetPrioritisationType(MainThreadTaskQueue::QueueTraits:: - PrioritisationType::kBestEffort))), + idle_helper_queue_(helper_.NewTaskQueue( + MainThreadTaskQueue::QueueCreationParams( + MainThreadTaskQueue::QueueType::kIdle) + .SetPrioritisationType(MainThreadTaskQueue::QueueTraits:: + PrioritisationType::kBestEffort))), + idle_helper_(&helper_, + this, + "MainThreadSchedulerIdlePeriod", + base::TimeDelta(), + idle_helper_queue_->GetTaskQueue()), render_widget_scheduler_signals_(this), find_in_page_budget_pool_controller_( new FindInPageBudgetPoolController(this)), @@ -231,7 +231,7 @@ .SetPrioritisationType(MainThreadTaskQueue::QueueTraits:: PrioritisationType::kCompositor))), compositor_task_queue_enabled_voter_( - compositor_task_queue_->CreateQueueEnabledVoter()), + compositor_task_queue_->GetTaskQueue()->CreateQueueEnabledVoter()), memory_purge_task_queue_(helper_.NewTaskQueue( MainThreadTaskQueue::QueueCreationParams( MainThreadTaskQueue::QueueType::kIdle) @@ -255,8 +255,9 @@ // Compositor task queue and default task queue should be managed by // WebThreadScheduler. Control task queue should not. task_runners_.emplace(helper_.DefaultMainThreadTaskQueue(), nullptr); - task_runners_.emplace(compositor_task_queue_, - compositor_task_queue_->CreateQueueEnabledVoter()); + task_runners_.emplace( + compositor_task_queue_, + compositor_task_queue_->GetTaskQueue()->CreateQueueEnabledVoter()); RegisterTimeDomain(&non_waking_time_domain_); @@ -327,7 +328,7 @@ // Explicitly set the priority of this queue since it is not managed by // the main thread scheduler. - memory_purge_task_queue_->SetQueuePriority( + memory_purge_task_queue_->GetTaskQueue()->SetQueuePriority( ComputePriority(memory_purge_task_queue_.get())); } @@ -692,7 +693,7 @@ scoped_refptr<base::SingleThreadTaskRunner> MainThreadSchedulerImpl::VirtualTimeControlTaskRunner() { - return virtual_time_control_task_queue_->task_runner(); + return virtual_time_control_task_queue_->GetTaskQueue()->task_runner(); } scoped_refptr<MainThreadTaskQueue> @@ -728,7 +729,7 @@ std::unique_ptr<TaskQueue::QueueEnabledVoter> voter; if (params.queue_traits.can_be_deferred || params.queue_traits.can_be_paused || params.queue_traits.can_be_frozen) { - voter = task_queue->CreateQueueEnabledVoter(); + voter = task_queue->GetTaskQueue()->CreateQueueEnabledVoter(); } auto insert_result = task_runners_.emplace(task_queue, std::move(voter)); @@ -743,7 +744,8 @@ if (main_thread_only().virtual_time_stopped && main_thread_only().use_virtual_time && !task_queue->CanRunWhenVirtualTimePaused()) { - task_queue->InsertFence(TaskQueue::InsertFencePosition::kNow); + task_queue->GetTaskQueue()->InsertFence( + TaskQueue::InsertFencePosition::kNow); } return task_queue; @@ -775,6 +777,12 @@ .SetCanRunWhenVirtualTimePaused(false)); } +scoped_refptr<base::sequence_manager::TaskQueue> +MainThreadSchedulerImpl::NewTaskQueueForTest() { + return sequence_manager_->CreateTaskQueue( + base::sequence_manager::TaskQueue::Spec("test")); +} + std::unique_ptr<WebRenderWidgetSchedulingState> MainThreadSchedulerImpl::NewRenderWidgetSchedulingState() { return render_widget_scheduler_signals_.NewRenderWidgetSchedulingState(); @@ -786,7 +794,7 @@ return; if (task_queue_throttler_) - task_queue_throttler_->ShutdownTaskQueue(task_queue.get()); + task_queue_throttler_->ShutdownTaskQueue(task_queue->GetTaskQueue()); task_runners_.erase(task_queue.get()); } @@ -903,7 +911,7 @@ // hidden. base::TimeDelta end_idle_when_hidden_delay = base::TimeDelta::FromMilliseconds(kEndIdleWhenHiddenDelayMillis); - control_task_queue_->task_runner()->PostDelayedTask( + control_task_queue_->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, end_renderer_hidden_idle_period_closure_.GetCallback(), end_idle_when_hidden_delay); main_thread_only().renderer_hidden = true; @@ -1246,7 +1254,7 @@ !notify_agent_strategy_task_posted_.IsSet() && agent_scheduling_strategy_->ShouldNotifyOnInputEvent()) { notify_agent_strategy_task_posted_.SetWhileLocked(true); - control_task_queue_->task_runner()->PostTask( + control_task_queue_->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, notify_agent_strategy_on_input_event_closure_); } @@ -1350,7 +1358,8 @@ case UseCase::kMainThreadGesture: case UseCase::kMainThreadCustomInputHandling: case UseCase::kSynchronizedGesture: - return compositor_task_queue_->HasTaskToRunImmediately() || + return compositor_task_queue_->GetTaskQueue() + ->HasTaskToRunImmediately() || main_thread_only().blocking_input_expected_soon; case UseCase::kTouchstart: @@ -1395,8 +1404,8 @@ any_thread_lock_.AssertAcquired(); if (!policy_may_need_update_.IsSet()) { policy_may_need_update_.SetWhileLocked(true); - control_task_queue_->task_runner()->PostTask(from_here, - update_policy_closure_); + control_task_queue_->GetTaskQueue()->task_runner()->PostTask( + from_here, update_policy_closure_); } } @@ -1612,7 +1621,7 @@ const Policy& new_policy, bool should_update_priority) const { if (should_update_priority) - task_queue->SetQueuePriority(ComputePriority(task_queue)); + task_queue->GetTaskQueue()->SetQueuePriority(ComputePriority(task_queue)); if (task_queue_enabled_voter) { bool is_enabled_for_agent = @@ -1631,9 +1640,9 @@ if (old_time_domain_type != new_time_domain_type) { if (new_time_domain_type == TimeDomainType::kVirtual) { DCHECK(virtual_time_domain_); - task_queue->SetTimeDomain(virtual_time_domain_.get()); + task_queue->GetTaskQueue()->SetTimeDomain(virtual_time_domain_.get()); } else { - task_queue->SetTimeDomain(real_time_domain()); + task_queue->GetTaskQueue()->SetTimeDomain(real_time_domain()); } } } @@ -1773,9 +1782,10 @@ virtual_time_control_task_queue_ = helper_.NewTaskQueue(MainThreadTaskQueue::QueueCreationParams( MainThreadTaskQueue::QueueType::kControl)); - virtual_time_control_task_queue_->SetQueuePriority( + virtual_time_control_task_queue_->GetTaskQueue()->SetQueuePriority( TaskQueue::kControlPriority); - virtual_time_control_task_queue_->SetTimeDomain(virtual_time_domain_.get()); + virtual_time_control_task_queue_->GetTaskQueue()->SetTimeDomain( + virtual_time_domain_.get()); main_thread_only().use_virtual_time = true; ForceUpdatePolicy(); @@ -1841,8 +1851,9 @@ for (const auto& pair : task_runners_) { if (pair.first->CanRunWhenVirtualTimePaused()) continue; - DCHECK(!task_queue_throttler_->IsThrottled(pair.first.get())); - pair.first->InsertFence(TaskQueue::InsertFencePosition::kNow); + DCHECK(!task_queue_throttler_->IsThrottled(pair.first->GetTaskQueue())); + pair.first->GetTaskQueue()->InsertFence( + TaskQueue::InsertFencePosition::kNow); } } @@ -1850,9 +1861,9 @@ for (const auto& pair : task_runners_) { if (pair.first->CanRunWhenVirtualTimePaused()) continue; - DCHECK(!task_queue_throttler_->IsThrottled(pair.first.get())); - DCHECK(pair.first->HasActiveFence()); - pair.first->RemoveFence(); + DCHECK(!task_queue_throttler_->IsThrottled(pair.first->GetTaskQueue())); + DCHECK(pair.first->GetTaskQueue()->HasActiveFence()); + pair.first->GetTaskQueue()->RemoveFence(); } } @@ -2128,7 +2139,7 @@ // called) at any moment, including in the middle of allocating an object, // when state is not consistent. Posting a task to dispatch notifications // minimizes the amount of code that runs and sees an inconsistent state . - control_task_queue_->task_runner()->PostTask( + control_task_queue_->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce( &MainThreadSchedulerImpl::DispatchRequestBeginMainFrameNotExpected, @@ -2263,11 +2274,11 @@ // // TODO(altimin): automatically enter top-level for all task queues associated // with renderer scheduler which do not have a corresponding frame. - control_task_queue_->SetBlameContext(blame_context); - DefaultTaskQueue()->SetBlameContext(blame_context); - compositor_task_queue_->SetBlameContext(blame_context); + control_task_queue_->GetTaskQueue()->SetBlameContext(blame_context); + DefaultTaskQueue()->GetTaskQueue()->SetBlameContext(blame_context); + compositor_task_queue_->GetTaskQueue()->SetBlameContext(blame_context); idle_helper_.IdleTaskRunner()->SetBlameContext(blame_context); - v8_task_queue_->SetBlameContext(blame_context); + v8_task_queue_->GetTaskQueue()->SetBlameContext(blame_context); } void MainThreadSchedulerImpl::AddRAILModeObserver(RAILModeObserver* observer) { @@ -2508,9 +2519,9 @@ : base::nullopt}; main_thread_only().task_priority_for_tracing = - queue - ? base::Optional<TaskQueue::QueuePriority>(queue->GetQueuePriority()) - : base::nullopt; + queue ? base::Optional<TaskQueue::QueuePriority>( + queue->GetTaskQueue()->GetQueuePriority()) + : base::nullopt; } void MainThreadSchedulerImpl::OnTaskCompleted( @@ -2536,8 +2547,9 @@ DispatchOnTaskCompletionCallbacks(); if (queue) { - task_queue_throttler()->OnTaskRunTimeReported( - queue.get(), task_timing->start_time(), task_timing->end_time()); + task_queue_throttler()->OnTaskRunTimeReported(queue->GetTaskQueue(), + task_timing->start_time(), + task_timing->end_time()); } // TODO(altimin): Per-page metrics should also be considered. @@ -2787,7 +2799,7 @@ void MainThreadSchedulerImpl::UpdateCompositorTaskQueuePriority() { main_thread_only().compositor_priority = ComputeCompositorPriority(); - CompositorTaskQueue()->SetQueuePriority( + CompositorTaskQueue()->GetTaskQueue()->SetQueuePriority( ComputePriority(CompositorTaskQueue().get())); }
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h index 38627685..e17eb509 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
@@ -278,6 +278,8 @@ scoped_refptr<MainThreadTaskQueue> NewThrottleableTaskQueueForTest( FrameSchedulerImpl* frame_scheduler); + scoped_refptr<base::sequence_manager::TaskQueue> NewTaskQueueForTest(); + using VirtualTimePolicy = PageScheduler::VirtualTimePolicy; using BaseTimeOverridePolicy = @@ -783,6 +785,7 @@ std::unique_ptr<base::sequence_manager::SequenceManager> sequence_manager_; MainThreadSchedulerHelper helper_; + scoped_refptr<MainThreadTaskQueue> idle_helper_queue_; IdleHelper idle_helper_; std::unique_ptr<TaskQueueThrottler> task_queue_throttler_; RenderWidgetSignals render_widget_scheduler_signals_;
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc index 7daa88b78..b0d3581 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc
@@ -441,10 +441,12 @@ scheduler_->use_cases_.clear(); } - default_task_runner_ = scheduler_->DefaultTaskQueue()->task_runner(); - compositor_task_runner_ = scheduler_->CompositorTaskQueue()->task_runner(); + default_task_runner_ = + scheduler_->DefaultTaskQueue()->GetTaskQueue()->task_runner(); + compositor_task_runner_ = + scheduler_->CompositorTaskQueue()->GetTaskQueue()->task_runner(); idle_task_runner_ = scheduler_->IdleTaskRunner(); - v8_task_runner_ = scheduler_->V8TaskQueue()->task_runner(); + v8_task_runner_ = scheduler_->V8TaskQueue()->GetTaskQueue()->task_runner(); agent_group_scheduler_ = scheduler_->CreateAgentGroupScheduler(); page_scheduler_ = std::make_unique<NiceMock<MockPageSchedulerImpl>>( @@ -461,22 +463,24 @@ main_frame_scheduler_->FrameTaskQueueControllerForTest() ->GetTaskQueue( main_frame_scheduler_->LoadingControlTaskQueueTraits()) + ->GetTaskQueue() ->task_runner(); - throttleable_task_runner_ = throttleable_task_queue()->task_runner(); + throttleable_task_runner_ = + throttleable_task_queue()->GetTaskQueue()->task_runner(); find_in_page_task_runner_ = main_frame_scheduler_->GetTaskRunner( blink::TaskType::kInternalFindInPage); prioritised_local_frame_task_runner_ = main_frame_scheduler_->GetTaskRunner( blink::TaskType::kInternalHighPriorityLocalFrame); } - TaskQueue* loading_task_queue() { + MainThreadTaskQueue* loading_task_queue() { auto queue_traits = FrameSchedulerImpl::LoadingTaskQueueTraits(); return main_frame_scheduler_->FrameTaskQueueControllerForTest() ->GetTaskQueue(queue_traits) .get(); } - TaskQueue* throttleable_task_queue() { + MainThreadTaskQueue* throttleable_task_queue() { auto* frame_task_queue_controller = main_frame_scheduler_->FrameTaskQueueControllerForTest(); return frame_task_queue_controller @@ -827,7 +831,7 @@ String::FromUTF8(task))); break; case 'L': - loading_task_queue()->task_runner()->PostTask( + loading_task_queue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&AppendToVectorTestTask, run_order, String::FromUTF8(task))); break; @@ -922,7 +926,7 @@ &MainThreadSchedulerImpl::UseCaseToString); } - static scoped_refptr<TaskQueue> ThrottleableTaskQueue( + static scoped_refptr<MainThreadTaskQueue> ThrottleableTaskQueue( FrameSchedulerImpl* scheduler) { auto* frame_task_queue_controller = scheduler->FrameTaskQueueControllerForTest(); @@ -930,15 +934,7 @@ return frame_task_queue_controller->GetTaskQueue(queue_traits); } - static scoped_refptr<TaskQueue> ForegroundOnlyTaskQueue( - FrameSchedulerImpl* scheduler) { - auto* frame_task_queue_controller = - scheduler->FrameTaskQueueControllerForTest(); - auto queue_traits = FrameSchedulerImpl::ForegroundOnlyTaskQueueTraits(); - return frame_task_queue_controller->GetTaskQueue(queue_traits); - } - - static scoped_refptr<TaskQueue> QueueForTaskType( + static scoped_refptr<MainThreadTaskQueue> QueueForTaskType( FrameSchedulerImpl* scheduler, TaskType task_type) { return scheduler->GetTaskQueue(task_type); @@ -1116,7 +1112,7 @@ // Post a task which simulates running until after the previous end idle // period delayed task was scheduled for - scheduler_->DefaultTaskQueue()->task_runner()->PostTask( + scheduler_->DefaultTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(NullTask)); test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(300)); EXPECT_EQ(1, run_count); // We should still be in the new idle period. @@ -2489,7 +2485,7 @@ auto pause_handle = scheduler_->PauseRenderer(); base::RunLoop().RunUntilIdle(); scheduler_->task_queue_throttler()->IncreaseThrottleRefCount( - throttleable_task_queue()); + throttleable_task_queue()->GetTaskQueue()); base::RunLoop().RunUntilIdle(); EXPECT_THAT(run_order, testing::ElementsAre()); } @@ -2499,7 +2495,7 @@ PostTestTasks(&run_order, "T1 T2"); scheduler_->task_queue_throttler()->IncreaseThrottleRefCount( - throttleable_task_queue()); + throttleable_task_queue()->GetTaskQueue()); base::RunLoop().RunUntilIdle(); auto pause_handle = scheduler_->PauseRenderer(); base::RunLoop().RunUntilIdle(); @@ -2760,7 +2756,8 @@ bool expect_queue_enabled = (i == 0) || (Now() > first_throttled_run_time); if (paused) expect_queue_enabled = false; - EXPECT_EQ(expect_queue_enabled, throttleable_task_queue()->IsQueueEnabled()) + EXPECT_EQ(expect_queue_enabled, + throttleable_task_queue()->GetTaskQueue()->IsQueueEnabled()) << "i = " << i; // After we've run any expensive tasks suspend the queue. The throttling @@ -2807,7 +2804,8 @@ base::RunLoop().RunUntilIdle(); EXPECT_EQ(UseCase::kSynchronizedGesture, CurrentUseCase()) << "i = " << i; - EXPECT_TRUE(throttleable_task_queue()->IsQueueEnabled()) << "i = " << i; + EXPECT_TRUE(throttleable_task_queue()->GetTaskQueue()->IsQueueEnabled()) + << "i = " << i; } // Task is not throttled. @@ -2884,8 +2882,9 @@ // Throttleable tasks should not have been starved by the expensive compositor // tasks. - EXPECT_EQ(TaskQueue::kNormalPriority, - scheduler_->CompositorTaskQueue()->GetQueuePriority()); + EXPECT_EQ( + TaskQueue::kNormalPriority, + scheduler_->CompositorTaskQueue()->GetTaskQueue()->GetQueuePriority()); EXPECT_EQ(1000u, run_order.size()); } @@ -2926,8 +2925,9 @@ // Throttleable tasks should not have been starved by the expensive compositor // tasks. - EXPECT_EQ(TaskQueue::kNormalPriority, - scheduler_->CompositorTaskQueue()->GetQueuePriority()); + EXPECT_EQ( + TaskQueue::kNormalPriority, + scheduler_->CompositorTaskQueue()->GetTaskQueue()->GetQueuePriority()); EXPECT_EQ(1000u, run_order.size()); } @@ -2966,8 +2966,9 @@ EXPECT_EQ(UseCase::kMainThreadGesture, CurrentUseCase()) << "i = " << i; } - EXPECT_EQ(TaskQueue::kHighestPriority, - scheduler_->CompositorTaskQueue()->GetQueuePriority()); + EXPECT_EQ( + TaskQueue::kHighestPriority, + scheduler_->CompositorTaskQueue()->GetTaskQueue()->GetQueuePriority()); EXPECT_EQ(279u, run_order.size()); } @@ -3069,7 +3070,8 @@ // Ensure neither suspension nor throttleable task throttling affects an // unthrottled task runner. SimulateCompositorGestureStart(TouchEventPolicy::kSendTouchStart); - scoped_refptr<TaskQueue> unthrottled_task_queue = NewUnpausableTaskQueue(); + scoped_refptr<MainThreadTaskQueue> unthrottled_task_queue = + NewUnpausableTaskQueue(); size_t throttleable_count = 0; size_t unthrottled_count = 0; @@ -3077,10 +3079,10 @@ FROM_HERE, base::BindOnce(SlowCountingTask, &throttleable_count, test_task_runner_, 7, throttleable_task_runner_)); - unthrottled_task_queue->task_runner()->PostTask( + unthrottled_task_queue->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(SlowCountingTask, &unthrottled_count, test_task_runner_, 7, - unthrottled_task_queue->task_runner())); + unthrottled_task_queue->GetTaskQueue()->task_runner())); auto handle = scheduler_->PauseRenderer(); for (int i = 0; i < 1000; i++) { @@ -3116,7 +3118,7 @@ PageSchedulerImpl::VirtualTimePolicy::kPause); scoped_refptr<MainThreadTaskQueue> throttleable_tq = scheduler_->NewThrottleableTaskQueueForTest(nullptr); - EXPECT_FALSE(throttleable_tq->HasActiveFence()); + EXPECT_FALSE(throttleable_tq->GetTaskQueue()->HasActiveFence()); } TEST_F(MainThreadSchedulerImplTest, EnableVirtualTime) { @@ -3127,50 +3129,57 @@ scoped_refptr<MainThreadTaskQueue> loading_tq = scheduler_->NewLoadingTaskQueue( MainThreadTaskQueue::QueueType::kFrameLoading, nullptr); - scoped_refptr<TaskQueue> loading_control_tq = scheduler_->NewLoadingTaskQueue( - MainThreadTaskQueue::QueueType::kFrameLoadingControl, nullptr); + scoped_refptr<MainThreadTaskQueue> loading_control_tq = + scheduler_->NewLoadingTaskQueue( + MainThreadTaskQueue::QueueType::kFrameLoadingControl, nullptr); scoped_refptr<MainThreadTaskQueue> throttleable_tq = scheduler_->NewThrottleableTaskQueueForTest(nullptr); scoped_refptr<MainThreadTaskQueue> unthrottled_tq = NewUnpausableTaskQueue(); - EXPECT_EQ(scheduler_->DefaultTaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->DefaultTaskQueue()->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ(scheduler_->CompositorTaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->CompositorTaskQueue()->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ(loading_task_queue()->GetTimeDomain(), + EXPECT_EQ(loading_task_queue()->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ(throttleable_task_queue()->GetTimeDomain(), + EXPECT_EQ(throttleable_task_queue()->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ(scheduler_->VirtualTimeControlTaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->VirtualTimeControlTaskQueue() + ->GetTaskQueue() + ->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ(scheduler_->V8TaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->V8TaskQueue()->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); // The main control task queue remains in the real time domain. - EXPECT_EQ(scheduler_->ControlTaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->ControlTaskQueue()->GetTaskQueue()->GetTimeDomain(), scheduler_->real_time_domain()); - EXPECT_EQ(loading_tq->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ(loading_control_tq->GetTimeDomain(), + EXPECT_EQ(loading_tq->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ(throttleable_tq->GetTimeDomain(), + EXPECT_EQ(loading_control_tq->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ(unthrottled_tq->GetTimeDomain(), + EXPECT_EQ(throttleable_tq->GetTaskQueue()->GetTimeDomain(), + scheduler_->GetVirtualTimeDomain()); + EXPECT_EQ(unthrottled_tq->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); EXPECT_EQ(scheduler_ ->NewLoadingTaskQueue( MainThreadTaskQueue::QueueType::kFrameLoading, nullptr) + ->GetTaskQueue() ->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ( - scheduler_->NewThrottleableTaskQueueForTest(nullptr)->GetTimeDomain(), - scheduler_->GetVirtualTimeDomain()); - EXPECT_EQ(NewUnpausableTaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->NewThrottleableTaskQueueForTest(nullptr) + ->GetTaskQueue() + ->GetTimeDomain(), + scheduler_->GetVirtualTimeDomain()); + EXPECT_EQ(NewUnpausableTaskQueue()->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); EXPECT_EQ(scheduler_ ->NewTaskQueue(MainThreadTaskQueue::QueueCreationParams( MainThreadTaskQueue::QueueType::kTest)) + ->GetTaskQueue() ->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); } @@ -3183,36 +3192,37 @@ CreateFrameScheduler(page_scheduler.get(), nullptr, nullptr, FrameScheduler::FrameType::kSubframe); - TaskQueue* throttleable_tq = + scoped_refptr<MainThreadTaskQueue> throttleable_tq = ThrottleableTaskQueue(frame_scheduler.get()).get(); frame_scheduler->SetCrossOriginToMainFrame(true); frame_scheduler->SetFrameVisible(false); - EXPECT_TRUE(scheduler_->task_queue_throttler()->IsThrottled(throttleable_tq)); + EXPECT_TRUE(scheduler_->task_queue_throttler()->IsThrottled( + throttleable_tq->GetTaskQueue())); scheduler_->EnableVirtualTime( MainThreadSchedulerImpl::BaseTimeOverridePolicy::DO_NOT_OVERRIDE); - EXPECT_EQ(throttleable_tq->GetTimeDomain(), + EXPECT_EQ(throttleable_tq->GetTaskQueue()->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); - EXPECT_FALSE( - scheduler_->task_queue_throttler()->IsThrottled(throttleable_tq)); + EXPECT_FALSE(scheduler_->task_queue_throttler()->IsThrottled( + throttleable_tq->GetTaskQueue())); } TEST_F(MainThreadSchedulerImplTest, DisableVirtualTimeForTesting) { scheduler_->EnableVirtualTime( MainThreadSchedulerImpl::BaseTimeOverridePolicy::DO_NOT_OVERRIDE); scheduler_->DisableVirtualTimeForTesting(); - EXPECT_EQ(scheduler_->DefaultTaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->DefaultTaskQueue()->GetTaskQueue()->GetTimeDomain(), scheduler_->real_time_domain()); - EXPECT_EQ(scheduler_->CompositorTaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->CompositorTaskQueue()->GetTaskQueue()->GetTimeDomain(), scheduler_->real_time_domain()); - EXPECT_EQ(loading_task_queue()->GetTimeDomain(), + EXPECT_EQ(loading_task_queue()->GetTaskQueue()->GetTimeDomain(), scheduler_->real_time_domain()); - EXPECT_EQ(throttleable_task_queue()->GetTimeDomain(), + EXPECT_EQ(throttleable_task_queue()->GetTaskQueue()->GetTimeDomain(), scheduler_->real_time_domain()); - EXPECT_EQ(scheduler_->ControlTaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->ControlTaskQueue()->GetTaskQueue()->GetTimeDomain(), scheduler_->real_time_domain()); - EXPECT_EQ(scheduler_->V8TaskQueue()->GetTimeDomain(), + EXPECT_EQ(scheduler_->V8TaskQueue()->GetTaskQueue()->GetTimeDomain(), scheduler_->real_time_domain()); EXPECT_FALSE(scheduler_->VirtualTimeControlTaskQueue()); } @@ -3287,7 +3297,7 @@ int counter = 0; for (const auto& task_queue : task_queues) { - task_queue->task_runner()->PostTask( + task_queue->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce([](int* counter) { ++*counter; }, &counter)); } @@ -3321,11 +3331,12 @@ CPUTimeBudgetPool* time_budget_pool = scheduler_->task_queue_throttler()->CreateCPUTimeBudgetPool("test"); - time_budget_pool->AddQueue(base::TimeTicks(), throttleable_task_queue()); + time_budget_pool->AddQueue(base::TimeTicks(), + throttleable_task_queue()->GetTaskQueue()); throttleable_task_runner_->PostTask(FROM_HERE, base::BindOnce(NullTask)); - loading_task_queue()->task_runner()->PostDelayedTask( + loading_task_queue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(NullTask), base::TimeDelta::FromMilliseconds(10)); @@ -3507,8 +3518,10 @@ scoped_refptr<MainThreadTaskQueue> queue2 = scheduler_->NewThrottleableTaskQueueForTest(nullptr); - EXPECT_EQ(queue1->GetTimeDomain(), scheduler_->real_time_domain()); - EXPECT_EQ(queue2->GetTimeDomain(), scheduler_->real_time_domain()); + EXPECT_EQ(queue1->GetTaskQueue()->GetTimeDomain(), + scheduler_->real_time_domain()); + EXPECT_EQ(queue2->GetTaskQueue()->GetTimeDomain(), + scheduler_->real_time_domain()); scheduler_->OnShutdownTaskQueue(queue1); @@ -3517,8 +3530,10 @@ // Virtual time should be enabled for queue2, as it is a regular queue and // nothing should change for queue1 because it was shut down. - EXPECT_EQ(queue1->GetTimeDomain(), scheduler_->real_time_domain()); - EXPECT_EQ(queue2->GetTimeDomain(), scheduler_->GetVirtualTimeDomain()); + EXPECT_EQ(queue1->GetTaskQueue()->GetTimeDomain(), + scheduler_->real_time_domain()); + EXPECT_EQ(queue2->GetTaskQueue()->GetTimeDomain(), + scheduler_->GetVirtualTimeDomain()); } TEST_F(MainThreadSchedulerImplTest, MicrotaskCheckpointTiming) { @@ -3567,7 +3582,7 @@ std::vector<std::pair<std::string, base::TimeTicks>> log; base::TimeTicks start = scheduler_->GetTickClock()->NowTicks(); - scheduler_->DefaultTaskQueue()->task_runner()->PostTask( + scheduler_->DefaultTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce( [](std::vector<std::pair<std::string, base::TimeTicks>>* log, @@ -3584,15 +3599,18 @@ }, &log, scheduler_->GetTickClock()), base::TimeDelta::FromSeconds(3)); - scheduler_->DefaultTaskQueue()->task_runner()->PostDelayedTask( - FROM_HERE, - base::BindOnce( - [](std::vector<std::pair<std::string, base::TimeTicks>>* log, - const base::TickClock* clock) { - log->emplace_back("regular (delayed)", clock->NowTicks()); - }, - &log, scheduler_->GetTickClock()), - base::TimeDelta::FromSeconds(5)); + scheduler_->DefaultTaskQueue() + ->GetTaskQueue() + ->task_runner() + ->PostDelayedTask( + FROM_HERE, + base::BindOnce( + [](std::vector<std::pair<std::string, base::TimeTicks>>* log, + const base::TickClock* clock) { + log->emplace_back("regular (delayed)", clock->NowTicks()); + }, + &log, scheduler_->GetTickClock()), + base::TimeDelta::FromSeconds(5)); test_task_runner_->FastForwardUntilNoTasksRemain(); @@ -3928,18 +3946,18 @@ CreateFrameScheduler(page_scheduler.get(), &frame_delegate, nullptr, FrameScheduler::FrameType::kSubframe); - scoped_refptr<TaskQueue> throttleable_tq = QueueForTaskType( + scoped_refptr<MainThreadTaskQueue> throttleable_tq = QueueForTaskType( frame_scheduler.get(), TaskType::kJavascriptTimerDelayedLowNesting); ForceUpdatePolicyAndGetCurrentUseCase(); - EXPECT_FALSE(throttleable_tq->IsQueueEnabled()); + EXPECT_FALSE(throttleable_tq->GetTaskQueue()->IsQueueEnabled()); ignore_result( scheduler_->agent_scheduling_strategy().OnMainFrameFirstMeaningfulPaint( *main_frame_scheduler_)); ForceUpdatePolicyAndGetCurrentUseCase(); - EXPECT_TRUE(throttleable_tq->IsQueueEnabled()); + EXPECT_TRUE(throttleable_tq->GetTaskQueue()->IsQueueEnabled()); } TEST_F(DisableNonMainTimerQueuesUntilFMPTest, @@ -3952,7 +3970,7 @@ CreateFrameScheduler(page_scheduler.get(), &frame_delegate, nullptr, FrameScheduler::FrameType::kSubframe); - scoped_refptr<TaskQueue> timer_tq = QueueForTaskType( + scoped_refptr<MainThreadTaskQueue> timer_tq = QueueForTaskType( frame_scheduler.get(), TaskType::kJavascriptTimerDelayedLowNesting); FakeInputEvent mouse_move_event{WebInputEvent::Type::kMouseMove, @@ -3965,14 +3983,14 @@ scheduler_->DidHandleInputEventOnCompositorThread(mouse_move_event, event_state); ForceUpdatePolicyAndGetCurrentUseCase(); - EXPECT_FALSE(timer_tq->IsQueueEnabled()); + EXPECT_FALSE(timer_tq->GetTaskQueue()->IsQueueEnabled()); // Mouse down should cause MTSI to notify the agent scheduling strategy, which // should re-enable the throttleable queue. scheduler_->DidHandleInputEventOnCompositorThread(mouse_down_event, event_state); base::RunLoop().RunUntilIdle(); // Notification is posted to the main thread. - EXPECT_TRUE(timer_tq->IsQueueEnabled()); + EXPECT_TRUE(timer_tq->GetTaskQueue()->IsQueueEnabled()); } class BestEffortNonMainQueuesUntilOnLoadTest @@ -3994,15 +4012,15 @@ CreateFrameScheduler(page_scheduler.get(), &frame_delegate, nullptr, FrameScheduler::FrameType::kSubframe); - scoped_refptr<TaskQueue> non_timer_tq = + scoped_refptr<MainThreadTaskQueue> non_timer_tq = QueueForTaskType(frame_scheduler.get(), TaskType::kNetworking); ForceUpdatePolicyAndGetCurrentUseCase(); - EXPECT_EQ(non_timer_tq->GetQueuePriority(), + EXPECT_EQ(non_timer_tq->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); scheduler_->OnMainFrameLoad(*main_frame_scheduler_); - EXPECT_EQ(non_timer_tq->GetQueuePriority(), + EXPECT_EQ(non_timer_tq->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); } @@ -4028,10 +4046,10 @@ page_scheduler.get(), &frame_delegate, /* blame_context= */ nullptr, FrameScheduler::FrameType::kSubframe); - scoped_refptr<TaskQueue> non_timer_tq = + scoped_refptr<MainThreadTaskQueue> non_timer_tq = QueueForTaskType(frame_scheduler.get(), TaskType::kNetworking); ForceUpdatePolicyAndGetCurrentUseCase(); - EXPECT_EQ(non_timer_tq->GetQueuePriority(), + EXPECT_EQ(non_timer_tq->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); ignore_result( @@ -4040,12 +4058,12 @@ // Queue should still have lower priority, since we just started counting // towards the timeout. - EXPECT_EQ(non_timer_tq->GetQueuePriority(), + EXPECT_EQ(non_timer_tq->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kBestEffortPriority); test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1000)); - EXPECT_EQ(non_timer_tq->GetQueuePriority(), + EXPECT_EQ(non_timer_tq->GetTaskQueue()->GetQueuePriority(), TaskQueue::QueuePriority::kNormalPriority); }
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc index 599869e..80153e8 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc
@@ -16,8 +16,6 @@ namespace blink { namespace scheduler { -using base::sequence_manager::TaskQueue; - namespace internal { using base::sequence_manager::internal::TaskQueueImpl; } @@ -101,27 +99,27 @@ } MainThreadTaskQueue::MainThreadTaskQueue( - std::unique_ptr<internal::TaskQueueImpl> impl, + std::unique_ptr<base::sequence_manager::internal::TaskQueueImpl> impl, const TaskQueue::Spec& spec, const QueueCreationParams& params, MainThreadSchedulerImpl* main_thread_scheduler) - : TaskQueue(std::move(impl), spec), - queue_type_(params.queue_type), + : queue_type_(params.queue_type), queue_traits_(params.queue_traits), freeze_when_keep_active_(params.freeze_when_keep_active), web_scheduling_priority_(params.web_scheduling_priority), main_thread_scheduler_(main_thread_scheduler), agent_group_scheduler_(params.agent_group_scheduler), frame_scheduler_(params.frame_scheduler) { - if (GetTaskQueueImpl() && spec.should_notify_observers) { + task_queue_ = base::MakeRefCounted<TaskQueue>(std::move(impl), spec); + if (task_queue_->HasImpl() && spec.should_notify_observers) { // TaskQueueImpl may be null for tests. // TODO(scheduler-dev): Consider mapping directly to // MainThreadSchedulerImpl::OnTaskStarted/Completed. At the moment this // is not possible due to task queue being created inside // MainThreadScheduler's constructor. - GetTaskQueueImpl()->SetOnTaskStartedHandler(base::BindRepeating( + task_queue_->SetOnTaskStartedHandler(base::BindRepeating( &MainThreadTaskQueue::OnTaskStarted, base::Unretained(this))); - GetTaskQueueImpl()->SetOnTaskCompletedHandler(base::BindRepeating( + task_queue_->SetOnTaskCompletedHandler(base::BindRepeating( &MainThreadTaskQueue::OnTaskCompleted, base::Unretained(this))); } } @@ -130,7 +128,7 @@ void MainThreadTaskQueue::OnTaskStarted( const base::sequence_manager::Task& task, - const TaskQueue::TaskTiming& task_timing) { + const base::sequence_manager::TaskQueue::TaskTiming& task_timing) { if (main_thread_scheduler_) main_thread_scheduler_->OnTaskStarted(this, task, task_timing); } @@ -152,16 +150,14 @@ if (!main_thread_scheduler_) return; - if (GetTaskQueueImpl()) { - GetTaskQueueImpl()->SetOnTaskStartedHandler( - base::BindRepeating(&MainThreadSchedulerImpl::OnTaskStarted, - main_thread_scheduler_->GetWeakPtr(), nullptr)); - GetTaskQueueImpl()->SetOnTaskCompletedHandler( - base::BindRepeating(&MainThreadSchedulerImpl::OnTaskCompleted, - main_thread_scheduler_->GetWeakPtr(), nullptr)); - GetTaskQueueImpl()->SetOnTaskPostedHandler( - internal::TaskQueueImpl::OnTaskPostedHandler()); - } + task_queue_->SetOnTaskStartedHandler( + base::BindRepeating(&MainThreadSchedulerImpl::OnTaskStarted, + main_thread_scheduler_->GetWeakPtr(), nullptr)); + task_queue_->SetOnTaskCompletedHandler( + base::BindRepeating(&MainThreadSchedulerImpl::OnTaskCompleted, + main_thread_scheduler_->GetWeakPtr(), nullptr)); + task_queue_->SetOnTaskPostedHandler( + internal::TaskQueueImpl::OnTaskPostedHandler()); ClearReferencesToSchedulers(); } @@ -169,27 +165,28 @@ void MainThreadTaskQueue::SetOnIPCTaskPosted( base::RepeatingCallback<void(const base::sequence_manager::Task&)> on_ipc_task_posted_callback) { - if (GetTaskQueueImpl()) { + if (task_queue_->HasImpl()) { // We use the frame_scheduler_ to track metrics so as to ensure that metrics // are not tied to individual task queues. - GetTaskQueueImpl()->SetOnTaskPostedHandler(on_ipc_task_posted_callback); + task_queue_->SetOnTaskPostedHandler(on_ipc_task_posted_callback); } } void MainThreadTaskQueue::DetachOnIPCTaskPostedWhileInBackForwardCache() { - if (GetTaskQueueImpl()) { - GetTaskQueueImpl()->SetOnTaskPostedHandler( + if (task_queue_->HasImpl()) { + task_queue_->SetOnTaskPostedHandler( internal::TaskQueueImpl::OnTaskPostedHandler()); } } void MainThreadTaskQueue::ShutdownTaskQueue() { ClearReferencesToSchedulers(); - TaskQueue::ShutdownTaskQueue(); + task_queue_->ShutdownTaskQueue(); } WebAgentGroupScheduler* MainThreadTaskQueue::GetAgentGroupScheduler() { - DCHECK(task_runner()->BelongsToCurrentThread()); + DCHECK(task_queue_->task_runner()->BelongsToCurrentThread()); + if (agent_group_scheduler_) { DCHECK(!frame_scheduler_); return agent_group_scheduler_; @@ -211,7 +208,7 @@ } FrameSchedulerImpl* MainThreadTaskQueue::GetFrameScheduler() const { - DCHECK(task_runner()->BelongsToCurrentThread()); + DCHECK(task_queue_->task_runner()->BelongsToCurrentThread()); return frame_scheduler_; }
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h index aca96fe..15111fe 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h
@@ -8,8 +8,10 @@ #include <memory> #include "base/memory/weak_ptr.h" +#include "base/single_thread_task_runner.h" #include "base/task/sequence_manager/task_queue.h" #include "base/task/sequence_manager/task_queue_impl.h" +#include "base/task/sequence_manager/time_domain.h" #include "net/base/request_priority.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/agent_group_scheduler_impl.h" #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h" @@ -24,6 +26,8 @@ namespace blink { namespace scheduler { +using TaskQueue = base::sequence_manager::TaskQueue; + namespace main_thread_scheduler_impl_unittest { class MainThreadSchedulerImplTest; } @@ -35,8 +39,10 @@ class FrameSchedulerImpl; class MainThreadSchedulerImpl; +// TODO(kdillon): Remove ref-counting of MainThreadTaskQueues as it's no longer +// needed. class PLATFORM_EXPORT MainThreadTaskQueue - : public base::sequence_manager::TaskQueue { + : public base::RefCountedThreadSafe<MainThreadTaskQueue> { public: enum class QueueType { // Keep MainThreadTaskQueue::NameForQueueType in sync. @@ -331,7 +337,7 @@ } QueueType queue_type; - base::sequence_manager::TaskQueue::Spec spec; + TaskQueue::Spec spec; AgentGroupSchedulerImpl* agent_group_scheduler; FrameSchedulerImpl* frame_scheduler; QueueTraits queue_traits; @@ -344,8 +350,6 @@ } }; - ~MainThreadTaskQueue() override; - QueueType queue_type() const { return queue_type_; } bool CanBeDeferred() const { return queue_traits_.can_be_deferred; } @@ -390,14 +394,12 @@ const base::sequence_manager::Task& task, base::sequence_manager::LazyNow* lazy_now); - void OnTaskStarted( - const base::sequence_manager::Task& task, - const base::sequence_manager::TaskQueue::TaskTiming& task_timing); + void OnTaskStarted(const base::sequence_manager::Task& task, + const TaskQueue::TaskTiming& task_timing); - void OnTaskCompleted( - const base::sequence_manager::Task& task, - base::sequence_manager::TaskQueue::TaskTiming* task_timing, - base::sequence_manager::LazyNow* lazy_now); + void OnTaskCompleted(const base::sequence_manager::Task& task, + TaskQueue::TaskTiming* task_timing, + base::sequence_manager::LazyNow* lazy_now); void SetOnIPCTaskPosted( base::RepeatingCallback<void(const base::sequence_manager::Task&)> @@ -406,8 +408,7 @@ void DetachFromMainThreadScheduler(); - // Override base method to notify MainThreadScheduler about shutdown queue. - void ShutdownTaskQueue() override; + void ShutdownTaskQueue(); WebAgentGroupScheduler* GetAgentGroupScheduler(); @@ -415,7 +416,7 @@ scoped_refptr<base::SingleThreadTaskRunner> CreateTaskRunner( TaskType task_type) { - return TaskQueue::CreateTaskRunner(static_cast<int>(task_type)); + return task_queue_->CreateTaskRunner(static_cast<int>(task_type)); } void SetNetRequestPriority(net::RequestPriority net_request_priority); @@ -424,6 +425,10 @@ void SetWebSchedulingPriority(WebSchedulingPriority priority); base::Optional<WebSchedulingPriority> web_scheduling_priority() const; + // TODO(kdillon): Improve MTTQ API surface so that we no longer + // need to expose the raw pointer to the queue. + TaskQueue* GetTaskQueue() { return task_queue_.get(); } + base::WeakPtr<MainThreadTaskQueue> AsWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } @@ -431,14 +436,18 @@ protected: void SetFrameSchedulerForTest(FrameSchedulerImpl* frame_scheduler); - // TODO(kraynov): Consider options to remove TaskQueueImpl reference here. + // TODO(kdillon): Remove references to TaskQueueImpl once TaskQueueImpl + // inherits from TaskQueue. MainThreadTaskQueue( std::unique_ptr<base::sequence_manager::internal::TaskQueueImpl> impl, - const Spec& spec, + const TaskQueue::Spec& spec, const QueueCreationParams& params, MainThreadSchedulerImpl* main_thread_scheduler); + ~MainThreadTaskQueue(); + private: + friend class base::RefCountedThreadSafe<MainThreadTaskQueue>; friend class base::sequence_manager::SequenceManager; friend class blink::scheduler::main_thread_scheduler_impl_unittest:: MainThreadSchedulerImplTest; @@ -449,6 +458,8 @@ // DetachFromMainThreadScheduler. void ClearReferencesToSchedulers(); + scoped_refptr<TaskQueue> task_queue_; + const QueueType queue_type_; const QueueTraits queue_traits_; const bool freeze_when_keep_active_;
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc index ac1fc74..8bb3d48e 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
@@ -633,7 +633,7 @@ FrameOriginType frame_origin_type, base::sequence_manager::LazyNow* lazy_now) { GetWakeUpBudgetPool(task_queue, frame_origin_type) - ->AddQueue(lazy_now->Now(), task_queue); + ->AddQueue(lazy_now->Now(), task_queue->GetTaskQueue()); } void PageSchedulerImpl::RemoveQueueFromWakeUpBudgetPool( @@ -641,7 +641,7 @@ FrameOriginType frame_origin_type, base::sequence_manager::LazyNow* lazy_now) { GetWakeUpBudgetPool(task_queue, frame_origin_type) - ->RemoveQueue(lazy_now->Now(), task_queue); + ->RemoveQueue(lazy_now->Now(), task_queue->GetTaskQueue()); } WakeUpBudgetPool* PageSchedulerImpl::GetWakeUpBudgetPool(
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc index e177b7cb..039a604a 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
@@ -140,7 +140,7 @@ test_task_runner_->FastForwardBy(time - now); } - static scoped_refptr<TaskQueue> ThrottleableTaskQueueForScheduler( + static scoped_refptr<MainThreadTaskQueue> ThrottleableTaskQueueForScheduler( FrameSchedulerImpl* scheduler) { auto* frame_task_queue_controller = scheduler->FrameTaskQueueControllerForTest(); @@ -205,19 +205,19 @@ // the argument), and verifies that tasks can run. void TestFreeze(bool make_page_visible) { int counter = 0; - LoadingTaskQueue()->task_runner()->PostTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - DeferrableTaskQueue()->task_runner()->PostTask( + DeferrableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - PausableTaskQueue()->task_runner()->PostTask( + PausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); @@ -228,19 +228,19 @@ test_task_runner_->FastForwardUntilNoTasksRemain(); EXPECT_EQ(5, counter); - LoadingTaskQueue()->task_runner()->PostTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - DeferrableTaskQueue()->task_runner()->PostTask( + DeferrableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - PausableTaskQueue()->task_runner()->PostTask( + PausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); counter = 0; @@ -346,10 +346,10 @@ page_scheduler_->SetPageVisible(true); int run_count = 0; - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, - MakeRepeatingTask(ThrottleableTaskQueue()->task_runner(), &run_count, - base::TimeDelta::FromMilliseconds(1)), + MakeRepeatingTask(ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), + &run_count, base::TimeDelta::FromMilliseconds(1)), base::TimeDelta::FromMilliseconds(1)); test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1)); @@ -360,10 +360,10 @@ page_scheduler_->SetPageVisible(false); int run_count = 0; - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, - MakeRepeatingTask(ThrottleableTaskQueue()->task_runner(), &run_count, - base::TimeDelta::FromMilliseconds(20)), + MakeRepeatingTask(ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), + &run_count, base::TimeDelta::FromMilliseconds(20)), base::TimeDelta::FromMilliseconds(20)); test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1)); @@ -382,10 +382,10 @@ page_scheduler_->SetPageVisible(false); int run_count = 0; - LoadingTaskQueue()->task_runner()->PostDelayedTask( + LoadingTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, - MakeRepeatingTask(LoadingTaskQueue()->task_runner(), &run_count, - base::TimeDelta::FromMilliseconds(1)), + MakeRepeatingTask(LoadingTaskQueue()->GetTaskQueue()->task_runner(), + &run_count, base::TimeDelta::FromMilliseconds(1)), base::TimeDelta::FromMilliseconds(1)); test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1)); @@ -404,17 +404,19 @@ int run_count1 = 0; int run_count2 = 0; - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, - MakeRepeatingTask(ThrottleableTaskQueue()->task_runner(), &run_count1, - base::TimeDelta::FromMilliseconds(20)), + MakeRepeatingTask(ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), + &run_count1, base::TimeDelta::FromMilliseconds(20)), base::TimeDelta::FromMilliseconds(20)); ThrottleableTaskQueueForScheduler(frame_scheduler2.get()) + ->GetTaskQueue() ->task_runner() ->PostDelayedTask( FROM_HERE, MakeRepeatingTask( ThrottleableTaskQueueForScheduler(frame_scheduler2.get()) + ->GetTaskQueue() ->task_runner(), &run_count2, base::TimeDelta::FromMilliseconds(20)), base::TimeDelta::FromMilliseconds(20)); @@ -540,10 +542,10 @@ base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks(); int run_count = 0; - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, - MakeRepeatingTask(ThrottleableTaskQueue()->task_runner(), &run_count, - base::TimeDelta::FromMilliseconds(1)), + MakeRepeatingTask(ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), + &run_count, base::TimeDelta::FromMilliseconds(1)), base::TimeDelta::FromMilliseconds(1)); test_task_runner_->RunUntilIdle(); @@ -579,21 +581,21 @@ page_scheduler_->SetVirtualTimePolicy(VirtualTimePolicy::kPause); page_scheduler_->EnableVirtualTime(); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&RunOrderTask, 0, base::Unretained(&run_order))); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&DelayedRunOrderTask, 1, - ThrottleableTaskQueue()->task_runner(), + ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), base::Unretained(&run_order)), base::TimeDelta::FromMilliseconds(2)); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&DelayedRunOrderTask, 3, - ThrottleableTaskQueue()->task_runner(), + ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), base::Unretained(&run_order)), base::TimeDelta::FromMilliseconds(4)); @@ -609,21 +611,21 @@ page_scheduler_->SetVirtualTimePolicy(VirtualTimePolicy::kAdvance); page_scheduler_->EnableVirtualTime(); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&RunOrderTask, 0, base::Unretained(&run_order))); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&DelayedRunOrderTask, 1, - ThrottleableTaskQueue()->task_runner(), + ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), base::Unretained(&run_order)), base::TimeDelta::FromMilliseconds(2)); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&DelayedRunOrderTask, 3, - ThrottleableTaskQueue()->task_runner(), + ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), base::Unretained(&run_order)), base::TimeDelta::FromMilliseconds(4)); @@ -637,10 +639,10 @@ page_scheduler_->SetPageVisible(false); int run_count = 0; - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, - MakeRepeatingTask(ThrottleableTaskQueue()->task_runner(), &run_count, - base::TimeDelta::FromMilliseconds(1)), + MakeRepeatingTask(ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), + &run_count, base::TimeDelta::FromMilliseconds(1)), base::TimeDelta::FromMilliseconds(1)); test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1)); @@ -658,6 +660,7 @@ FrameScheduler::FrameType::kSubframe); ThrottleableTaskQueueForScheduler(frame_scheduler.get()) + ->GetTaskQueue() ->task_runner() ->PostDelayedTask( FROM_HERE, @@ -689,6 +692,7 @@ FrameScheduler::FrameType::kSubframe) .release(); ThrottleableTaskQueueForScheduler(frame_scheduler) + ->GetTaskQueue() ->task_runner() ->PostDelayedTask(FROM_HERE, MakeDeletionTask(frame_scheduler), base::TimeDelta::FromMilliseconds(1)); @@ -697,7 +701,7 @@ } TEST_F(PageSchedulerImplTest, DeletePageScheduler_InTask) { - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, MakeDeletionTask(page_scheduler_.release())); test_task_runner_->FastForwardUntilNoTasksRemain(); } @@ -709,19 +713,19 @@ CreateFrameScheduler(page_scheduler_.get(), nullptr, nullptr, FrameScheduler::FrameType::kSubframe) .release(); - scoped_refptr<TaskQueue> timer_task_queue = + scoped_refptr<MainThreadTaskQueue> timer_task_queue = ThrottleableTaskQueueForScheduler(frame_scheduler); int run_count = 0; - timer_task_queue->task_runner()->PostDelayedTask( + timer_task_queue->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, - MakeRepeatingTask(timer_task_queue->task_runner(), &run_count, - base::TimeDelta::FromMilliseconds(100)), + MakeRepeatingTask(timer_task_queue->GetTaskQueue()->task_runner(), + &run_count, base::TimeDelta::FromMilliseconds(100)), base::TimeDelta::FromMilliseconds(100)); // Note this will run at time t = 10s since we start at time t = 5000us. // However, we still should run all tasks after frame scheduler deletion. - timer_task_queue->task_runner()->PostDelayedTask( + timer_task_queue->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, MakeDeletionTask(frame_scheduler), base::TimeDelta::FromMilliseconds(9990)); @@ -915,6 +919,7 @@ page_scheduler_->EnableVirtualTime(); ThrottleableTaskQueueForScheduler(frame_scheduler.get()) + ->GetTaskQueue() ->task_runner() ->PostTask(FROM_HERE, base::BindOnce(&RunOrderTask, 1, base::Unretained(&run_order))); @@ -1012,8 +1017,9 @@ int count = 0; int delayed_task_run_at_count = 0; - RepostingTask(ThrottleableTaskQueue()->task_runner(), 1000, &count); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + RepostingTask(ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), 1000, + &count); + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(DelayedTask, base::Unretained(&count), base::Unretained(&delayed_task_run_at_count)), @@ -1050,8 +1056,9 @@ int count = 0; int delayed_task_run_at_count = 0; - RepostingTask(ThrottleableTaskQueue()->task_runner(), 1000, &count); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + RepostingTask(ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), 1000, + &count); + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(DelayedTask, base::Unretained(&count), base::Unretained(&delayed_task_run_at_count)), @@ -1078,8 +1085,9 @@ int count = 0; int delayed_task_run_at_count = 0; - RepostingTask(ThrottleableTaskQueue()->task_runner(), 1000, &count); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + RepostingTask(ThrottleableTaskQueue()->GetTaskQueue()->task_runner(), 1000, + &count); + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(DelayedTask, base::Unretained(&count), base::Unretained(&delayed_task_run_at_count)), @@ -1144,11 +1152,11 @@ FastForwardTo(base::TimeTicks() + base::TimeDelta::FromMilliseconds(2500)); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times), base::TimeDelta::FromMilliseconds(1)); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times), base::TimeDelta::FromMilliseconds(1)); @@ -1170,11 +1178,11 @@ FastForwardTo(base::TimeTicks() + base::TimeDelta::FromSeconds(15)); EXPECT_TRUE(page_scheduler_->IsCPUTimeThrottled()); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times), base::TimeDelta::FromMicroseconds(1)); - ThrottleableTaskQueue()->task_runner()->PostDelayedTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostDelayedTask( FROM_HERE, base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times), base::TimeDelta::FromMicroseconds(1)); @@ -1214,6 +1222,7 @@ for (size_t i = 0; i < 3; ++i) { ThrottleableTaskQueueForScheduler(frame_scheduler1.get()) + ->GetTaskQueue() ->task_runner() ->PostDelayedTask( FROM_HERE, @@ -1238,6 +1247,7 @@ for (size_t i = 0; i < 3; ++i) { ThrottleableTaskQueueForScheduler(frame_scheduler1.get()) + ->GetTaskQueue() ->task_runner() ->PostDelayedTask( FROM_HERE, @@ -1259,6 +1269,7 @@ for (size_t i = 0; i < 3; ++i) { ThrottleableTaskQueueForScheduler(frame_scheduler2.get()) + ->GetTaskQueue() ->task_runner() ->PostDelayedTask( FROM_HERE, @@ -1284,6 +1295,7 @@ for (size_t i = 0; i < 3; ++i) { ThrottleableTaskQueueForScheduler(frame_scheduler1.get()) + ->GetTaskQueue() ->task_runner() ->PostDelayedTask( FROM_HERE, @@ -1352,22 +1364,22 @@ TEST_F(PageSchedulerImplTest, AudiblePagesAreNotThrottled) { page_scheduler_->SetPageVisible(false); EXPECT_TRUE(scheduler_->task_queue_throttler()->IsThrottled( - ThrottleableTaskQueue().get())); + ThrottleableTaskQueue()->GetTaskQueue())); // No throttling when the page is audible. page_scheduler_->AudioStateChanged(true); EXPECT_FALSE(scheduler_->task_queue_throttler()->IsThrottled( - ThrottleableTaskQueue().get())); + ThrottleableTaskQueue()->GetTaskQueue())); // No throttling for some time after audio signal disappears. page_scheduler_->AudioStateChanged(false); EXPECT_FALSE(scheduler_->task_queue_throttler()->IsThrottled( - ThrottleableTaskQueue().get())); + ThrottleableTaskQueue()->GetTaskQueue())); // Eventually throttling is reenabled again. test_task_runner_->FastForwardUntilNoTasksRemain(); EXPECT_TRUE(scheduler_->task_queue_throttler()->IsThrottled( - ThrottleableTaskQueue().get())); + ThrottleableTaskQueue()->GetTaskQueue())); } TEST_F(PageSchedulerImplTest, BudgetBasedThrottlingForPageScheduler) { @@ -1386,9 +1398,9 @@ TEST_F(PageSchedulerImplTest, TestPageBackgroundedTimerSuspension) { int counter = 0; - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); // The background signal will not immediately suspend the timer queue. @@ -1398,7 +1410,7 @@ EXPECT_EQ(2, counter); counter = 0; - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1)); EXPECT_FALSE(page_scheduler_->IsFrozen()); @@ -1412,11 +1424,11 @@ EXPECT_EQ(0, counter); // Timer tasks should be paused until the page becomes visible. - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); - UnpausableTaskQueue()->task_runner()->PostTask( + UnpausableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(10)); EXPECT_EQ(1, counter); @@ -1429,7 +1441,7 @@ // Subsequent timer tasks should fire as usual. counter = 0; - ThrottleableTaskQueue()->task_runner()->PostTask( + ThrottleableTaskQueue()->GetTaskQueue()->task_runner()->PostTask( FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter))); test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1)); EXPECT_EQ(1, counter);
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/widget_scheduler.cc b/third_party/blink/renderer/platform/scheduler/main_thread/widget_scheduler.cc index 4a2555f..c0b01b9 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/widget_scheduler.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/widget_scheduler.cc
@@ -20,7 +20,7 @@ input_task_runner_ = input_task_queue_->CreateTaskRunner(TaskType::kMainThreadTaskQueueInput); input_task_queue_enabled_voter_ = - input_task_queue_->CreateQueueEnabledVoter(); + input_task_queue_->GetTaskQueue()->CreateQueueEnabledVoter(); } WidgetScheduler::~WidgetScheduler() {
diff --git a/third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h b/third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h index fc55897..3e003e1 100644 --- a/third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h +++ b/third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h
@@ -22,19 +22,20 @@ QueueTraits::PrioritisationType prioritisation_type) : MainThreadTaskQueue( nullptr, - Spec(MainThreadTaskQueue::NameForQueueType( - MainThreadTaskQueue::QueueType::kTest)), + base::sequence_manager::TaskQueue::Spec( + MainThreadTaskQueue::NameForQueueType( + MainThreadTaskQueue::QueueType::kTest)), QueueCreationParams(MainThreadTaskQueue::QueueType::kTest) .SetQueueTraits( QueueTraits().SetPrioritisationType(prioritisation_type)), nullptr) {} explicit MainThreadTaskQueueForTest(QueueType queue_type) : MainThreadTaskQueue(nullptr, - Spec(MainThreadTaskQueue::NameForQueueType( - MainThreadTaskQueue::QueueType::kTest)), + base::sequence_manager::TaskQueue::Spec( + MainThreadTaskQueue::NameForQueueType( + MainThreadTaskQueue::QueueType::kTest)), QueueCreationParams(queue_type), nullptr) {} - ~MainThreadTaskQueueForTest() override = default; }; // A dummy FrameScheduler for tests.
diff --git a/third_party/blink/renderer/platform/timer_test.cc b/third_party/blink/renderer/platform/timer_test.cc index 1ef510db..527a2e2 100644 --- a/third_party/blink/renderer/platform/timer_test.cc +++ b/third_party/blink/renderer/platform/timer_test.cc
@@ -607,7 +607,7 @@ timer.StartOneShot(base::TimeDelta(), FROM_HERE); // Make sure the task was posted on taskRunner. - EXPECT_FALSE(task_queue->IsEmpty()); + EXPECT_FALSE(task_queue->GetTaskQueue()->IsEmpty()); } TEST_F(TimerTest, RunOnHeapTimer) { @@ -700,7 +700,7 @@ scoped_refptr<base::SingleThreadTaskRunner> task_runner1 = task_queue1->CreateTaskRunner(TaskType::kInternalTest); TaskObserver task_observer1(task_runner1, &run_order); - task_queue1->AddTaskObserver(&task_observer1); + task_queue1->GetTaskQueue()->AddTaskObserver(&task_observer1); scoped_refptr<MainThreadTaskQueue> task_queue2( platform_->GetMainThreadScheduler()->NewThrottleableTaskQueueForTest( @@ -708,7 +708,7 @@ scoped_refptr<base::SingleThreadTaskRunner> task_runner2 = task_queue2->CreateTaskRunner(TaskType::kInternalTest); TaskObserver task_observer2(task_runner2, &run_order); - task_queue2->AddTaskObserver(&task_observer2); + task_queue2->GetTaskQueue()->AddTaskObserver(&task_observer2); TimerForTest<TimerTest> timer(task_runner1, this, &TimerTest::CountingTask); @@ -727,8 +727,8 @@ EXPECT_THAT(run_order, ElementsAre(task_runner2)); - EXPECT_TRUE(task_queue1->IsEmpty()); - EXPECT_TRUE(task_queue2->IsEmpty()); + EXPECT_TRUE(task_queue1->GetTaskQueue()->IsEmpty()); + EXPECT_TRUE(task_queue2->GetTaskQueue()->IsEmpty()); } TEST_F(TimerTest, MoveToNewTaskRunnerRepeating) { @@ -740,7 +740,7 @@ scoped_refptr<base::SingleThreadTaskRunner> task_runner1 = task_queue1->CreateTaskRunner(TaskType::kInternalTest); TaskObserver task_observer1(task_runner1, &run_order); - task_queue1->AddTaskObserver(&task_observer1); + task_queue1->GetTaskQueue()->AddTaskObserver(&task_observer1); scoped_refptr<MainThreadTaskQueue> task_queue2( platform_->GetMainThreadScheduler()->NewThrottleableTaskQueueForTest( @@ -748,7 +748,7 @@ scoped_refptr<base::SingleThreadTaskRunner> task_runner2 = task_queue2->CreateTaskRunner(TaskType::kInternalTest); TaskObserver task_observer2(task_runner2, &run_order); - task_queue2->AddTaskObserver(&task_observer2); + task_queue2->GetTaskQueue()->AddTaskObserver(&task_observer2); TimerForTest<TimerTest> timer(task_runner1, this, &TimerTest::CountingTask); @@ -771,8 +771,8 @@ EXPECT_THAT(run_order, ElementsAre(task_runner1, task_runner1, task_runner2, task_runner2)); - EXPECT_TRUE(task_queue1->IsEmpty()); - EXPECT_FALSE(task_queue2->IsEmpty()); + EXPECT_TRUE(task_queue1->GetTaskQueue()->IsEmpty()); + EXPECT_FALSE(task_queue2->GetTaskQueue()->IsEmpty()); } // This test checks that when inactive timer is moved to a different task @@ -794,8 +794,8 @@ platform_->RunUntilIdle(); EXPECT_TRUE(!run_times_.size()); - EXPECT_TRUE(task_queue1->IsEmpty()); - EXPECT_TRUE(task_queue2->IsEmpty()); + EXPECT_TRUE(task_queue1->GetTaskQueue()->IsEmpty()); + EXPECT_TRUE(task_queue2->GetTaskQueue()->IsEmpty()); } } // namespace
diff --git a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py index f9ae215..eddf685 100755 --- a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py +++ b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
@@ -612,6 +612,7 @@ 'cc::PaintBenchmarkResult', 'cc::TaskGraphRunner', 'gfx::DisplayColorSpaces', + 'gfx::FontRenderParams', 'ui::ImeTextSpan', 'viz::FrameSinkId', 'viz::LocalSurfaceId',
diff --git a/third_party/blink/tools/blinkpy/w3c/wpt_expectations_updater.py b/third_party/blink/tools/blinkpy/w3c/wpt_expectations_updater.py index 2190c10..81d13cfa5 100644 --- a/third_party/blink/tools/blinkpy/w3c/wpt_expectations_updater.py +++ b/third_party/blink/tools/blinkpy/w3c/wpt_expectations_updater.py
@@ -86,8 +86,8 @@ log_level = logging.DEBUG if self.options.verbose else logging.INFO configure_logging(logging_level=log_level, include_time=True) - if not(self.options.android_product or - self.options.update_android_expectations_only): + if not (self.options.android_product + or self.options.update_android_expectations_only): assert not self.options.include_unexpected_pass, ( 'Command line argument --include-unexpected-pass is not ' 'supported in desktop mode.') @@ -293,9 +293,9 @@ """ test_dict = {} configs = self.get_builder_configs(build, web_test_results) - _log.debug('Getting failing results dictionary' - ' for %s step in latest %s build' % ( - web_test_results.step_name(), build.builder_name)) + _log.debug( + 'Getting failing results dictionary for %s step in latest %s build', + web_test_results.step_name(), build.builder_name) if len(configs) > 1: raise ScriptError('More than one configs were produced for' @@ -726,9 +726,8 @@ renamed_files = self._list_renamed_files() for path in self._test_expectations.expectations_dict: - _log.info( - 'Updating %s for any removed or renamed tests.' % - self.host.filesystem.basename(path)) + _log.info('Updating %s for any removed or renamed tests.', + self.host.filesystem.basename(path)) self._clean_single_test_expectations_file( path, deleted_files, renamed_files) self._test_expectations.commit_changes() @@ -737,7 +736,7 @@ # TODO(robertma): Improve Git.changed_files so that we can use # it here. paths = self.git.run( - ['diff', 'origin/master', '-M100%', '--diff-filter=D', + ['diff', 'origin/master', '--diff-filter=D', '--name-only']).splitlines() deleted_files = [] for p in paths: @@ -754,9 +753,10 @@ Returns a dictionary mapping source name to destination name. """ - out = self.git.run( - ['diff', 'origin/master', '-M100%', '--diff-filter=R', - '--name-status']) + out = self.git.run([ + 'diff', 'origin/master', '-M90%', '--diff-filter=R', + '--name-status' + ]) renamed_tests = {} for line in out.splitlines(): _, source_path, dest_path = line.split()
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng index 38c2e09f..1e92142 100644 --- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng +++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -58,6 +58,7 @@ crbug.com/591099 external/wpt/css/css-flexbox/image-as-flexitem-size-003v.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox/image-as-flexitem-size-004.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox/image-as-flexitem-size-004v.html [ Failure ] +crbug.com/1132627 external/wpt/css/css-flexbox/flex-minimum-width-flex-items-007.xht [ Failure ] ### external/wpt/css/css-fonts/ crbug.com/591099 external/wpt/css/css-fonts/font-features-across-space-1.html [ Failure ] @@ -96,6 +97,7 @@ crbug.com/1101034 external/wpt/css/css-pseudo/marker-content-018.html [ Failure ] crbug.com/1108830 external/wpt/css/css-pseudo/marker-hyphens.html [ Failure ] crbug.com/1108830 external/wpt/css/css-pseudo/marker-line-break.html [ Failure ] +crbug.com/1108830 external/wpt/css/css-pseudo/marker-line-height.html [ Failure ] crbug.com/1108830 external/wpt/css/css-pseudo/marker-overflow-wrap.html [ Failure ] crbug.com/1108830 external/wpt/css/css-pseudo/marker-text-decoration-skip-ink.html [ Failure ] crbug.com/1108830 external/wpt/css/css-pseudo/marker-text-emphasis.html [ Failure ] @@ -367,6 +369,8 @@ ### external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml [ Failure ] crbug.com/886592 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/align3/flex-abspos-staticpos-margin-002.html [ Failure ] +crbug.com/1132627 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-min-width-auto-002a.html [ Failure ] +crbug.com/1132627 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-min-width-auto-002c.html [ Failure ] ### external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/ib-split/ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/ib-split/emptyspan-1.html [ Failure ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index ebec9b2..68821af 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -762,8 +762,6 @@ crbug.com/1111128 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-min-height-auto-002b.html [ Failure ] crbug.com/1128262 external/wpt/css/css-flexbox/table-as-item-specified-width.html [ Failure ] -crbug.com/249112 external/wpt/css/css-flexbox/flex-minimum-width-flex-items-007.xht [ Failure ] - # These require css-align-3 positional keywords that Blink doesn't yet support for flexbox. crbug.com/1011718 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001a.xhtml [ Failure ] crbug.com/1011718 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001b.xhtml [ Failure ] @@ -793,9 +791,6 @@ crbug.com/336604 external/wpt/css/css-flexbox/flexbox_visibility-collapse-line-wrapping.html [ Failure ] crbug.com/336604 external/wpt/css/css-flexbox/flexbox_visibility-collapse.html [ Failure ] -crbug.com/553838 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-min-width-auto-002a.html [ Failure ] -crbug.com/553838 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-min-width-auto-002c.html [ Failure ] - # We paint in an incorrect order when layers are present. Blocked on composite-after-paint. crbug.com/370604 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-paint-ordering-002.xhtml [ Failure ] @@ -3480,32 +3475,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-justify-stretch.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-stretching-replaced-items.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-005.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-007.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-008.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-009.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-010.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-011.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-012.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-013.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-014.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-017.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-018.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-019.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-020.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-021.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-022.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-023.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-024.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-025.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-026.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-027.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-028.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-029.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-030.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-031.html [ Failure ] @@ -3527,13 +3496,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-align-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-align-cycles-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-justify-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-005.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-007.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-003.html [ Failure ] @@ -3551,8 +3513,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-016.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-017.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html [ Failure ] @@ -3625,22 +3585,11 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-007.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-008.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-009.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-010.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-011.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-012.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-013.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-014.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-and-alignment.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-005.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-007.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-lr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-rl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows.html [ Failure ] @@ -3671,8 +3620,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-016.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-017.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html [ Failure ] @@ -3706,10 +3653,7 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-014.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-016.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-006.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-007.html [ Failure ] @@ -3722,11 +3666,7 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-014.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-016.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-input-range.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-006.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-007.html [ Failure ] @@ -3815,7 +3755,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/flex-item-grid-container-percentage-rows-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/fr-unit-with-percentage.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/fr-unit.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-explicit-rows-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-fill-columns-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-fill-rows-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-fit-columns-001.html [ Failure Crash ] @@ -3905,6 +3844,7 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-vertical-rl-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-006.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-014.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html [ Failure ] @@ -3926,21 +3866,18 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-relative-offsets-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-relative-offsets-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-sizing-alignment-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-layout-grid-in-grid.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-layout-z-order-a.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-layout-z-order-b.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-007.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-009.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-010.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-011.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-012.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-016.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-017.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-019.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-020.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-015.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-018.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-021.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-022.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-023.html [ Failure ] @@ -3958,10 +3895,7 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-layout-properties.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/column-property-should-not-apply-on-grid-container-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/compute-intrinsic-widths-scrollbar-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/display-grid.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/display-inline-grid.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-box-sizing-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-button-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-ignores-first-letter-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-ignores-first-line-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-margin-border-padding-scrollbar-001.html [ Failure ] @@ -4000,8 +3934,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-size-shrink-to-fit-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-vertical-align-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-tracks-stretched-with-different-flex-factors-sum.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/implicit-grids/grid-support-grid-auto-columns-rows-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/implicit-grids/grid-support-grid-auto-columns-rows-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/implicit-grids/grid-support-grid-auto-columns-rows-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-002.html [ Failure ] @@ -4013,12 +3945,8 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-sizing-columns-min-max-width-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-sizing-rows-min-max-height-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-005.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-006.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-007.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-automatic-minimum-for-auto-columns-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-container-percentage-001.html [ Failure ] @@ -4028,7 +3956,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-find-fr-size-gutters-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-find-fr-size-gutters-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-fit-content-percentage.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-intrinsic-size-with-orthogonal-items.html [ Failure ] @@ -4040,8 +3967,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-lr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-cols-filled-shrinkwrap-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-rows-filled-shrinkwrap-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-stretch-respects-min-size-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-implicit-track.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-withcontent.html [ Failure ] @@ -4065,7 +3990,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-placement-using-named-grid-lines-006.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-placement-using-named-grid-lines-007.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-placement-using-named-grid-lines-008.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-placement-using-named-grid-lines-009.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/auto-content-resolution-columns.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/auto-content-resolution-rows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/flex-and-content-sized-resolution-columns.html [ Failure ] @@ -4094,10 +4018,8 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-addition-auto-placement-update.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-addition-track-breadth-update.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-margins-and-stretch.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-margins-must-respect-specified-margins.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-border-overflow-paint.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-change-alignment-from-stretch.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-grid-container-percentage-rows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-margin-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html [ Failure ] @@ -4111,7 +4033,6 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-removal-auto-placement-update.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-removal-track-breadth-update.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-scroll-position.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-sizing-with-orthogonal-flows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-spanning-and-orthogonal-flows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-spanning-resolution.html [ Failure ] @@ -4121,9 +4042,8 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-text-background-not-interleaved.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-unknown-named-grid-line-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-border-in-fr.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-border-in-intrinsic.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-height-replaced-element.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-min-max-height-dynamic.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-distribution-vertical-lr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-distribution-vertical-rl.html [ Failure ] @@ -4133,8 +4053,6 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-rtl.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-percent-track-margin-border-padding.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-percent-track-scrollbar.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-preferred-logical-widths.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-self-baseline-two-dimensional.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html [ Failure ] @@ -4154,7 +4072,6 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-content-row-must-shrink-when-column-grows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-height-border-box.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-width-height-auto-and-margins.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-width-height-auto-overflow.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-width-height-auto.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-width-margin-box.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/minmax-fixed-logical-height-only.html [ Failure ] @@ -4172,7 +4089,6 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/negative-growth-share-as-infinity-crash.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/non-grid-columns-rows-get-set.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/painting-item-marginbox-overflowing-grid-area.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-intrinsic-track-breadth.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-of-indefinite-track-size-in-auto.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-of-indefinite-track-size.html [ Failure ] @@ -4183,18 +4099,14 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/place-cell-by-index.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/positioned-grid-container-percentage-tracks.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/preferred-width-computed-after-layout.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-align-items-changed.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-align-self-changed.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-indefinite-heights.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-justify-items-changed.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-justify-self-changed.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/repeating-layout-must-produce-the-same-results.html [ Failure ] # These pass but hit DCHECKS -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html [ Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html [ Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html [ Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html [ Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html [ Crash Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html [ Crash Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html [ Crash Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html [ Crash Failure ] # [css-animations] crbug.com/993365 external/wpt/css/css-transitions/Element-getAnimations.tentative.html [ Failure Pass ] @@ -4839,8 +4751,6 @@ # Sheriff 2018-7-13 crbug.com/863599 [ Debug ] external/wpt/requestidlecallback/callback-iframe.html [ Pass Timeout ] -crbug.com/864888 [ Mac ] editing/selection/offset-from-point-complex-scripts.html [ Failure Pass ] - # Sheriff 2018-07-26 crbug.com/867982 [ Debug ] external/wpt/requestidlecallback/basic.html [ Timeout Pass ] crbug.com/882756 [ Debug ] external/wpt/requestidlecallback/cancel-invoked.html [ Timeout Pass ] @@ -5956,7 +5866,6 @@ crbug.com/1011811 http/tests/devtools/network/network-xhr-data-received-async-response-type-blob.js [ Pass Failure ] crbug.com/1011811 http/tests/devtools/network/download.js [ Pass Failure ] crbug.com/1011811 http/tests/devtools/sxg/sxg-disable-cache.js [ Pass Failure ] -crbug.com/1093791 http/tests/devtools/copy-network-request.js [ Pass Failure ] crbug.com/1080609 virtual/threaded/external/wpt/scroll-animations/element-based-offset.html [ Pass Failure ] crbug.com/1080609 virtual/threaded/external/wpt/scroll-animations/element-based-offset-clamp.html [ Pass Failure ] @@ -6287,6 +6196,8 @@ # WebRTC: Payload demuxing times out in Plan B. This is expected. crbug.com/1139052 virtual/webrtc-wpt-plan-b/external/wpt/webrtc/protocol/unbundled-pt-demuxing.https.html [ Timeout ] +crbug.com/1137228 [ Mac ] external/wpt/infrastructure/testdriver/click_iframe_crossorigin.sub.html [ Pass Failure ] + # Rename document.featurePolicy to document.permissionsPolicy crbug.com/1123116 external/wpt/permissions-policy/payment-supported-by-permissions-policy.tentative.html [ Failure ] crbug.com/1123116 external/wpt/permissions-policy/permissions-policy-frame-policy-allowed-for-all.https.sub.html [ Failure ] @@ -6299,3 +6210,6 @@ #Sheriff 2020-10-21 crbug.com/1141206 scrollbars/overflow-scrollbar-combinations.html [ Pass Failure ] + +#Sheriff 2020-10-26 +crbug.com/1142877 external/wpt/mediacapture-fromelement/capture.html [ Pass Failure ] \ No newline at end of file
diff --git a/third_party/blink/web_tests/android/ChromiumWPTExpectations b/third_party/blink/web_tests/android/ChromiumWPTExpectations index 86ec1a5..6529218 100644 --- a/third_party/blink/web_tests/android/ChromiumWPTExpectations +++ b/third_party/blink/web_tests/android/ChromiumWPTExpectations
@@ -3929,9 +3929,6 @@ crbug.com/1050754 external/wpt/streams/writable-streams/reentrant-strategy.any.sharedworker.html [ Failure ] crbug.com/1050754 external/wpt/streams/writable-streams/start.any.sharedworker.html [ Failure ] crbug.com/1050754 external/wpt/streams/writable-streams/write.any.sharedworker.html [ Failure ] -crbug.com/1050754 external/wpt/subresource-integrity/subresource-css-ed25519.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/subresource-integrity/subresource-ed25519-with-csp.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/subresource-integrity/subresource-ed25519.tentative.html [ Failure ] crbug.com/1050754 external/wpt/svg/animations/scripted/onhover-syncbases.html [ Failure ] crbug.com/1050754 external/wpt/svg/coordinate-systems/outer-svg-intrinsic-size-001.html [ Failure ] crbug.com/1050754 external/wpt/svg/coordinate-systems/outer-svg-intrinsic-size-002.html [ Failure ]
diff --git a/third_party/blink/web_tests/android/WeblayerWPTExpectations b/third_party/blink/web_tests/android/WeblayerWPTExpectations index 79fcf8a0..acec65cd 100644 --- a/third_party/blink/web_tests/android/WeblayerWPTExpectations +++ b/third_party/blink/web_tests/android/WeblayerWPTExpectations
@@ -3953,9 +3953,6 @@ crbug.com/1050754 external/wpt/streams/writable-streams/reentrant-strategy.any.sharedworker.html [ Failure ] crbug.com/1050754 external/wpt/streams/writable-streams/start.any.sharedworker.html [ Failure ] crbug.com/1050754 external/wpt/streams/writable-streams/write.any.sharedworker.html [ Failure ] -crbug.com/1050754 external/wpt/subresource-integrity/subresource-css-ed25519.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/subresource-integrity/subresource-ed25519-with-csp.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/subresource-integrity/subresource-ed25519.tentative.html [ Failure ] crbug.com/1050754 external/wpt/svg/animations/scripted/onhover-syncbases.html [ Failure ] crbug.com/1050754 external/wpt/svg/coordinate-systems/outer-svg-intrinsic-size-001.html [ Failure ] crbug.com/1050754 external/wpt/svg/coordinate-systems/outer-svg-intrinsic-size-002.html [ Failure ]
diff --git a/third_party/blink/web_tests/android/WebviewWPTExpectations b/third_party/blink/web_tests/android/WebviewWPTExpectations index 97568558..c91dbb8 100644 --- a/third_party/blink/web_tests/android/WebviewWPTExpectations +++ b/third_party/blink/web_tests/android/WebviewWPTExpectations
@@ -4205,9 +4205,6 @@ crbug.com/1050754 external/wpt/streams/writable-streams/reentrant-strategy.any.sharedworker.html [ Failure ] crbug.com/1050754 external/wpt/streams/writable-streams/start.any.sharedworker.html [ Failure ] crbug.com/1050754 external/wpt/streams/writable-streams/write.any.sharedworker.html [ Failure ] -crbug.com/1050754 external/wpt/subresource-integrity/subresource-css-ed25519.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/subresource-integrity/subresource-ed25519-with-csp.tentative.html [ Failure ] -crbug.com/1050754 external/wpt/subresource-integrity/subresource-ed25519.tentative.html [ Failure ] crbug.com/1050754 external/wpt/svg/animations/end-attribute-change-end-time.html [ Failure ] crbug.com/1050754 external/wpt/svg/animations/scripted/onhover-syncbases.html [ Failure ] crbug.com/1050754 external/wpt/svg/coordinate-systems/outer-svg-intrinsic-size-001.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index c514397..60f99262 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -52152,6 +52152,19 @@ {} ] ], + "out-of-flow-in-multicolumn-002.html": [ + "bc91fe11c6975eb6ea9fbe274a0a93d596efff5f", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "overflowed-block-with-no-room-after-000.html": [ "084e16fb38de072fb83f92ba01302a2e404cdd97", [ @@ -52243,6 +52256,19 @@ {} ] ], + "relpos-inline.html": [ + "a296f0ae7eb04e0b7fee52f9da9da84ff9ddd884", + [ + null, + [ + [ + "/css/css-break/relpos-inline-ref.html", + "==" + ] + ], + {} + ] + ], "tall-break-inside-avoid-at-start.html": [ "6e9ab8bd9f56502247a6d8c2c2045b8f3af3605d", [ @@ -173180,6 +173206,18 @@ "59de9e7a23ce6ef949d03db610609c61ce4d98c1", [] ], + "preflight-cache-partitioning-iframe.sub.html": [ + "031cc94d10cef22852f0939fb9a63b2f2f11cae6", + [] + ], + "preflight-cache-partitioning.sub.html": [ + "e4bbdec013953ceffe761fc9cb7f24ac2813535d", + [] + ], + "preflight-partitioning.py": [ + "d0d9a4ebb6c67b853a9d14f12f325120a692e96d", + [] + ], "preflight.py": [ "d8bce26d280a12a30bb83d9e25f9108a9cd86624", [] @@ -180015,7 +180053,11 @@ "06108ac800c19c68841f2a0e8867fb05e868c1ab", [] ] - } + }, + "relpos-inline-ref.html": [ + "8c19f1cf4c6c0173b45face28d624368d365ec70", + [] + ] }, "css-cascade": { "META.yml": [ @@ -241855,22 +241897,6 @@ "pipe-through.any.worker-expected.txt": [ "a7d386a986fe9341dfbb88c849f65097a365bec9", [] - ], - "throwing-options.any-expected.txt": [ - "428896cd087a68c00c601389c938d7b3138dcd52", - [] - ], - "throwing-options.any.serviceworker-expected.txt": [ - "428896cd087a68c00c601389c938d7b3138dcd52", - [] - ], - "throwing-options.any.sharedworker-expected.txt": [ - "428896cd087a68c00c601389c938d7b3138dcd52", - [] - ], - "throwing-options.any.worker-expected.txt": [ - "428896cd087a68c00c601389c938d7b3138dcd52", - [] ] }, "readable-byte-streams": { @@ -252646,6 +252672,10 @@ "81c6f9b3833e083277235dfd0cdd1716dc926110", [] ], + "frames_no_bfcache.html": [ + "1972187d21fe1d385f03843b2fe222d2ef3183f7", + [] + ], "subframe.html": [ "2019485529f64c778081b542646d36b55e4c4a39", [] @@ -281293,6 +281323,20 @@ } ] ], + "preflight-cache-partitioning.sub.window.js": [ + "6b37a843c40fbafa2d2fb855c007fc1999b98360", + [ + "cors/preflight-cache-partitioning.sub.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ] + ] + } + ] + ], "preflight-cache.htm": [ "b3de663ebc1d32409c8ed376a3873b2a2b675eb5", [ @@ -284477,6 +284521,13 @@ ] ] }, + "relpos-inline-hit-testing.html": [ + "ca0c961ca22b3ac7fac7f25f21085ceb220dfddc", + [ + null, + {} + ] + ], "remove-inline-child.html": [ "64f4d0b1ac224b3386e915f31bedd70d718a5528", [ @@ -354837,6 +354888,13 @@ {} ] ], + "fieldset-content-percentage-size.html": [ + "6195d8bb0527b5d3e72e57c41da32bfe2aa4bb50", + [ + null, + {} + ] + ], "fieldset-default-style.html": [ "f07c84f406cefc7054e8a13c2796d3d82673bdf7", [ @@ -370480,7 +370538,7 @@ ] ], "input-events-get-target-ranges-backspace.tentative.html": [ - "d057654a77c494934e1116045ec7541a7e8878da", + "71db5e7287844dce1deb97c6cef753ac053bc27b", [ null, { @@ -370499,7 +370557,7 @@ ] ], "input-events-get-target-ranges-forwarddelete.tentative.html": [ - "136a4a6be4b31fa79508104d8da42cce36d8a887", + "bbc76f43fbcdd837d31e610958867e1abdfbd7b5", [ null, { @@ -380475,6 +380533,13 @@ {} ] ], + "fcp-ignore-from-subframe.html": [ + "7083a93db7dfe6a86441af5e4d1970674bc39441", + [ + null, + {} + ] + ], "fcp-invisible-3d-rotate-descendant.html": [ "76d459d0f40fcaa46e9561e76c99b4d4a17f157b", [ @@ -401937,7 +402002,7 @@ ] ], "general.any.js": [ - "bd18973b41315d1bdbf3f242d6c09f821c867f3f", + "2e02dfad78a0fa0f74d916075a2d87bf8430e2f5", [ null, { @@ -419584,7 +419649,7 @@ ] ], "video-decoder.html": [ - "33c478d0090775bee319c6f30710bfdedad7bc86", + "f653ba03b09a51b9e25b90173b4d7002242e05e7", [ null, {} @@ -445735,7 +445800,7 @@ }, "back": { "back.py": [ - "9ca52e8f223e8877280a15a9a6898ad01a40a4be", + "5b50bc1bbb566e47b88e00b5a4f23d19caa70b64", [ null, {} @@ -446106,7 +446171,7 @@ }, "forward": { "forward.py": [ - "4a1e2158151850be24e601655b11d229fa7e5dc4", + "d71bbd1102147b48d7efeab3d0dffa28ee3f9f6b", [ null, {} @@ -446932,7 +446997,7 @@ ] ], "switch.py": [ - "98b4bee16e2db32c3ac2e24c957f363e38b6bf50", + "9e5315588e3bbea859a10d2c367d41354c3240ea", [ null, {}
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/subresource/xhr.py b/third_party/blink/web_tests/external/wpt/common/security-features/subresource/xhr.py index fb3dbf2..7939371 100644 --- a/third_party/blink/web_tests/external/wpt/common/security-features/subresource/xhr.py +++ b/third_party/blink/web_tests/external/wpt/common/security-features/subresource/xhr.py
@@ -12,4 +12,5 @@ response, payload_generator = generate_payload, access_control_allow_origin = b"*", - content_type = b"application/json") + content_type = b"application/json", + cache_control = b"no-store")
diff --git a/third_party/blink/web_tests/external/wpt/cors/preflight-cache-partitioning.sub.window.js b/third_party/blink/web_tests/external/wpt/cors/preflight-cache-partitioning.sub.window.js new file mode 100644 index 0000000..6b37a84 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/cors/preflight-cache-partitioning.sub.window.js
@@ -0,0 +1,42 @@ +// META: script=/common/utils.js + +const TEST_PAGE = + "http://{{host}}:{{ports[http][0]}}/cors/resources/preflight-cache-partitioning.sub.html"; +const TEST_ANOTHER_PAGE = + "http://{{hosts[alt][]}}:{{ports[http][0]}}/cors/resources/preflight-cache-partitioning.sub.html"; + +promise_test(async t => { + let uuid_token = token(); + + const TEST_PAGES = [TEST_PAGE, TEST_ANOTHER_PAGE]; + + // We will load the same page with different top-level origins to check if the + // CORS preflight cache is partitioned. The page will load the iframe with one + // origin and trigger the CORS preflight through fetching a cross-origin + // resources in the iframe. + + for (let test_page of TEST_PAGES) { + let win; + + await new Promise(resolve => { + window.onmessage = (e) => { + if (e.data.type === "loaded") { + resolve(); + } + }; + + win = window.open(test_page); + }); + + await new Promise(resolve => { + win.postMessage({ type: "run", token: uuid_token }, "*"); + + window.onmessage = (e) => { + assert_equals(e.data.type, "pass", e.data.msg); + resolve(); + }; + }); + + win.close(); + } +}, "The preflight cache should be partitioned");
diff --git a/third_party/blink/web_tests/external/wpt/cors/resources/preflight-cache-partitioning-iframe.sub.html b/third_party/blink/web_tests/external/wpt/cors/resources/preflight-cache-partitioning-iframe.sub.html new file mode 100644 index 0000000..031cc94 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/cors/resources/preflight-cache-partitioning-iframe.sub.html
@@ -0,0 +1,27 @@ +<script> +window.onmessage = async (e) => { + if (e.data.type === "run") { + let token = e.data.token; + const test_url = + `http://{{hosts[alt][]}}:{{ports[http][0]}}/cors/resources/preflight-partitioning.py?token=${token}`; + + let response = await fetch( + new Request(test_url, { + mode: "cors", + method: "GET", + headers: [["x-print", token]], + }) + ); + + let result = await response.text(); + + if (result === "1") { + parent.postMessage({ type: "pass", msg: "The CORS preflight was sent" }, "*"); + } else { + parent.postMessage({ type: "fail", msg: "The CORS preflight wasn't sent" }, "*"); + } + } +}; + +parent.postMessage({ type: "loaded" }, "*"); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/cors/resources/preflight-cache-partitioning.sub.html b/third_party/blink/web_tests/external/wpt/cors/resources/preflight-cache-partitioning.sub.html new file mode 100644 index 0000000..e4bbdec --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/cors/resources/preflight-cache-partitioning.sub.html
@@ -0,0 +1,20 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Helper page for testing preflight cache partitioning</title> +<iframe id="iframe" src="http://{{host}}:{{ports[http][0]}}/cors/resources/preflight-cache-partitioning-iframe.sub.html"></iframe> +<script> +window.onmessage = (e) => { + switch (e.data.type || "") { + case "pass": + case "fail": + case "loaded": + opener.postMessage(e.data, "*"); + break; + default: + let iframe = document.getElementById("iframe"); + iframe.contentWindow.postMessage(e.data, "*"); + break; + } +}; + +</script>
diff --git a/third_party/blink/web_tests/external/wpt/cors/resources/preflight-partitioning.py b/third_party/blink/web_tests/external/wpt/cors/resources/preflight-partitioning.py new file mode 100644 index 0000000..d0d9a4e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/cors/resources/preflight-partitioning.py
@@ -0,0 +1,35 @@ +def main(request, response): + headers = [(b"Content-Type", b"text/plain")] + headers.append((b"Access-Control-Allow-Origin", b"*")) + + if request.method == u"GET": + token = request.GET.first(b"token") + value = request.server.stash.take(token) + if value == None: + body = u"0" + else: + if request.GET.first(b"check", None) == b"keep": + request.server.stash.put(token, value) + body = u"1" + + return headers, body + + if request.method == u"OPTIONS": + if not b"Access-Control-Request-Method" in request.headers: + response.set_error(400, u"No Access-Control-Request-Method header") + return u"ERROR: No access-control-request-method in preflight!" + + headers.append((b"Access-Control-Allow-Methods", + request.headers[b'Access-Control-Request-Method'])) + + if b"max_age" in request.GET: + headers.append((b"Access-Control-Max-Age", request.GET[b'max_age'])) + + if b"token" in request.GET: + request.server.stash.put(request.GET.first(b"token"), 1) + + headers.append((b"Access-Control-Allow-Headers", b"x-print")) + + body = request.headers.get(b"x-print", b"NO") + + return headers, body
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-aspect-ratio-img-column-011.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-aspect-ratio-img-column-011.html index 6a0adb7..a0f8c157 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-aspect-ratio-img-column-011.html +++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-aspect-ratio-img-column-011.html
@@ -41,9 +41,9 @@ </div> <div class="flexbox" style="width: 10px;" data-expected-width="10"> - <!-- should use min(transferred, content width) = 10px as minimum width, - which the image will shrink to due to default flex-shrink. --> - <img src="support/10x10-green.png" style="height: 100px;" data-expected-width="10"> + <!-- transferred and content suggestions are both 100px here, so minimum + width is min(transferred, content width) = 100px. --> + <img src="support/10x10-green.png" style="height: 100px;" data-expected-width="100"> </div> <div class="flexbox column" style="height: 10px;" data-expected-height="10">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-minimum-width-flex-items-013.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-minimum-width-flex-items-013.html index 6ee9ed10..9f358d6 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-minimum-width-flex-items-013.html +++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-minimum-width-flex-items-013.html
@@ -2,8 +2,9 @@ <title>Flex transferred minimum width</title> <link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" /> <link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" /> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5663" /> <link rel="match" href="../reference/ref-filled-green-100px-square.xht" /> -<meta name="assert" content="min-width: auto ignores transferred size suggestion when item has a definite main size"> +<meta name="assert" content="min-width: auto ignores transferred size suggestion when item has a definite specified main size"> <style> #reference-overlapped-red { @@ -19,13 +20,16 @@ <div id="reference-overlapped-red"></div> <div style="width:100px; height: 75px; background: green;"></div> -<div style="display: flex; width: 0px"> +<div style="display: flex; width: 0px; height: 25px;"> <!-- - content size suggestion is 300px. - specified size suggestion is 100px. - transferred size suggestion is 50px, but that is ignored because there is a - specified size. The ignoring is from the spec text that says, - (capitalization added): + content size suggestion is 300px + specified size suggestion is 100px + + Chrome 87 and Firefox 84a1 disagree about transferred size suggestion here + (Chrome says undefined. Firefox says 300/150 * 25 = 50. See spec issue + above.) but it doesn't matter: this test asserts that the transferred size + suggestion is ignored, because of this from the spec (capitalization + added): In general, the content-based minimum size of a flex item is the smaller of its content size suggestion and its specified size suggestion. However, if @@ -35,5 +39,5 @@ So here the content-based minimum size is min(300, 100) = 100. --> - <img src="support/300x150-green.png" style="height: 25px; width: 100px;"> + <img src="support/300x150-green.png" style="width: 100px;"> </div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-alignment.html b/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-alignment.html new file mode 100644 index 0000000..56ad9c6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-alignment.html
@@ -0,0 +1,249 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align"> +<meta name="assert" content="This test checks that the self-start/self-end alignment values are applied correctly in all writing-modes for inflow content."> +<style> +body { + line-height: 30px; +} +.grid { + position: relative; + display: inline-grid; + grid-template-columns: 20px; + grid-template-rows: 20px; + width: 20px; + height: 20px; + border: solid; + vertical-align: bottom; +} +.child { + background: green; + width: 10px; + height: 10px; +} +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.child')"> + +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=0></div> +</div> +<br> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: horizontal-tb; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=0></div> +</div> +<br> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=0></div> +</div> +<br> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-lr; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=0></div> +</div> +<br> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: ltr;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=0></div> +</div> +<br> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: horizontal-tb; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: vertical-lr; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=0></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: ltr; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-start; justify-self: self-start;" data-offset-x=10 data-offset-y=10></div> +</div> +<div class="grid" style="writing-mode: vertical-rl; direction: rtl;"> + <div class="child" style="writing-mode: vertical-rl; direction: rtl; align-self: self-end; justify-self: self-end;" data-offset-x=0 data-offset-y=0></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-line-height-ref.html b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-line-height-ref.html new file mode 100644 index 0000000..64b0d41 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-line-height-ref.html
@@ -0,0 +1,42 @@ +<!DOCTYPE html> +<meta charset="utf-8" /> +<title>CSS Reftest Reference</title> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" /> +<style> +ol { + float: left; + width: 50px; + list-style-position: inside; + line-height: 3; +} +li:first-child { + list-style-type: disc; +} +div { + line-height: 1; +} +</style> +<ol> + <li></li> + <li></li> + <li></li> + <li></li> +</ol> +<ol> + <li></li> + <li></li> + <li></li> + <li></li> +</ol> +<ol> + <li><div>x</div></li> + <li><div>x</div></li> + <li><div>x</div></li> + <li><div>x</div></li> +</ol> +<ol> + <li><div>x</div></li> + <li><div>x</div></li> + <li><div>x</div></li> + <li><div>x</div></li> +</ol>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-line-height.html b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-line-height.html new file mode 100644 index 0000000..8d226e3f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-line-height.html
@@ -0,0 +1,65 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>::marker supports 'line-height'</title> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" /> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#marker-pseudo"> +<link rel="help" href="https://drafts.csswg.org/css-inline/#propdef-line-height"> +<link rel="match" href="marker-line-height-ref.html"> +<meta name="assert" content="Checks that ::marker supports 'line-height', both explicitly set or inherited from an ancestor"> +<style> +ol { + float: left; + width: 50px; + list-style-position: inside; +} +ol, ol div { + line-height: 1; + font-size: 1rem; +} +.line-height.explicit ::marker, +.line-height.inherit { + line-height: 3; +} +.line-height.inherit li { + font-size: 0; /* Remove the strut, which would defeat the test */ +} +.line-height.inherit ::marker { + font-size: 1rem; /* Restore the font-size */ +} +.marker-disc { + list-style-type: disc; +} +.marker-decimal { + list-style-type: decimal; +} +.marker-string { + list-style-type: "3. "; +} +.marker-content::marker { + content: "4. "; +} +</style> +<ol class="line-height explicit"> + <li class="marker-disc"></li> + <li class="marker-decimal"></li> + <li class="marker-string"></li> + <li class="marker-content"></li> +</ol> +<ol class="line-height inherit"> + <li class="marker-disc"></li> + <li class="marker-decimal"></li> + <li class="marker-string"></li> + <li class="marker-content"></li> +</ol> +<ol class="line-height explicit"> + <li class="marker-disc"><div>x</div></li> + <li class="marker-decimal"><div>x</div></li> + <li class="marker-string"><div>x</div></li> + <li class="marker-content"><div>x</div></li> +</ol> +<ol class="line-height inherit"> + <li class="marker-disc"><div>x</div></li> + <li class="marker-decimal"><div>x</div></li> + <li class="marker-string"><div>x</div></li> + <li class="marker-content"><div>x</div></li> +</ol>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-expected.txt index 0eaddcc..4e3bf4df 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-expected.txt
@@ -16,6 +16,7 @@ PASS Property font-variant-numeric value 'slashed-zero' in ::marker FAIL Property font-variant-position value 'sub' in ::marker assert_true: font-variant-position doesn't seem to be supported in the computed style expected true got false PASS Property font-weight value '900' in ::marker +PASS Property line-height value '50px' in ::marker FAIL Property white-space value 'nowrap' in ::marker assert_equals: expected "nowrap" but got "pre" PASS Property color value 'rgb(0, 100, 200)' in ::marker PASS Property text-combine-upright value 'all' in ::marker @@ -57,6 +58,5 @@ PASS Property list-style-image value 'url('foo')' in ::marker PASS Property list-style-position value 'inside' in ::marker PASS Property list-style-type value 'decimal' in ::marker -PASS Property line-height value '50px' in ::marker Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt index 9b19d9f..e4d06ec7 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt
@@ -16,6 +16,7 @@ PASS Animation of font-variant-numeric in ::marker FAIL Animation of font-variant-position in ::marker assert_true: font-variant-position doesn't seem to be supported in the computed style expected true got false PASS Animation of font-weight in ::marker +PASS Animation of line-height in ::marker FAIL Animation of white-space in ::marker assert_equals: expected "nowrap" but got "pre" PASS Animation of color in ::marker PASS Animation of text-combine-upright in ::marker @@ -43,7 +44,6 @@ PASS Animation of list-style-image in ::marker PASS Animation of list-style-position in ::marker PASS Animation of list-style-type in ::marker -PASS Animation of line-height in ::marker PASS Transition of font in ::marker PASS Transition of font-family in ::marker PASS Transition of font-feature-settings in ::marker @@ -60,6 +60,7 @@ PASS Transition of font-variant-numeric in ::marker FAIL Transition of font-variant-position in ::marker assert_true: font-variant-position doesn't seem to be supported in the computed style expected true got false PASS Transition of font-weight in ::marker +PASS Transition of line-height in ::marker FAIL Transition of white-space in ::marker assert_equals: expected "nowrap" but got "pre" PASS Transition of color in ::marker PASS Transition of text-combine-upright in ::marker @@ -87,6 +88,5 @@ PASS Transition of list-style-image in ::marker PASS Transition of list-style-position in ::marker PASS Transition of list-style-type in ::marker -PASS Transition of line-height in ::marker Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-in-animation.html b/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-in-animation.html index 5f7dab7a8..df0e9bc 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-in-animation.html +++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties-in-animation.html
@@ -20,7 +20,7 @@ property: "font", from: "oblique normal 100 ultra-condensed 5px / 20px serif", to: "italic small-caps 900 ultra-expanded 25px / 50px Ahem", - midPoint: ["italic small-caps 500 expanded 15px Ahem", "italic small-caps 500 expanded 15px/normal Ahem"], + midPoint: ["italic small-caps 500 expanded 15px / 35px Ahem", "italic small-caps 500 expanded 15px/35px Ahem"], }, { property: "font-family", @@ -113,6 +113,14 @@ midPoint: "500", }, + // `line-height` is not a font property but is a longhand of `font`, and is also supported. + { + property: "line-height", + from: "20px", + to: "50px", + midPoint: "35px", + }, + // ::marker supports `white-space` { property: "white-space", @@ -292,15 +300,6 @@ to: "decimal", midPoint: "disc", }, - - // ::marker does NOT support `line-height` because, despite being a - // longhand of `font`, it's not a font property. - { - property: "line-height", - from: "20px", - to: "50px", - midPoint: "normal", - }, ]; const target = document.getElementById("target");
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties.html b/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties.html index 15a4e89..62a54a3 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties.html +++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/parsing/marker-supported-properties.html
@@ -14,7 +14,7 @@ <script> // ::marker supports all font properties. test_pseudo_computed_value("::marker", "font", "italic small-caps 900 expanded 25px / 50px Ahem", - ["italic small-caps 900 expanded 25px Ahem", "italic small-caps 900 expanded 25px/normal Ahem"]); + ["italic small-caps 900 expanded 25px / 50px Ahem", "italic small-caps 900 expanded 25px/50px Ahem"]); test_pseudo_computed_value("::marker", "font-family", "Ahem"); test_pseudo_computed_value("::marker", "font-feature-settings", "\"smcp\""); test_pseudo_computed_value("::marker", "font-kerning", "none"); @@ -31,6 +31,9 @@ test_pseudo_computed_value("::marker", "font-variant-position", "sub"); test_pseudo_computed_value("::marker", "font-weight", "900"); +// `line-height` is not a font property but is a longhand of `font`, and is also supported. +test_pseudo_computed_value("::marker", "line-height", "50px", "50px"); + // ::marker supports `white-space` test_pseudo_computed_value("::marker", "white-space", "nowrap"); @@ -92,8 +95,4 @@ test_pseudo_computed_value("::marker", "list-style-image", "url('foo')", "none"); test_pseudo_computed_value("::marker", "list-style-position", "inside", "outside"); test_pseudo_computed_value("::marker", "list-style-type", "decimal", "disc"); - -// ::marker does NOT support `line-height` because, despite being a -// longhand of `font`, it's not a font property. -test_pseudo_computed_value("::marker", "line-height", "50px", "normal"); </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/geometry/DOMMatrix2DInit-validate-fixup-expected.txt b/third_party/blink/web_tests/external/wpt/css/geometry/DOMMatrix2DInit-validate-fixup-expected.txt deleted file mode 100644 index 0ffad3a..0000000 --- a/third_party/blink/web_tests/external/wpt/css/geometry/DOMMatrix2DInit-validate-fixup-expected.txt +++ /dev/null
@@ -1,188 +0,0 @@ -This is a testharness.js-based test. -Found 184 tests; 178 PASS, 6 FAIL, 0 TIMEOUT, 0 NOTRUN. -PASS setTransform({a: 1, m11: 2}) (invalid) -PASS addPath({a: 1, m11: 2}) (invalid) -PASS setTransform({b: 0, m12: -1}) (invalid) -PASS addPath({b: 0, m12: -1}) (invalid) -PASS setTransform({c: Infinity, m21: -Infinity}) (invalid) -PASS addPath({c: Infinity, m21: -Infinity}) (invalid) -PASS setTransform({d: 0, m22: NaN}) (invalid) -PASS addPath({d: 0, m22: NaN}) (invalid) -PASS setTransform({e: 1, m41: 1.00000001}) (invalid) -PASS addPath({e: 1, m41: 1.00000001}) (invalid) -PASS setTransform({f: 0, m42: 5e-324}) (invalid) -PASS addPath({f: 0, m42: 5e-324}) (invalid) -PASS setTransform (Sanity check without dictionary) -PASS addPath (Sanity check without second parameter) -PASS setTransform({m13: 1, is2D: true}) -PASS addPath({m13: 1, is2D: true}) -PASS setTransform({m14: 1, is2D: true}) -PASS addPath({m14: 1, is2D: true}) -PASS setTransform({m23: 1, is2D: true}) -PASS addPath({m23: 1, is2D: true}) -PASS setTransform({m24: 1, is2D: true}) -PASS addPath({m24: 1, is2D: true}) -PASS setTransform({m31: 1, is2D: true}) -PASS addPath({m31: 1, is2D: true}) -PASS setTransform({m32: 1, is2D: true}) -PASS addPath({m32: 1, is2D: true}) -PASS setTransform({m33: 0, is2D: true}) -PASS addPath({m33: 0, is2D: true}) -PASS setTransform({m33: -0, is2D: true}) -PASS addPath({m33: -0, is2D: true}) -PASS setTransform({m33: -1, is2D: true}) -PASS addPath({m33: -1, is2D: true}) -PASS setTransform({m34: 1, is2D: true}) -PASS addPath({m34: 1, is2D: true}) -PASS setTransform({m43: 1, is2D: true}) -PASS addPath({m43: 1, is2D: true}) -PASS setTransform({m44: 0, is2D: true}) -PASS addPath({m44: 0, is2D: true}) -PASS setTransform({}) -PASS addPath({}) -PASS setTransform({is2D: undefined}) -PASS addPath({is2D: undefined}) -PASS setTransform({a: 1, m11: 1}) -PASS addPath({a: 1, m11: 1}) -PASS setTransform({b: 0, m12: undefined}) -PASS addPath({b: 0, m12: undefined}) -PASS setTransform({c: 0, m21: 0}) -PASS addPath({c: 0, m21: 0}) -FAIL setTransform({c: 0, m21: -0}) assert_equals: m21 expected -0 but got 0 -PASS addPath({c: 0, m21: -0}) -PASS setTransform({c: -0, m21: 0}) -PASS addPath({c: -0, m21: 0}) -FAIL setTransform({c: -0, m21: -0}) assert_equals: m21 expected -0 but got 0 -PASS addPath({c: -0, m21: -0}) -PASS setTransform({d: Infinity, m22: Infinity}) -PASS addPath({d: Infinity, m22: Infinity}) -PASS setTransform({e: -Infinity, m41: -Infinity}) -PASS addPath({e: -Infinity, m41: -Infinity}) -PASS setTransform({f: NaN, m42: NaN}) -PASS addPath({f: NaN, m42: NaN}) -PASS setTransform({f: NaN, m42: NaN, is2D: true}) -PASS addPath({f: NaN, m42: NaN, is2D: true}) -PASS setTransform({f: 0, m42: null}) -PASS addPath({f: 0, m42: null}) -PASS setTransform({f: -0, m42: null}) -PASS addPath({f: -0, m42: null}) -PASS setTransform({a: 2}) -PASS addPath({a: 2}) -PASS setTransform({b: 2}) -PASS addPath({b: 2}) -PASS setTransform({c: 2}) -PASS addPath({c: 2}) -PASS setTransform({d: 2}) -PASS addPath({d: 2}) -PASS setTransform({e: 2}) -PASS addPath({e: 2}) -PASS setTransform({f: 2}) -PASS addPath({f: 2}) -FAIL setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0}) assert_equals: m41 expected -0 but got 0 -PASS addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0}) -FAIL setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true}) assert_equals: m41 expected -0 but got 0 -PASS addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true}) -PASS setTransform({m11: 2}) -PASS addPath({m11: 2}) -PASS setTransform({m12: 2}) -PASS addPath({m12: 2}) -PASS setTransform({m21: 2}) -PASS addPath({m21: 2}) -PASS setTransform({m22: 2}) -PASS addPath({m22: 2}) -PASS setTransform({m41: 2}) -PASS addPath({m41: 2}) -PASS setTransform({m42: 2}) -PASS addPath({m42: 2}) -FAIL setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0}) assert_equals: m41 expected -0 but got 0 -PASS addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0}) -FAIL setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true}) assert_equals: m41 expected -0 but got 0 -PASS addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true}) -PASS setTransform({m13: 0, is2D: true}) -PASS addPath({m13: 0, is2D: true}) -PASS setTransform({m13: -0, is2D: true}) -PASS addPath({m13: -0, is2D: true}) -PASS setTransform({m14: 0, is2D: true}) -PASS addPath({m14: 0, is2D: true}) -PASS setTransform({m14: -0, is2D: true}) -PASS addPath({m14: -0, is2D: true}) -PASS setTransform({m23: 0, is2D: true}) -PASS addPath({m23: 0, is2D: true}) -PASS setTransform({m23: -0, is2D: true}) -PASS addPath({m23: -0, is2D: true}) -PASS setTransform({m24: 0, is2D: true}) -PASS addPath({m24: 0, is2D: true}) -PASS setTransform({m24: -0, is2D: true}) -PASS addPath({m24: -0, is2D: true}) -PASS setTransform({m31: 0, is2D: true}) -PASS addPath({m31: 0, is2D: true}) -PASS setTransform({m31: -0, is2D: true}) -PASS addPath({m31: -0, is2D: true}) -PASS setTransform({m32: 0, is2D: true}) -PASS addPath({m32: 0, is2D: true}) -PASS setTransform({m32: -0, is2D: true}) -PASS addPath({m32: -0, is2D: true}) -PASS setTransform({m33: 1, is2D: true}) -PASS addPath({m33: 1, is2D: true}) -PASS setTransform({m34: 0, is2D: true}) -PASS addPath({m34: 0, is2D: true}) -PASS setTransform({m34: -0, is2D: true}) -PASS addPath({m34: -0, is2D: true}) -PASS setTransform({m43: 0, is2D: true}) -PASS addPath({m43: 0, is2D: true}) -PASS setTransform({m43: -0, is2D: true}) -PASS addPath({m43: -0, is2D: true}) -PASS setTransform({m44: 1, is2D: true}) -PASS addPath({m44: 1, is2D: true}) -PASS setTransform({is2D: true}) -PASS addPath({is2D: true}) -PASS setTransform({m13: 1, is2D: false}) -PASS addPath({m13: 1, is2D: false}) -PASS setTransform({m14: 1, is2D: false}) -PASS addPath({m14: 1, is2D: false}) -PASS setTransform({m23: 1, is2D: false}) -PASS addPath({m23: 1, is2D: false}) -PASS setTransform({m24: 1, is2D: false}) -PASS addPath({m24: 1, is2D: false}) -PASS setTransform({m31: 1, is2D: false}) -PASS addPath({m31: 1, is2D: false}) -PASS setTransform({m32: 1, is2D: false}) -PASS addPath({m32: 1, is2D: false}) -PASS setTransform({m33: 0, is2D: false}) -PASS addPath({m33: 0, is2D: false}) -PASS setTransform({m33: -0, is2D: false}) -PASS addPath({m33: -0, is2D: false}) -PASS setTransform({m33: -1, is2D: false}) -PASS addPath({m33: -1, is2D: false}) -PASS setTransform({m34: 1, is2D: false}) -PASS addPath({m34: 1, is2D: false}) -PASS setTransform({m43: 1, is2D: false}) -PASS addPath({m43: 1, is2D: false}) -PASS setTransform({m44: 0, is2D: false}) -PASS addPath({m44: 0, is2D: false}) -PASS setTransform({m13: 1}) -PASS addPath({m13: 1}) -PASS setTransform({m14: 1}) -PASS addPath({m14: 1}) -PASS setTransform({m23: 1}) -PASS addPath({m23: 1}) -PASS setTransform({m24: 1}) -PASS addPath({m24: 1}) -PASS setTransform({m31: 1}) -PASS addPath({m31: 1}) -PASS setTransform({m32: 1}) -PASS addPath({m32: 1}) -PASS setTransform({m33: 0}) -PASS addPath({m33: 0}) -PASS setTransform({m34: 1}) -PASS addPath({m34: 1}) -PASS setTransform({m43: 1}) -PASS addPath({m43: 1}) -PASS setTransform({m44: 0}) -PASS addPath({m44: 0}) -PASS setTransform({is2D: false}) -PASS addPath({is2D: false}) -PASS setTransform({is2D: null}) -PASS addPath({is2D: null}) -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/external/wpt/css/geometry/support/dommatrix-test-util.js b/third_party/blink/web_tests/external/wpt/css/geometry/support/dommatrix-test-util.js index af860e2..40c336ea 100644 --- a/third_party/blink/web_tests/external/wpt/css/geometry/support/dommatrix-test-util.js +++ b/third_party/blink/web_tests/external/wpt/css/geometry/support/dommatrix-test-util.js
@@ -35,7 +35,7 @@ return matrix; } -function checkMatrix(actual, expected, { epsilon = 0 } = {}) { +function checkMatrix(actual, expected, { epsilon = Number.MIN_VALUE } = {}) { for (let member in expected) { if (epsilon && typeof expected[member] === "number") { assert_approx_equals(actual[member], expected[member], epsilon, member);
diff --git a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt index 01a6808..769d662 100644 --- a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
@@ -7,7 +7,7 @@ PASS JS-engine-created TypeError (cross-site iframe) PASS web API-created TypeError (worker) PASS web API-created TypeError (cross-site iframe) -FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2038:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:609:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined -FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:60:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2038:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:609:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:57:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined +FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2044:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:609:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined +FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:60:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2044:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:609:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:57:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-queued-navigations.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-queued-navigations.html new file mode 100644 index 0000000..0569881e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-queued-navigations.html
@@ -0,0 +1,52 @@ +<!DOCTYPE html> +<head> + <title>Multiple queued lazy load navigations do not crash the page</title> + <link rel="author" title="Dom Farolino" href="mailto:dom@chromium.org"> + <link rel="help" href="https://html.spec.whatwg.org/multipage/urls-and-fetching.html#lazy-loading-attributes"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> + +<script> + const t = async_test('Multiple queued lazy load navigations do not crash ' + + 'the page'); + + let has_below_viewport_loaded = false; + + window.addEventListener("load", t.step_func(() => { + assert_false(has_below_viewport_loaded, + "The below_viewport element should not have loaded before " + + "window.load()."); + + // Queue another lazy load navigation on the iframe. This should not result + // in multiple internal intersection observers being created for the iframe + // element, but instead should result in only one intersection observer + // associated with the iframe element, and the resulting navigation should + // be for the latest `src` attribute mutation. + const target = document.querySelector('#below_viewport'); + target.src = 'resources/subframe.html?new-src'; + target.scrollIntoView(); + })); + + const below_viewport_iframe_onload = t.step_func_done(() => { + const target = document.querySelector('#below_viewport'); + // We check both of these to ensure that the `src` attribute and actual + // navigated resource do not get out-of-sync when navigating to lazy loaded + // resources. + assert_true( + target.src.includes('new-src'), + "The iframe's src should be updated to reflect the latest `src` " + + "mutation"); + assert_true( + target.contentDocument.location.href.includes('new-src'), + 'The iframe should be navigated to the resource provided by the latest ' + + '`src` mutation'); + }); +</script> + +<body> + <div style="height:3000vh;"></div> + <iframe id="below_viewport" src="resources/subframe.html?old-src" + loading="lazy" width="200px" height="100px" + onload="below_viewport_iframe_onload();"></iframe> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-backspace.tentative.html b/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-backspace.tentative.html index d057654a..71db5e7 100644 --- a/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-backspace.tentative.html +++ b/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-backspace.tentative.html
@@ -1241,6 +1241,303 @@ checkGetTargetRangesOfInputOnDeleteSomething(); }, 'Backspace at "<table><tr>{<td>cell</td>}</tr></table>"'); +// Testing multiple cell selection mode. +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell4 = gEditor.querySelector("tr + tr > td + td"); + let tr1 = cell1.parentNode; + let tr2 = cell4.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell4); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 2, "Should support multiple cell selection"); + await sendBackspaceKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td>cell2</td></tr><tr><td>cell3</td><td></td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td>cell2</td></tr><tr><td>cell3</td><td><br></td></tr></tbody></table>"]); + // XXX Perhaps, target range should be selecting only all children of + // cell1 and cell4 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Backspace at "<table><tr>{<td>cell1</td>}<td>cell2</td></tr><tr><td>cell3</td>{<td>cell4</td>}</tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell3 = gEditor.querySelector("tr + tr > td"); + let tr1 = cell1.parentNode; + let tr2 = cell3.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell3); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 2, "Should support multiple cell selection"); + await sendBackspaceKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td>cell2</td></tr><tr><td></td><td>cell4</td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td>cell2</td></tr><tr><td><br></td><td>cell4</td></tr></tbody></table>", + "<table><tbody><tr><td>cell2</td></tr><tr><td>cell4</td></tr></tbody></table>"]); + // XXX Perhaps, target range should be selecting only all children of + // cell1 and cell3 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 0, + endContainer: tr2, + endOffset: 1, + }, + ]); + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Backspace at "<table><tr>{<td>cell1</td>}<td>cell2</td></tr><tr>{<td>cell3</td>}<td>cell4</td></tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell2 = gEditor.querySelector("td + td"); + let tr1 = cell1.parentNode; + let tbody = tr1.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell2); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 2, "Should support multiple cell selection"); + await sendBackspaceKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td></td></tr><tr><td>cell3</td><td>cell4</td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td><br></td></tr><tr><td>cell3</td><td>cell4</td></tr></tbody></table>", + "<table><tbody><tr><td>cell3</td><td>cell4</td></tr></tbody></table>"]); + if (gEditor.querySelector("tr + tr")) { + // XXX Perhaps, target range should be selecting only all children of + // cell1 and cell2 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr1, + startOffset: 1, + endContainer: tr1, + endOffset: 2, + }, + ]); + } else { + checkGetTargetRangesOfBeforeinputOnDeleteSomething({ + startContainer: tbody, + startOffset: 0, + endContainer: tbody, + endOffset: 1, + }); + } + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Backspace at "<table><tr>{<td>cell1</td>}{<td>cell2</td>}</tr><tr><td>cell3</td><td>cell4</td></tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell3 = gEditor.querySelector("tr + tr > td"); + let cell4 = gEditor.querySelector("tr + tr > td + td"); + let tr2 = cell3.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell3); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell4); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 2, "Should support multiple cell selection"); + await sendBackspaceKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td>cell1</td><td>cell2</td></tr><tr><td></td><td></td></tr></tbody></table>", + "<table><tbody><tr><td>cell1</td><td>cell2</td></tr><tr><td><br></td><td><br></td></tr></tbody></table>", + "<table><tbody><tr><td>cell1</td><td>cell2</td></tr></tbody></table>"]); + if (gEditor.querySelector("tr + tr")) { + // XXX Perhaps, target range should be selecting only all children of + // cell3 and cell4 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr2, + startOffset: 0, + endContainer: tr2, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + } else { + checkGetTargetRangesOfBeforeinputOnDeleteSomething({ + startContainer: tbody, + startOffset: 1, + endContainer: tbody, + endOffset: 2, + }); + } + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Backspace at "<table><tr><td>cell1</td><td>cell2</td></tr><tr>{<td>cell3</td>}{<td>cell4</td>}</tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell2 = gEditor.querySelector("td + td"); + let cell3 = gEditor.querySelector("tr + tr > td"); + let cell4 = gEditor.querySelector("tr + tr > td + td"); + let tr1 = cell1.parentNode; + let tr2 = cell3.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell2); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell3); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell4); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 4, "Should support multiple cell selection"); + await sendBackspaceKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td></td></tr><tr><td></td><td></td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td></tr></tbody></table>", + "<br>"]); + if (gEditor.querySelector("table")) { + // XXX Perhaps, target range should be selecting only all children of + // cell1, cell2, cell3 and cell4 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr1, + startOffset: 1, + endContainer: tr1, + endOffset: 2, + }, + { + startContainer: tr2, + startOffset: 0, + endContainer: tr2, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + } else { + checkGetTargetRangesOfBeforeinputOnDeleteSomething({ + startContainer: gEditor, + startOffset: 0, + endContainer: gEditor, + endOffset: 1, + }); + } + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Backspace at "<table><tr>{<td>cell1</td>}{<td>cell2</td>}</tr><tr>{<td>cell3</td>}{<td>cell4</td>}</tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell2 = gEditor.querySelector("td + td"); + let cell4 = gEditor.querySelector("tr + tr > td + td"); + let tr1 = cell1.parentNode; + let tr2 = cell4.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.setStart(cell2.firstChild, 1); + range.setEnd(cell2.firstChild, 4); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell4); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 3, "Should support multiple cell selection"); + await sendBackspaceKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td>cell2</td></tr><tr><td>cell3</td><td></td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td>cell2</td></tr><tr><td>cell3</td><td><br></td></tr></tbody></table>", + "<table><tbody><tr><td></td><td>c2</td></tr><tr><td>cell3</td><td></td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td>c2</td></tr><tr><td>cell3</td><td><br></td></tr></tbody></table>"]); + if (cell2.firstChild.length == "cell2".length) { + // XXX Perhaps, target range should be selecting only all children of + // cell1 and cell4 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + } else { + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: cell2.firstChild, + startOffset: 1, + endContainer: cell2.firstChild, + endOffset: 4, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + } + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Backspace at "<table><tr>{<td>cell1</td>}<td>c[ell]2</td></tr><tr>{<td>cell3</td>}<td>cell4</td></tr></table>"'); + // If caret is not adjacent of deleting character, browser may not delete the // character, but update the caret position for next deletion. promise_test(async () => {
diff --git a/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-forwarddelete.tentative.html b/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-forwarddelete.tentative.html index 136a4a6b..bbc76f43 100644 --- a/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-forwarddelete.tentative.html +++ b/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-forwarddelete.tentative.html
@@ -1358,6 +1358,303 @@ checkGetTargetRangesOfInputOnDeleteSomething(); }, 'Delete at "<table><tr>{<td>cell</td>}</tr></table>"'); +// Testing multiple cell selection mode. +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell4 = gEditor.querySelector("tr + tr > td + td"); + let tr1 = cell1.parentNode; + let tr2 = cell4.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell4); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 2, "Should support multiple cell selection"); + await sendDeleteKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td>cell2</td></tr><tr><td>cell3</td><td></td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td>cell2</td></tr><tr><td>cell3</td><td><br></td></tr></tbody></table>"]); + // XXX Perhaps, target range should be selecting only all children of + // cell1 and cell4 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Delete at "<table><tr>{<td>cell1</td>}<td>cell2</td></tr><tr><td>cell3</td>{<td>cell4</td>}</tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell3 = gEditor.querySelector("tr + tr > td"); + let tr1 = cell1.parentNode; + let tr2 = cell3.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell3); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 2, "Should support multiple cell selection"); + await sendDeleteKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td>cell2</td></tr><tr><td></td><td>cell4</td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td>cell2</td></tr><tr><td><br></td><td>cell4</td></tr></tbody></table>", + "<table><tbody><tr><td>cell2</td></tr><tr><td>cell4</td></tr></tbody></table>"]); + // XXX Perhaps, target range should be selecting only all children of + // cell1 and cell3 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 0, + endContainer: tr2, + endOffset: 1, + }, + ]); + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Delete at "<table><tr>{<td>cell1</td>}<td>cell2</td></tr><tr>{<td>cell3</td>}<td>cell4</td></tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell2 = gEditor.querySelector("td + td"); + let tr1 = cell1.parentNode; + let tbody = tr1.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell2); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 2, "Should support multiple cell selection"); + await sendDeleteKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td></td></tr><tr><td>cell3</td><td>cell4</td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td><br></td></tr><tr><td>cell3</td><td>cell4</td></tr></tbody></table>", + "<table><tbody><tr><td>cell3</td><td>cell4</td></tr></tbody></table>"]); + if (gEditor.querySelector("tr + tr")) { + // XXX Perhaps, target range should be selecting only all children of + // cell1 and cell2 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr1, + startOffset: 1, + endContainer: tr1, + endOffset: 2, + }, + ]); + } else { + checkGetTargetRangesOfBeforeinputOnDeleteSomething({ + startContainer: tbody, + startOffset: 0, + endContainer: tbody, + endOffset: 1, + }); + } + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Delete at "<table><tr>{<td>cell1</td>}{<td>cell2</td>}</tr><tr><td>cell3</td><td>cell4</td></tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell3 = gEditor.querySelector("tr + tr > td"); + let cell4 = gEditor.querySelector("tr + tr > td + td"); + let tr2 = cell3.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell3); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell4); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 2, "Should support multiple cell selection"); + await sendDeleteKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td>cell1</td><td>cell2</td></tr><tr><td></td><td></td></tr></tbody></table>", + "<table><tbody><tr><td>cell1</td><td>cell2</td></tr><tr><td><br></td><td><br></td></tr></tbody></table>", + "<table><tbody><tr><td>cell1</td><td>cell2</td></tr></tbody></table>"]); + if (gEditor.querySelector("tr + tr")) { + // XXX Perhaps, target range should be selecting only all children of + // cell3 and cell4 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr2, + startOffset: 0, + endContainer: tr2, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + } else { + checkGetTargetRangesOfBeforeinputOnDeleteSomething({ + startContainer: tbody, + startOffset: 1, + endContainer: tbody, + endOffset: 2, + }); + } + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Delete at "<table><tr><td>cell1</td><td>cell2</td></tr><tr>{<td>cell3</td>}{<td>cell4</td>}</tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell2 = gEditor.querySelector("td + td"); + let cell3 = gEditor.querySelector("tr + tr > td"); + let cell4 = gEditor.querySelector("tr + tr > td + td"); + let tr1 = cell1.parentNode; + let tr2 = cell3.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell2); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell3); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell4); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 4, "Should support multiple cell selection"); + await sendDeleteKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td></td></tr><tr><td></td><td></td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td></tr></tbody></table>", + "<br>"]); + if (gEditor.querySelector("table")) { + // XXX Perhaps, target range should be selecting only all children of + // cell1, cell2, cell3 and cell4 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr1, + startOffset: 1, + endContainer: tr1, + endOffset: 2, + }, + { + startContainer: tr2, + startOffset: 0, + endContainer: tr2, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + } else { + checkGetTargetRangesOfBeforeinputOnDeleteSomething({ + startContainer: gEditor, + startOffset: 0, + endContainer: gEditor, + endOffset: 1, + }); + } + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Delete at "<table><tr>{<td>cell1</td>}{<td>cell2</td>}</tr><tr>{<td>cell3</td>}{<td>cell4</td>}</tr></table>"'); + +promise_test(async () => { + initializeTest("<table><tr><td>cell1</td><td>cell2</td></tr><tr><td>cell3</td><td>cell4</td></tr></table>"); + let cell1 = gEditor.querySelector("td"); + let cell2 = gEditor.querySelector("td + td"); + let cell4 = gEditor.querySelector("tr + tr > td + td"); + let tr1 = cell1.parentNode; + let tr2 = cell4.parentNode; + gSelection.removeAllRanges(); + let range = document.createRange(); + range.selectNode(cell1); + gSelection.addRange(range); + range = document.createRange(); + range.setStart(cell2.firstChild, 1); + range.setEnd(cell2.firstChild, 4); + gSelection.addRange(range); + range = document.createRange(); + range.selectNode(cell4); + gSelection.addRange(range); + assert_equals(gSelection.rangeCount, 3, "Should support multiple cell selection"); + await sendDeleteKey(); + assert_in_array(gEditor.innerHTML, ["<table><tbody><tr><td></td><td>cell2</td></tr><tr><td>cell3</td><td></td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td>cell2</td></tr><tr><td>cell3</td><td><br></td></tr></tbody></table>", + "<table><tbody><tr><td></td><td>c2</td></tr><tr><td>cell3</td><td></td></tr></tbody></table>", + "<table><tbody><tr><td><br></td><td>c2</td></tr><tr><td>cell3</td><td><br></td></tr></tbody></table>"]); + if (cell2.firstChild.length == "cell2".length) { + // XXX Perhaps, target range should be selecting only all children of + // cell1 and cell4 instead. + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + } else { + checkGetTargetRangesOfBeforeinputOnDeleteSomething([ + { + startContainer: tr1, + startOffset: 0, + endContainer: tr1, + endOffset: 1, + }, + { + startContainer: cell2.firstChild, + startOffset: 1, + endContainer: cell2.firstChild, + endOffset: 4, + }, + { + startContainer: tr2, + startOffset: 1, + endContainer: tr2, + endOffset: 2, + }, + ]); + } + checkGetTargetRangesOfInputOnDeleteSomething(); +}, 'Delete at "<table><tr>{<td>cell1</td>}<td>c[ell]2</td></tr><tr>{<td>cell3</td>}<td>cell4</td></tr></table>"'); + // If caret is not adjacent of deleting character, browser may not delete the // character, but update the caret position for next deletion. promise_test(async () => {
diff --git a/third_party/blink/web_tests/external/wpt/paint-timing/fcp-only/fcp-ignore-from-subframe.html b/third_party/blink/web_tests/external/wpt/paint-timing/fcp-only/fcp-ignore-from-subframe.html new file mode 100644 index 0000000..7083a93d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/paint-timing/fcp-only/fcp-ignore-from-subframe.html
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<head> + <title> + Performance Paint Timing Test: Paints in the iframe should be reported in the iframe + and not in the top document + </title> +</head> +<body> +<script src="../resources/utils.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +setup({"hide_test_state": true}); +promise_test(async t => { + assert_implements(window.PerformancePaintTiming, "Paint Timing isn't supported."); + const iframe = document.createElement('iframe'); + iframe.src = '../resources/subframe-painting.html'; + document.body.appendChild(iframe); + await new Promise(resolve => window.addEventListener('message', e => { + if (e.data.entryType == "paint" && e.data.name == "first-contentful-paint") + resolve() + })); + await assertNoFirstContentfulPaint(t); +}, 'Parent frame should not fire own paint-timing events for subframes.'); +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-history-about-srcdoc-expected.txt b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-history-about-srcdoc-expected.txt new file mode 100644 index 0000000..6ce57a6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-history-about-srcdoc-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL History navigation reuses original policy. assert_equals: History navigation reuses original policy. expected "http://web-platform.test:8001/" but got "http://web-platform.test:8001/custom" +PASS New srcdoc iframe uses new policy. +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-history-about-srcdoc.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-history-about-srcdoc.html new file mode 100644 index 0000000..31d2a33 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-history-about-srcdoc.html
@@ -0,0 +1,66 @@ +<!doctype html> +<title>Referrer Policy: navigating back to an about:srcdoc iframe reuses the original referrer policy</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="resources/make-html-script.js"></script> +<meta name="referrer" content="origin"> +<div id="log"></div> +<script> + let reportedReferrer = () => { + return new Promise(resolve => { + window.addEventListener("message", msg => resolve(msg.data.referrer)); + }); + }; + + let iframeLoaded = iframe => { + return new Promise(resolve => { + iframe.onload = resolve; + }); + }; + + promise_test(async t => { + // 1. Create an about:srcdoc iframe. + const iframe = document.createElement("iframe"); + iframe.name = 'test_frame'; + let iframe_load_1 = iframeLoaded(iframe); + let referrer_1 = reportedReferrer(); + iframe.srcdoc = createScriptString(get_host_info().REMOTE_ORIGIN, + location.origin + "/custom"); + document.body.appendChild(iframe); + await iframe_load_1; + + // 2. Change the referrer policy of the main document. + document.getElementsByTagName('meta')[0].content = "unsafe-url"; + + // 3. Navigate the iframe elsewhere. + let iframe_load_2 = iframeLoaded(iframe); + window.open('/referrer-policy', 'test_frame'); + await iframe_load_2; + + // 4. Navigate the iframe back. + let iframe_load_3 = iframeLoaded(iframe); + let referrer_2 = reportedReferrer(); + iframe.contentWindow.history.back(); + await iframe_load_3; + + // Despite the main document has changed its referrer policy in (2), the + // reported referrer for the history navigation to about:srcdoc in (4) must + // match with the one originally reported in (1). + assert_equals(await referrer_1, self.origin + '/', + "First navigation uses correct policy."); + assert_equals(await referrer_2, self.origin + '/', + "History navigation reuses original policy."); + }, "History navigation reuses original policy."); + + promise_test(async t => { + // If we initiate a new about:srcdoc navigation, the new referrer policy + // should apply. + const new_iframe = document.createElement("iframe"); + let new_iframe_referrer = reportedReferrer(); + new_iframe.srcdoc = createScriptString(get_host_info().REMOTE_ORIGIN, + location.origin + "/custom"); + document.body.appendChild(new_iframe); + assert_equals(await new_iframe_referrer, self.origin + '/custom'); + }, "New srcdoc iframe uses new policy."); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child-expected.txt b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child-expected.txt index 73cb453..581193b 100644 --- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child-expected.txt +++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child-expected.txt
@@ -1,6 +1,6 @@ This is a testharness.js-based test. -FAIL Referrer Policy: iframes with javascript url reuse referrer policy assert_equals: expected (string) "http://web-platform.test:8001/" but got (undefined) undefined -PASS Referrer Policy: iframes with javascript url reuse referrer policy 1 +FAIL Referrer Policy: iframes with javascript url reuse referrer policy assert_equals: expected "http://web-platform.test:8001/" but got "http://web-platform.test:8001/custom" +FAIL Referrer Policy: iframes with javascript url reuse referrer policy 1 assert_equals: expected (undefined) undefined but got (string) "http://web-platform.test:8001/custom" PASS Referrer Policy: iframes with javascript url reuse referrer policy 2 FAIL Referrer Policy: iframes with javascript url reuse referrer policy 3 assert_equals: expected (undefined) undefined but got (string) "http://web-platform.test:8001/" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html index e20da4f..670f78a 100644 --- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html +++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html
@@ -30,7 +30,11 @@ iframe.onload = t.step_func(() => { iframe.onload = null; const iframeChild = iframe.contentDocument.createElement("iframe"); - iframeChild.src = `javascript:'${createScriptString(get_host_info().REMOTE_ORIGIN)}'`; + // We add a custom referrer to the fetch request. Otherwise, + // since the frame's URL is "about:blank", the Referer header will + // always be empty: + // https://w3c.github.io/webappsec-referrer-policy/#strip-url. + iframeChild.src = `javascript:'${createScriptString(get_host_info().REMOTE_ORIGIN, location.origin+"/custom")}'`; iframe.contentDocument.body.appendChild(iframeChild); }); document.body.appendChild(iframe);
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-expected.txt b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-expected.txt index 01ccc62..4f0da80a 100644 --- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-expected.txt +++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript-expected.txt
@@ -1,4 +1,5 @@ This is a testharness.js-based test. -FAIL Referrer Policy: iframes with javascript url reuse referrer policy assert_equals: expected (string) "http://web-platform.test:8001/" but got (undefined) undefined +PASS Referrer Policy: iframes with javascript url reuse referrer policy +FAIL Referrer Policy: iframes with javascript url reuse referrer policy 1 assert_equals: expected "http://web-platform.test:8001/" but got "http://web-platform.test:8001/custom" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html index 77b6d759..e8de690c 100644 --- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html +++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html
@@ -7,13 +7,39 @@ <meta name="referrer" content="origin"> <div id="log"></div> <script> -async_test(t => { - window.addEventListener("message", t.step_func_done(msg => { - assert_equals(msg.data.referrer, self.origin + "/"); - })); - const iframe = document.createElement("iframe"); - iframe.src = `javascript:'${createScriptString(get_host_info().REMOTE_ORIGIN)}'`; - document.body.appendChild(iframe); +[ + { + fetchReferrer: "", + // Because the URL of the Document of <iframe src="javascript:..."> is + // "about:blank", the stripped URL is no referrer: + // https://w3c.github.io/webappsec-referrer-policy/#strip-url. + expected: undefined + }, + { + fetchReferrer: location.origin+"/custom", + // <iframe src="javascript:..."> inherits its parent's referrer policy. + // Note: Setting an explicit URL as referrer succeeds + // because the same-origin check at + // https://fetch.spec.whatwg.org/#dom-request + // is done against <iframe>'s origin, which inherits the parent + // Document's origin == location.orgin. Furthermore, since the iframe + // inherits its parent's referrer policy, the URL should be restricted to + // its origin. + expected: self.origin + "/" + } +].forEach(({ fetchReferrer, expected }) => { + promise_test(t => { + return new Promise(resolve => { + window.addEventListener("message", t.step_func(msg => { + assert_equals(msg.data.referrer, expected); + resolve(); + }), { once: true }); + const iframe = document.createElement("iframe"); + iframe.src = `javascript:'${createScriptString(get_host_info().REMOTE_ORIGIN, fetchReferrer)}'`; + document.body.appendChild(iframe); + }); + }); }); + </script>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/resources/make-html-script.js b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/resources/make-html-script.js index e285c55..a013fa64 100644 --- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/resources/make-html-script.js +++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/inheritance/resources/make-html-script.js
@@ -1,10 +1,13 @@ -function createScriptString(origin) { - return `<script src = "${origin}/common/security-features/resources/common.sub.js"><\/script> - <script> - requestViaXhr("${origin}/common/security-features/subresource/xhr.py").then(msg => { - top.postMessage({referrer: msg.referrer}, "*") - }).catch(e => { - top.postMessage({referrer: "FAILURE"}, "*"); - }); +function createScriptString(origin, referrer) { + let request_init = referrer ? `{referrer: "${referrer}"}` : ""; + return `<script> + fetch("${origin}/common/security-features/subresource/xhr.py", + ${request_init}) + .then(r => r.json()) + .then(j => { + top.postMessage({referrer: j.headers.referer}, "*") + }).catch(e => { + top.postMessage({referrer: "FAILURE"}, "*"); + }); <\/script>`; }
diff --git a/third_party/blink/web_tests/external/wpt/resources/testharness.js b/third_party/blink/web_tests/external/wpt/resources/testharness.js index 1c4f641..d50e094 100644 --- a/third_party/blink/web_tests/external/wpt/resources/testharness.js +++ b/third_party/blink/web_tests/external/wpt/resources/testharness.js
@@ -1384,10 +1384,16 @@ "expected a number but got a ${type_actual}", {type_actual:typeof actual}); - assert(Math.abs(actual - expected) <= epsilon, - "assert_approx_equals", description, - "expected ${expected} +/- ${epsilon} but got ${actual}", - {expected:expected, actual:actual, epsilon:epsilon}); + // The epsilon math below does not place nice with NaN and Infinity + // But in this case Infinity = Infinity and NaN = NaN + if (isFinite(actual) || isFinite(expected)) { + assert(Math.abs(actual - expected) <= epsilon, + "assert_approx_equals", description, + "expected ${expected} +/- ${epsilon} but got ${actual}", + {expected:expected, actual:actual, epsilon:epsilon}); + } else { + assert_equals(actual, expected); + } } expose(assert_approx_equals, "assert_approx_equals");
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-broken-signature.js b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-broken-signature.js deleted file mode 100644 index 32bf4573..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-broken-signature.js +++ /dev/null
@@ -1 +0,0 @@ -ed25519_broken_signature="trollololo";
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-broken-signature.js.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-broken-signature.js.headers deleted file mode 100644 index 47d4f9e..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-broken-signature.js.headers +++ /dev/null
@@ -1 +0,0 @@ -Integrity: ed25519-dY4xEJDd1AMMbFNIhAMzJO6uhp6gZJOhchjJXDB8yY67rYrF4QUmUWS9gkvdY0Cxo8Rnb2kIdoUiigodoatKDQ==
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature-headers.js b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature-headers.js deleted file mode 100644 index 3a8db87..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature-headers.js +++ /dev/null
@@ -1 +0,0 @@ -ed25519_signature=true;
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature-headers.js.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature-headers.js.headers deleted file mode 100644 index dad973c..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature-headers.js.headers +++ /dev/null
@@ -1,4 +0,0 @@ -Integrity: sha256-Potato -Integrity: ed25519-Potato -Integrity: ed25519-dY4xEJDd1AMMbFNIhAMzJO6uhp6gZJOhchjJXDB8yY67rYrF4QUmUWS9gkvdY0Cxo8Rnb2kIdoUiigodoatKDQ== -Integrity: ed25519-PotatoPotato
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature.js b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature.js deleted file mode 100644 index 3a8db87..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature.js +++ /dev/null
@@ -1 +0,0 @@ -ed25519_signature=true;
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature.js.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature.js.headers deleted file mode 100644 index 49098cc..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature.js.headers +++ /dev/null
@@ -1 +0,0 @@ -Integrity: sha256-Potato ed25519-Potato ed25519-dY4xEJDd1AMMbFNIhAMzJO6uhp6gZJOhchjJXDB8yY67rYrF4QUmUWS9gkvdY0Cxo8Rnb2kIdoUiigodoatKDQ== ed25519-PotatoPotato
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature2.js b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature2.js deleted file mode 100644 index 3a8db87..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature2.js +++ /dev/null
@@ -1 +0,0 @@ -ed25519_signature=true;
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature2.js.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature2.js.headers deleted file mode 100644 index 00f88d9..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-multi-signature2.js.headers +++ /dev/null
@@ -1 +0,0 @@ -Integrity: sha256-Potato, ed25519-Potato ed25519-dY4xEJDd1AMMbFNIhAMzJO6uhp6gZJOhchjJXDB8yY67rYrF4QUmUWS9gkvdY0Cxo8Rnb2kIdoUiigodoatKDQ== ,ed25519-PotatoPotato
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-no-signature.js b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-no-signature.js deleted file mode 100644 index 2997560..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-no-signature.js +++ /dev/null
@@ -1 +0,0 @@ -ed25519_no_signature=true;
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature.js b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature.js deleted file mode 100644 index 3a8db87..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature.js +++ /dev/null
@@ -1 +0,0 @@ -ed25519_signature=true;
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature.js.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature.js.headers deleted file mode 100644 index 47d4f9e..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature.js.headers +++ /dev/null
@@ -1 +0,0 @@ -Integrity: ed25519-dY4xEJDd1AMMbFNIhAMzJO6uhp6gZJOhchjJXDB8yY67rYrF4QUmUWS9gkvdY0Cxo8Rnb2kIdoUiigodoatKDQ==
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature2.js b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature2.js deleted file mode 100644 index 3a8db87..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature2.js +++ /dev/null
@@ -1 +0,0 @@ -ed25519_signature=true;
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature2.js.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature2.js.headers deleted file mode 100644 index 4338679..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-signature2.js.headers +++ /dev/null
@@ -1 +0,0 @@ -Integrity: ed25519-jMATgofD8LM8FWYjBhryikPzo9bUJOgBlJLOS0su1vjMrVmemh5AqPWIGxroEOuyjHj/TH2jsyy4nh6Ti8iECw==
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature-headers.css b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature-headers.css deleted file mode 100644 index 3cde4df..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature-headers.css +++ /dev/null
@@ -1 +0,0 @@ -.testdiv{ background-color: yellow }
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature-headers.css.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature-headers.css.headers deleted file mode 100644 index 3e1d2b6..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature-headers.css.headers +++ /dev/null
@@ -1,4 +0,0 @@ -Integrity: sha256-Potato -Integrity: ed25519-Potato -Integrity: ed25519-k+0f30qLFYl2l2/jK7VgDo6YoWyzWoyGKGgmXxxGUUkaQbvj/n0ABXQqRbHQr+EMXOaJU206t1SjkbSSBPN5CQ== -Integrity: ed25519-PotatoPotato
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature.css b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature.css deleted file mode 100644 index 3cde4df..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature.css +++ /dev/null
@@ -1 +0,0 @@ -.testdiv{ background-color: yellow }
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature.css.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature.css.headers deleted file mode 100644 index e951492..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature.css.headers +++ /dev/null
@@ -1 +0,0 @@ -Integrity: sha256-Potato ed25519-Potato ed25519-k+0f30qLFYl2l2/jK7VgDo6YoWyzWoyGKGgmXxxGUUkaQbvj/n0ABXQqRbHQr+EMXOaJU206t1SjkbSSBPN5CQ== ed25519-PotatoPotato
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature2.css b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature2.css deleted file mode 100644 index 3cde4df..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature2.css +++ /dev/null
@@ -1 +0,0 @@ -.testdiv{ background-color: yellow }
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature2.css.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature2.css.headers deleted file mode 100644 index 1f1e463a..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-multi-signature2.css.headers +++ /dev/null
@@ -1 +0,0 @@ -Integrity: sha256-Potato, ed25519-Potato ed25519-k+0f30qLFYl2l2/jK7VgDo6YoWyzWoyGKGgmXxxGUUkaQbvj/n0ABXQqRbHQr+EMXOaJU206t1SjkbSSBPN5CQ== ,ed25519-PotatoPotato
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-no-signature.css b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-no-signature.css deleted file mode 100644 index 3cde4df..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-no-signature.css +++ /dev/null
@@ -1 +0,0 @@ -.testdiv{ background-color: yellow }
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-wrong-signature.css b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-wrong-signature.css deleted file mode 100644 index 3cde4df..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-wrong-signature.css +++ /dev/null
@@ -1 +0,0 @@ -.testdiv{ background-color: yellow }
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-wrong-signature.css.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-wrong-signature.css.headers deleted file mode 100644 index 47d4f9e..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style-wrong-signature.css.headers +++ /dev/null
@@ -1 +0,0 @@ -Integrity: ed25519-dY4xEJDd1AMMbFNIhAMzJO6uhp6gZJOhchjJXDB8yY67rYrF4QUmUWS9gkvdY0Cxo8Rnb2kIdoUiigodoatKDQ==
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style.css b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style.css deleted file mode 100644 index 3cde4df..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style.css +++ /dev/null
@@ -1 +0,0 @@ -.testdiv{ background-color: yellow }
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style.css.headers b/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style.css.headers deleted file mode 100644 index de141637..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/ed25519-style.css.headers +++ /dev/null
@@ -1,2 +0,0 @@ -Integrity: ed25519-k+0f30qLFYl2l2/jK7VgDo6YoWyzWoyGKGgmXxxGUUkaQbvj/n0ABXQqRbHQr+EMXOaJU206t1SjkbSSBPN5CQ== -
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/subresource-css-ed25519.tentative.html b/third_party/blink/web_tests/external/wpt/subresource-integrity/subresource-css-ed25519.tentative.html deleted file mode 100644 index 7604acb7..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/subresource-css-ed25519.tentative.html +++ /dev/null
@@ -1,126 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<title>Subresource Integrity</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/resources/sriharness.js"></script> - -<div id="log"></div> - -<div id="container"></div> -<script> - var public_key = "otDax00eEy6QTMK61lfzrHgZDsXw++rdJkYi02N6X0c=" - var style_tests = []; - - new SRIStyleTest( - style_tests, - true, - "Passes, with correct key + signature.", - { - href: "ed25519-style.css?1", - integrity: "ed25519-" + public_key - } - ); - new SRIStyleTest( - style_tests, - false, - "Fails, because the key is malformed.", - { - href: "ed25519-style.css?2", - integrity: "ed25519-PotatoPotatoPotato" - } - ); - new SRIStyleTest( - style_tests, - false, - "Fails because of wrong key.", - { - href: "ed25519-style.css?3", - integrity: "ed25519-PotatoPotatoPotatoPotatoPotatoAvocadoPotato=" - - } - ); - new SRIStyleTest( - style_tests, - false, - "Fails, because of missing key.", - { - href: "ed25519-style-no-signature.css", - integrity: "ed25519-" + public_key - } - ); - new SRIStyleTest( - style_tests, - false, - "Fails, because of wrong key.", - { - href: "ed25519-style-wrong-signature.css", - integrity: "ed25519-" + public_key - } - ); - new SRIStyleTest( - style_tests, - true, - "Passes, because the first of two keys passes.", - { - href: "ed25519-style.css?1", - integrity: "ed25519-" + public_key + - " ed25519-PotatoPotatoPotatoPotatoPotatoAvocadoPotato=" - } - ); - new SRIStyleTest( - style_tests, - true, - "Passes, because the second of two keys passes.", - { - href: "ed25519-style.css?1", - integrity: "ed25519-PotatoPotatoPotatoPotatoPotatoAvocadoPotato= " + - "ed25519-" + public_key - } - ); - new SRIStyleTest( - style_tests, - true, - "Passes, because at least one signature matches.", - { - href: "ed25519-style-multi-signature.css", - integrity: "ed25519-" + public_key - } - ); - new SRIStyleTest( - style_tests, - true, - "Passes (as above), with commas between values.", - { - href: "ed25519-style-multi-signature2.css", - integrity: "ed25519-" + public_key - } - ); - new SRIStyleTest( - style_tests, - true, - "Passes (as above), with multiple headers.", - { - href: "ed25519-style-multi-signature-headers.css", - integrity: "ed25519-" + public_key - } - ); - new SRIStyleTest( - style_tests, - true, - "Passes, with multiple signatures + multiple keys.", - { - href: "ed25519-style-multi-signature.css?2", - integrity: "ed25519-PotatoPotatoPotatoPotatoPotatoAvocadoPotato= " + - "ed25519-" + public_key - } - ); - - // Run all style_tests in sequence. - function execute_next_style_test() { - if (style_tests.length > 0) - style_tests.shift().execute(); - } - add_result_callback(execute_next_style_test); - execute_next_style_test(); -</script>
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/subresource-ed25519-with-csp.tentative.html b/third_party/blink/web_tests/external/wpt/subresource-integrity/subresource-ed25519-with-csp.tentative.html deleted file mode 100644 index ca80c22..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/subresource-ed25519-with-csp.tentative.html +++ /dev/null
@@ -1,51 +0,0 @@ -<!DOCTYPE html> -<meta http-equiv="Content-Security-Policy" - content="script-src 'unsafe-inline' 'nonce-abcd' 'ed25519-qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0='"> - -<title>Subresource Integrity with Ed25519 plus Content Security Policy</title> -<script src="/resources/testharness.js" nonce="abcd"></script> -<script src="/resources/testharnessreport.js" nonce="abcd"></script> -<script src="/resources/sriharness.js" nonce="abcd"></script> - -<div id="log"></div> -<div id="container"></div> -<script nonce="abcd"> - // This needs to be the same key as in this doc's content security policy. - var public_key = "qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0="; - new SRIScriptTest( - true, - "Ed25519-with-CSP, passes, valid key, valid signature.", - "ed25519-signature.js", - "ed25519-" + public_key - ).execute(); - - new SRIScriptTest( - false, - "Ed25519-with-CSP, fails, valid key, invalid signature.", - "ed25519-broken-signature.js", - "ed25519-" + public_key - ).execute(); - - // The first of these uses the nonce rather than the signature to pass CSP. - // That doesn't test anything useful about the Ed25519 feature, but is here - // to test the precondition for the next test. So if this test passes and - // the second one fails, then we can be sure that the 2nd test failed only - // because of the CSP key mismatch, as that's the only difference between - // the tests. - var key_not_in_csp = "5MVHFfs/9Ri+YSwH4FwneSFp88t1ljryPoLxdiyTKks="; - new SRIScriptTest( - true, - "Ed25519-with-CSP, passes, alternative key.", - "ed25519-signature2.js", - "ed25519-" + key_not_in_csp, - /* cross origin */ undefined, - /* nonce */ "abcd").execute(); - new SRIScriptTest( - false, - "Ed25519-with-CSP, fails, valid key, valid signature, key not in CSP.", - "ed25519-signature2.js", - "ed25519-" + key_not_in_csp, - ).execute(); -</script> - -
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/subresource-ed25519.tentative.html b/third_party/blink/web_tests/external/wpt/subresource-integrity/subresource-ed25519.tentative.html deleted file mode 100644 index 1f091eb..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/subresource-ed25519.tentative.html +++ /dev/null
@@ -1,83 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<title>Subresource Integrity</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/resources/sriharness.js"></script> - -<div id="log"></div> - -<div id="container"></div> -<script> - var public_key = "qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0=" - new SRIScriptTest( - true, - "Ed255519 signature, passes.", - "ed25519-signature.js?1", - "ed25519-" + public_key - ).execute(); - new SRIScriptTest( - false, - "Ed255519 signature, fails because key is malformed.", - "ed25519-signature.js?2", - "ed25519-PotatoPotatoPotato" - ).execute(); - new SRIScriptTest( - false, - "Ed255519 signature, fails because wrong key.", - "ed25519-signature.js?3", - "ed25519-PotatoPotatoPotatoPotatoPotatoAvocadoPotato=" - ).execute(); - new SRIScriptTest( - false, - "Ed255519 signature, fails because no signature in response header.", - "ed25519-no-signature.js", - "ed25519-" + public_key - ).execute(); - new SRIScriptTest( - false, - "Ed255519 signature, fails because incorrect signature in response.", - "ed25519-broken-signature.js", - "ed25519-" + public_key - ).execute(); - new SRIScriptTest( - true, - "Ed255519 signature, passes if any (first) of two keys passes.", - "ed25519-signature.js?4", - "ed25519-" + public_key + - " ed25519-PotatoPotatoPotatoPotatoPotatoAvocadoPotato=" - ).execute(); - new SRIScriptTest( - true, - "Ed255519 signature, passes if any (second) of two keys passes.", - "ed25519-signature.js?5", - "ed25519-PotatoPotatoPotatoPotatoPotatoAvocadoPotato= ed25519-" + - public_key - ).execute(); - new SRIScriptTest( - true, - "Ed255519 signature, passes because at least one signature matches.", - "ed25519-multi-signature.js", - "ed25519-" + public_key - ).execute(); - new SRIScriptTest( - true, - "Ed255519 signature, passes (as above), with commas between values.", - "ed25519-multi-signature2.js", - "ed25519-" + public_key - ).execute(); - new SRIScriptTest( - true, - "Ed255519 signature, passes (as above), with multiple headers.", - "ed25519-multi-signature-headers.js", - "ed25519-" + public_key - ).execute(); - new SRIScriptTest( - true, - "Ed255519 signature, passes, with multiple signature + multiple keys.", - "ed25519-multi-signature.js?2", - "ed25519-PotatoPotatoPotatoPotatoPotatoAvocadoPotato= ed25519-" + - public_key - ).execute(); -</script> -
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/tools/ed25519.py b/third_party/blink/web_tests/external/wpt/subresource-integrity/tools/ed25519.py deleted file mode 100644 index 8497786..0000000 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/tools/ed25519.py +++ /dev/null
@@ -1,109 +0,0 @@ -# The original version of this file was downloaded from -# http://ed25519.cr.yp.to/software.html, and came with the following copyright -# statement: -# The Ed25519 software is in the public domain. - -import hashlib - -b = 256 -q = 2**255 - 19 -l = 2**252 + 27742317777372353535851937790883648493 - -def H(m): - return hashlib.sha512(m).digest() - -def expmod(b,e,m): - if e == 0: return 1 - t = expmod(b,e/2,m)**2 % m - if e & 1: t = (t*b) % m - return t - -def inv(x): - return expmod(x,q-2,q) - -d = -121665 * inv(121666) -I = expmod(2,(q-1)/4,q) - -def xrecover(y): - xx = (y*y-1) * inv(d*y*y+1) - x = expmod(xx,(q+3)/8,q) - if (x*x - xx) % q != 0: x = (x*I) % q - if x % 2 != 0: x = q-x - return x - -By = 4 * inv(5) -Bx = xrecover(By) -B = [Bx % q,By % q] - -def edwards(P,Q): - x1 = P[0] - y1 = P[1] - x2 = Q[0] - y2 = Q[1] - x3 = (x1*y2+x2*y1) * inv(1+d*x1*x2*y1*y2) - y3 = (y1*y2+x1*x2) * inv(1-d*x1*x2*y1*y2) - return [x3 % q,y3 % q] - -def scalarmult(P,e): - if e == 0: return [0,1] - Q = scalarmult(P,e/2) - Q = edwards(Q,Q) - if e & 1: Q = edwards(Q,P) - return Q - -def encodeint(y): - bits = [(y >> i) & 1 for i in range(b)] - return ''.join([chr(sum([bits[i * 8 + j] << j for j in range(8)])) for i in range(b/8)]) - -def encodepoint(P): - x = P[0] - y = P[1] - bits = [(y >> i) & 1 for i in range(b - 1)] + [x & 1] - return ''.join([chr(sum([bits[i * 8 + j] << j for j in range(8)])) for i in range(b/8)]) - -def bit(h,i): - return (ord(h[i/8]) >> (i%8)) & 1 - -def publickey(sk): - h = H(sk) - a = 2**(b-2) + sum(2**i * bit(h,i) for i in range(3,b-2)) - A = scalarmult(B,a) - return encodepoint(A) - -def Hint(m): - h = H(m) - return sum(2**i * bit(h,i) for i in range(2*b)) - -def signature(m,sk,pk): - h = H(sk) - a = 2**(b-2) + sum(2**i * bit(h,i) for i in range(3,b-2)) - r = Hint(''.join([h[i] for i in range(b/8,b/4)]) + m) - R = scalarmult(B,r) - S = (r + Hint(encodepoint(R) + pk + m) * a) % l - return encodepoint(R) + encodeint(S) - -def isoncurve(P): - x = P[0] - y = P[1] - return (-x*x + y*y - 1 - d*x*x*y*y) % q == 0 - -def decodeint(s): - return sum(2**i * bit(s,i) for i in range(0,b)) - -def decodepoint(s): - y = sum(2**i * bit(s,i) for i in range(0,b-1)) - x = xrecover(y) - if x & 1 != bit(s,b-1): x = q-x - P = [x,y] - if not isoncurve(P): raise Exception("decoding point that is not on curve") - return P - -def checkvalid(s,m,pk): - if len(s) != b/4: raise Exception("signature length is wrong") - if len(pk) != b/8: raise Exception("public-key length is wrong") - R = decodepoint(s[0:b/8]) - A = decodepoint(pk) - S = decodeint(s[b/8:b/4]) - h = Hint(encodepoint(R) + pk + m) - if scalarmult(B,S) != edwards(R,scalarmult(A,h)): - raise Exception("signature does not pass verification")
diff --git a/third_party/blink/web_tests/external/wpt/subresource-integrity/tools/list_hashes.py b/third_party/blink/web_tests/external/wpt/subresource-integrity/tools/list_hashes.py index 0db1985..5f189ce 100644 --- a/third_party/blink/web_tests/external/wpt/subresource-integrity/tools/list_hashes.py +++ b/third_party/blink/web_tests/external/wpt/subresource-integrity/tools/list_hashes.py
@@ -3,8 +3,6 @@ from os import path, listdir from hashlib import sha512, sha384, sha256, md5 from base64 import b64encode -from random import randint -import ed25519 import re DIR = path.normpath(path.join(__file__, "..", "..")) @@ -42,28 +40,12 @@ return "sha256-%s" % format_digest(sha256(content).digest()) ''' -Generate an encoded ed25519 signature. -''' -def ed25519_signature(private_public_key, content): - signature = ed25519.signature(content, *private_public_key) - return "ed25519-%s" % format_digest(signature) - -''' -Generate private + public key pair for ed25519 signatures. -''' -def ed25519_key_pair(): - secret_key = ''.join(chr(randint(0, 255)) for _ in range(0,32)) - public_key = ed25519.publickey(secret_key) - return (secret_key, public_key) - -''' Generate an encoded md5 digest URI. ''' def md5_uri(content): return "md5-%s" % format_digest(md5(content).digest()) def main(): - ed25519_key = ed25519_key_pair() for file in js_and_css_files(): print("Listing hash values for %s" % file) with open(file, "r") as content_file: @@ -72,8 +54,6 @@ print("\tSHA384 integrity: %s" % sha384_uri(content)) print("\tSHA256 integrity: %s" % sha256_uri(content)) print("\tMD5 integrity: %s" % md5_uri(content)) - print("\tEd25519 integrity: %s" % ed25519_signature(ed25519_key, content)) - print("\nEd25519 public key (used above): %s" % format_digest(ed25519_key[1])) if __name__ == "__main__": main()
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/back/back.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/back/back.py index 9ca52e8..5b50bc1 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/back/back.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/back/back.py
@@ -109,3 +109,18 @@ assert session.url == pushstate_page assert session.execute_script("return history.state;") is None + + +def test_removed_iframe(session, url): + page = inline("<p>foo") + + session.url = page + session.url = url("/webdriver/tests/support/html/frames_no_bfcache.html") + + subframe = session.find.css("#sub-frame", all=False) + session.switch_frame(subframe) + + response = back(session) + assert_success(response) + + assert session.url == page
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/forward/forward.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/forward/forward.py index 4a1e215..d71bbd1 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/forward/forward.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/forward/forward.py
@@ -130,3 +130,20 @@ assert session.url == "{}#pushstate".format(pushstate_page) assert session.execute_script("return history.state;") == {"foo": "bar"} + + +def test_removed_iframe(session, url): + page = inline("<p>foo") + + session.url = url("/webdriver/tests/support/html/frames_no_bfcache.html") + session.url = page + + session.back() + + subframe = session.find.css("#sub-frame", all=False) + session.switch_frame(subframe) + + response = forward(session) + assert_success(response) + + assert session.url == page
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/html/frames_no_bfcache.html b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/html/frames_no_bfcache.html new file mode 100644 index 0000000..1972187 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/html/frames_no_bfcache.html
@@ -0,0 +1,18 @@ +<html> +<head> + <script type="text/javascript"> + function remove() { + const frame = document.getElementById("sub-frame"); + const div = document.getElementById("delete"); + div.removeChild(frame); + } + </script> +</head> + +<!-- unload handler prevents the page from being added to the bfcache on navigation --> +<body onunload=""> + <div id="delete"> + <iframe src="subframe.html" id="sub-frame"></iframe> + </div> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_window/switch.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_window/switch.py index 98b4bee..9e531558 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_window/switch.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_window/switch.py
@@ -1,6 +1,7 @@ from webdriver.transport import Response from tests.support.asserts import assert_error, assert_success +from tests.support.inline import iframe, inline def switch_to_window(session, handle): @@ -51,3 +52,16 @@ assert_success(response) assert session.window_handle == new_handle + + +def test_switch_to_window_sets_top_level_context(session): + session.url = inline(iframe("<p>foo")) + + frame = session.find.css("iframe", all=False) + session.switch_frame(frame) + session.find.css("p", all=False) + + response = switch_to_window(session, session.window_handle) + assert_success(response) + + session.find.css("iframe", all=False)
diff --git a/third_party/blink/web_tests/http/tests/devtools/copy-network-request-expected.txt b/third_party/blink/web_tests/http/tests/devtools/copy-network-request-expected.txt index f4ec1d1d..938da52 100644 --- a/third_party/blink/web_tests/http/tests/devtools/copy-network-request-expected.txt +++ b/third_party/blink/web_tests/http/tests/devtools/copy-network-request-expected.txt
@@ -29,13 +29,13 @@ cURL Windows: curl "http://example.org/path" ^ - --data-binary "123" ^ + --data-raw "123" ^ --compressed cURL Unix: curl 'http://example.org/path' \ - --data-binary '123' \ + --data-raw '123' \ --compressed @@ -109,14 +109,14 @@ cURL Windows: curl "http://example.org/path" ^ -H "Content-Type: application/json" ^ - --data-binary "^{^\^"a^\^":1^}" ^ + --data-raw "^{^\^"a^\^":1^}" ^ --compressed cURL Unix: curl 'http://example.org/path' \ -H 'Content-Type: application/json' \ - --data-binary '{"a":1}' \ + --data-raw '{"a":1}' \ --compressed @@ -153,7 +153,7 @@ cURL Windows: curl "http://example.org/path" ^ -H "Content-Type: application/binary" ^ - --data-binary ^"1234^ + --data-raw ^"1234^ 00^^^^'^\^"^!^" ^ --compressed @@ -162,7 +162,7 @@ cURL Unix: curl 'http://example.org/path' \ -H 'Content-Type: application/binary' \ - --data-binary $'1234\r\n00\u0002\u0003\u0004\u0005\'"\u0021' \ + --data-raw $'1234\r\n00\u0002\u0003\u0004\u0005\'"\u0021' \ --compressed @@ -199,7 +199,7 @@ cURL Windows: curl "http://example.org/path" ^ -H "Content-Type: application/binary" ^ - --data-binary ^"1234^ + --data-raw ^"1234^ ^00^^^^'^\^"^!^" ^ --compressed @@ -208,7 +208,7 @@ cURL Unix: curl 'http://example.org/path' \ -H 'Content-Type: application/binary' \ - --data-binary $'1234\r\n\u000100\u0002\u0003\u0004\u0005\'"\u0021' \ + --data-raw $'1234\r\n\u000100\u0002\u0003\u0004\u0005\'"\u0021' \ --compressed @@ -245,7 +245,7 @@ cURL Windows: curl "http://example.org/path" ^ -H "Content-Type: application/binary" ^ - --data-binary ^"^%^OS^%^ + --data-raw ^"^%^OS^%^ ^%^%^OS^%^%^ @@ -256,7 +256,7 @@ cURL Unix: curl 'http://example.org/path' \ -H 'Content-Type: application/binary' \ - --data-binary $'%OS%\r\n%%OS%%\r\n"\\"\'$&\u0021' \ + --data-raw $'%OS%\r\n%%OS%%\r\n"\\"\'$&\u0021' \ --compressed @@ -293,7 +293,7 @@ cURL Windows: curl "http://example.org/path" ^ -H "Content-Type: application/binary" ^ - --data-binary ^"^!^@^#^$^%^^^&*()_+~`1234567890-=^[^]^{^};':^\^",./^ + --data-raw ^"^!^@^#^$^%^^^&*()_+~`1234567890-=^[^]^{^};':^\^",./^ ^<^>?^ @@ -310,7 +310,7 @@ cURL Unix: curl 'http://example.org/path' \ -H 'Content-Type: application/binary' \ - --data-binary $'\u0021@#$%^&*()_+~`1234567890-=[]{};\':",./\r<>?\r\nqwer\nt\n\nyuiopasdfghjklmnbvcxzQWERTYUIOPLKJHGFDSAZXCVBNM' \ + --data-raw $'\u0021@#$%^&*()_+~`1234567890-=[]{};\':",./\r<>?\r\nqwer\nt\n\nyuiopasdfghjklmnbvcxzQWERTYUIOPLKJHGFDSAZXCVBNM' \ --compressed @@ -347,14 +347,14 @@ cURL Windows: curl "http://example.org/path" ^ -H "Content-Type: application/binary" ^ - --data-binary "^^^^ÿ ^܀" ^ + --data-raw "^^^^ÿ ^܀" ^ --compressed cURL Unix: curl 'http://example.org/path' \ -H 'Content-Type: application/binary' \ - --data-binary $'\u007f\u0080\u0090ÿ\u0009܀' \ + --data-raw $'\u007f\u0080\u0090ÿ\u0009܀' \ --compressed @@ -420,14 +420,14 @@ cURL Windows: curl "http://example.org/path" ^ -H "Content-Type: application/binary" ^ - --data-binary "^%^PATH^%^$PATH" ^ + --data-raw "^%^PATH^%^$PATH" ^ --compressed cURL Unix: curl 'http://example.org/path' \ -H 'Content-Type: application/binary' \ - --data-binary '%PATH%$PATH' \ + --data-raw '%PATH%$PATH' \ --compressed @@ -666,14 +666,14 @@ cURL Windows: curl "http://example.org/path" ^ -H "Content-Type: foo/bar" ^ - --data-binary "baz" ^ + --data-raw "baz" ^ --compressed cURL Unix: curl 'http://example.org/path' \ -H 'Content-Type: foo/bar' \ - --data-binary 'baz' \ + --data-raw 'baz' \ --compressed @@ -710,14 +710,14 @@ cURL Windows: curl "http://example.org/path" ^ -H "Content-Type: foo/bar" ^ - --data-binary "baz" ^ + --data-raw "baz" ^ --compressed cURL Unix: curl 'http://example.org/path' \ -H 'Content-Type: foo/bar' \ - --data-binary 'baz' \ + --data-raw 'baz' \ --compressed
diff --git a/third_party/blink/web_tests/platform/mac/editing/pasteboard/drag-selected-image-to-contenteditable-expected.txt b/third_party/blink/web_tests/platform/mac/editing/pasteboard/drag-selected-image-to-contenteditable-expected.txt index 918a064..7703852 100644 --- a/third_party/blink/web_tests/platform/mac/editing/pasteboard/drag-selected-image-to-contenteditable-expected.txt +++ b/third_party/blink/web_tests/platform/mac/editing/pasteboard/drag-selected-image-to-contenteditable-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -FAIL assertSelection(inputText, tester, expectedText, options) resources/testharness.js:2038:25) +FAIL assertSelection(inputText, tester, expectedText, options) resources/testharness.js:2044:25) expected <style>div, img { width: 200px; height: 100px; }</style><div contenteditable id="target">^<img id="image">|</div><img id="image">, but got <style>div, img { width: 200px; height: 100px; }</style><div contenteditable id="target"></div>^<img id="image">|, sameupto <style>div, img { width: 200px; height: 100px; }</style><div contenteditable id="target">
diff --git a/third_party/blink/web_tests/resources/testharness.js b/third_party/blink/web_tests/resources/testharness.js index 1c4f641..dd79c73 100644 --- a/third_party/blink/web_tests/resources/testharness.js +++ b/third_party/blink/web_tests/resources/testharness.js
@@ -1384,10 +1384,16 @@ "expected a number but got a ${type_actual}", {type_actual:typeof actual}); - assert(Math.abs(actual - expected) <= epsilon, - "assert_approx_equals", description, - "expected ${expected} +/- ${epsilon} but got ${actual}", - {expected:expected, actual:actual, epsilon:epsilon}); + // The epsilon math below does not place nice with NaN and Infinity + // But in this case Infinity = Infinity and NaN = NaN + if (!isFinite(actual) || !isFinite(expected)) { + assert_equals(actual, expected) + } else { + assert(Math.abs(actual - expected) <= epsilon, + "assert_approx_equals", description, + "expected ${expected} +/- ${epsilon} but got ${actual}", + {expected:expected, actual:actual, epsilon:epsilon}); + } } expose(assert_approx_equals, "assert_approx_equals");
diff --git a/third_party/blink/web_tests/virtual/force-defer-script/defer-script/async-script-expected.txt b/third_party/blink/web_tests/virtual/force-defer-script/defer-script/async-script-expected.txt index c351351..495c955 100644 --- a/third_party/blink/web_tests/virtual/force-defer-script/defer-script/async-script-expected.txt +++ b/third_party/blink/web_tests/virtual/force-defer-script/defer-script/async-script-expected.txt
@@ -1,4 +1,4 @@ -CONSOLE ERROR: line 3603: Uncaught Error: assert_equals: Normal script execution order comparison expected "Inline1;Sync1;EndOfBody;DOMContentLoaded;Async1;" but got "EndOfBody;Inline1;Sync1;DOMContentLoaded;Async1;" +CONSOLE ERROR: line 3609: Uncaught Error: assert_equals: Normal script execution order comparison expected "Inline1;Sync1;EndOfBody;DOMContentLoaded;Async1;" but got "EndOfBody;Inline1;Sync1;DOMContentLoaded;Async1;" This is a testharness.js-based test. FAIL Async Script Execution Order (wrt possibly deferred Synchronous Script) Uncaught Error: assert_equals: Normal script execution order comparison expected "Inline1;Sync1;EndOfBody;DOMContentLoaded;Async1;" but got "EndOfBody;Inline1;Sync1;DOMContentLoaded;Async1;" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/force-defer-script/defer-script/defer-script-expected.txt b/third_party/blink/web_tests/virtual/force-defer-script/defer-script/defer-script-expected.txt index 2f5dce66..9b283f7 100644 --- a/third_party/blink/web_tests/virtual/force-defer-script/defer-script/defer-script-expected.txt +++ b/third_party/blink/web_tests/virtual/force-defer-script/defer-script/defer-script-expected.txt
@@ -1,4 +1,4 @@ -CONSOLE ERROR: line 3603: Uncaught Error: assert_equals: Normal defer script execution order comparison expected "Inline1;Sync1;Inline2;Sync2;EndOfBody;Defer1;Defer2;DOMContentLoaded;" but got "EndOfBody;Inline1;Sync1;Inline2;Sync2;Defer1;Defer2;DOMContentLoaded;" +CONSOLE ERROR: line 3609: Uncaught Error: assert_equals: Normal defer script execution order comparison expected "Inline1;Sync1;Inline2;Sync2;EndOfBody;Defer1;Defer2;DOMContentLoaded;" but got "EndOfBody;Inline1;Sync1;Inline2;Sync2;Defer1;Defer2;DOMContentLoaded;" This is a testharness.js-based test. FAIL Defer Script Execution Order Uncaught Error: assert_equals: Normal defer script execution order comparison expected "Inline1;Sync1;Inline2;Sync2;EndOfBody;Defer1;Defer2;DOMContentLoaded;" but got "EndOfBody;Inline1;Sync1;Inline2;Sync2;Defer1;Defer2;DOMContentLoaded;" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-explicit-rows-001-expected.txt b/third_party/blink/web_tests/virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-explicit-rows-001-expected.txt deleted file mode 100644 index 78d85608..0000000 --- a/third_party/blink/web_tests/virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-explicit-rows-001-expected.txt +++ /dev/null
@@ -1,11 +0,0 @@ -This is a testharness.js-based test. -FAIL .grid 1 assert_equals: -<div class="grid"> - <div id="c1" data-expected-width="23" data-expected-height="11"></div> - <div id="c2" data-expected-width="52" data-expected-height="24"></div> - <div id="c3" data-expected-width="83" data-expected-height="41"></div> - <div id="c4" data-expected-width="120" data-expected-height="60"></div> -</div> -width expected 23 but got 784 -Harness: the test ran to completion. -
diff --git a/third_party/closure_compiler/externs/file_manager_private.js b/third_party/closure_compiler/externs/file_manager_private.js index d1ae009..5d4e6f10 100644 --- a/third_party/closure_compiler/externs/file_manager_private.js +++ b/third_party/closure_compiler/externs/file_manager_private.js
@@ -794,7 +794,7 @@ * Copies an image to the system clipboard. |entry| Entry of the image to copy * to the system clipboard. * @param {!Entry} entry - * @param {function()} callback + * @param {function((boolean|undefined))} callback */ chrome.fileManagerPrivate.copyImageToClipboard = function(entry, callback) {};
diff --git a/third_party/crashpad/README.chromium b/third_party/crashpad/README.chromium index 94619ff..48e225dd 100644 --- a/third_party/crashpad/README.chromium +++ b/third_party/crashpad/README.chromium
@@ -2,7 +2,7 @@ Short Name: crashpad URL: https://crashpad.chromium.org/ Version: unknown -Revision: 71e8ec79870b5d7fe54327180f00c9dd26688280 +Revision: 640b13f3cb8000d361547f4cfa59275df44d1dc8 License: Apache 2.0 License File: crashpad/LICENSE Security Critical: yes
diff --git a/third_party/crashpad/crashpad/handler/linux/crash_report_exception_handler.cc b/third_party/crashpad/crashpad/handler/linux/crash_report_exception_handler.cc index d6e54be7..557b171 100644 --- a/third_party/crashpad/crashpad/handler/linux/crash_report_exception_handler.cc +++ b/third_party/crashpad/crashpad/handler/linux/crash_report_exception_handler.cc
@@ -18,6 +18,7 @@ #include <utility> #include "base/logging.h" +#include "build/build_config.h" #include "client/settings.h" #include "handler/linux/capture_snapshot.h" #include "minidump/minidump_file_writer.h" @@ -35,15 +36,53 @@ #include "util/stream/log_output_stream.h" #include "util/stream/zlib_output_stream.h" -namespace crashpad { +#if defined(OS_ANDROID) +#include <android/log.h> +#endif +namespace crashpad { namespace { +class Logger : public LogOutputStream::Delegate { + public: + Logger() = default; + ~Logger() = default; + +#if defined(OS_ANDROID) + int Log(const char* buf) override { + return __android_log_buf_write( + LOG_ID_CRASH, ANDROID_LOG_FATAL, "crashpad", buf); + } + + size_t OutputCap() override { + // Most minidumps are expected to be compressed and encoded into less than + // 128k. + return 128 * 1024; + } + + size_t LineWidth() override { + // From Android NDK r20 <android/log.h>, log message text may be truncated + // to less than an implementation-specific limit (1023 bytes), for sake of + // safe and being easy to read in logcat, choose 512. + return 512; + } +#else + // TODO(jperaza): Log to an appropriate location on Linux. + int Log(const char* buf) override { return -ENOTCONN; } + size_t OutputCap() override { return 0; } + size_t LineWidth() override { return 0; } +#endif + + private: + DISALLOW_COPY_AND_ASSIGN(Logger); +}; + bool WriteMinidumpLogFromFile(FileReaderInterface* file_reader) { - ZlibOutputStream stream(ZlibOutputStream::Mode::kCompress, - std::make_unique<Base94OutputStream>( - Base94OutputStream::Mode::kEncode, - std::make_unique<LogOutputStream>())); + ZlibOutputStream stream( + ZlibOutputStream::Mode::kCompress, + std::make_unique<Base94OutputStream>( + Base94OutputStream::Mode::kEncode, + std::make_unique<LogOutputStream>(std::make_unique<Logger>()))); FileOperationResult read_result; do { uint8_t buffer[4096]; @@ -259,7 +298,7 @@ ZlibOutputStream::Mode::kCompress, std::make_unique<Base94OutputStream>( Base94OutputStream::Mode::kEncode, - std::make_unique<LogOutputStream>()))); + std::make_unique<LogOutputStream>(std::make_unique<Logger>())))); if (!minidump.WriteMinidump(&writer, false /* allow_seek */)) { LOG(ERROR) << "WriteMinidump failed"; return false;
diff --git a/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux_test.cc b/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux_test.cc index 73e350db..98b99e6 100644 --- a/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux_test.cc +++ b/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux_test.cc
@@ -643,16 +643,16 @@ module.phdr_table.load1.p_type = PT_LOAD; module.phdr_table.load1.p_offset = 0; module.phdr_table.load1.p_vaddr = 0; - module.phdr_table.load1.p_filesz = sizeof(module); - module.phdr_table.load1.p_memsz = sizeof(module); + module.phdr_table.load1.p_filesz = offsetof(decltype(module), shdr_table); + module.phdr_table.load1.p_memsz = offsetof(decltype(module), shdr_table); module.phdr_table.load1.p_flags = PF_R; module.phdr_table.load1.p_align = load2_vaddr; module.phdr_table.load2.p_type = PT_LOAD; module.phdr_table.load2.p_offset = 0; module.phdr_table.load2.p_vaddr = load2_vaddr; - module.phdr_table.load2.p_filesz = sizeof(module); - module.phdr_table.load2.p_memsz = sizeof(module); + module.phdr_table.load2.p_filesz = offsetof(decltype(module), shdr_table); + module.phdr_table.load2.p_memsz = offsetof(decltype(module), shdr_table); module.phdr_table.load2.p_flags = PF_R | PF_W; module.phdr_table.load2.p_align = load2_vaddr;
diff --git a/third_party/crashpad/crashpad/util/misc/no_cfi_icall.h b/third_party/crashpad/crashpad/util/misc/no_cfi_icall.h index dcd0b9bf..25535b4 100644 --- a/third_party/crashpad/crashpad/util/misc/no_cfi_icall.h +++ b/third_party/crashpad/crashpad/util/misc/no_cfi_icall.h
@@ -76,6 +76,28 @@ }; #endif // OS_WIN && ARCH_CPU_X86 +#if __cplusplus >= 201703L +// These specializations match functions which are not explicitly declared +// noexcept. They must only be present at C++17 when noexcept is part of a +// function's type. If they are present earlier, they redefine the +// specializations above. +template <typename R, typename... Args> +struct FunctorTraits<R (*)(Args...)> { + template <typename Function, typename... RunArgs> + DISABLE_CFI_ICALL static R Invoke(Function&& function, RunArgs&&... args) { + return std::forward<Function>(function)(std::forward<RunArgs>(args)...); + } +}; + +template <typename R, typename... Args> +struct FunctorTraits<R (*)(Args..., ...)> { + template <typename Function, typename... RunArgs> + DISABLE_CFI_ICALL static R Invoke(Function&& function, RunArgs&&... args) { + return std::forward<Function>(function)(std::forward<RunArgs>(args)...); + } +}; +#endif + } // namespace //! \brief Disables cfi-icall for calls made through a function pointer.
diff --git a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc b/third_party/crashpad/crashpad/util/stream/log_output_stream.cc index 24987cb..7b51dc2 100644 --- a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc +++ b/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
@@ -21,27 +21,14 @@ #include "base/check.h" #include "base/logging.h" -#if defined(OS_ANDROID) -#include <android/log.h> -#endif - namespace crashpad { -namespace { - -// Most minidumps are expected to be compressed and encoded into less than 128k. -constexpr size_t kOutputCap = 128 * 1024; - -// From Android NDK r20 <android/log.h>, log message text may be truncated to -// less than an implementation-specific limit (1023 bytes), for sake of safe -// and being easy to read in logcat, choose 512. -constexpr size_t kLineBufferSize = 512; - -} // namespace - -LogOutputStream::LogOutputStream() - : output_count_(0), flush_needed_(false), flushed_(false) { - buffer_.reserve(kLineBufferSize); +LogOutputStream::LogOutputStream(std::unique_ptr<Delegate> delegate) + : delegate_(std::move(delegate)), + output_count_(0), + flush_needed_(false), + flushed_(false) { + buffer_.reserve(delegate_->LineWidth()); } LogOutputStream::~LogOutputStream() { @@ -50,17 +37,19 @@ bool LogOutputStream::Write(const uint8_t* data, size_t size) { DCHECK(!flushed_); + + static constexpr char kBeginMessage[] = "-----BEGIN CRASHPAD MINIDUMP-----"; + if (output_count_ == 0 && WriteToLog(kBeginMessage) < 0) { + return false; + } + flush_needed_ = true; while (size > 0) { - size_t m = std::min(kLineBufferSize - buffer_.size(), size); + size_t m = std::min(delegate_->LineWidth() - buffer_.size(), size); buffer_.append(reinterpret_cast<const char*>(data), m); data += m; size -= m; - if (buffer_.size() == kLineBufferSize && !WriteBuffer()) { - flush_needed_ = false; - LOG(ERROR) << "Write: exceeds cap."; - if (output_stream_for_testing_) - output_stream_for_testing_->Flush(); + if (buffer_.size() == delegate_->LineWidth() && !WriteBuffer()) { return false; } } @@ -68,66 +57,47 @@ } bool LogOutputStream::WriteBuffer() { - if (output_count_ == 0) { - if (!WriteToLog("-----BEGIN CRASHPAD MINIDUMP-----")) - return false; - } - if (buffer_.empty()) return true; + static constexpr char kAbortMessage[] = "-----ABORT CRASHPAD MINIDUMP-----"; + output_count_ += buffer_.size(); - if (output_count_ > kOutputCap) { - WriteToLog("-----ABORT CRASHPAD MINIDUMP-----"); + if (output_count_ > delegate_->OutputCap()) { + WriteToLog(kAbortMessage); + flush_needed_ = false; return false; } - bool result = WriteToLog(buffer_.c_str()); + int result = WriteToLog(buffer_.c_str()); + if (result < 0) { + if (result == -EAGAIN) { + WriteToLog(kAbortMessage); + } + flush_needed_ = false; + return false; + } + buffer_.clear(); - return result; -} - -bool LogOutputStream::WriteToLog(const char* buf) { -#if defined(OS_ANDROID) - int ret = - __android_log_buf_write(LOG_ID_CRASH, ANDROID_LOG_FATAL, "crashpad", buf); - if (ret < 0) { - errno = -ret; - PLOG(ERROR) << "__android_log_buf_write"; - return false; - } -#endif - // For testing. - if (output_stream_for_testing_) { - return output_stream_for_testing_->Write( - reinterpret_cast<const uint8_t*>(buf), strlen(buf)); - } return true; } -bool LogOutputStream::Flush() { - flush_needed_ = false; - flushed_ = true; - - bool result = true; - if (WriteBuffer()) { - result = WriteToLog("-----END CRASHPAD MINIDUMP-----"); - } else { - LOG(ERROR) << "Flush: exceeds cap."; - result = false; - } - - // Since output_stream_for_testing_'s Write() method has been called, its - // Flush() shall always be invoked. - if (output_stream_for_testing_) - output_stream_for_testing_->Flush(); - - return result; +int LogOutputStream::WriteToLog(const char* buf) { + return delegate_->Log(buf); } -void LogOutputStream::SetOutputStreamForTesting( - std::unique_ptr<OutputStreamInterface> stream) { - output_stream_for_testing_ = std::move(stream); +bool LogOutputStream::Flush() { + bool result = true; + if (flush_needed_) { + flush_needed_ = false; + flushed_ = true; + + static constexpr char kEndMessage[] = "-----END CRASHPAD MINIDUMP-----"; + if (!WriteBuffer() || WriteToLog(kEndMessage) < 0) { + result = false; + } + } + return result; } } // namespace crashpad
diff --git a/third_party/crashpad/crashpad/util/stream/log_output_stream.h b/third_party/crashpad/crashpad/util/stream/log_output_stream.h index 4a91f5c1..5eff9a15 100644 --- a/third_party/crashpad/crashpad/util/stream/log_output_stream.h +++ b/third_party/crashpad/crashpad/util/stream/log_output_stream.h
@@ -26,32 +26,48 @@ namespace crashpad { -//! \brief This class output the received data to Android log, NOP in other -//! platform. -//! -//! To avoid overflowing Android log, total 128k log data is allowed, after -//! that cap, the output is aborted. +//! \brief This class outputs a stream of data as a series of log messages. class LogOutputStream : public OutputStreamInterface { public: - LogOutputStream(); + //! \brief An interface to a log output sink. + class Delegate { + public: + Delegate() = default; + virtual ~Delegate() = default; + + //! \brief Logs |buf| to the output sink. + //! + //! \param buf the buffer to write to the log. More bytes than are in |buf| + //! may be written, e.g. to convey metadata. + //! \return the number of bytes written, or a negative error code. + virtual int Log(const char* buf) = 0; + + //! \brief Returns the maximum number of bytes to allow writing to this log. + virtual size_t OutputCap() = 0; + + //! \brief Returns the maximum length of buffers allowed to be passed to + //! Log(). + virtual size_t LineWidth() = 0; + }; + + LogOutputStream(std::unique_ptr<Delegate> delegate); ~LogOutputStream() override; // OutputStreamInterface: bool Write(const uint8_t* data, size_t size) override; bool Flush() override; - void SetOutputStreamForTesting(std::unique_ptr<OutputStreamInterface> stream); - private: - // Flush the |buffer_|, return false if kOutputCap meet. + // Flushes buffer_, returning false on failure. bool WriteBuffer(); - bool WriteToLog(const char* buf); + + int WriteToLog(const char* buf); std::string buffer_; + std::unique_ptr<Delegate> delegate_; size_t output_count_; bool flush_needed_; bool flushed_; - std::unique_ptr<OutputStreamInterface> output_stream_for_testing_; DISALLOW_COPY_AND_ASSIGN(LogOutputStream); };
diff --git a/third_party/crashpad/crashpad/util/stream/log_output_stream_test.cc b/third_party/crashpad/crashpad/util/stream/log_output_stream_test.cc index 510df764..f12aa76 100644 --- a/third_party/crashpad/crashpad/util/stream/log_output_stream_test.cc +++ b/third_party/crashpad/crashpad/util/stream/log_output_stream_test.cc
@@ -20,7 +20,6 @@ #include "base/macros.h" #include "gtest/gtest.h" -#include "util/stream/test_output_stream.h" namespace crashpad { namespace test { @@ -32,21 +31,34 @@ const char* kEndGuard = "-----END CRASHPAD MINIDUMP-----"; const char* kAbortGuard = "-----ABORT CRASHPAD MINIDUMP-----"; -std::string ConvertToString(const std::vector<uint8_t>& src) { - return std::string(reinterpret_cast<const char*>(src.data()), src.size()); -} +class LogOutputStreamTestDelegate : public LogOutputStream::Delegate { + public: + LogOutputStreamTestDelegate(std::string* logging_destination) + : logging_destination_(logging_destination) {} + ~LogOutputStreamTestDelegate() = default; + + int Log(const char* buf) override { + size_t len = strnlen(buf, kLineBufferSize + 1); + EXPECT_LE(len, kLineBufferSize); + logging_destination_->append(buf, len); + return static_cast<int>(len); + } + + size_t OutputCap() override { return kOutputCap; } + size_t LineWidth() override { return kLineBufferSize; } + + private: + std::string* logging_destination_; +}; class LogOutputStreamTest : public testing::Test { public: - LogOutputStreamTest() : test_output_stream_(nullptr) {} + LogOutputStreamTest() : test_log_output_() {} protected: void SetUp() override { - std::unique_ptr<TestOutputStream> output_stream = - std::make_unique<TestOutputStream>(); - test_output_stream_ = output_stream.get(); - log_stream_ = std::make_unique<LogOutputStream>(); - log_stream_->SetOutputStreamForTesting(std::move(output_stream)); + log_stream_ = std::make_unique<LogOutputStream>( + std::make_unique<LogOutputStreamTestDelegate>(&test_log_output_)); } const uint8_t* BuildDeterministicInput(size_t size) { @@ -57,37 +69,25 @@ return deterministic_input_base; } - TestOutputStream* test_output_stream() const { return test_output_stream_; } + const std::string& test_log_output() const { return test_log_output_; } LogOutputStream* log_stream() const { return log_stream_.get(); } private: std::unique_ptr<LogOutputStream> log_stream_; - TestOutputStream* test_output_stream_; + std::string test_log_output_; std::unique_ptr<uint8_t[]> deterministic_input_; DISALLOW_COPY_AND_ASSIGN(LogOutputStreamTest); }; -TEST_F(LogOutputStreamTest, VerifyGuards) { - log_stream()->Flush(); - // Verify OutputStream wrote 2 guards. - EXPECT_EQ(test_output_stream()->write_count(), 2u); - EXPECT_EQ(test_output_stream()->flush_count(), 1u); - EXPECT_FALSE(test_output_stream()->all_data().empty()); - EXPECT_EQ(ConvertToString(test_output_stream()->all_data()), - std::string(kBeginGuard).append(kEndGuard)); -} - TEST_F(LogOutputStreamTest, WriteShortLog) { const uint8_t* input = BuildDeterministicInput(2); EXPECT_TRUE(log_stream()->Write(input, 2)); EXPECT_TRUE(log_stream()->Flush()); // Verify OutputStream wrote 2 guards and data. - EXPECT_EQ(test_output_stream()->write_count(), 3u); - EXPECT_EQ(test_output_stream()->flush_count(), 1u); - EXPECT_FALSE(test_output_stream()->all_data().empty()); - EXPECT_EQ(ConvertToString(test_output_stream()->all_data()), + EXPECT_FALSE(test_log_output().empty()); + EXPECT_EQ(test_log_output(), std::string(kBeginGuard).append("aa").append(kEndGuard)); } @@ -97,10 +97,7 @@ // Verify OutputStream wrote 2 guards and data. EXPECT_TRUE(log_stream()->Write(input, input_length)); EXPECT_TRUE(log_stream()->Flush()); - EXPECT_EQ(test_output_stream()->write_count(), - 2 + input_length / kLineBufferSize + 1); - EXPECT_EQ(test_output_stream()->flush_count(), 1u); - EXPECT_EQ(test_output_stream()->all_data().size(), + EXPECT_EQ(test_log_output().size(), strlen(kBeginGuard) + strlen(kEndGuard) + input_length); } @@ -108,17 +105,19 @@ size_t input_length = kOutputCap + kLineBufferSize; const uint8_t* input = BuildDeterministicInput(input_length); EXPECT_FALSE(log_stream()->Write(input, input_length)); - std::string data(ConvertToString(test_output_stream()->all_data())); - EXPECT_EQ(data.substr(data.size() - strlen(kAbortGuard)), kAbortGuard); + EXPECT_EQ( + test_log_output().substr(test_log_output().size() - strlen(kAbortGuard)), + kAbortGuard); } TEST_F(LogOutputStreamTest, FlushAbort) { - size_t input_length = kOutputCap + kLineBufferSize / 2; + size_t input_length = kOutputCap - strlen(kBeginGuard) + kLineBufferSize / 2; const uint8_t* input = BuildDeterministicInput(input_length); EXPECT_TRUE(log_stream()->Write(input, input_length)); EXPECT_FALSE(log_stream()->Flush()); - std::string data(ConvertToString(test_output_stream()->all_data())); - EXPECT_EQ(data.substr(data.size() - strlen(kAbortGuard)), kAbortGuard); + EXPECT_EQ( + test_log_output().substr(test_log_output().size() - strlen(kAbortGuard)), + kAbortGuard); } } // namespace
diff --git a/third_party/polymer/v1_0/BUILD.gn b/third_party/polymer/v1_0/BUILD.gn index 33490c5..9870e462 100644 --- a/third_party/polymer/v1_0/BUILD.gn +++ b/third_party/polymer/v1_0/BUILD.gn
@@ -115,4 +115,5 @@ "polymer2/polymer-extracted.js|polymer/polymer-extracted.js", "polymer2/polymer.html|polymer/polymer.html", ] + resource_path_prefix = "polymer/v1_0" }
diff --git a/third_party/polymer/v3_0/BUILD.gn b/third_party/polymer/v3_0/BUILD.gn index 30c57b6c..cdd954e5 100644 --- a/third_party/polymer/v3_0/BUILD.gn +++ b/third_party/polymer/v3_0/BUILD.gn
@@ -68,4 +68,5 @@ ] } input_files_base_dir = rebase_path("./components-chromium/", "//") + resource_path_prefix = "polymer/v3_0" }
diff --git a/third_party/r8/README.chromium b/third_party/r8/README.chromium index 0918007..de2f1cd 100644 --- a/third_party/r8/README.chromium +++ b/third_party/r8/README.chromium
@@ -1,7 +1,7 @@ Name: R8 URL: https://r8.googlesource.com/r8 -Revision: e13467c2cee237bceaa4d002472ede43d9a116e8 -Version: unknown +Revision: 3a9986617a11797df59b5d9613d605661a733171 +Version: 3.0.1-dev License: BSD 3-Clause License File: NOT_SHIPPED Security Critical: no @@ -41,7 +41,7 @@ java -jar build/libs/r8.jar --debug --classfile --output r8.jar \ --lib $CHROMIUM_SRC/third_party/jdk/current --pg-conf src/main/keep.txt \ --no-minification --no-desugaring build/libs/r8.jar -rm $CHROMIUM_SRC/third_party/r8/lib/r8.jar +mv $CHROMIUM_SRC/third_party/r8/lib/r8.jar{,.bak} cp r8.jar $CHROMIUM_SRC/third_party/r8/lib/r8.jar # Create patches if conflicts / new patches. Change number if expecting
diff --git a/third_party/r8/patches/0001-Desugaring-Make-all-lambdas-stateless-fix-naming-sch.patch b/third_party/r8/patches/0001-Desugaring-Make-all-lambdas-stateless-fix-naming-sch.patch index 5a4fa3f..74820e0f 100644 --- a/third_party/r8/patches/0001-Desugaring-Make-all-lambdas-stateless-fix-naming-sch.patch +++ b/third_party/r8/patches/0001-Desugaring-Make-all-lambdas-stateless-fix-naming-sch.patch
@@ -1,4 +1,4 @@ -From 80fc109ddc6bfd60a980993eb51478c98eea8992 Mon Sep 17 00:00:00 2001 +From 6c4560832fd411b70669b2dfcb14bbff98524256 Mon Sep 17 00:00:00 2001 From: Sam Maier <smaier@chromium.org> Date: Tue, 19 May 2020 15:55:44 -0400 Subject: [PATCH 1/3] Desugaring: Make all lambdas stateless & fix naming @@ -12,10 +12,10 @@ 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java -index e40e0e48f..1da07cd0e 100644 +index c9e47c259..b5b72c0ab 100644 --- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java +++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java -@@ -128,7 +128,8 @@ public final class LambdaClass { +@@ -130,7 +130,8 @@ public final class LambdaClass { // If the lambda class should match 1:1 the class it is accessed from, we // just add the name of this type to make lambda class name unique. // It also helps link the class lambda originated from in some cases. @@ -25,7 +25,7 @@ lambdaClassDescriptor.append(accessedFrom.getHolderType().getName()).append('$'); } -@@ -206,7 +207,7 @@ public final class LambdaClass { +@@ -209,7 +210,7 @@ public final class LambdaClass { } public final boolean isStateless() { @@ -35,5 +35,5 @@ void addSynthesizedFrom(DexProgramClass clazz) { -- -2.28.0.297.g1956fa8f8d-goog +2.29.0.rc1.297.gfa9743e501-goog
diff --git a/third_party/r8/patches/0002-Make-class-merging-and-outlining-settable-via-comman.patch b/third_party/r8/patches/0002-Command-line-flags-for-class-merging-and-outlining.patch similarity index 70% rename from third_party/r8/patches/0002-Make-class-merging-and-outlining-settable-via-comman.patch rename to third_party/r8/patches/0002-Command-line-flags-for-class-merging-and-outlining.patch index b1a16cf8..1a2d61a7 100644 --- a/third_party/r8/patches/0002-Make-class-merging-and-outlining-settable-via-comman.patch +++ b/third_party/r8/patches/0002-Command-line-flags-for-class-merging-and-outlining.patch
@@ -1,31 +1,30 @@ -From a5e85d98d5a0d68cd433c7022f960bd64de87291 Mon Sep 17 00:00:00 2001 +From febbe4508395a83f64e6f5e3cd55052fc8e16e8c Mon Sep 17 00:00:00 2001 From: Andrew Grieve <agrieve@chromium.org> -Date: Fri, 21 Aug 2020 14:56:21 -0400 -Subject: [PATCH 2/3] Make class merging and outlining settable via - command-line +Date: Mon, 28 Sep 2020 15:51:32 -0400 +Subject: [PATCH 2/3] Command-line flags for class merging and outlining --- .../java/com/android/tools/r8/utils/InternalOptions.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java -index 69410dd4d..32a2918eb 100644 +index ea902d508..708961316 100644 --- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java +++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java -@@ -217,9 +217,9 @@ public class InternalOptions implements GlobalKeepInfoConfiguration { +@@ -234,9 +234,9 @@ public class InternalOptions implements GlobalKeepInfoConfiguration { public boolean enableFieldAssignmentTracker = true; public boolean enableFieldBitAccessAnalysis = System.getProperty("com.android.tools.r8.fieldBitAccessAnalysis") != null; - public boolean enableStaticClassMerging = true; -- public boolean enableHorizontalClassMerging = false; +- public boolean enableHorizontalClassMerging = true; - public boolean enableVerticalClassMerging = true; -+ public boolean enableStaticClassMerging = System.getProperty("com.android.tools.r8.enableHorizontalClassMerging") != null; -+ public boolean enableHorizontalClassMerging = System.getProperty("com.android.tools.r8.enableHorizontalClassMerging") != null; -+ public boolean enableVerticalClassMerging = System.getProperty("com.android.tools.r8.enableVerticalClassMerging") != null; ++ public boolean enableStaticClassMerging = System.getProperty("com.android.tools.r8.staticClassMerging") != null; ++ public boolean enableHorizontalClassMerging = System.getProperty("com.android.tools.r8.horizontalClassMerging") != null; ++ public boolean enableVerticalClassMerging = System.getProperty("com.android.tools.r8.verticalClassMerging") != null; public boolean enableArgumentRemoval = true; public boolean enableUnusedInterfaceRemoval = true; public boolean enableDevirtualization = true; -@@ -1097,7 +1097,7 @@ public class InternalOptions implements GlobalKeepInfoConfiguration { +@@ -1146,7 +1146,7 @@ public class InternalOptions implements GlobalKeepInfoConfiguration { public static final String CLASS_NAME = "com.android.tools.r8.GeneratedOutlineSupport"; public static final String METHOD_PREFIX = "outline"; @@ -35,5 +34,5 @@ public int maxSize = 99; public int threshold = 20; -- -2.28.0.297.g1956fa8f8d-goog +2.29.0.rc1.297.gfa9743e501-goog
diff --git a/third_party/r8/patches/0003-Allow-access-modification-everywhere.patch b/third_party/r8/patches/0003-Allow-access-modification-everywhere.patch index b7e8323..4276a12 100644 --- a/third_party/r8/patches/0003-Allow-access-modification-everywhere.patch +++ b/third_party/r8/patches/0003-Allow-access-modification-everywhere.patch
@@ -1,6 +1,6 @@ -From f090e9dbf721e953a0009f95281058fa88637c71 Mon Sep 17 00:00:00 2001 +From cac4f22114d62108152db25745a241e84157b2a6 Mon Sep 17 00:00:00 2001 From: Andrew Grieve <agrieve@chromium.org> -Date: Sun, 31 May 2020 22:09:27 -0400 +Date: Wed, 21 Oct 2020 10:59:42 -0400 Subject: [PATCH 3/3] Allow access modification everywhere Chrome does not need need -keep to maintain original visibility. @@ -11,10 +11,10 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java -index c716da82a..ffd756406 100644 +index b54a0db2d..e02a41ce0 100644 --- a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java +++ b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java -@@ -939,7 +939,7 @@ public class AppInfoWithLiveness extends AppInfoWithClassHierarchy +@@ -917,7 +917,7 @@ public class AppInfoWithLiveness extends AppInfoWithClassHierarchy public boolean isAccessModificationAllowed(DexReference reference) { assert options().getProguardConfiguration().isAccessModificationAllowed(); @@ -22,7 +22,7 @@ + return true; } - public boolean isPinned(DexReference reference) { + public boolean isRepackagingAllowed(DexProgramClass clazz) { -- -2.28.0.297.g1956fa8f8d-goog +2.29.0.rc1.297.gfa9743e501-goog
diff --git a/third_party/web-animations-js/BUILD.gn b/third_party/web-animations-js/BUILD.gn index 9c93d0668..6c43c08 100644 --- a/third_party/web-animations-js/BUILD.gn +++ b/third_party/web-animations-js/BUILD.gn
@@ -9,5 +9,6 @@ out_grd = "$target_gen_dir/${grd_prefix}_resources.grdp" input_files = [ "web-animations-next-lite.min.js" ] input_files_base_dir = rebase_path("./sources", "//") - resource_path_rewrites = [ "web-animations-next-lite.min.js|polymer/v1_0/web-animations-js/web-animations-next-lite.min.js" ] + resource_path_rewrites = [ "web-animations-next-lite.min.js|web-animations-js/web-animations-next-lite.min.js" ] + resource_path_prefix = "polymer/v1_0" }
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec index 373ef3a..dc32f73 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec
@@ -646,7 +646,7 @@ "structures": [3820], }, "<(SHARED_INTERMEDIATE_DIR)/ui/webui/resources/webui_generated_resources.grd": { - "META": {"sizes": {"includes": [200]}}, + "META": {"sizes": {"includes": [300]}}, "includes": [3830], }, "weblayer/weblayer_resources.grd": {
diff --git a/tools/metrics/histograms/README.md b/tools/metrics/histograms/README.md index d6841300..dcac581 100644 --- a/tools/metrics/histograms/README.md +++ b/tools/metrics/histograms/README.md
@@ -1,7 +1,7 @@ # Histogram Guidelines This document gives the best practices on how to use histograms in code and how -to document the histograms for the dashboards. There are three general types +to document the histograms for the dashboards. There are three general types of histograms: [enumerated histograms](#Enum-Histograms), [count histograms](#Count-Histograms) (for arbitrary numbers), and [sparse histograms](#When-To-Use-Sparse-Histograms) (for anything when the @@ -30,9 +30,9 @@ ### Don't Use the Same Histogram Logging Call in Multiple Places These logging macros and functions have long names and sometimes include extra -parameters (defining the number of buckets for example). Use a helper function -if possible. This leads to shorter, more readable code that's also more -resilient to problems that could be introduced when making changes. (One could, +parameters (defining the number of buckets for example). Use a helper function +if possible. This leads to shorter, more readable code that's also more +resilient to problems that could be introduced when making changes. (One could, for example, erroneously change the bucketing of the histogram in one call but not the other.) @@ -40,8 +40,8 @@ When using histogram macros (calls such as `UMA_HISTOGRAM_ENUMERATION`), you're not allowed to construct your string dynamically so that it can vary at a -callsite. At a given callsite (preferably you have only one), the string -should be the same every time the macro is called. If you need to use dynamic +callsite. At a given callsite (preferably you have only one), the string +should be the same every time the macro is called. If you need to use dynamic names, use the functions in histogram_functions.h instead of the macros. ### Don't Use Same String in Multiple Places @@ -64,39 +64,39 @@ ### Directly Measure What You Want -Measure exactly what you want, whether that's time used for a function call, -number of bytes transmitted to fetch a page, number of items in a list, etc. -Do not assume you can calculate what you want from other histograms. Most of -the ways to do this are incorrect. For example, if you want to know the time -taken by a function that all it does is call two other functions, both of which -are have histogram logging, you might think you can simply add up those -the histograms for those functions to get the total time. This is wrong. +Measure exactly what you want, whether that's the time used for a function call, +the number of bytes transmitted to fetch a page, the number of items in a list, +etc. Do not assume you can calculate what you want from other histograms. Most +ways of doing this are incorrect. For example, suppose you want to know the time +taken by a function that calls two other functions, both of which have histogram +logging for their respective times. You might assume that you can simply sum the +histograms for those two functions to get the total time, but this is incorrect. If we knew which emissions came from which calls, we could pair them up and -derive the total time for the function. However, histograms entries do not -come with timestamps--we pair them up appropriately. If you simply add up the +derive the total time for the function. However, histogram entries do not come +with timestamps to let us pair them up appropriately. If you simply add up the two histograms to get the total histogram, you're implicitly assuming those -values are independent, which may not be the case. Directly measure what you +values are independent, which may not be the case. Directly measure what you care about; don't try to derive it from other data. ### Enum Histograms Enumerated histogram are most appropriate when you have a list of connected / -related states that should be analyzed jointly. For example, the set of -actions that can be done on the New Tab Page (use the omnibox, click a most -visited tile, click a bookmark, etc.) would make a good enumerated histogram. +related states that should be analyzed jointly. For example, the set of actions +that can be done on the New Tab Page (use the omnibox, click a most visited +tile, click a bookmark, etc.) would make a good enumerated histogram. If the total count of your histogram (i.e. the sum across all buckets) is -something meaningful--as it is in this example--that is generally a good sign. +something meaningful—as it is in this example—that is generally a good sign. However, the total count does not have to be meaningful for an enum histogram to still be the right choice. -Enumerated histograms are also appropriate for counting events. Use a simple -boolean histogram. It's okay if you only log to one bucket (say, `true`). -It's usually best (though not necessary), if you have a comparison point in -the same histogram. For example, if you want to count pages opened from the -history page, it might be a useful comparison to have the same histogram -record the number of times the history page was opened. +Enumerated histograms are also appropriate for counting events. Use a simple +boolean histogram. It's okay if you only log to one bucket (say, `true`). It's +usually best, though not necessary, if you have a comparison point in the same +histogram. For example, if you want to count pages opened from the history page, +it might be a useful comparison to have the same histogram record the number of +times the history page was opened. -If only a few buckets will be emitted to, consider using a [sparse +If only a few buckets are emitted to, consider using a [sparse histogram](#When-To-Use-Sparse-Histograms). #### Requirements @@ -110,7 +110,7 @@ ``` - be numbered starting from `0`. Note this bullet point does *not* apply for enums logged with sparse histograms. -- have enumerators with explicit values (`= 0`, `= 1`, `= 2`), to make it clear +- have enumerators with explicit values (`= 0`, `= 1`, `= 2`) to make it clear that the actual values are important. This also makes it easy to match the values between the C++/Java definition and [histograms.xml](./histograms.xml). - not renumber or reuse enumerator values. When adding a new enumerator, append @@ -118,8 +118,8 @@ out, making it clear the value was previously used. If your enum histogram has a catch-all / miscellaneous bucket, put that bucket -first (`= 0`). This will make the bucket easy to find on the dashboard if -additional buckets are added later. +first (`= 0`). This makes the bucket easy to find on the dashboard if additional +buckets are added later. #### Usage @@ -209,18 +209,18 @@ When adding a new flag in [about_flags.cc](../../../chrome/browser/about_flags.cc), you need to add a -corresponding entry to [enums.xml](./enums.xml). This will be automatically -verified by the `AboutFlagsHistogramTest` unit test. +corresponding entry to [enums.xml](./enums.xml). This is automatically verified +by the `AboutFlagsHistogramTest` unit test. To add a new entry: 1. Edit [enums.xml](./enums.xml), adding the feature to the `LoginCustomFlags` enum section, with any unique value (just make one up, although whatever it - is needs to appear in sorted order; `pretty_print.py` will do this for you). + is needs to appear in sorted order; `pretty_print.py` can do this for you). 2. Build `unit_tests`, then run `unit_tests --gtest_filter='AboutFlagsHistogramTest.*'` to compute the correct value. 3. Update the entry in [enums.xml](./enums.xml) with the correct value, and move - it so the list is sorted by value (`pretty_print.py` will do this for you). + it so the list is sorted by value (`pretty_print.py` can do this for you). 4. Re-run the test to ensure the value and ordering are correct. You can also use `tools/metrics/histograms/validate_format.py` to check the @@ -233,45 +233,44 @@ [histogram_macros.h](https://cs.chromium.org/chromium/src/base/metrics/histogram_macros.h) provides macros for some common count types such as memory or elapsed time, in -addition to general count macros. These have reasonable default values; you -will not often need to choose number of buckets or histogram min. You still -will need to choose the histogram max (use the advice below). +addition to general count macros. These have reasonable default values; you +seldom need to choose the number of buckets or histogram min. However, you still +need to choose the histogram max (use the advice below). If none of the default macros work well for you, please thoughtfully choose a min, max, and bucket count for your histogram using the advice below. #### Count Histograms: Choosing Min and Max -For histogram max, choose a value so that very few emission to the histogram -will exceed the max. If many emissions hit the max, it can be difficult to -compute statistics such as average. One rule of thumb is at most 1% of samples -should be in the overflow bucket. This allows analysis of the 99th percentile. -Err on the side of too large a range versus too short a range. (Remember that +For histogram max, choose a value such that very few emissions to the histogram +exceed the max. If many emissions hit the max, it can be difficult to compute +statistics, such as the average. One rule of thumb is at most 1% of samples +should be in the overflow bucket. This allows analysis of the 99th percentile. +Err on the side of too large a range versus too short a range. (Remember that if you choose poorly, you'll have to wait for another release cycle to fix it.) For histogram min, if you care about all possible values (zero and above), -choose a min of 1. (All histograms have an underflow bucket; emitted zeros -will go there. That's why a min of 1 is appropriate.) Otherwise, choose the -min appropriate for your particular situation. +choose a min of 1. (All histograms have an underflow bucket for emitted zeros, +so a min of 1 is appropriate.) Otherwise, choose the min appropriate for your +particular situation. #### Count Histograms: Choosing Number of Buckets -Choose the smallest number of buckets that will get you the granularity you -need. By default count histograms bucket sizes scale exponentially so you can -get fine granularity when the numbers are small yet still reasonable resolution -for larger numbers. The macros default to 50 buckets (or 100 buckets for -histograms with wide ranges) which is appropriate for most purposes. Because -histograms pre-allocate all the buckets, the number of buckets selected -directly dictate how much memory is used. Do not exceed 100 buckets without -good reason (and consider whether [sparse -histograms](#When-To-Use-Sparse-Histograms) might work better for you in that -case--they do not pre-allocate their buckets). +Choose the smallest number of buckets that give you the granularity you need. By +default, count histogram bucket sizes scale exponentially so you can get fine +granularity when the numbers are small yet still reasonable resolution for +larger numbers. The macros default to 50 buckets (or 100 buckets for histograms +with wide ranges), which is appropriate for most purposes. Because histograms +pre-allocate all the buckets, the number of buckets selected directly dictates +how much memory is used. Do not exceed 100 buckets without good reason (and +consider whether [sparse histograms](#When-To-Use-Sparse-Histograms) might work +better for you in that case—they do not pre-allocate their buckets). ### Timing Histograms You can easily emit a time duration (time delta) using UMA_HISTOGRAM_TIMES, -UMA_HISTOGRAM_MEDIUM_TIMES, and UMA_HISTOGRAM_LONG_TIMES macros, and their -friends, as well as helpers such as SCOPED_UMA_HISTOGRAM_TIMER. Many timing +UMA_HISTOGRAM_MEDIUM_TIMES, UMA_HISTOGRAM_LONG_TIMES macros, and their +friends, as well as helpers like SCOPED_UMA_HISTOGRAM_TIMER. Many timing histograms are used for performance monitoring; if this is the case for you, please read [this document about how to structure timing histograms to make them more useful and @@ -279,52 +278,50 @@ ### Percentage or Ratio Histograms -You can easily emit a percentage histogram using the -UMA_HISTOGRAM_PERCENTAGE macro provided in +You can easily emit a percentage histogram using the UMA_HISTOGRAM_PERCENTAGE +macro provided in [histogram_macros.h](https://cs.chromium.org/chromium/src/base/metrics/histogram_macros.h). -You can also easily emit any ratio as a linear histogram (for equally -sized buckets). +You can also easily emit any ratio as a linear histogram (for equally sized +buckets). -For such histograms, you want each value recorded to cover approximately -the same span of time. This typically means emitting values periodically -at a set time interval, such as every 5 minutes. We do not recommend -recording a ratio at the end of a video playback, as lengths of videos -vary greatly. +For such histograms, you want each value recorded to cover approximately the +same span of time. This typically means emitting values periodically at a set +time interval, such as every 5 minutes. We do not recommend recording a ratio at +the end of a video playback, as video lengths vary greatly. It is okay to emit at the end of an animation sequence when what's being -animated is fixed / known. In this case, each value will represent -roughly the same span of time. +animated is fixed / known. In this case, each value represents roughly the same +span of time. -Why? You typically cannot make decisions based on histograms whose -values are recorded in response to an event that varies in length, -because such metrics can conflate heavy usage with light usage. It's -easier to reason about metrics that route around this source of bias. +Why? You typically cannot make decisions based on histograms whose values are +recorded in response to an event that varies in length because such metrics can +conflate heavy usage with light usage. It's easier to reason about metrics that +avoid this source of bias. -Many developers have been bitten by this. For example, it was previously common -to emit an actions-per-minute ratio whenever Chrome was backgrounded. -Precisely, these metrics computed the number of uses of a particular action -during a Chrome session, divided by length of time Chrome had been open. -Sometimes, the recorded rate was based on a short interaction with Chrome – a -few seconds or a minute. Other times, the recorded rate was based on a long -interaction, tens of minutes or hours. These two situations are -indistinguishable in the UMA logs – the recorded values can be identical. +Many developers have been bitten by this. For example, it was previously common +to emit an actions-per-minute ratio whenever Chrome was backgrounded. Precisely, +these metrics computed the number of uses of a particular action during a Chrome +session, divided by length of time Chrome had been open. Sometimes, the recorded +rate was based on a short interaction with Chrome–a few seconds or a minute. +Other times, the recorded rate was based on a long interaction, tens of minutes +or hours. These two situations are indistinguishable in the UMA logs–the +recorded values can be identical. -This inability to distinguish these two qualitatively different settings make -such histograms effectively uninterpretable and not actionable. Emitting at a -regular interval avoids the issue. Each value will represent the same amount of -time (e.g., one minute of video playback). +The inability to distinguish these two qualitatively different settings make +such histograms effectively uninterpretable and not actionable. Emitting at a +regular interval avoids the issue. Each value represents the same amount of time +(e.g., one minute of video playback). ### Local Histograms Histograms can be added via [Local macros](https://codesearch.chromium.org/chromium/src/base/metrics/histogram_macros_local.h). -These will still record locally, but will not be uploaded to UMA and will -therefore not be available for analysis. This can be useful for metrics only -needed for local debugging. We don't recommend using local histograms outside -of that scenario. +These still record locally, but are not uploaded to UMA and are therefore not +available for analysis. This can be useful for metrics only needed for local +debugging. We don't recommend using local histograms outside of that scenario. ### Multidimensional Histograms -It is common to be interested in logging multidimensional data - where multiple +It is common to be interested in logging multidimensional data–where multiple pieces of information need to be logged together. For example, a developer may be interested in the counts of features X and Y based on whether a user is in state A or B. In this case, they want to know the count of X under state A, @@ -334,47 +331,47 @@ using the workaround of using an enum of length MxN, where you log each unique pair {state, feature} as a separate entry in the same enum. If this causes a large explosion in data (i.e. >100 enum entries), a [sparse histogram](#When-To-Use-Sparse-Histograms) -may be appropriate. If you are unsure of the best way to proceed, please -contact someone from the OWNERS file. +may be appropriate. If you are unsure of the best way to proceed, please contact +someone from the OWNERS file. ## Histogram Expiry -Histogram expiry/expiration is specified by the `expires_after` attribute in -histogram descriptions in histograms.xml. The attribute can be specified as date -in **YYYY-MM-DD** format or as Chrome milestone in **M**\*(e.g. M68) format. In -the latter case, the actual expiry date is about 12 weeks after that branch is -cut, or basically when it is replaced on the "stable" channel by the following +Histogram expiry is specified by the `expires_after` attribute in histogram +descriptions in histograms.xml. The attribute can be specified as date in +**YYYY-MM-DD** format or as Chrome milestone in **M**\*(e.g. M68) format. In the +latter case, the actual expiry date is about 12 weeks after that branch is cut, +or basically when it is replaced on the "stable" channel by the following release. -After a histogram expires, it will cease to be displayed on the dashboard. -However, the client may continue to send data for that histogram for some time -after the official expiry date so simply bumping the 'expires_after' date in -HEAD may be sufficient to resurrect it without any discontinuity. If too much -time has passed and the client is no longer sending data, it can be re-enabled -via Finch: see [Expired Histogram Whitelist](#Expired-histogram-whitelist). +After a histogram expires, it ceases to be displayed on the dashboard. However, +the client may continue to send data for that histogram for some time after the +official expiry date so simply bumping the 'expires_after' date at HEAD may be +sufficient to resurrect it without any discontinuity. If too much time has +passed and the client is no longer sending data, it can be re-enabled via Finch: +see [Expired Histogram Whitelist](#Expired-histogram-whitelist). -Once a histogram has expired, the code to record it becomes dead code and should -be removed from the codebase along with marking the histogram definition as -obsolete. +Once a histogram has expired, the code that records it becomes dead code and +should be removed from the codebase along with marking the histogram definition +as obsolete. In **rare** cases, the expiry can be set to "never". This is used to denote metrics of critical importance that are, typically, used for other reports. For example, all metrics of the "[heartbeat](https://uma.googleplex.com/p/chrome/variations)" -are set to never expire. All metrics that never expire must have an XML -comment describing why so that it can be audited in the future. +are set to never expire. All metrics that never expire must have an XML comment +describing why so that it can be audited in the future. ``` <!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) --> ``` -For all the new histograms the use of expiry attribute will be strongly -encouraged and enforced by Chrome metrics team through reviews. +For all new histograms, the use of expiry attribute is strongly encouraged and +enforced by the Chrome Metrics team through reviews. #### How to choose expiry for histograms -If you are adding a histogram that will be used to evaluate a feature launch, -set an expiry date consistent with the expected feature launch date. Otherwise, -we recommend choosing 3-6 months. +If you are adding a histogram to evaluate a feature launch, set an expiry date +consistent with the expected feature launch date. Otherwise, we recommend +choosing 3-6 months. Here are some guidelines for common scenarios: @@ -384,8 +381,8 @@ remove it. * If the histogram is not in use now, but might be useful in the near future, pick ~3 months or ~2 milestones ahead. -* If the histogram is actively in use now and useful for a short term, pick - 3-6 month or 2-4 milestones ahead. +* If the histogram is actively in use now and is useful in the short term, + pick 3-6 months or 2-4 milestones ahead. * If the histogram is actively in use and seems useful for an indefinite time, pick 1 year. @@ -396,86 +393,88 @@ ### Expired histogram notifier -Expired histogram notifier will notify owners in advance by creating crbugs so -that the owners can extend the lifetime of the histogram if needed or deprecate -it. It will regularly check all the histograms in histograms.xml and will -determine expired histograms or histograms expiring soon. Based on that it will -create or update crbugs that will be assigned to histogram owners. +The expired histogram notifier notifies histogram owners before their histograms +expire by creating crbugs, which are assigned to owners. This allows owners to +extend the lifetime of their histograms, if needed, or deprecate them. The +notifier regularly checks all histograms across the histograms.xml files and +identifies expired or soon-to-be expired histograms. It then creates or updates +crbugs accordingly. ### Expired histogram whitelist -If a histogram expires but turns out to be useful, you can add histogram name -to the whitelist until the updated expiration date reaches to the stable -channel. For adding histogram to the whitelist, see internal documentation -[Histogram Expiry](https://goto.google.com/histogram-expiry-gdoc) +If a histogram expires but turns out to be useful, you can add the histogram's +name to the whitelist until the updated expiration date reaches the stable +channel. For adding a histogram to the whitelist, see the internal +documentation: +[Histogram Expiry](https://goto.google.com/histogram-expiry-gdoc). ## Testing -Test your histograms using `chrome://histograms`. Make sure they're being +Test your histograms using `chrome://histograms`. Make sure they're being emitted to when you expect and not emitted to at other times. Also check that -the values emitted to are correct. Finally, for count histograms, make sure +the values emitted to are correct. Finally, for count histograms, make sure that buckets capture enough precision for your needs over the range. Pro tip: You can filter the set of histograms shown on `chrome://histograms` by -specifying a prefix. For example, `chrome://histograms/Extensions.Load` will -show only histograms whose names match the pattern "Extensions.Load*". +specifying a prefix. For example, `chrome://histograms/Extensions.Load` shows +only histograms whose names match the pattern "Extensions.Load*". In addition to testing interactively, you can have unit tests examine the -values emitted to histograms. See [histogram_tester.h](https://cs.chromium.org/chromium/src/base/test/metrics/histogram_tester.h) +values emitted to histograms. See [histogram_tester.h](https://cs.chromium.org/chromium/src/base/test/metrics/histogram_tester.h) for details. ## Interpreting the Resulting Data The top of [go/uma-guide](http://go/uma-guide) has good advice on how to go -about analyzing and interpreting the results of UMA data uploaded by users. If +about analyzing and interpreting the results of UMA data uploaded by users. If you're reading this page, you've probably just finished adding a histogram to the Chromium source code and you're waiting for users to update their version of -Chrome to a version that includes your code. In this case, the best advice is -to remind you that users who update frequently / quickly are biased. Best take +Chrome to a version that includes your code. In this case, the best advice is +to remind you that users who update frequently / quickly are biased. Best take the initial statistics with a grain of salt; they're probably *mostly* right but not entirely so. ## Revising Histograms When changing the semantics of a histogram (when it's emitted, what buckets -mean, etc.), make it into a new histogram with a new name. Otherwise the -"Everything" view on the dashboard will be mixing two different -interpretations of the data and make no sense. +mean, etc.), make it into a new histogram with a new name. Otherwise the +"Everything" view on the dashboard will mix two different interpretations of the +data and make no sense. ## Deleting Histograms -Please delete the code that emits to histograms that are no longer needed. -Histograms take up memory. Cleaning up histograms that you no longer care -about is good! But see the note below on +Please delete code that emits to histograms that are no longer needed. +Histograms take up memory. Cleaning up histograms that you no longer care +about is good! But see the note below on [Cleaning Up Histogram Entries](#Cleaning-Up-Histogram-Entries). ## Documenting Histograms -Document histograms in [histograms.xml](./histograms.xml). There is also a +Document histograms in [histograms.xml](./histograms.xml). There is also a [google-internal version of the file](http://go/chrome-histograms-internal) for -the rare case when the histogram is confidential (added only to Chrome code, +the rare case in which the histogram is confidential (added only to Chrome code, not Chromium code; or, an accurate description about how to interpret the histogram would reveal information about Google's plans). ### Add Histogram and Documentation in the Same Changelist If possible, please add the [histograms.xml](./histograms.xml) description in -the same changelist in which you add the histogram-emitting code. This has -several benefits. One, it sometimes happens that the +the same changelist in which you add the histogram-emitting code. This has +several benefits. One, it sometimes happens that the [histograms.xml](./histograms.xml) reviewer has questions or concerns about the histogram description that reveal problems with interpretation of the data and -call for a different recording strategy. Two, it allows the histogram reviewer +call for a different recording strategy. Two, it allows the histogram reviewer to easily review the emission code to see if it comports with these best -practices, and to look for other errors. +practices and to look for other errors. ### Understandable to Everyone Histogram descriptions should be roughly understandable to someone not familiar -with your feature. Please add a sentence or two of background if necessary. +with your feature. Please add a sentence or two of background if necessary. It is good practice to note caveats associated with your histogram in this section, such as which platforms are supported (if the set of supported -platforms is surprising). E.g., a desktop feature that happens not to be +platforms is surprising). E.g., a desktop feature that happens not to be logged on Mac. ### State When It Is Recorded @@ -501,20 +500,21 @@ expiry or deprecating the metric. Histograms must have a primary owner and may have secondary owners. A primary -owner is an individual, e.g. <owner>lucy@chromium.org</owner>, who is -ultimately responsible for maintaining the metric. Secondary owners may be -other individuals, team mailing lists, e.g. <owner>my-team@google.com</owner>, -or paths to OWNERS files, e.g. <owner>src/directory/OWNERS</owner>. +owner is an individual with an @chromium.org or @google.com email address, e.g. +<owner>lucy@chromium.org</owner>, who is ultimately responsible for maintaining +the metric. Secondary owners may be other individuals, team mailing lists, e.g. +<owner>my-team@google.com</owner>, or paths to OWNERS files, e.g. +<owner>src/directory/OWNERS</owner>. It's a best practice to list multiple owners, so that there's no single point of failure for histogram-related questions and maintenance tasks. If you are using a metric heavily and understand it intimately, feel free to add yourself -as an owner. For individuals, @chromium.org email addresses are preferred. +as an owner. Notably, owners are asked to determine whether histograms have outlived their -usefulness. When a histogram is nearing expiry, a robot will file a reminder -bug in Monorail. It's important that somebody familiar with the histogram -notices and triages such bugs! +usefulness. When a histogram is nearing expiry, a robot files a reminder bug in +Monorail. It's important that somebody familiar with the histogram notices and +triages such bugs! ### Components @@ -531,9 +531,9 @@ ### Cleaning Up Histogram Entries -Do not delete histograms from histograms.xml. Instead, mark unused -histograms as obsolete and annotate them with the date or milestone in -the `<obsolete>` tag entry. +Do not delete histograms from histograms.xml. Instead, mark unused histograms as +obsolete and annotate them with the date or milestone in the `<obsolete>` tag +entry. If deprecating only some variants of a [patterned histogram](#Patterned-Histograms), mark each deprecated `<variant>` @@ -544,20 +544,20 @@ * Note in the `<obsolete>` message the name of the replacement histogram. -* Make sure the descriptions of the original and replacement histogram - are different. It's never appropriate for them to be identical. Either - the old description was wrong, and it should be revised to explain what - it actually measured, or the old histogram was measuring something not - as useful as the replacement, in which case the new histogram is - measuring something different and needs to have a new description. +* Make sure the descriptions of the original and replacement histogram are + different. It's never appropriate for them to be identical. Either the old + description was wrong, and it should be revised to explain what it actually + measured, or the old histogram was measuring something not as useful as the + replacement, in which case the new histogram is measuring something different + and needs to have a new description. A changelist that marks a histogram as obsolete should be reviewed by all current owners. Deleting histogram entries would be bad if someone to accidentally reused your old histogram name and thereby corrupts new data with whatever old data is still -coming in. It's also useful to keep obsolete histogram descriptions in -[histograms.xml](./histograms.xml) -- that way, if someone is searching for a +coming in. It's also useful to keep obsolete histogram descriptions in +[histograms.xml](./histograms.xml)—that way, if someone is searching for a histogram to answer a particular question, they can learn if there was a histogram at some point that did so even if it isn't active now. @@ -607,8 +607,8 @@ Note that each token `<variant>` defines what text should be substituted for it, both in the histogram name and in the summary text. As shorthand, a `<variant>` -that omits the `summary` attribute will substitute the value of the `name` -attribute in the histogram's `<summary>` text as well. +that omits the `summary` attribute substitutes the value of the `name` attribute +in the histogram's `<summary>` text as well. *** promo Tip: You can declare an optional token by listing an empty name: `<variant @@ -622,7 +622,7 @@ [histograms.xml](https://source.chromium.org/search?q=file:histograms.xml%20%3Cvariants) for examples. -By default, a `<variant>` will inherit the owners declared for the patterned +By default, a `<variant>` inherits the owners declared for the patterned histogram. Each variant can optionally override the inherited list with custom owners: ```xml @@ -650,8 +650,8 @@ ## When To Use Sparse Histograms -Sparse histograms are well suited for recording counts of exact sample values -that are sparsely distributed over a large range. They can be used with enums +Sparse histograms are well-suited for recording counts of exact sample values +that are sparsely distributed over a large range. They can be used with enums as well as regular integer values. It is often valuable to provide labels in [enums.xml](./enums.xml).
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 464d082f..b3fd554f 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -26002,6 +26002,15 @@ <int value="3" label="Service error"/> </enum> +<enum name="FamilyLinkUserLogSegment"> + <summary> + Filters family link user metrics into categories of interest. + </summary> + <int value="0" label="Other Not Family Link"/> + <int value="1" label="Under Age of Consent"/> + <int value="2" label="Over Age of Consent"/> +</enum> + <enum name="FamilyUserLogSegment"> <summary>Filters family user metrics into categories of interest.</summary> <int value="0" label="Other"/> @@ -42465,6 +42474,7 @@ <int value="-1344375439" label="ServiceWorkerPaymentApps:disabled"/> <int value="-1343259222" label="RegionalLocalesAsDisplayUI:disabled"/> <int value="-1342961844" label="InlineUpdateFlow:disabled"/> + <int value="-1342829138" label="kMacCoreLocationImplementation:enabled"/> <int value="-1342039126" label="AshNewSystemMenu:enabled"/> <int value="-1341685799" label="AutofillAssistantDirectActions:enabled"/> <int value="-1341092934" label="enable-accelerated-overflow-scroll"/> @@ -43273,7 +43283,6 @@ <int value="-531792555" label="UseModernMediaControls:disabled"/> <int value="-531651776" label="NewRemotePlaybackPipeline:enabled"/> <int value="-531379517" label="MediaSessionNotification:disabled"/> - <int value="-530799497" label="MacCoreLocationImplementation:enabled"/> <int value="-530480158" label="EnableSuggestedFiles:enabled"/> <int value="-528927088" label="AutofillCreditCardPopupLayout:disabled"/> <int value="-528149352" label="WebRtcUseEchoCanceller3:enabled"/> @@ -44173,7 +44182,6 @@ <int value="373177941" label="DockedMagnifier:enabled"/> <int value="373193557" label="LongPressBackNewDesign:enabled"/> <int value="373275338" label="AndroidPartnerCustomizationPhenotype:disabled"/> - <int value="373531060" label="MacCoreLocationBackend:enabled"/> <int value="373578344" label="SafeBrowsingSecuritySectionUIAndroid:enabled"/> <int value="375485858" label="EnableZeroStateMixedTypesRanker:disabled"/> <int value="375785554" label="UserActivationV2:disabled"/> @@ -44687,6 +44695,7 @@ <int value="886907524" label="autoplay-policy"/> <int value="887011602" label="enable-spelling-auto-correct"/> <int value="889837286" label="EnableHostnameSetting:enabled"/> + <int value="890322192" label="kMacCoreLocationImplementation:disabled"/> <int value="892899792" label="MaterialDesignIncognitoNTP:disabled"/> <int value="898311758" label="ReaderMode:disabled"/> <int value="900614020" label="ContentSuggestionsShowSummary:disabled"/> @@ -44952,7 +44961,6 @@ <int value="1158333871" label="QueryTilesEnableQueryEditing:enabled"/> <int value="1159760152" label="ContextMenuSearchAndShopWithGoogleLens:disabled"/> - <int value="1162693272" label="MacCoreLocationImplementation:disabled"/> <int value="1163255347" label="ash-enable-touch-view-touch-feedback"/> <int value="1164377197" label="SwipingFromLeftEdgeToGoBack:enabled"/> <int value="1164460660" label="AutofillEnableVirtualCard:enabled"/> @@ -45263,7 +45271,6 @@ <int value="1454363479" label="disable-storage-manager"/> <int value="1454527518" label="ArcNativeBridgeExperiment:enabled"/> <int value="1455881930" label="V8VmFuture:enabled"/> - <int value="1455970119" label="MacCoreLocationBackend:disabled"/> <int value="1458085218" label="MultiDisplayOverviewAndSplitView:disabled"/> <int value="1458255488" label="BlinkGenPropertyTrees:enabled"/> <int value="1458475849" label="D3D11VideoDecoder:disabled"/> @@ -60360,6 +60367,7 @@ <int value="1" label="Manage profile button in the profile menu"/> <int value="2" label="Add new profile button in the profile menu"/> <int value="3" label="Open new window after profile deletion"/> + <int value="4" label="New session while running (e.g. from Windows tray)"/> </enum> <enum name="ProfilePickerPages"> @@ -63414,6 +63422,9 @@ </int> <int value="2" label="kTriggerUpdate">An update was detected</int> <int value="3" label="kTriggerNewVersion">A new version is running</int> + <int value="4" label="kTriggerExtensionRequest"> + A new extension request is added + </int> </enum> <enum name="RequestAction">
diff --git a/tools/metrics/histograms/histograms_xml/android/histograms.xml b/tools/metrics/histograms/histograms_xml/android/histograms.xml index acbc6e47..db068a0d 100644 --- a/tools/metrics/histograms/histograms_xml/android/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/android/histograms.xml
@@ -115,7 +115,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.ExactTaskCreated" - enum="BackgroundTaskId" expires_after="2020-12-01"> + enum="BackgroundTaskId" expires_after="M91"> <owner>ioanastefan@chromium.org</owner> <owner>nator@chromium.org</owner> <owner>knollr@chromium.org</owner> @@ -127,6 +127,9 @@ <histogram name="Android.BackgroundTaskScheduler.MigrationToProto" enum="BackgroundTaskId" expires_after="2020-12-01"> + <obsolete> + Removed in October 2020. + </obsolete> <owner>ioanastefan@chromium.org</owner> <owner>nator@chromium.org</owner> <owner>knollr@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml b/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml index 1e845d4..a03ffdde 100644 --- a/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml
@@ -302,6 +302,19 @@ </summary> </histogram> +<histogram name="ChromeOS.FamilyLinkUser.LogSegment" + enum="FamilyLinkUserLogSegment" expires_after="2021-10-12"> + <owner>tobyhuang@chromium.org</owner> + <owner>cros-families-eng@google.com</owner> + <summary> + Categorizes the current user for the Family Experiences team's metrics. + Other is for all other users that do not fall into any of the below + categories. Users under the age of consent automatically have supervision + applied to their accounts. Users over the age of consent can opt into + supervision. + </summary> +</histogram> + <histogram name="ChromeOS.FamilyUser.LogSegment" enum="FamilyUserLogSegment" expires_after="2021-07-23"> <owner>tobyhuang@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/content/histograms.xml b/tools/metrics/histograms/histograms_xml/content/histograms.xml index 566d71d..f3c9a1c 100644 --- a/tools/metrics/histograms/histograms_xml/content/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/content/histograms.xml
@@ -221,6 +221,9 @@ <histogram name="ContentSettings.DefaultPluginsSetting" enum="ContentSetting" expires_after="2021-06-19"> + <obsolete> + Removed as of 09/2020. Flash / Plugins is deprecated. + </obsolete> <owner>engedy@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary>The default plugins setting at profile open.</summary>
diff --git a/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml b/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml index ea9c4426..1885158 100644 --- a/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml +++ b/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml
@@ -8922,6 +8922,9 @@ </histogram_suffixes> <histogram_suffixes name="MediaTimelineWidths" separator="."> + <obsolete> + Deprecated as of 2020/10. + </obsolete> <suffix name="32_47" label=""/> <suffix name="48_79" label=""/> <suffix name="80_127" label=""/>
diff --git a/tools/metrics/histograms/histograms_xml/media/histograms.xml b/tools/metrics/histograms/histograms_xml/media/histograms.xml index 135b64f..21acd4d8 100644 --- a/tools/metrics/histograms/histograms_xml/media/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/media/histograms.xml
@@ -3220,7 +3220,10 @@ </histogram> <histogram base="true" name="Media.Timeline.DragGestureDuration" units="ms" - expires_after="M88"> + expires_after="2020-10-23"> + <obsolete> + Deprecated as of 2020/10. + </obsolete> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <owner>mlamouri@google.com</owner> @@ -3233,7 +3236,10 @@ </histogram> <histogram base="true" name="Media.Timeline.DragPercent" - enum="MediaTimelinePercent" expires_after="M88"> + enum="MediaTimelinePercent" expires_after="2020-10-23"> + <obsolete> + Deprecated as of 2020/10. + </obsolete> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <owner>mlamouri@google.com</owner> @@ -3247,7 +3253,10 @@ </histogram> <histogram base="true" name="Media.Timeline.DragSumAbsTimeDelta" - enum="MediaTimelineAbsTimeDelta" expires_after="M88"> + enum="MediaTimelineAbsTimeDelta" expires_after="2020-10-23"> + <obsolete> + Deprecated as of 2020/10. + </obsolete> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <owner>mlamouri@google.com</owner> @@ -3265,7 +3274,10 @@ </histogram> <histogram base="true" name="Media.Timeline.DragTimeDelta" - enum="MediaTimelineTimeDelta" expires_after="M88"> + enum="MediaTimelineTimeDelta" expires_after="2020-10-23"> + <obsolete> + Deprecated as of 2020/10. + </obsolete> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <owner>mlamouri@google.com</owner> @@ -3279,7 +3291,10 @@ </histogram> <histogram base="true" name="Media.Timeline.SeekType" - enum="MediaTimelineSeekType" expires_after="M88"> + enum="MediaTimelineSeekType" expires_after="2020-10-23"> + <obsolete> + Deprecated as of 2020/10. + </obsolete> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <owner>mlamouri@google.com</owner>
diff --git a/tools/metrics/histograms/histograms_xml/ukm/histograms.xml b/tools/metrics/histograms/histograms_xml/ukm/histograms.xml index 2d0e661..18fc34c 100644 --- a/tools/metrics/histograms/histograms_xml/ukm/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/ukm/histograms.xml
@@ -196,6 +196,17 @@ </summary> </histogram> +<histogram name="UKM.ReportSize.NonUkmPercentage" units="%" + expires_after="2021-07-01"> + <owner>yrsun@chromium.org</owner> + <owner>ukm-team@google.com</owner> + <summary> + Percentage that data non-directly attributed (e.g. system profile info, etc) + to UKM take up in a serialized ukm::Report protocol buffer, before + compression. + </summary> +</histogram> + <histogram name="UKM.ResetReason" enum="UkmResetReason" expires_after="2021-07-01"> <owner>rkaplow@chromium.org</owner>
diff --git a/ui/base/clipboard/clipboard_non_backed.h b/ui/base/clipboard/clipboard_non_backed.h index 650b034..83bc6a5 100644 --- a/ui/base/clipboard/clipboard_non_backed.h +++ b/ui/base/clipboard/clipboard_non_backed.h
@@ -39,6 +39,9 @@ std::unique_ptr<ClipboardData> WriteClipboardData( std::unique_ptr<ClipboardData> data); + // Clipboard overrides: + uint64_t GetSequenceNumber(ClipboardBuffer buffer) const override; + private: friend class Clipboard; friend class ClipboardNonBackedTest; @@ -47,7 +50,6 @@ // Clipboard overrides: void OnPreShutdown() override; - uint64_t GetSequenceNumber(ClipboardBuffer buffer) const override; bool IsFormatAvailable(const ClipboardFormatType& format, ClipboardBuffer buffer, const ClipboardDataEndpoint* data_dst) const override;
diff --git a/ui/chromeos/translations/ui_chromeos_strings_de.xtb b/ui/chromeos/translations/ui_chromeos_strings_de.xtb index 2632210..96d95a40 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_de.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
@@ -143,6 +143,7 @@ <translation id="2515586267016047495">Alt</translation> <translation id="2529133382850673012">US-amerikanische Tastatur</translation> <translation id="2534155362429831547"><ph name="NUMBER_OF_ITEMS" /> Einträge gelöscht</translation> +<translation id="2541377937973966830">Inhalte in diesem Ordner sind schreibgeschützt. Einige Aktivitäten werden nicht unterstützt.</translation> <translation id="2542049655219295786">Google-Tabelle</translation> <translation id="2547921442987553570">Zu <ph name="EXTENSION_NAME" /> hinzufügen</translation> <translation id="255937426064304553">USA – international</translation> @@ -312,6 +313,7 @@ <translation id="4522570452068850558">Details</translation> <translation id="4527800702232535228">Dieser Ordner ist für Parallels Desktop freigegeben</translation> <translation id="4552678318981539154">Mehr Speicherplatz erwerben</translation> +<translation id="4559318885353833501"><ph name="FILE_NAME" /> gelöscht</translation> <translation id="4559767610552730302">Bokeh</translation> <translation id="4572815280350369984"><ph name="FILE_TYPE" />-Datei</translation> <translation id="457386861538956877">Mehr...</translation> @@ -512,6 +514,7 @@ <translation id="6356685157277930264">Feedbackfenster für "Meine Dateien"</translation> <translation id="6358884629796491903">Drache</translation> <translation id="637062427944097960">Diese Datei wurde auf einem anderen Desktop geöffnet. Wechseln Sie zu <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />), um die Datei anzusehen.</translation> +<translation id="6394388407447716302">Schreibgeschützt</translation> <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> Elemente</translation> <translation id="6398765197997659313">Vollbildmodus beenden</translation> <translation id="642282551015776456">Dieser Name darf nicht als Datei- oder Ordnername verwendet werden.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb index 5cc317b1..f6f70a11 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
@@ -143,6 +143,7 @@ <translation id="2515586267016047495">Alt</translation> <translation id="2529133382850673012">यूएस कीबोर्ड</translation> <translation id="2534155362429831547"><ph name="NUMBER_OF_ITEMS" /> आयटम हटवले</translation> +<translation id="2541377937973966830">या फोल्डरमधील आशय रीड-ओन्ली आहेत. काही अॅक्टिव्हिटींना सपोर्ट नाही.</translation> <translation id="2542049655219295786">Google सारणी</translation> <translation id="2547921442987553570"><ph name="EXTENSION_NAME" /> मध्ये जोडा</translation> <translation id="255937426064304553">यूएस आंतरराष्ट्रीय</translation> @@ -312,6 +313,7 @@ <translation id="4522570452068850558">तपशील</translation> <translation id="4527800702232535228">हे फोल्डर Parallels Desktop सह शेअर केलेले आहे</translation> <translation id="4552678318981539154">अधिक स्टोरेज खरेदी करा</translation> +<translation id="4559318885353833501"><ph name="FILE_NAME" /> हटवली आहे</translation> <translation id="4559767610552730302">Bokeh</translation> <translation id="4572815280350369984"><ph name="FILE_TYPE" /> फाइल</translation> <translation id="457386861538956877">अधिक...</translation> @@ -512,6 +514,7 @@ <translation id="6356685157277930264">फाइल फीडबॅक विंडो</translation> <translation id="6358884629796491903">ड्रॅगन</translation> <translation id="637062427944097960">ही फाइल एका भिन्न डेस्कटॉपवर उघडलेली आहे. ती पाहण्यासाठी <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) वर हलवा.</translation> +<translation id="6394388407447716302">रीड-ओन्ली</translation> <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> आयटम</translation> <translation id="6398765197997659313">पूर्ण स्क्रीनमधून निर्गमन करा</translation> <translation id="642282551015776456">हे नाव एखाद्या फाइल किंवा फोल्डरचे नाव म्हणून वापरले जाऊ शकत नाही</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb index 485c671..54196e28 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
@@ -143,6 +143,7 @@ <translation id="2515586267016047495">Alt</translation> <translation id="2529133382850673012">अमेरिकी किबोर्ड</translation> <translation id="2534155362429831547"><ph name="NUMBER_OF_ITEMS" /> वस्तुहरू मेटाइए</translation> +<translation id="2541377937973966830">यो फोल्डरका सामग्री रिड गर्न मात्र मिल्छ। केही क्रियाकलापहरू गर्न मिल्दैन।</translation> <translation id="2542049655219295786">Google तालिका</translation> <translation id="2547921442987553570"><ph name="EXTENSION_NAME" /> मा थप्नुहोस्</translation> <translation id="255937426064304553">यु.एस. अन्तर्राष्ट्रिय</translation> @@ -312,6 +313,7 @@ <translation id="4522570452068850558">विवरणहरू</translation> <translation id="4527800702232535228">यो फोल्डर Parallels Desktop सँग सेयर गरिएको छ</translation> <translation id="4552678318981539154">थप भण्डारण खरीद गर्नुहोस्</translation> +<translation id="4559318885353833501"><ph name="FILE_NAME" /> मेटाइयो</translation> <translation id="4559767610552730302">Bokeh</translation> <translation id="4572815280350369984"><ph name="FILE_TYPE" /> फाइल</translation> <translation id="457386861538956877">थप...</translation> @@ -511,6 +513,7 @@ <translation id="6356685157277930264">फाइलहरूसम्बन्धी प्रतिक्रिया दिने विन्डो</translation> <translation id="6358884629796491903">ड्रागन</translation> <translation id="637062427944097960">यो फाइल अर्को डेस्कटपमा खोलियो। यसलाई हेर्नको लागि <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) सार्नुहोस्।</translation> +<translation id="6394388407447716302">रिड गर्न मात्र मिल्छ</translation> <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> वस्तुहरू</translation> <translation id="6398765197997659313">पूर्ण स्क्रिनलाई हटाउनुहोस्</translation> <translation id="642282551015776456">नामलाई फाइल वा फोल्डर नामको रूपमा प्रयोग गर्न सकिँदैन</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb index 8314021..a1b049e 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
@@ -143,6 +143,7 @@ <translation id="2515586267016047495">Alt</translation> <translation id="2529133382850673012">امریکی کی بورڈ</translation> <translation id="2534155362429831547"><ph name="NUMBER_OF_ITEMS" /> آئٹمز حذف ہو گئے</translation> +<translation id="2541377937973966830">اس فولڈر کے مواد صرف پڑھنے کے لیے ہیں۔ کچھ سرگرمیاں تعاون یافتہ نہیں ہیں۔</translation> <translation id="2542049655219295786">Google ٹیبل</translation> <translation id="2547921442987553570"><ph name="EXTENSION_NAME" /> میں شامل کریں</translation> <translation id="255937426064304553">امریکی بین الاقوامی</translation> @@ -312,6 +313,7 @@ <translation id="4522570452068850558">تفصیلات</translation> <translation id="4527800702232535228">یہ فولڈر Parallels Desktop کے ساتھ اشتراک کردہ ہے</translation> <translation id="4552678318981539154">مزید اسٹوریج خریدیں</translation> +<translation id="4559318885353833501"><ph name="FILE_NAME" /> حذف ہو گئی</translation> <translation id="4559767610552730302">بوکیہ</translation> <translation id="4572815280350369984"><ph name="FILE_TYPE" /> فائل</translation> <translation id="457386861538956877">مزید…</translation> @@ -511,6 +513,7 @@ <translation id="6356685157277930264">فائلوں کے تاثرات کی ونڈو</translation> <translation id="6358884629796491903">ڈریگن</translation> <translation id="637062427944097960">یہ فائل ایک مختلف ڈیسک ٹاپ پر کھولی گئی ہے۔ اسے دیکھنے کیلئے <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) پر منتقل ہوں۔</translation> +<translation id="6394388407447716302">صرف پڑھنے کے لیے</translation> <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> آئٹمز</translation> <translation id="6398765197997659313">پوری سکرین سے خارج ہوں</translation> <translation id="642282551015776456">یہ نام کسی فائل یا فولڈر نام کے بطور استعمال نہیں کیا جا سکتا ہے</translation>
diff --git a/ui/file_manager/file_manager/foreground/js/file_transfer_controller.js b/ui/file_manager/file_manager/foreground/js/file_transfer_controller.js index 6aff5d4..d442e36 100644 --- a/ui/file_manager/file_manager/foreground/js/file_transfer_controller.js +++ b/ui/file_manager/file_manager/foreground/js/file_transfer_controller.js
@@ -286,6 +286,23 @@ !this.selectionHandler_.isAvailable()); this.appendUriList_( clipboardData, this.selectionHandler_.selection.entries); + if (util.isCopyImageEnabled()) { + const entries = this.selectionHandler_.selection.entries; + if (entries.length == 1 && FileType.isImage(entries[0])) { + // We are using setTimeout to ensure that the previous copy commands + // execute successfully, so we can append our image to the system + // clipboard at the end of the event loop. + setTimeout(() => { + chrome.fileManagerPrivate.copyImageToClipboard(entries[0], + () => { + if (chrome.runtime.lastError) { + console.error(chrome.runtime.lastError.message); + return; + } + }); + }); + } + } } /** @@ -314,15 +331,6 @@ clipboardData.setData( 'fs/missingFileContents', missingFileContents.toString()); - - if(util.isCopyImageEnabled()) { - if ((entries.length == 1) && FileType.isImage(entries[0])) { - chrome.fileManagerPrivate.copyImageToClipboard(entries[0], - () => { - console.log("Image is being copied!"); - }); - } - } } /**
diff --git a/ui/native_theme/BUILD.gn b/ui/native_theme/BUILD.gn index 9791103..2f5cc7d 100644 --- a/ui/native_theme/BUILD.gn +++ b/ui/native_theme/BUILD.gn
@@ -134,7 +134,7 @@ } if (is_mac) { - sources += [ "native_theme_mac_unittest.cc" ] + sources += [ "native_theme_mac_unittest.mm" ] } if (is_win) {
diff --git a/ui/native_theme/native_theme.cc b/ui/native_theme/native_theme.cc index 87e2cd7..32b2647 100644 --- a/ui/native_theme/native_theme.cc +++ b/ui/native_theme/native_theme.cc
@@ -233,7 +233,8 @@ NativeTheme::NativeTheme(bool should_use_dark_colors) : should_use_dark_colors_(should_use_dark_colors || IsForcedDarkMode()), is_high_contrast_(IsForcedHighContrast()), - preferred_color_scheme_(CalculatePreferredColorScheme()) { + preferred_color_scheme_(CalculatePreferredColorScheme()), + preferred_contrast_(CalculatePreferredContrast()) { #if !defined(OS_ANDROID) // TODO(http://crbug.com/1057754): Merge this into the ColorProviderManager. static base::OnceClosure color_provider_manager_init = base::BindOnce([]() { @@ -276,6 +277,10 @@ return preferred_color_scheme_; } +NativeTheme::PreferredContrast NativeTheme::GetPreferredContrast() const { + return preferred_contrast_; +} + bool NativeTheme::IsForcedDarkMode() const { static bool kIsForcedDarkMode = base::CommandLine::ForCurrentProcess()->HasSwitch( @@ -296,6 +301,11 @@ : NativeTheme::PreferredColorScheme::kLight; } +NativeTheme::PreferredContrast NativeTheme::CalculatePreferredContrast() const { + return IsForcedHighContrast() ? PreferredContrast::kMore + : PreferredContrast::kNoPreference; +} + base::Optional<CaptionStyle> NativeTheme::GetSystemCaptionStyle() const { return CaptionStyle::FromSystemSettings(); } @@ -359,6 +369,7 @@ bool is_high_contrast = observed_theme->UsesHighContrastColors(); PreferredColorScheme preferred_color_scheme = observed_theme->GetPreferredColorScheme(); + PreferredContrast preferred_contrast = observed_theme->GetPreferredContrast(); bool notify_observers = false; if (theme_to_update_->ShouldUseDarkColors() != should_use_dark_colors) { @@ -373,6 +384,10 @@ theme_to_update_->set_preferred_color_scheme(preferred_color_scheme); notify_observers = true; } + if (theme_to_update_->GetPreferredContrast() != preferred_contrast) { + theme_to_update_->set_preferred_contrast(preferred_contrast); + notify_observers = true; + } const auto& system_colors = observed_theme->GetSystemColors(); if (theme_to_update_->HasDifferentSystemColors(system_colors)) {
diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h index e2ca7dd..726f588a 100644 --- a/ui/native_theme/native_theme.h +++ b/ui/native_theme/native_theme.h
@@ -107,12 +107,20 @@ // OS-level preferred color scheme. (Ex. high contrast or dark mode color // preference.) - enum PreferredColorScheme { - kDark, - kLight, + enum class PreferredColorScheme { + kDark = 0, + kLight = 1, kMaxValue = kLight, }; + // OS-level preferred contrast. (Ex. high contrast or increased contrast.) + enum class PreferredContrast { + kNoPreference = 0, + kMore = 1, + kLess = 2, + kMaxValue = kLess, + }; + // IMPORTANT! // This enum is reporting in metrics. Do not reorder; add additional values at // the end. @@ -435,6 +443,9 @@ // is calculated. virtual PreferredColorScheme GetPreferredColorScheme() const; + // Returns the OS-level user preferred contrast. + virtual PreferredContrast GetPreferredContrast() const; + // Returns the system's caption style. virtual base::Optional<CaptionStyle> GetSystemCaptionStyle() const; @@ -457,11 +468,14 @@ void set_preferred_color_scheme(PreferredColorScheme preferred_color_scheme) { preferred_color_scheme_ = preferred_color_scheme; } + void set_preferred_contrast(PreferredContrast preferred_contrast) { + preferred_contrast_ = preferred_contrast; + } void set_system_colors(const std::map<SystemThemeColor, SkColor>& colors); - // Updates the state of dark mode, high contrast, preferred color scheme, - // and the map of system colors. Returns true if NativeTheme was updated - // as a result, or false if the state of NativeTheme was untouched. + // Updates the state of dark mode, high contrast, and the map of system + // colors. Returns true if NativeTheme was updated as a result, or false if + // the state of NativeTheme was untouched. bool UpdateSystemColorInfo( bool is_dark_mode, bool is_high_contrast, @@ -495,6 +509,9 @@ // calculation will follow the default behavior. virtual PreferredColorScheme CalculatePreferredColorScheme() const; + // Calculates and returns the current user preferred contrast. + virtual PreferredContrast CalculatePreferredContrast() const; + // A function to be called by native theme instances that need to set state // or listeners with the webinstance in order to provide correct native // platform behaviors. @@ -503,7 +520,7 @@ // Allows one native theme to observe changes in another. For example, the // web native theme for Windows observes the corresponding ui native theme in // order to receive changes regarding the state of dark mode, high contrast, - // and preferred color scheme. + // preferred color scheme and preferred contrast. class NATIVE_THEME_EXPORT ColorSchemeNativeThemeObserver : public NativeThemeObserver { public: @@ -529,6 +546,7 @@ bool should_use_dark_colors_ = false; bool is_high_contrast_ = false; PreferredColorScheme preferred_color_scheme_ = PreferredColorScheme::kLight; + PreferredContrast preferred_contrast_ = PreferredContrast::kNoPreference; DISALLOW_COPY_AND_ASSIGN(NativeTheme); };
diff --git a/ui/native_theme/native_theme_mac.h b/ui/native_theme/native_theme_mac.h index fb95b140..8961b9e 100644 --- a/ui/native_theme/native_theme_mac.h +++ b/ui/native_theme/native_theme_mac.h
@@ -44,6 +44,9 @@ // Overridden from NativeTheme: SkColor GetSystemButtonPressedColor(SkColor base_color) const override; + // Overridden from NativeTheme: + PreferredContrast CalculatePreferredContrast() const override; + // Overridden from NativeThemeBase: void Paint(cc::PaintCanvas* canvas, Part part, @@ -92,10 +95,10 @@ friend class base::NoDestructor<NativeThemeMac>; static NativeThemeMac* instance(); - private: NativeThemeMac(bool configure_web_instance, bool should_only_use_dark_colors); ~NativeThemeMac() override; + private: // Paint the selected menu item background, and a border for emphasis when in // high contrast. void PaintSelectedMenuItem(cc::PaintCanvas* canvas,
diff --git a/ui/native_theme/native_theme_mac.mm b/ui/native_theme/native_theme_mac.mm index 2ec658c..58226be 100644 --- a/ui/native_theme/native_theme_mac.mm +++ b/ui/native_theme/native_theme_mac.mm
@@ -239,6 +239,13 @@ } } +NativeThemeAura::PreferredContrast NativeThemeMac::CalculatePreferredContrast() + const { + return UsesHighContrastColors() + ? NativeThemeAura::PreferredContrast::kMore + : NativeThemeAura::PreferredContrast::kNoPreference; +} + void NativeThemeMac::Paint(cc::PaintCanvas* canvas, Part part, State state, @@ -591,6 +598,8 @@ queue:nil usingBlock:^(NSNotification* notification) { theme->set_high_contrast(IsHighContrast()); + theme->set_preferred_contrast( + CalculatePreferredContrast()); theme->NotifyObservers(); }]; } @@ -635,6 +644,7 @@ NativeTheme* web_instance = NativeTheme::GetInstanceForWeb(); web_instance->set_use_dark_colors(IsDarkMode()); web_instance->set_preferred_color_scheme(CalculatePreferredColorScheme()); + web_instance->set_preferred_contrast(CalculatePreferredContrast()); web_instance->set_high_contrast(IsHighContrast()); // Add the web native theme as an observer to stay in sync with dark mode,
diff --git a/ui/native_theme/native_theme_mac_unittest.cc b/ui/native_theme/native_theme_mac_unittest.mm similarity index 71% rename from ui/native_theme/native_theme_mac_unittest.cc rename to ui/native_theme/native_theme_mac_unittest.mm index d6d3327..6ad349e 100644 --- a/ui/native_theme/native_theme_mac_unittest.cc +++ b/ui/native_theme/native_theme_mac_unittest.mm
@@ -2,12 +2,20 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ui/native_theme/native_theme.h" +#include "ui/native_theme/native_theme_mac.h" #include "testing/gtest/include/gtest/gtest.h" namespace ui { +class TestNativeThemeMac : public NativeThemeMac { + public: + TestNativeThemeMac() : NativeThemeMac(false, false) {} + TestNativeThemeMac& operator=(const TestNativeThemeMac&) = delete; + + ~TestNativeThemeMac() override = default; +}; + // Test to ensure any system colors that are looked up by name exist on all Mac // platforms Chrome supports, and that their colorspace and component count is // sane. @@ -20,7 +28,7 @@ EXPECT_NE( static_cast<SkColor>(0), native_theme->GetSystemColor(static_cast<NativeTheme::ColorId>(i))) - << "GetSystemColor() unexpectedly gave a fully transparent color."; + << "GetSystemColor() unexpectedly gave a fully transparent color."; } } @@ -51,4 +59,17 @@ EXPECT_EQ(native_theme->GetPlatformHighContrastColorScheme(), kNone); } +TEST(NativeThemeMacTest, GetPreferredContrast) { + using PrefContrast = NativeTheme::PreferredContrast; + + TestNativeThemeMac native_theme; + + native_theme.set_high_contrast(false); + EXPECT_EQ(native_theme.CalculatePreferredContrast(), + PrefContrast::kNoPreference); + + native_theme.set_high_contrast(true); + EXPECT_EQ(native_theme.CalculatePreferredContrast(), PrefContrast::kMore); +} + } // namespace ui
diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc index 02cc2133..76c20dc6 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc
@@ -294,6 +294,7 @@ // Initialize the cached system colors. UpdateSystemColors(); set_preferred_color_scheme(CalculatePreferredColorScheme()); + set_preferred_contrast(CalculatePreferredContrast()); memset(theme_handles_, 0, sizeof(theme_handles_)); @@ -317,6 +318,7 @@ web_instance->set_use_dark_colors(ShouldUseDarkColors()); web_instance->set_high_contrast(UsesHighContrastColors()); web_instance->set_preferred_color_scheme(GetPreferredColorScheme()); + web_instance->set_preferred_contrast(GetPreferredContrast()); web_instance->set_system_colors(GetSystemColors()); } @@ -347,6 +349,7 @@ if (!IsForcedHighContrast()) set_high_contrast(IsUsingHighContrastThemeInternal()); set_preferred_color_scheme(CalculatePreferredColorScheme()); + set_preferred_contrast(CalculatePreferredContrast()); NotifyObservers(); } @@ -746,6 +749,39 @@ return NativeTheme::PreferredColorScheme::kLight; } +NativeTheme::PreferredContrast NativeThemeWin::CalculatePreferredContrast() + const { + if (!UsesHighContrastColors()) + return NativeTheme::CalculatePreferredContrast(); + + // According to the spec [1], "when the user agent can determine whether the + // forced color palette chosen by the user has a high or low contrast, one of + // 'prefers-contrast: more' or 'prefers-contrast: less' must match in addition + // to 'prefers-contrast: forced'." + // + // Using WCAG definitions [2], we have decided to match 'more' in Forced + // Colors Mode if the contrast ratio between the foreground and background + // color is 7:1 or greater. + // + // "A contrast ratio of 3:1 is the minimum level recommended by [[ISO-9241-3]] + // and [[ANSI-HFES-100-1988]] for standard text and vision"[2]. Given this, + // we will start by matching to 'less' in Forced Colors Mode if the contrast + // ratio between the foreground and background color is 2.5:1 or less. + // + // These ratios will act as an experimental baseline that we can adjust based + // on user feedback. + // + // [1] https://www.w3.org/TR/css-color-adjust-1/#forced + // [2] https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced + SkColor bg_color = system_colors_[SystemThemeColor::kWindow]; + SkColor fg_color = system_colors_[SystemThemeColor::kWindowText]; + float contrast_ratio = color_utils::GetContrastRatio(bg_color, fg_color); + if (contrast_ratio >= 7) + return NativeTheme::PreferredContrast::kMore; + return contrast_ratio <= 2.5 ? NativeTheme::PreferredContrast::kLess + : NativeTheme::PreferredContrast::kNoPreference; +} + NativeTheme::ColorScheme NativeThemeWin::GetDefaultSystemColorScheme() const { return UsesHighContrastColors() ? ColorScheme::kPlatformHighContrast : NativeTheme::GetDefaultSystemColorScheme();
diff --git a/ui/native_theme/native_theme_win.h b/ui/native_theme/native_theme_win.h index c6a15a8..236565d50 100644 --- a/ui/native_theme/native_theme_win.h +++ b/ui/native_theme/native_theme_win.h
@@ -73,6 +73,7 @@ gfx::Rect GetNinePatchAperture(Part part) const override; bool ShouldUseDarkColors() const override; PreferredColorScheme CalculatePreferredColorScheme() const override; + PreferredContrast CalculatePreferredContrast() const override; ColorScheme GetDefaultSystemColorScheme() const override; protected: @@ -209,7 +210,7 @@ gfx::ScopedSysColorChangeListener color_change_listener_; // Used to notify the web native theme of changes to dark mode, high - // contrast, and preferred color scheme. + // contrast, preferred color scheme, and preferred contrast. std::unique_ptr<NativeTheme::ColorSchemeNativeThemeObserver> color_scheme_observer_;
diff --git a/ui/native_theme/native_theme_win_unittest.cc b/ui/native_theme/native_theme_win_unittest.cc index 5f0d0e8..bcef984 100644 --- a/ui/native_theme/native_theme_win_unittest.cc +++ b/ui/native_theme/native_theme_win_unittest.cc
@@ -15,14 +15,14 @@ class TestNativeThemeWin : public NativeThemeWin { public: TestNativeThemeWin() : NativeThemeWin(false, false) {} + TestNativeThemeWin& operator=(const TestNativeThemeWin&) = delete; + ~TestNativeThemeWin() override = default; // NativeTheme: void SetSystemColor(SystemThemeColor system_color, SkColor color) { system_colors_[system_color] = color; } - - DISALLOW_COPY_AND_ASSIGN(TestNativeThemeWin); }; TEST(NativeThemeWinTest, CalculatePreferredColorScheme) { @@ -52,6 +52,33 @@ EXPECT_EQ(theme.CalculatePreferredColorScheme(), PrefScheme::kLight); } +TEST(NativeThemeWinTest, CalculatePreferredContrast) { + using PrefContrast = NativeTheme::PreferredContrast; + + TestNativeThemeWin theme; + + theme.set_high_contrast(false); + EXPECT_EQ(theme.CalculatePreferredContrast(), PrefContrast::kNoPreference); + + theme.set_high_contrast(true); + theme.SetSystemColor(SystemThemeColor::kWindow, SK_ColorBLACK); + theme.SetSystemColor(SystemThemeColor::kWindowText, SK_ColorWHITE); + EXPECT_EQ(theme.CalculatePreferredContrast(), PrefContrast::kMore); + + theme.SetSystemColor(SystemThemeColor::kWindow, SK_ColorWHITE); + theme.SetSystemColor(SystemThemeColor::kWindowText, SK_ColorBLACK); + EXPECT_EQ(theme.CalculatePreferredContrast(), PrefContrast::kMore); + + theme.SetSystemColor(SystemThemeColor::kWindowText, SK_ColorRED); + EXPECT_EQ(theme.CalculatePreferredContrast(), PrefContrast::kNoPreference); + + theme.SetSystemColor(SystemThemeColor::kWindowText, SK_ColorYELLOW); + EXPECT_EQ(theme.CalculatePreferredContrast(), PrefContrast::kLess); + + theme.set_high_contrast(false); + EXPECT_EQ(theme.CalculatePreferredContrast(), PrefContrast::kNoPreference); +} + TEST(NativeThemeWinTest, GetDefaultSystemColorScheme) { using ColorScheme = NativeTheme::ColorScheme;
diff --git a/ui/ozone/platform/wayland/host/wayland_connection.cc b/ui/ozone/platform/wayland/host/wayland_connection.cc index 3fc4631..3752361 100644 --- a/ui/ozone/platform/wayland/host/wayland_connection.cc +++ b/ui/ozone/platform/wayland/host/wayland_connection.cc
@@ -159,10 +159,11 @@ } void WaylandConnection::SetCursorBitmap(const std::vector<SkBitmap>& bitmaps, - const gfx::Point& location) { + const gfx::Point& hotspot_in_dips, + int buffer_scale) { if (!cursor_) return; - cursor_->UpdateBitmap(bitmaps, location, serial()); + cursor_->UpdateBitmap(bitmaps, hotspot_in_dips, serial(), buffer_scale); } bool WaylandConnection::IsDragInProgress() const {
diff --git a/ui/ozone/platform/wayland/host/wayland_connection.h b/ui/ozone/platform/wayland/host/wayland_connection.h index 83ce022..688de8c 100644 --- a/ui/ozone/platform/wayland/host/wayland_connection.h +++ b/ui/ozone/platform/wayland/host/wayland_connection.h
@@ -94,7 +94,8 @@ EventSerial event_serial() const { return serial_; } void SetCursorBitmap(const std::vector<SkBitmap>& bitmaps, - const gfx::Point& location); + const gfx::Point& hotspot_in_dips, + int buffer_scale); WaylandEventSource* event_source() const { return event_source_.get(); }
diff --git a/ui/ozone/platform/wayland/host/wayland_cursor.cc b/ui/ozone/platform/wayland/host/wayland_cursor.cc index fa12bbb..44218ec 100644 --- a/ui/ozone/platform/wayland/host/wayland_cursor.cc +++ b/ui/ozone/platform/wayland/host/wayland_cursor.cc
@@ -9,6 +9,7 @@ #include "base/logging.h" #include "third_party/skia/include/core/SkBitmap.h" +#include "ui/gfx/geometry/point.h" #include "ui/gfx/skia_util.h" #include "ui/ozone/platform/wayland/common/wayland_util.h" #include "ui/ozone/platform/wayland/host/wayland_connection.h" @@ -33,8 +34,9 @@ } void WaylandCursor::UpdateBitmap(const std::vector<SkBitmap>& cursor_image, - const gfx::Point& hotspot, - uint32_t serial) { + const gfx::Point& hotspot_in_dips, + uint32_t serial, + int buffer_scale) { DCHECK(connection_->shm()); if (!pointer_) return; @@ -61,8 +63,10 @@ wl::DrawBitmap(image, &buffer); + wl_surface_set_buffer_scale(pointer_surface_.get(), buffer_scale); + wl_pointer_set_cursor(pointer_->wl_object(), serial, pointer_surface_.get(), - hotspot.x(), hotspot.y()); + hotspot_in_dips.x(), hotspot_in_dips.y()); wl_surface_damage(pointer_surface_.get(), 0, 0, image_size.width(), image_size.height()); wl_surface_attach(pointer_surface_.get(), buffer.get(), 0, 0);
diff --git a/ui/ozone/platform/wayland/host/wayland_cursor.h b/ui/ozone/platform/wayland/host/wayland_cursor.h index bb4978d..e60191e 100644 --- a/ui/ozone/platform/wayland/host/wayland_cursor.h +++ b/ui/ozone/platform/wayland/host/wayland_cursor.h
@@ -39,9 +39,14 @@ // Updates wl_pointer's visual representation with the given bitmap // image set and hotspot. + // The cursor bitmap should already match the device scale factor. + // `buffer_scale` should match the scale of the window surface, so that we + // can pass this information to the compositor which will avoid scaling it + // again. void UpdateBitmap(const std::vector<SkBitmap>& bitmaps, - const gfx::Point& hotspot, - uint32_t serial); + const gfx::Point& hotspot_in_dips, + uint32_t serial, + int buffer_scale); private: // wl_buffer_listener:
diff --git a/ui/ozone/platform/wayland/host/wayland_input_method_context.cc b/ui/ozone/platform/wayland/host/wayland_input_method_context.cc index c649640..4bcb587 100644 --- a/ui/ozone/platform/wayland/host/wayland_input_method_context.cc +++ b/ui/ozone/platform/wayland/host/wayland_input_method_context.cc
@@ -26,6 +26,13 @@ #endif namespace ui { +namespace { + +size_t OffsetFromUTF8Offset(const base::StringPiece& text, uint32_t offset) { + return base::UTF8ToUTF16(text.substr(0, offset)).size(); +} + +} // namespace WaylandInputMethodContext::WaylandInputMethodContext( WaylandConnection* connection, @@ -126,18 +133,13 @@ } void WaylandInputMethodContext::OnPreeditString(const std::string& text, - int preedit_cursor) { - gfx::Range selection_range = gfx::Range::InvalidRange(); - - if (!selection_range.IsValid()) { - int cursor_pos = (preedit_cursor) ? text.length() : preedit_cursor; - selection_range.set_start(cursor_pos); - selection_range.set_end(cursor_pos); - } - + int32_t preedit_cursor) { ui::CompositionText composition_text; composition_text.text = base::UTF8ToUTF16(text); - composition_text.selection = selection_range; + composition_text.selection = + (preedit_cursor >= 0) ? gfx::Range(OffsetFromUTF8Offset( + text, static_cast<uint32_t>(preedit_cursor))) + : gfx::Range::InvalidRange(); ime_delegate_->OnPreeditChanged(composition_text); }
diff --git a/ui/ozone/platform/wayland/host/wayland_input_method_context.h b/ui/ozone/platform/wayland/host/wayland_input_method_context.h index 788e860..0b9ac2f 100644 --- a/ui/ozone/platform/wayland/host/wayland_input_method_context.h +++ b/ui/ozone/platform/wayland/host/wayland_input_method_context.h
@@ -42,7 +42,8 @@ void Blur() override; // ui::ZWPTextInputWrapperClient - void OnPreeditString(const std::string& text, int preedit_cursor) override; + void OnPreeditString(const std::string& text, + int32_t preedit_cursor) override; void OnCommitString(const std::string& text) override; void OnDeleteSurroundingText(int32_t index, uint32_t length) override; void OnKeysym(uint32_t keysym, uint32_t state, uint32_t modifiers) override;
diff --git a/ui/ozone/platform/wayland/host/wayland_pointer_unittest.cc b/ui/ozone/platform/wayland/host/wayland_pointer_unittest.cc index 8e6fd03..c14fc5f 100644 --- a/ui/ozone/platform/wayland/host/wayland_pointer_unittest.cc +++ b/ui/ozone/platform/wayland/host/wayland_pointer_unittest.cc
@@ -247,13 +247,13 @@ SkImageInfo::Make(16, 16, kUnknown_SkColorType, kUnknown_SkAlphaType)); EXPECT_CALL(*pointer_, SetCursor(nullptr, 0, 0)); - connection_->SetCursorBitmap({}, {}); + connection_->SetCursorBitmap({}, {}, 1.0); connection_->ScheduleFlush(); Sync(); Mock::VerifyAndClearExpectations(pointer_); EXPECT_CALL(*pointer_, SetCursor(Ne(nullptr), 5, 8)); - connection_->SetCursorBitmap({dummy_cursor}, gfx::Point(5, 8)); + connection_->SetCursorBitmap({dummy_cursor}, gfx::Point(5, 8), 1.0); connection_->ScheduleFlush(); Sync(); Mock::VerifyAndClearExpectations(pointer_);
diff --git a/ui/ozone/platform/wayland/host/wayland_window.cc b/ui/ozone/platform/wayland/host/wayland_window.cc index 559b2ac..4b39a9fa 100644 --- a/ui/ozone/platform/wayland/host/wayland_window.cc +++ b/ui/ozone/platform/wayland/host/wayland_window.cc
@@ -112,8 +112,13 @@ // Whenever the window gets the pointer focus back, we must reinitialize the // cursor. Otherwise, it is invalidated whenever the pointer leaves the // surface and is not restored by the Wayland compositor. - if (has_pointer_focus_ && bitmap_) - connection_->SetCursorBitmap(bitmap_->bitmaps(), bitmap_->hotspot()); + if (has_pointer_focus_ && bitmap_) { + // Translate physical pixels to DIPs. + gfx::Point hotspot_in_dips = + gfx::ScaleToRoundedPoint(bitmap_->hotspot(), 1.0f / ui_scale_); + connection_->SetCursorBitmap(bitmap_->bitmaps(), hotspot_in_dips, + buffer_scale()); + } } void WaylandWindow::Show(bool inactive) { @@ -214,9 +219,14 @@ bitmap_ = bitmap; if (bitmap_) { - connection_->SetCursorBitmap(bitmap_->bitmaps(), bitmap_->hotspot()); + // Translate physical pixels to DIPs. + gfx::Point hotspot_in_dips = + gfx::ScaleToRoundedPoint(bitmap_->hotspot(), 1.0f / ui_scale_); + connection_->SetCursorBitmap(bitmap_->bitmaps(), hotspot_in_dips, + buffer_scale()); } else { - connection_->SetCursorBitmap(std::vector<SkBitmap>(), gfx::Point()); + connection_->SetCursorBitmap(std::vector<SkBitmap>(), gfx::Point(), + buffer_scale()); } }
diff --git a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper.h b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper.h index 83e84c5..258361a 100644 --- a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper.h +++ b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper.h
@@ -27,6 +27,7 @@ // Called when a new composing text (pre-edit) should be set around the // current cursor position. Any previously set composing text should // be removed. + // Note that the preedit_cursor is byte-offset. virtual void OnPreeditString(const std::string& text, int32_t preedit_cursor) = 0;
diff --git a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc index b1c021ad3..93dc4641 100644 --- a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc +++ b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc
@@ -121,8 +121,9 @@ const char* text, const char* commit) { ZWPTextInputWrapperV1* wti = static_cast<ZWPTextInputWrapperV1*>(data); + int32_t preedit_cursor = wti->preedit_cursor_; wti->ResetInputEventState(); - wti->client_->OnPreeditString(std::string(text), wti->preedit_cursor_); + wti->client_->OnPreeditString(std::string(text), preedit_cursor); } void ZWPTextInputWrapperV1::OnPreeditStyling(
diff --git a/ui/views/accessibility/view_ax_platform_node_delegate_unittest.cc b/ui/views/accessibility/view_ax_platform_node_delegate_unittest.cc index 55449108..454a41a 100644 --- a/ui/views/accessibility/view_ax_platform_node_delegate_unittest.cc +++ b/ui/views/accessibility/view_ax_platform_node_delegate_unittest.cc
@@ -200,7 +200,7 @@ button_->SetInstallFocusRingOnFocus(false); // |button_| is focusable, so |label_| (as its child) should be ignored. - EXPECT_EQ(View::FocusBehavior::ACCESSIBLE_ONLY, button_->GetFocusBehavior()); + EXPECT_NE(View::FocusBehavior::NEVER, button_->GetFocusBehavior()); EXPECT_EQ(1, button_accessibility()->GetChildCount()); EXPECT_EQ(button_->GetNativeViewAccessible(), label_accessibility()->GetParent());
diff --git a/ui/views/controls/button/button.cc b/ui/views/controls/button/button.cc index 450aa04..4aac193 100644 --- a/ui/views/controls/button/button.cc +++ b/ui/views/controls/button/button.cc
@@ -612,7 +612,7 @@ : AnimationDelegateViews(this), callback_(std::move(callback)), ink_drop_base_color_(gfx::kPlaceholderColor) { - SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); + SetFocusBehavior(PlatformStyle::DefaultFocusBehavior()); SetProperty(kIsButtonProperty, true); hover_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(150)); SetInstallFocusRingOnFocus(PlatformStyle::kPreferFocusRings);
diff --git a/ui/views/controls/button/button.h b/ui/views/controls/button/button.h index b615bb4..bb09dc8 100644 --- a/ui/views/controls/button/button.h +++ b/ui/views/controls/button/button.h
@@ -42,9 +42,8 @@ virtual ~ButtonListener() = default; }; -// A View representing a button. A Button is not focusable by default and will -// not be part of the focus chain, unless in accessibility mode (see -// SetFocusForPlatform()). +// A View representing a button. A Button is focusable by default and will +// be part of the focus chain. class VIEWS_EXPORT Button : public InkDropHostView, public AnimationDelegateViews { public: @@ -132,6 +131,8 @@ static ButtonState GetButtonStateFrom(ui::NativeTheme::State state); // Make the button focusable as per the platform. + // TODO(weili): remove this as it is no longer needed since the platform + // focus behavior is the default. void SetFocusForPlatform(); void SetTooltipText(const base::string16& tooltip_text);
diff --git a/ui/views/controls/button/image_button.cc b/ui/views/controls/button/image_button.cc index e0b126b..682a802 100644 --- a/ui/views/controls/button/image_button.cc +++ b/ui/views/controls/button/image_button.cc
@@ -34,8 +34,6 @@ // implementation is flipped horizontally so that the button's images are // mirrored when the UI directionality is right-to-left. SetFlipCanvasOnPaintForRTLUI(true); - // Not focusable by default, only for accessibility. - SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); } ImageButton::ImageButton(ButtonListener* listener) @@ -220,7 +218,6 @@ ToggleImageButton::ToggleImageButton(PressedCallback callback) : ImageButton(std::move(callback)) { - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/ui/views/controls/button/image_button.h b/ui/views/controls/button/image_button.h index 69cf465..3250f77f 100644 --- a/ui/views/controls/button/image_button.h +++ b/ui/views/controls/button/image_button.h
@@ -16,10 +16,6 @@ namespace views { -// An image button. -// Note that this type of button is not focusable by default and will not be -// part of the focus chain, unless in accessibility mode. Call -// SetFocusForPlatform() to make it part of the focus chain. class VIEWS_EXPORT ImageButton : public Button { public: METADATA_HEADER(ImageButton);
diff --git a/ui/views/controls/button/image_button_unittest.cc b/ui/views/controls/button/image_button_unittest.cc index 39063b44..c583064 100644 --- a/ui/views/controls/button/image_button_unittest.cc +++ b/ui/views/controls/button/image_button_unittest.cc
@@ -7,6 +7,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/layout.h" #include "ui/views/border.h" +#include "ui/views/style/platform_style.h" #include "ui/views/test/views_test_base.h" namespace { @@ -42,7 +43,7 @@ TEST_F(ImageButtonTest, FocusBehavior) { ImageButton button; - EXPECT_EQ(View::FocusBehavior::ACCESSIBLE_ONLY, button.GetFocusBehavior()); + EXPECT_EQ(PlatformStyle::DefaultFocusBehavior(), button.GetFocusBehavior()); } TEST_F(ImageButtonTest, Basics) {
diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc index af441d9..e9d66d4 100644 --- a/ui/views/controls/button/label_button.cc +++ b/ui/views/controls/button/label_button.cc
@@ -40,8 +40,6 @@ style::GetFont(button_context, style::STYLE_PRIMARY)), cached_default_button_font_list_( style::GetFont(button_context, style::STYLE_DIALOG_BUTTON_DEFAULT)) { - // Not focusable by default, only for accessibility. - SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); ink_drop_container_ = AddChildView(std::make_unique<InkDropContainerView>()); ink_drop_container_->SetVisible(false);
diff --git a/ui/views/controls/button/label_button.h b/ui/views/controls/button/label_button.h index c569241..94c4686 100644 --- a/ui/views/controls/button/label_button.h +++ b/ui/views/controls/button/label_button.h
@@ -30,7 +30,7 @@ class InkDropContainerView; class LabelButtonBorder; -// LabelButton is a button with text and an icon, it's not focusable by default. +// LabelButton is a button with text and an icon. class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate { public: METADATA_HEADER(LabelButton);
diff --git a/ui/views/controls/button/label_button_unittest.cc b/ui/views/controls/button/label_button_unittest.cc index fc737c55..ca20d175 100644 --- a/ui/views/controls/button/label_button_unittest.cc +++ b/ui/views/controls/button/label_button_unittest.cc
@@ -142,9 +142,7 @@ }; TEST_F(LabelButtonTest, FocusBehavior) { - LabelButton button; - - EXPECT_EQ(View::FocusBehavior::ACCESSIBLE_ONLY, button.GetFocusBehavior()); + EXPECT_EQ(PlatformStyle::DefaultFocusBehavior(), button_->GetFocusBehavior()); } TEST_F(LabelButtonTest, Init) {
diff --git a/ui/views/controls/button/menu_button.cc b/ui/views/controls/button/menu_button.cc index cc43c5c58..097c311 100644 --- a/ui/views/controls/button/menu_button.cc +++ b/ui/views/controls/button/menu_button.cc
@@ -26,7 +26,6 @@ menu_button_controller_ = menu_button_controller.get(); SetButtonController(std::move(menu_button_controller)); - DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior()); SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); }
diff --git a/ui/views/controls/views_text_services_context_menu_mac.mm b/ui/views/controls/views_text_services_context_menu_mac.mm index 4f7510d..464133b4 100644 --- a/ui/views/controls/views_text_services_context_menu_mac.mm +++ b/ui/views/controls/views_text_services_context_menu_mac.mm
@@ -68,9 +68,10 @@ menu->InsertItemAt( 0, IDS_CONTENT_CONTEXT_LOOK_UP, l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_LOOK_UP, text)); + + text_services_menu_.AppendToContextMenu(menu); } - text_services_menu_.AppendToContextMenu(menu); text_services_menu_.AppendEditableItems(menu); }
diff --git a/ui/views/style/platform_style.cc b/ui/views/style/platform_style.cc index 09590e7..a431d54 100644 --- a/ui/views/style/platform_style.cc +++ b/ui/views/style/platform_style.cc
@@ -73,6 +73,11 @@ return gfx::Range(cursor_position, previous_grapheme_index); } +// static +View::FocusBehavior PlatformStyle::DefaultFocusBehavior() { + return View::FocusBehavior::ALWAYS; +} + #endif // OS_APPLE #if !BUILDFLAG(ENABLE_DESKTOP_AURA) || \
diff --git a/ui/views/style/platform_style.h b/ui/views/style/platform_style.h index e40325ee..fede7da4 100644 --- a/ui/views/style/platform_style.h +++ b/ui/views/style/platform_style.h
@@ -9,6 +9,7 @@ #include "base/macros.h" #include "ui/views/controls/button/button.h" +#include "ui/views/view.h" #include "ui/views/views_export.h" namespace gfx { @@ -99,6 +100,9 @@ static gfx::Range RangeToDeleteBackwards(const base::string16& text, size_t cursor_position); + // Returns the default focus behavior based on the platform. + static View::FocusBehavior DefaultFocusBehavior(); + private: DISALLOW_IMPLICIT_CONSTRUCTORS(PlatformStyle); };
diff --git a/ui/views/style/platform_style_mac.mm b/ui/views/style/platform_style_mac.mm index 739f8e6f..0d440395 100644 --- a/ui/views/style/platform_style_mac.mm +++ b/ui/views/style/platform_style_mac.mm
@@ -81,4 +81,10 @@ return gfx::Range(range_to_delete.location + range_to_delete.length, range_to_delete.location); } + +// static +View::FocusBehavior PlatformStyle::DefaultFocusBehavior() { + return View::FocusBehavior::ACCESSIBLE_ONLY; +} + } // namespace views
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc index 65e5254..8c066db 100644 --- a/ui/views/widget/widget.cc +++ b/ui/views/widget/widget.cc
@@ -292,11 +292,13 @@ void Widget::Init(InitParams params) { TRACE_EVENT0("views", "Widget::Init"); - // If an internal name was not provided the class name of the contents view - // is a reasonable default. - if (params.name.empty() && params.delegate && - params.delegate->GetContentsView()) - params.name = params.delegate->GetContentsView()->GetClassName(); + if (params.name.empty() && params.delegate) { + params.name = params.delegate->internal_name(); + // If an internal name was not provided the class name of the contents view + // is a reasonable default. + if (params.name.empty() && params.delegate->GetContentsView()) + params.name = params.delegate->GetContentsView()->GetClassName(); + } params.child |= (params.type == InitParams::TYPE_CONTROL); is_top_level_ = !params.child;
diff --git a/ui/views/widget/widget_delegate.h b/ui/views/widget/widget_delegate.h index c1fd0e25..f30479f 100644 --- a/ui/views/widget/widget_delegate.h +++ b/ui/views/widget/widget_delegate.h
@@ -68,6 +68,11 @@ // this WidgetDelegate is used to initialize a Widget. base::Optional<View*> initially_focused_view; + // The widget's internal name, used to identify it in window-state + // restoration (if this widget participates in that) and in debugging + // contexts. Never displayed to the user, and not translated. + std::string internal_name; + // The widget's modality type. Note that MODAL_TYPE_SYSTEM does not work at // all on Mac. ui::ModalType modal_type = ui::MODAL_TYPE_NONE; @@ -350,6 +355,9 @@ bool focus_traverses_out() const { return params_.focus_traverses_out; } bool owned_by_widget() const { return params_.owned_by_widget; } + void set_internal_name(std::string name) { params_.internal_name = name; } + std::string internal_name() const { return params_.internal_name; } + private: friend class Widget;
diff --git a/ui/views/widget/widget_unittest.cc b/ui/views/widget/widget_unittest.cc index 6ceae217..c25a5de6 100644 --- a/ui/views/widget/widget_unittest.cc +++ b/ui/views/widget/widget_unittest.cc
@@ -173,22 +173,62 @@ // Tests that the internal name is propagated through widget initialization to // the native widget and back. -class WidgetNameTest : public WidgetTest { +class WidgetWithCustomParamsTest : public WidgetTest { public: + using InitFunction = base::RepeatingCallback<void(Widget::InitParams*)>; + void SetInitFunction(const InitFunction& init) { init_ = std::move(init); } Widget::InitParams CreateParams(Widget::InitParams::Type type) override { Widget::InitParams params = WidgetTest::CreateParams(type); - params.name = "MyWidget"; + DCHECK(init_) << "If you don't need an init function, use WidgetTest"; + init_.Run(¶ms); return params; } + + private: + InitFunction init_; }; -TEST_F(WidgetNameTest, GetName) { +TEST_F(WidgetWithCustomParamsTest, NamePropagatedFromParams) { + SetInitFunction(base::BindLambdaForTesting( + [](Widget::InitParams* params) { params->name = "MyWidget"; })); std::unique_ptr<Widget> widget = CreateTestWidget(); EXPECT_EQ("MyWidget", widget->native_widget_private()->GetName()); EXPECT_EQ("MyWidget", widget->GetName()); } +TEST_F(WidgetWithCustomParamsTest, NamePropagatedFromDelegate) { + WidgetDelegate delegate; + delegate.set_internal_name("Foobar"); + SetInitFunction(base::BindLambdaForTesting( + [&](Widget::InitParams* params) { params->delegate = &delegate; })); + + std::unique_ptr<Widget> widget = CreateTestWidget(); + + EXPECT_EQ(delegate.internal_name(), + widget->native_widget_private()->GetName()); + EXPECT_EQ(delegate.internal_name(), widget->GetName()); +} + +TEST_F(WidgetWithCustomParamsTest, NamePropagatedFromContentsViewClassName) { + class ViewWithClassName : public View { + public: + const char* GetClassName() const override { return "ViewWithClassName"; } + }; + + WidgetDelegate delegate; + auto view = std::make_unique<ViewWithClassName>(); + auto* contents = delegate.SetContentsView(std::move(view)); + SetInitFunction(base::BindLambdaForTesting( + [&](Widget::InitParams* params) { params->delegate = &delegate; })); + + std::unique_ptr<Widget> widget = CreateTestWidget(); + + EXPECT_EQ(contents->GetClassName(), + widget->native_widget_private()->GetName()); + EXPECT_EQ(contents->GetClassName(), widget->GetName()); +} + TEST_F(WidgetTest, NativeWindowProperty) { const char* key = "foo"; int value = 3;
diff --git a/ui/views/window/custom_frame_view.cc b/ui/views/window/custom_frame_view.cc index 0132cbd..d72f31b 100644 --- a/ui/views/window/custom_frame_view.cc +++ b/ui/views/window/custom_frame_view.cc
@@ -87,6 +87,7 @@ if (frame_->widget_delegate()->ShouldShowWindowIcon()) { window_icon_ = AddChildView(std::make_unique<ImageButton>(Button::PressedCallback())); + window_icon_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); } } @@ -541,6 +542,7 @@ ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); ImageButton* button = AddChildView(std::make_unique<ImageButton>(std::move(callback))); + button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); button->SetAccessibleName(l10n_util::GetStringUTF16(accessibility_string_id)); button->SetImage(Button::STATE_NORMAL, rb.GetImageNamed(normal_image_id).ToImageSkia());
diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn index 6e1c863..2ef7281 100644 --- a/ui/webui/resources/BUILD.gn +++ b/ui/webui/resources/BUILD.gn
@@ -18,12 +18,14 @@ grd_prefix = "webui_generated" out_grd = "$target_gen_dir/${grd_prefix}_resources.grd" deps = [ + "cr_elements:build_grdp", "//third_party/polymer/v1_0:build_grdp", "//third_party/polymer/v3_0:build_grdp", ] grdp_files = [ "$root_gen_dir/third_party/polymer/v1_0/polymer_1_0_resources.grdp", "$root_gen_dir/third_party/polymer/v3_0/polymer_3_0_resources.grdp", + "$root_gen_dir/ui/webui/resources/cr_elements/cr_elements_resources.grdp", ] if (is_chromeos) { @@ -37,6 +39,7 @@ deps = [ ":preprocess_generated", ":preprocess_src", + "cr_elements:preprocess", ] } @@ -52,7 +55,6 @@ if (include_polymer) { in_files += [ - "cr_elements/cr_splitter/cr_splitter.js", "cr_components/certificate_manager/certificates_browser_proxy.js", "cr_components/certificate_manager/certificate_manager_types.js", "cr_components/certificate_manager/certificate_provisioning_browser_proxy.js", @@ -103,57 +105,6 @@ "cr_components/customize_themes/theme_icon.js", "cr_components/managed_footnote/managed_footnote.m.js", "cr_components/omnibox/cr_autocomplete_match_list.js", - "cr_elements/shared_vars_css.m.js", - "cr_elements/shared_style_css.m.js", - "cr_elements/search_highlight_style_css.m.js", - "cr_elements/md_select_css.m.js", - "cr_elements/icons.m.js", - "cr_elements/hidden_style_css.m.js", - "cr_elements/cr_scrollable_behavior.m.js", - "cr_elements/cr_page_host_style_css.m.js", - "cr_elements/cr_icons_css.m.js", - "cr_elements/cr_container_shadow_behavior.m.js", - "cr_elements/action_link_css.m.js", - "cr_elements/cr_grid/cr_grid.js", - "cr_elements/cr_menu_selector/cr_menu_selector.js", - "cr_elements/cr_view_manager/cr_view_manager.m.js", - "cr_elements/cr_toolbar/cr_toolbar_selection_overlay.m.js", - "cr_elements/cr_toolbar/cr_toolbar_search_field.m.js", - "cr_elements/cr_toolbar/cr_toolbar.m.js", - "cr_elements/cr_toggle/cr_toggle.m.js", - "cr_elements/cr_toast/cr_toast.m.js", - "cr_elements/cr_toast/cr_toast_manager.m.js", - "cr_elements/cr_tabs/cr_tabs.m.js", - "cr_elements/cr_slider/cr_slider.m.js", - "cr_elements/cr_search_field/cr_search_field.m.js", - "cr_elements/cr_search_field/cr_search_field_behavior.m.js", - "cr_elements/cr_radio_group/cr_radio_group.m.js", - "cr_elements/cr_radio_button/cr_radio_button_style_css.m.js", - "cr_elements/cr_radio_button/cr_radio_button.m.js", - "cr_elements/cr_radio_button/cr_radio_button_behavior.m.js", - "cr_elements/cr_radio_button/cr_card_radio_button.m.js", - "cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.m.js", - "cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector_grid.m.js", - "cr_elements/cr_lottie/cr_lottie.m.js", - "cr_elements/cr_link_row/cr_link_row.m.js", - "cr_elements/cr_lazy_render/cr_lazy_render.m.js", - "cr_elements/cr_input/cr_input_style_css.m.js", - "cr_elements/cr_input/cr_input.m.js", - "cr_elements/cr_icon_button/cr_icon_button.m.js", - "cr_elements/cr_fingerprint/cr_fingerprint_progress_arc.m.js", - "cr_elements/cr_fingerprint/cr_fingerprint_icon.m.js", - "cr_elements/cr_expand_button/cr_expand_button.m.js", - "cr_elements/cr_drawer/cr_drawer.m.js", - "cr_elements/cr_dialog/cr_dialog.m.js", - "cr_elements/cr_checkbox/cr_checkbox.m.js", - "cr_elements/cr_button/cr_button.m.js", - "cr_elements/cr_action_menu/cr_action_menu.m.js", - "cr_elements/find_shortcut_behavior.m.js", - "cr_elements/policy/cr_policy_indicator_behavior.m.js", - "cr_elements/policy/cr_policy_indicator.m.js", - "cr_elements/policy/cr_policy_pref_behavior.m.js", - "cr_elements/policy/cr_policy_pref_indicator.m.js", - "cr_elements/policy/cr_tooltip_icon.m.js", "js/i18n_behavior.m.js", "js/list_property_update_behavior.m.js", "js/search_highlight_utils.m.js", @@ -215,14 +166,6 @@ "cr_components/chromeos/quick_unlock/setup_pin_keyboard.m.js", "cr_components/chromeos/smb_shares/add_smb_share_dialog.m.js", "cr_components/chromeos/smb_shares/smb_browser_proxy.m.js", - "cr_elements/chromeos/cros_color_overrides.m.js", - "cr_elements/chromeos/cr_picture/cr_camera.m.js", - "cr_elements/chromeos/cr_picture/cr_picture_list.m.js", - "cr_elements/chromeos/cr_picture/cr_picture_pane.m.js", - "cr_elements/chromeos/cr_picture/cr_picture_types.m.js", - "cr_elements/chromeos/cr_picture/icons.m.js", - "cr_elements/chromeos/cr_picture/png.m.js", - "cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.m.js", ] } }
diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn index 78d1b470..e3328d1 100644 --- a/ui/webui/resources/cr_elements/BUILD.gn +++ b/ui/webui/resources/cr_elements/BUILD.gn
@@ -3,10 +3,233 @@ # found in the LICENSE file. import("//third_party/closure_compiler/compile_js.gni") +import("//tools/grit/preprocess_grit.gni") import("//tools/polymer/html_to_js.gni") import("//tools/polymer/polymer.gni") +import("//ui/webui/resources/tools/generate_grd.gni") import("//ui/webui/resources/tools/js_modulizer.gni") +preprocess_folder = "$target_gen_dir/../preprocessed/cr_elements" +preprocess_gen_manifest = "preprocessed_gen_manifest.json" +preprocess_polymer2_manifest = "preprocessed_polymer2_manifest.json" +preprocess_src_manifest = "preprocessed_src_manifest.json" + +generate_grd("build_grdp") { + grd_prefix = "cr_elements" + out_grd = "$target_gen_dir/${grd_prefix}_resources.grdp" + deps = [ ":preprocess" ] + manifest_files = [ + "$target_gen_dir/$preprocess_gen_manifest", + "$target_gen_dir/$preprocess_src_manifest", + "$target_gen_dir/$preprocess_polymer2_manifest", + ] + resource_path_prefix = "cr_elements" +} + +group("preprocess") { + public_deps = [ + ":preprocess_generated", + ":preprocess_polymer2", + ":preprocess_src", + ] +} + +preprocess_grit("preprocess_src") { + in_folder = "./" + out_folder = "$preprocess_folder" + out_manifest = "$target_gen_dir/$preprocess_src_manifest" + in_files = [ "cr_splitter/cr_splitter.js" ] +} + +preprocess_grit("preprocess_polymer2") { + in_folder = "./" + out_folder = "$preprocess_folder" + out_manifest = "$target_gen_dir/$preprocess_polymer2_manifest" + in_files = [ + "action_link_css.html", + "cr_action_menu/cr_action_menu.html", + "cr_action_menu/cr_action_menu.js", + "cr_button/cr_button.html", + "cr_button/cr_button.js", + "cr_checkbox/cr_checkbox.html", + "cr_checkbox/cr_checkbox.js", + "cr_container_shadow_behavior.html", + "cr_container_shadow_behavior.js", + "cr_dialog/cr_dialog.html", + "cr_dialog/cr_dialog.js", + "cr_drawer/cr_drawer.html", + "cr_drawer/cr_drawer.js", + "cr_expand_button/cr_expand_button.html", + "cr_expand_button/cr_expand_button.js", + "cr_fingerprint/cr_fingerprint_icon.html", + "cr_fingerprint/cr_fingerprint_progress_arc.html", + "cr_fingerprint/cr_fingerprint_progress_arc.js", + "cr_icon_button/cr_icon_button.html", + "cr_icon_button/cr_icon_button.js", + "cr_icons_css.html", + "cr_input/cr_input.html", + "cr_input/cr_input.js", + "cr_input/cr_input_style_css.html", + "cr_lazy_render/cr_lazy_render.html", + "cr_lazy_render/cr_lazy_render.js", + "cr_link_row/cr_link_row.html", + "cr_link_row/cr_link_row.js", + "cr_lottie/cr_lottie.html", + "cr_lottie/cr_lottie.js", + "cr_page_host_style_css.html", + "cr_profile_avatar_selector/cr_profile_avatar_selector_grid.html", + "cr_profile_avatar_selector/cr_profile_avatar_selector_grid.js", + "cr_profile_avatar_selector/cr_profile_avatar_selector.html", + "cr_profile_avatar_selector/cr_profile_avatar_selector.js", + "cr_radio_button/cr_card_radio_button.html", + "cr_radio_button/cr_card_radio_button.js", + "cr_radio_button/cr_radio_button_behavior.html", + "cr_radio_button/cr_radio_button_behavior.js", + "cr_radio_button/cr_radio_button.html", + "cr_radio_button/cr_radio_button.js", + "cr_radio_button/cr_radio_button_style_css.html", + "cr_radio_group/cr_radio_group.html", + "cr_radio_group/cr_radio_group.js", + "cr_scrollable_behavior.html", + "cr_scrollable_behavior.js", + "cr_search_field/cr_search_field_behavior.html", + "cr_search_field/cr_search_field_behavior.js", + "cr_search_field/cr_search_field.html", + "cr_search_field/cr_search_field.js", + "cr_slider/cr_slider.html", + "cr_slider/cr_slider.js", + "cr_tabs/cr_tabs.html", + "cr_tabs/cr_tabs.js", + "cr_toast/cr_toast.html", + "cr_toast/cr_toast.js", + "cr_toast/cr_toast_manager.html", + "cr_toast/cr_toast_manager.js", + "cr_toggle/cr_toggle.html", + "cr_toggle/cr_toggle.js", + "cr_toolbar/cr_toolbar.html", + "cr_toolbar/cr_toolbar.js", + "cr_toolbar/cr_toolbar_search_field.html", + "cr_toolbar/cr_toolbar_search_field.js", + "cr_toolbar/cr_toolbar_selection_overlay.html", + "cr_toolbar/cr_toolbar_selection_overlay.js", + "cr_view_manager/cr_view_manager.html", + "cr_view_manager/cr_view_manager.js", + "find_shortcut_behavior.html", + "find_shortcut_behavior.js", + "hidden_style_css.html", + "icons.html", + "md_select_css.html", + "policy/cr_policy_indicator_behavior.html", + "policy/cr_policy_indicator_behavior.js", + "policy/cr_policy_indicator.html", + "policy/cr_policy_indicator.js", + "policy/cr_policy_pref_behavior.html", + "policy/cr_policy_pref_behavior.js", + "policy/cr_policy_pref_indicator.html", + "policy/cr_policy_pref_indicator.js", + "policy/cr_tooltip_icon.html", + "policy/cr_tooltip_icon.js", + "search_highlight_style_css.html", + "shared_style_css.html", + "shared_vars_css.html", + ] + + if (is_chromeos) { + in_files += [ + "chromeos/cros_color_overrides.html", + "chromeos/cr_picture/cr_camera.html", + "chromeos/cr_picture/cr_camera.js", + "chromeos/cr_picture/cr_picture_list.html", + "chromeos/cr_picture/cr_picture_list.js", + "chromeos/cr_picture/cr_picture_pane.html", + "chromeos/cr_picture/cr_picture_pane.js", + "chromeos/cr_picture/cr_picture_types.html", + "chromeos/cr_picture/cr_picture_types.js", + "chromeos/cr_picture/icons.html", + "chromeos/cr_picture/png.html", + "chromeos/cr_picture/png.js", + "cr_searchable_drop_down/cr_searchable_drop_down.html", + "cr_searchable_drop_down/cr_searchable_drop_down.js", + ] + } +} + +preprocess_grit("preprocess_generated") { + deps = [ ":polymer3_elements" ] + in_folder = target_gen_dir + out_folder = "$preprocess_folder" + out_manifest = "$target_gen_dir/$preprocess_gen_manifest" + in_files = [ + "action_link_css.m.js", + "cr_action_menu/cr_action_menu.m.js", + "cr_button/cr_button.m.js", + "cr_checkbox/cr_checkbox.m.js", + "cr_container_shadow_behavior.m.js", + "cr_dialog/cr_dialog.m.js", + "cr_drawer/cr_drawer.m.js", + "cr_expand_button/cr_expand_button.m.js", + "cr_fingerprint/cr_fingerprint_icon.m.js", + "cr_fingerprint/cr_fingerprint_progress_arc.m.js", + "cr_grid/cr_grid.js", + "cr_icon_button/cr_icon_button.m.js", + "cr_icons_css.m.js", + "cr_input/cr_input.m.js", + "cr_input/cr_input_style_css.m.js", + "cr_lazy_render/cr_lazy_render.m.js", + "cr_link_row/cr_link_row.m.js", + "cr_lottie/cr_lottie.m.js", + "cr_menu_selector/cr_menu_selector.js", + "cr_page_host_style_css.m.js", + "cr_profile_avatar_selector/cr_profile_avatar_selector_grid.m.js", + "cr_profile_avatar_selector/cr_profile_avatar_selector.m.js", + "cr_radio_button/cr_card_radio_button.m.js", + "cr_radio_button/cr_radio_button_behavior.m.js", + "cr_radio_button/cr_radio_button.m.js", + "cr_radio_button/cr_radio_button_style_css.m.js", + "cr_radio_group/cr_radio_group.m.js", + "cr_scrollable_behavior.m.js", + "cr_search_field/cr_search_field_behavior.m.js", + "cr_search_field/cr_search_field.m.js", + "cr_slider/cr_slider.m.js", + "cr_tabs/cr_tabs.m.js", + "cr_toast/cr_toast_manager.m.js", + "cr_toast/cr_toast.m.js", + "cr_toggle/cr_toggle.m.js", + "cr_toolbar/cr_toolbar.m.js", + "cr_toolbar/cr_toolbar_search_field.m.js", + "cr_toolbar/cr_toolbar_selection_overlay.m.js", + "cr_view_manager/cr_view_manager.m.js", + "find_shortcut_behavior.m.js", + "hidden_style_css.m.js", + "icons.m.js", + "md_select_css.m.js", + "mwb_shared_icons.js", + "mwb_shared_style.js", + "mwb_shared_vars.js", + "policy/cr_policy_indicator_behavior.m.js", + "policy/cr_policy_indicator.m.js", + "policy/cr_policy_pref_behavior.m.js", + "policy/cr_policy_pref_indicator.m.js", + "policy/cr_tooltip_icon.m.js", + "search_highlight_style_css.m.js", + "shared_style_css.m.js", + "shared_vars_css.m.js", + ] + + if (is_chromeos) { + in_files += [ + "chromeos/cros_color_overrides.m.js", + "chromeos/cr_picture/cr_camera.m.js", + "chromeos/cr_picture/cr_picture_list.m.js", + "chromeos/cr_picture/cr_picture_pane.m.js", + "chromeos/cr_picture/cr_picture_types.m.js", + "chromeos/cr_picture/icons.m.js", + "chromeos/cr_picture/png.m.js", + "cr_searchable_drop_down/cr_searchable_drop_down.m.js", + ] + } +} + group("closure_compile") { deps = [ ":cr_elements_resources",
diff --git a/ui/webui/resources/cr_elements_resources.grdp b/ui/webui/resources/cr_elements_resources.grdp deleted file mode 100644 index 5577f2e74c..0000000 --- a/ui/webui/resources/cr_elements_resources.grdp +++ /dev/null
@@ -1,309 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<grit-part> - <!-- Polymer 1.0 Elements --> - <structure name="IDR_CR_ELEMENTS_ACTION_LINK_CSS_HTML" - file="cr_elements/action_link_css.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_ACTION_MENU_HTML" - file="cr_elements/cr_action_menu/cr_action_menu.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_ACTION_MENU_JS" - file="cr_elements/cr_action_menu/cr_action_menu.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_BUTTON_HTML" - file="cr_elements/cr_button/cr_button.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_BUTTON_JS" - file="cr_elements/cr_button/cr_button.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_CHECKBOX_HTML" - file="cr_elements/cr_checkbox/cr_checkbox.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_CHECKBOX_JS" - file="cr_elements/cr_checkbox/cr_checkbox.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_CONTAINER_SHADOW_BEHAVIOR_HTML" - file="cr_elements/cr_container_shadow_behavior.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_CONTAINER_SHADOW_BEHAVIOR_JS" - file="cr_elements/cr_container_shadow_behavior.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_FINGERPRINT_ICON_HTML" - file="cr_elements/cr_fingerprint/cr_fingerprint_icon.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_FINGERPRINT_PROGRESS_ARC_HTML" - file="cr_elements/cr_fingerprint/cr_fingerprint_progress_arc.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_FINGERPRINT_PROGRESS_ARC_JS" - file="cr_elements/cr_fingerprint/cr_fingerprint_progress_arc.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_INPUT_HTML" - file="cr_elements/cr_input/cr_input.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_INPUT_JS" - file="cr_elements/cr_input/cr_input.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_INPUT_STYLE_CSS_HTML" - file="cr_elements/cr_input/cr_input_style_css.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SCROLLABLE_BEHAVIOR_HTML" - file="cr_elements/cr_scrollable_behavior.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SCROLLABLE_BEHAVIOR_JS" - file="cr_elements/cr_scrollable_behavior.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_DIALOG_HTML" - file="cr_elements/cr_dialog/cr_dialog.html" - preprocess="true" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_DIALOG_JS" - file="cr_elements/cr_dialog/cr_dialog.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_DRAWER_HTML" - file="cr_elements/cr_drawer/cr_drawer.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_DRAWER_JS" - file="cr_elements/cr_drawer/cr_drawer.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_EXPAND_BUTTON_HTML" - file="cr_elements/cr_expand_button/cr_expand_button.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_EXPAND_BUTTON_JS" - file="cr_elements/cr_expand_button/cr_expand_button.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_ICON_BUTTON_HTML" - file="cr_elements/cr_icon_button/cr_icon_button.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_ICON_BUTTON_JS" - file="cr_elements/cr_icon_button/cr_icon_button.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_ICONS_HTML" - file="cr_elements/icons.html" - type="chrome_html" - preprocess="true" /> - <structure name="IDR_CR_ELEMENTS_CR_LAZY_RENDER_HTML" - file="cr_elements/cr_lazy_render/cr_lazy_render.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_LAZY_RENDER_JS" - file="cr_elements/cr_lazy_render/cr_lazy_render.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_LINK_ROW_HTML" - file="cr_elements/cr_link_row/cr_link_row.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_LINK_ROW_JS" - file="cr_elements/cr_link_row/cr_link_row.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_RADIO_BUTTON_HTML" - file="cr_elements/cr_radio_button/cr_radio_button.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_RADIO_BUTTON_JS" - file="cr_elements/cr_radio_button/cr_radio_button.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_CARD_RADIO_BUTTON_HTML" - file="cr_elements/cr_radio_button/cr_card_radio_button.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_CARD_RADIO_BUTTON_JS" - file="cr_elements/cr_radio_button/cr_card_radio_button.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_RADIO_BUTTON_BEHAVIOR_HTML" - file="cr_elements/cr_radio_button/cr_radio_button_behavior.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_RADIO_BUTTON_BEHAVIOR_JS" - file="cr_elements/cr_radio_button/cr_radio_button_behavior.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_RADIO_BUTTON_STYLE_CSS_HTML" - file="cr_elements/cr_radio_button/cr_radio_button_style_css.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_RADIO_GROUP_HTML" - file="cr_elements/cr_radio_group/cr_radio_group.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_RADIO_GROUP_JS" - file="cr_elements/cr_radio_group/cr_radio_group.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SLIDER_HTML" - file="cr_elements/cr_slider/cr_slider.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SLIDER_JS" - file="cr_elements/cr_slider/cr_slider.js" - type="chrome_html" /> - <if expr="chromeos"> - <structure name="IDR_CR_ELEMENTS_CR_SEARCHABLE_DROP_DOWN_HTML" - file="cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SEARCHABLE_DROP_DOWN_JS" - file="cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.js" - type="chrome_html" /> - </if> - <structure name="IDR_CR_ELEMENTS_CR_VIEW_MANAGER_HTML" - file="cr_elements/cr_view_manager/cr_view_manager.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_VIEW_MANAGER_JS" - file="cr_elements/cr_view_manager/cr_view_manager.js" - type="chrome_html" /> - <if expr="chromeos"> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CROS_COLOR_OVERRIDES_HTML" - file="cr_elements/chromeos/cros_color_overrides.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_CR_CAMERA_HTML" - file="cr_elements/chromeos/cr_picture/cr_camera.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_CR__CAMERA_JS" - file="cr_elements/chromeos/cr_picture/cr_camera.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_CR_PICTURE_LIST_HTML" - file="cr_elements/chromeos/cr_picture/cr_picture_list.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_CR__PICTURE_LIST_JS" - file="cr_elements/chromeos/cr_picture/cr_picture_list.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_CR_PICTURE_PANE_HTML" - file="cr_elements/chromeos/cr_picture/cr_picture_pane.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_CR_PICTURE_PANE_JS" - file="cr_elements/chromeos/cr_picture/cr_picture_pane.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_CR_PICTURE_TYPES_HTML" - file="cr_elements/chromeos/cr_picture/cr_picture_types.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_CR_PICTURE_TYPES_JS" - file="cr_elements/chromeos/cr_picture/cr_picture_types.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_PNG_HTML" - file="cr_elements/chromeos/cr_picture/png.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_PNG_JS" - file="cr_elements/chromeos/cr_picture/png.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_ICONS_HTML" - file="cr_elements/chromeos/cr_picture/icons.html" - type="chrome_html" /> - </if> - <structure name="IDR_CR_ELEMENTS_CR_LOTTIE_HTML" - file="cr_elements/cr_lottie/cr_lottie.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_LOTTIE_JS" - file="cr_elements/cr_lottie/cr_lottie.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_POLICY_INDICATOR_HTML" - file="cr_elements/policy/cr_policy_indicator.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_POLICY_INDICATOR_JS" - file="cr_elements/policy/cr_policy_indicator.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_POLICY_INDICATOR_BEHAVIOR_HTML" - file="cr_elements/policy/cr_policy_indicator_behavior.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_POLICY_INDICATOR_BEHAVIOR_JS" - file="cr_elements/policy/cr_policy_indicator_behavior.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_POLICY_PREF_BEHAVIOR_HTML" - file="cr_elements/policy/cr_policy_pref_behavior.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_POLICY_PREF_BEHAVIOR_JS" - file="cr_elements/policy/cr_policy_pref_behavior.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_POLICY_PREF_INDICATOR_JS" - file="cr_elements/policy/cr_policy_pref_indicator.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_POLICY_PREF_INDICATOR_HTML" - file="cr_elements/policy/cr_policy_pref_indicator.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOGGLE_HTML" - file="cr_elements/cr_toggle/cr_toggle.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOGGLE_JS" - file="cr_elements/cr_toggle/cr_toggle.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOOLTIP_ICON_HTML" - file="cr_elements/policy/cr_tooltip_icon.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOOLTIP_ICON_JS" - file="cr_elements/policy/cr_tooltip_icon.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_PROFILE_AVATAR_SELECTOR_HTML" - file="cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_PROFILE_AVATAR_SELECTOR_JS" - file="cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_PROFILE_AVATAR_ICON_SELECTOR_GRID_HTML" - file="cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector_grid.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_PROFILE_AVATAR_SELECTOR_GRID_JS" - file="cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector_grid.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SEARCH_FIELD_HTML" - file="cr_elements/cr_search_field/cr_search_field.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SEARCH_FIELD_JS" - file="cr_elements/cr_search_field/cr_search_field.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SEARCH_FIELD_BEHAVIOR_HTML" - file="cr_elements/cr_search_field/cr_search_field_behavior.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SEARCH_FIELD_BEHAVIOR_JS" - file="cr_elements/cr_search_field/cr_search_field_behavior.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SHARED_STYLE_CSS_HTML" - file="cr_elements/shared_style_css.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_HIDDEN_STYLE_CSS_HTML" - file="cr_elements/hidden_style_css.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_ICONS_CSS_HTML" - file="cr_elements/cr_icons_css.html" - flattenhtml="true" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_PAGE_HOST_STYLE_CSS_HTML" - file="cr_elements/cr_page_host_style_css.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_MD_SELECT_CSS_HTML" - file="cr_elements/md_select_css.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_SEARCH_HIGHLIGHT_STYLE_CSS_HTML" - file="cr_elements/search_highlight_style_css.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_SHARED_VARS_CSS_HTML" - file="cr_elements/shared_vars_css.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TABS_HTML" - file="cr_elements/cr_tabs/cr_tabs.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TABS_JS" - file="cr_elements/cr_tabs/cr_tabs.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOOLBAR_HTML" - file="cr_elements/cr_toolbar/cr_toolbar.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOOLBAR_JS" - file="cr_elements/cr_toolbar/cr_toolbar.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOOLBAR_SEARCH_FIELD_HTML" - file="cr_elements/cr_toolbar/cr_toolbar_search_field.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOOLBAR_SEARCH_FIELD_JS" - file="cr_elements/cr_toolbar/cr_toolbar_search_field.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOOLBAR_SELECTION_OVERLAY_HTML" - file="cr_elements/cr_toolbar/cr_toolbar_selection_overlay.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOOLBAR_SELECTION_OVERLAY_JS" - file="cr_elements/cr_toolbar/cr_toolbar_selection_overlay.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOAST_HTML" - file="cr_elements/cr_toast/cr_toast.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOAST_JS" - file="cr_elements/cr_toast/cr_toast.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOAST_MANAGER_HTML" - file="cr_elements/cr_toast/cr_toast_manager.html" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_CR_TOAST_MANAGER_JS" - file="cr_elements/cr_toast/cr_toast_manager.js" - type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_FIND_SHORTCUT_BEHAVIOR_HTML" - file="cr_elements/find_shortcut_behavior.html" type="chrome_html" /> - <structure name="IDR_CR_ELEMENTS_FIND_SHORTCUT_BEHAVIOR_JS" - file="cr_elements/find_shortcut_behavior.js" type="chrome_html" /> -</grit-part>
diff --git a/ui/webui/resources/cr_elements_resources_v3.grdp b/ui/webui/resources/cr_elements_resources_v3.grdp deleted file mode 100644 index eac31b30..0000000 --- a/ui/webui/resources/cr_elements_resources_v3.grdp +++ /dev/null
@@ -1,259 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<grit-part> - <!-- Polymer 3.0 Elements --> - <include name="IDR_CR_ELEMENTS_ACTION_LINK_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/action_link_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_ACTION_MENU_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_action_menu/cr_action_menu.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_BUTTON_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_button/cr_button.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_CHECKBOX_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_checkbox/cr_checkbox.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_CONTAINER_SHADOW_BEHAVIOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_container_shadow_behavior.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_DIALOG_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.m.js" - use_base_dir="false" - preprocess="true" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_DRAWER_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_drawer/cr_drawer.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_EXPAND_BUTTON_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_expand_button/cr_expand_button.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_FINGERPRINT_ICON_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_fingerprint/cr_fingerprint_icon.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_FINGERPRINT_PROGRESS_ARC_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_fingerprint/cr_fingerprint_progress_arc.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_GRID_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_grid/cr_grid.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_ICON_BUTTON_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_icon_button/cr_icon_button.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_ICONS_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_icons_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_INPUT_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_input/cr_input.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_INPUT_STYLE_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_input/cr_input_style_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_MENU_SELECTOR_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_menu_selector/cr_menu_selector.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_PAGE_HOST_STYLE_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_page_host_style_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_LAZY_RENDER_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_lazy_render/cr_lazy_render.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_LINK_ROW_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_link_row/cr_link_row.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_PROFILE_AVATAR_SELECTOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_PROFILE_AVATAR_SELECTOR_GRID_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector_grid.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_CARD_RADIO_BUTTON_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_radio_button/cr_card_radio_button.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_RADIO_BUTTON_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_radio_button/cr_radio_button.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_RADIO_BUTTON_BEHAVIOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_radio_button/cr_radio_button_behavior.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_RADIO_BUTTON_STYLE_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_radio_button/cr_radio_button_style_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_RADIO_GROUP_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_SCROLLABLE_BEHAVIOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_scrollable_behavior.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_SEARCH_FIELD_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_search_field/cr_search_field.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_SEARCH_FIELD_BEHAVIOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_search_field/cr_search_field_behavior.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_SHARED_STYLE_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/shared_style_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_SHARED_VARS_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/shared_vars_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_SLIDER_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_slider/cr_slider.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_SPLITTER_JS" - file="cr_elements/cr_splitter/cr_splitter.js" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_TABS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_tabs/cr_tabs.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_TOAST_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_toast/cr_toast.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_TOAST_MANAGER_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_toast/cr_toast_manager.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_TOGGLE_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_toggle/cr_toggle.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_TOOLBAR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_TOOLBAR_SEARCH_FIELD_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar_search_field.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_TOOLBAR_SELECTION_OVERLAY_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar_selection_overlay.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_FIND_SHORTCUT_BEHAVIOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/find_shortcut_behavior.m.js" - use_base_dir="false" type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_POLICY_CR_TOOLTIP_ICON_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/policy/cr_tooltip_icon.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_POLICY_CR_POLICY_INDICATOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/policy/cr_policy_indicator.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_POLICY_CR_POLICY_INDICATOR_BEHAVIOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/policy/cr_policy_indicator_behavior.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_POLICY_CR_POLICY_PREF_INDICATOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/policy/cr_policy_pref_indicator.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_POLICY_CR_POLICY_PREF_BEHAVIOR_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/policy/cr_policy_pref_behavior.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CR_VIEW_MANAGER_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_view_manager/cr_view_manager.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_MD_SELECT_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/md_select_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_MWB_SHARED_ICONS_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/mwb_shared_icons.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_MWB_SHARED_STYLE_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/mwb_shared_style.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_MWB_SHARED_VARS_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/mwb_shared_vars.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_HIDDEN_STYLE_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/hidden_style_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_ICONS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/icons.m.js" - use_base_dir="false" - preprocess="true" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_SEARCH_HIGHLIGHT_STYLE_CSS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/search_highlight_style_css.m.js" - use_base_dir="false" - type="BINDATA" /> - <if expr="chromeos"> - <include name="IDR_CR_ELEMENTS_CR_SEARCHABLE_DROP_DOWN_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CHROMEOS_CROS_COLOR_OVERRIDES_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/chromeos/cros_color_overrides.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_PNG_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/chromeos/cr_picture/png.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_CAMERA_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_PICTURE_LIST_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_list.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_PICTURE_PANE_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_pane.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_PICTURE_TYPES_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_types.m.js" - use_base_dir="false" - type="BINDATA" /> - <include name="IDR_CR_ELEMENTS_CHROMEOS_CR_PICTURE_ICONS_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/chromeos/cr_picture/icons.m.js" - use_base_dir="false" - preprocess="true" - type="BINDATA" /> - </if> - <include name="IDR_CR_ELEMENTS_LOTTIE_M_JS" - file="${root_gen_dir}/ui/webui/resources/cr_elements/cr_lottie/cr_lottie.m.js" - use_base_dir="false" - type="BINDATA" /> -</grit-part>
diff --git a/ui/webui/resources/tools/generate_grd.gni b/ui/webui/resources/tools/generate_grd.gni index dd10b75..ba86c70 100644 --- a/ui/webui/resources/tools/generate_grd.gni +++ b/ui/webui/resources/tools/generate_grd.gni
@@ -45,5 +45,11 @@ if (defined(invoker.resource_path_rewrites)) { args += [ "--resource-path-rewrites" ] + invoker.resource_path_rewrites } + if (defined(invoker.resource_path_prefix)) { + args += [ + "--resource-path-prefix", + invoker.resource_path_prefix, + ] + } } }
diff --git a/ui/webui/resources/tools/generate_grd.py b/ui/webui/resources/tools/generate_grd.py index f02db73..44d5de9b 100644 --- a/ui/webui/resources/tools/generate_grd.py +++ b/ui/webui/resources/tools/generate_grd.py
@@ -77,7 +77,7 @@ # Generates an <include .... /> row for the given file. def _generate_include_row(grd_prefix, filename, pathname, \ - resource_path_rewrites): + resource_path_rewrites, resource_path_prefix): name_suffix = filename.upper().replace('/', '_').replace('.', '_'). \ replace('-', '_') name = 'IDR_%s_%s' % (grd_prefix.upper(), name_suffix) @@ -88,11 +88,8 @@ resource_path = resource_path_rewrites[filename] \ if filename in resource_path_rewrites else filename - # Rewrite resource_path for third_party/polymer/. - if 'third_party/polymer/v1_0/components-chromium/' in pathname: - resource_path = 'polymer/v1_0/' + resource_path - if 'third_party/polymer/v3_0/components-chromium/' in pathname: - resource_path = 'polymer/v3_0/' + resource_path + if resource_path_prefix != None: + resource_path = resource_path_prefix + '/' + resource_path return GRD_INCLUDE_TEMPLATE.format( file=pathname, @@ -115,6 +112,7 @@ parser.add_argument('--input-files-base-dir') parser.add_argument('--grdp-files', nargs="*") parser.add_argument('--resource-path-rewrites', nargs="*") + parser.add_argument('--resource-path-prefix') args = parser.parse_args(argv) grd_file = open(os.path.normpath(os.path.join(_CWD, args.out_grd)), 'w') @@ -140,7 +138,7 @@ args.input_files_base_dir, filename).replace('\\', '/') grd_file.write(_generate_include_row( args.grd_prefix, filename, '${root_src_dir}/' + filepath, - resource_path_rewrites)) + resource_path_rewrites, args.resource_path_prefix)) if args.manifest_files != None: for manifest_file in args.manifest_files: @@ -153,7 +151,7 @@ rebased_path = os.path.relpath(filepath, args.root_gen_dir) grd_file.write(_generate_include_row( args.grd_prefix, filename, '${root_gen_dir}/' + rebased_path, - resource_path_rewrites)) + resource_path_rewrites, args.resource_path_prefix)) end_template = GRDP_END_TEMPLATE if args.out_grd.endswith('.grdp') else \ GRD_END_TEMPLATE
diff --git a/ui/webui/resources/tools/generate_grd_test.py b/ui/webui/resources/tools/generate_grd_test.py index de1dca9..c42d4f7 100755 --- a/ui/webui/resources/tools/generate_grd_test.py +++ b/ui/webui/resources/tools/generate_grd_test.py
@@ -53,7 +53,7 @@ out_grd='test_resources.grd', manifest_files=None, input_files=None, input_files_base_dir=None, grdp_files=None, - resource_path_rewrites=None): + resource_path_rewrites=None, resource_path_prefix=None): args = [ '--out-grd', os.path.join(self._out_folder, out_grd), '--grd-prefix', 'test', @@ -80,6 +80,9 @@ if (resource_path_rewrites): args += [ '--resource-path-rewrites' ] + resource_path_rewrites + if (resource_path_prefix): + args += [ '--resource-path-prefix', resource_path_prefix ] + generate_grd.main(args) actual_grd = self._read_out_file(out_grd) @@ -123,6 +126,14 @@ input_files = [ 'images/test_svg.svg', 'test_html_in_src.html' ], input_files_base_dir = 'test_src_dir') + def testSuccessGrdpWithResourcePathPrefix(self): + self._run_test_( + 'expected_grdp_with_resource_path_prefix.grdp', + out_grd = 'test_resources.grdp', + input_files = [ 'foo.js', 'bar.svg' ], + input_files_base_dir = 'test_src_dir', + resource_path_prefix = 'baz') + def testSuccessWithRewrites(self): self._run_test_( 'expected_grd_with_rewrites.grd',
diff --git a/ui/webui/resources/tools/tests/expected_grdp_with_resource_path_prefix.grdp b/ui/webui/resources/tools/tests/expected_grdp_with_resource_path_prefix.grdp new file mode 100644 index 0000000..9526755e --- /dev/null +++ b/ui/webui/resources/tools/tests/expected_grdp_with_resource_path_prefix.grdp
@@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<grit-part> + <include name="IDR_TEST_FOO_JS" file="${root_src_dir}/test_src_dir/foo.js" resource_path="baz/foo.js" use_base_dir="false" type="chrome_html" /> + <include name="IDR_TEST_BAR_SVG" file="${root_src_dir}/test_src_dir/bar.svg" resource_path="baz/bar.svg" use_base_dir="false" type="BINDATA" /> +</grit-part>
diff --git a/ui/webui/resources/webui_resources.grd b/ui/webui/resources/webui_resources.grd index 2f46789f..245591b 100644 --- a/ui/webui/resources/webui_resources.grd +++ b/ui/webui/resources/webui_resources.grd
@@ -201,7 +201,6 @@ <if expr="not is_android and not is_ios"> <part file="cr_components/cr_components_resources_v3.grdp" /> - <part file="cr_elements_resources_v3.grdp" /> <part file="cr_polymer_resources_v3.grdp" /> </if> </includes> @@ -468,7 +467,6 @@ <if expr="not is_android and not is_ios"> <part file="cr_components/cr_components_resources.grdp" /> - <part file="cr_elements_resources.grdp" /> <part file="cr_polymer_resources.grdp" /> </if> </structures>