diff --git a/DEPS b/DEPS index 107d0fb..4d29fec 100644 --- a/DEPS +++ b/DEPS
@@ -221,7 +221,7 @@ # 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': '571acd1056b6754ee266ff6e44a6ec2359a7e3b6', + 'v8_revision': '8c956ecc96fd13e8f24017d41591d3f5c9a6db31', # 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. @@ -229,7 +229,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '64ca25f1f3ac60df186d36188a47c43fb2571f03', + 'angle_revision': 'a76f224f4a17b53c2bdd9629082bb2cfc8e1c0f5', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -268,7 +268,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling freetype # and whatever else without interference from each other. - 'freetype_revision': '8336d53cff9f78bb48f1ba4aa670c1d8d81d1808', + 'freetype_revision': 'c6fcd61228ea349e76aa4f09442c431308da3262', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling freetype # and whatever else without interference from each other. @@ -288,7 +288,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '64342293771b54709ee2d2d4d0c823e2d74a7c20', + 'catapult_revision': '70bf08ecdba10a3d8578c62a81044b3f70d6afe4', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -296,7 +296,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': 'cc9a02ed48dfcce4bf32c2a5f93d941a2e960881', + 'devtools_frontend_revision': '2c906fa4f47e62f4ca5d391b55d12b47be23ce6c', # 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. @@ -384,7 +384,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'libunwind_revision': '7e85c7a26be09db769732d59a829cc0d310e3ef6', + 'libunwind_revision': 'a38ef11ab68f975bb4fe5356aff5f0e3dabe9f23', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -969,7 +969,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'e319aba2ba1ce2aa82bb2508d2e85715d3bace53', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '592d5ec077c9cbd999bc80de08eaab67489064b0', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), @@ -1355,7 +1355,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '73cf27bf1244cc6d8605f4c4ba0840831908a6f5', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '8b07d9bbd00bbc938dc5e81bea6f4e99087b54fe', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1587,7 +1587,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'bcc93e24ad10013efd748151a959323b45cb9590', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'cd430c84d95e36b37ae00981e89324defd8bed0e', + Var('webrtc_git') + '/src.git' + '@' + 'bc03259de7e9916f7b6c3ae30aa0718ad564049d', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1648,7 +1648,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@1ca5e73d624c2e05c18870f6f6508e0c5ffcea14', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@5ea44b00385c5c242647299d55d7842c3ca1691c', 'condition': 'checkout_src_internal', },
diff --git a/android_webview/browser/renderer_host/aw_render_view_host_ext.cc b/android_webview/browser/renderer_host/aw_render_view_host_ext.cc index 3ade51cd..e34da10 100644 --- a/android_webview/browser/renderer_host/aw_render_view_host_ext.cc +++ b/android_webview/browser/renderer_host/aw_render_view_host_ext.cc
@@ -57,7 +57,9 @@ : content::WebContentsObserver(contents), client_(client), has_new_hit_test_data_(false), - frame_host_receivers_(contents, this) { + frame_host_receivers_(contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { DCHECK(client_); }
diff --git a/android_webview/java/src/org/chromium/android_webview/variations/VariationsSeedLoader.java b/android_webview/java/src/org/chromium/android_webview/variations/VariationsSeedLoader.java index 5eccafa..8882f15 100644 --- a/android_webview/java/src/org/chromium/android_webview/variations/VariationsSeedLoader.java +++ b/android_webview/java/src/org/chromium/android_webview/variations/VariationsSeedLoader.java
@@ -213,17 +213,13 @@ VariationsUtils.replaceOldWithNewSeed(); } - boolean connectedToVariationsService = false; if (mNeedNewSeed) { // The new seed will arrive asynchronously; the new seed file is written by the // service, and may complete after this app process has died. - connectedToVariationsService = requestSeedFromService(mCurrentSeedDate); + requestSeedFromService(mCurrentSeedDate); VariationsUtils.updateStampTime(); } - RecordHistogram.recordBooleanHistogram( - "Android.WebView.ConnectedToVariationService", connectedToVariationsService); - onBackgroundWorkFinished(); }
diff --git a/ash/accelerators/accelerator_controller_impl.cc b/ash/accelerators/accelerator_controller_impl.cc index 27e3e0d..0f03081c3 100644 --- a/ash/accelerators/accelerator_controller_impl.cc +++ b/ash/accelerators/accelerator_controller_impl.cc
@@ -38,7 +38,6 @@ #include "ash/media/media_controller_impl.h" #include "ash/metrics/user_metrics_recorder.h" #include "ash/multi_profile_uma.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/assistant/controller/assistant_ui_controller.h" #include "ash/public/cpp/new_window_delegate.h"
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc index eb3b5a0..2dcb4cf 100644 --- a/ash/accelerators/accelerator_controller_unittest.cc +++ b/ash/accelerators/accelerator_controller_unittest.cc
@@ -18,6 +18,7 @@ #include "ash/app_list/test/app_list_test_helper.h" #include "ash/capture_mode/capture_mode_controller.h" #include "ash/capture_mode/capture_mode_types.h" +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/display/screen_orientation_controller.h" #include "ash/display/screen_orientation_controller_test_api.h" @@ -25,7 +26,6 @@ #include "ash/ime/mode_indicator_observer.h" #include "ash/ime/test_ime_controller_client.h" #include "ash/media/media_controller_impl.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/capture_mode_test_api.h" #include "ash/public/cpp/ime_info.h"
diff --git a/ash/accelerators/accelerator_filter_unittest.cc b/ash/accelerators/accelerator_filter_unittest.cc index 2dfa874f..a66b593 100644 --- a/ash/accelerators/accelerator_filter_unittest.cc +++ b/ash/accelerators/accelerator_filter_unittest.cc
@@ -10,7 +10,7 @@ #include "ash/accelerators/pre_target_accelerator_handler.h" #include "ash/app_list/test/app_list_test_helper.h" #include "ash/capture_mode/capture_mode_controller.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/accelerators/accelerator_unittest.cc b/ash/accelerators/accelerator_unittest.cc index 8cff255..62e0119 100644 --- a/ash/accelerators/accelerator_unittest.cc +++ b/ash/accelerators/accelerator_unittest.cc
@@ -5,7 +5,7 @@ #include "ash/accelerators/accelerator_controller_impl.h" #include "ash/app_list/test/app_list_test_helper.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/shell.h" #include "ash/shell_observer.h" #include "ash/system/network/network_observer.h"
diff --git a/ash/app_list/app_list_color_provider_impl.cc b/ash/app_list/app_list_color_provider_impl.cc index 0721ae63..5d0f734 100644 --- a/ash/app_list/app_list_color_provider_impl.cc +++ b/ash/app_list/app_list_color_provider_impl.cc
@@ -4,7 +4,7 @@ #include "ash/app_list/app_list_color_provider_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/shell.h" #include "ash/style/ash_color_provider.h" #include "ash/style/default_colors.h"
diff --git a/ash/app_list/app_list_controller_impl.cc b/ash/app_list/app_list_controller_impl.cc index 1d62bbf..c05c3b2 100644 --- a/ash/app_list/app_list_controller_impl.cc +++ b/ash/app_list/app_list_controller_impl.cc
@@ -34,7 +34,6 @@ #include "ash/public/cpp/app_list/app_list_metrics.h" #include "ash/public/cpp/app_list/app_list_notifier.h" #include "ash/public/cpp/app_list/app_list_types.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/assistant/controller/assistant_controller.h" #include "ash/public/cpp/assistant/controller/assistant_ui_controller.h"
diff --git a/ash/app_list/app_list_controller_impl_unittest.cc b/ash/app_list/app_list_controller_impl_unittest.cc index 2ba1762..8467d2a 100644 --- a/ash/app_list/app_list_controller_impl_unittest.cc +++ b/ash/app_list/app_list_controller_impl_unittest.cc
@@ -28,7 +28,6 @@ #include "ash/keyboard/keyboard_controller_impl.h" #include "ash/keyboard/ui/test/keyboard_test_util.h" #include "ash/public/cpp/app_list/app_list_config.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/presentation_time_recorder.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/shelf_types.h"
diff --git a/ash/app_list/app_list_presenter_unittest.cc b/ash/app_list/app_list_presenter_unittest.cc index 8e3ef34..f0499620 100644 --- a/ash/app_list/app_list_presenter_unittest.cc +++ b/ash/app_list/app_list_presenter_unittest.cc
@@ -30,6 +30,7 @@ #include "ash/app_list/views/search_result_list_view.h" #include "ash/app_list/views/search_result_page_anchored_dialog.h" #include "ash/app_list/views/search_result_page_view.h" +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/keyboard/keyboard_controller_impl.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" @@ -39,7 +40,6 @@ #include "ash/public/cpp/app_list/app_list_features.h" #include "ash/public/cpp/app_list/app_list_switches.h" #include "ash/public/cpp/app_list/app_list_types.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/keyboard/keyboard_switches.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/shelf_item_delegate.h"
diff --git a/ash/app_list/views/app_list_main_view_unittest.cc b/ash/app_list/views/app_list_main_view_unittest.cc index 4a680f83..daa1bfa9 100644 --- a/ash/app_list/views/app_list_main_view_unittest.cc +++ b/ash/app_list/views/app_list_main_view_unittest.cc
@@ -19,7 +19,9 @@ #include "ash/app_list/views/page_switcher.h" #include "ash/app_list/views/paged_apps_grid_view.h" #include "ash/app_list/views/search_box_view.h" +#include "ash/public/cpp/app_list/app_list_features.h" #include "ash/public/cpp/test/test_app_list_color_provider.h" +#include "base/test/scoped_feature_list.h" #include "ui/compositor/layer.h" #include "ui/events/base_event_utils.h" #include "ui/views/controls/textfield/textfield.h" @@ -34,7 +36,8 @@ const int kInitialItems = 2; -class AppListMainViewTest : public views::ViewsTestBase { +class AppListMainViewTest : public views::ViewsTestBase, + public testing::WithParamInterface<bool> { public: AppListMainViewTest() = default; AppListMainViewTest(const AppListMainViewTest& other) = delete; @@ -45,6 +48,8 @@ void SetUp() override { AppListView::SetShortAnimationForTesting(true); views::ViewsTestBase::SetUp(); + feature_list.InitWithFeatureState(app_list_features::kNewDragSpecInLauncher, + GetParam()); // Create, and show the app list is fullscreen apps grid state. delegate_ = std::make_unique<AppListTestViewDelegate>(); @@ -213,16 +218,23 @@ return dragged; } + bool IsPaginationPreviewActive() { return GetParam(); } + protected: TestAppListColorProvider color_provider_; // Needed by AppListView. AppListView* app_list_view_ = nullptr; // Owned by native widget. std::unique_ptr<AppListTestViewDelegate> delegate_; + + private: + base::test::ScopedFeatureList feature_list; }; +INSTANTIATE_TEST_SUITE_P(All, AppListMainViewTest, testing::Bool()); + } // namespace // Tests changing the AppListModel when switching profiles. -TEST_F(AppListMainViewTest, ModelChanged) { +TEST_P(AppListMainViewTest, ModelChanged) { delegate_->GetTestModel()->PopulateApps(kInitialItems); EXPECT_EQ(kInitialItems, GetRootViewModel()->view_size()); @@ -240,7 +252,7 @@ // Tests dragging an item out of a single item folder and drop it at the last // slot. -TEST_F(AppListMainViewTest, DragLastItemFromFolderAndDropAtLastSlot) { +TEST_P(AppListMainViewTest, DragLastItemFromFolderAndDropAtLastSlot) { AppListItemView* folder_item_view = CreateAndOpenSingleItemFolder(); const gfx::Rect first_slot_tile = folder_item_view->bounds(); @@ -287,7 +299,10 @@ // Tests dragging an item out of a single item folder and dropping it onto the // page switcher. Regression test for http://crbug.com/415530/. -TEST_F(AppListMainViewTest, DragReparentItemOntoPageSwitcher) { +TEST_P(AppListMainViewTest, DragReparentItemOntoPageSwitcher) { + // TODO(anasalazar): Fix for cardified state + if (IsPaginationPreviewActive()) + return; AppListItemView* folder_item_view = CreateAndOpenSingleItemFolder(); ASSERT_TRUE(folder_item_view); @@ -319,7 +334,7 @@ // Test that an interrupted drag while reparenting an item from a folder, when // canceled via the root grid, correctly forwards the cancelation to the drag // ocurring from the folder. -TEST_F(AppListMainViewTest, MouseDragItemOutOfFolderWithCancel) { +TEST_P(AppListMainViewTest, MouseDragItemOutOfFolderWithCancel) { CreateAndOpenSingleItemFolder(); AppListItemView* dragged = StartDragForReparent(0); @@ -342,7 +357,10 @@ // Test that dragging an app out of a single item folder and reparenting it // back into its original folder results in a cancelled reparent. This is a // regression test for http://crbug.com/429083. -TEST_F(AppListMainViewTest, ReparentSingleItemOntoSelf) { +TEST_P(AppListMainViewTest, ReparentSingleItemOntoSelf) { + // TODO(anasalazar): Fix for cardified state + if (IsPaginationPreviewActive()) + return; // Add a folder with 1 item. AppListItemView* folder_item_view = CreateAndOpenSingleItemFolder(); std::string folder_id = folder_item_view->item()->id();
diff --git a/ash/app_list/views/app_list_view.cc b/ash/app_list/views/app_list_view.cc index b786115..7911dbc 100644 --- a/ash/app_list/views/app_list_view.cc +++ b/ash/app_list/views/app_list_view.cc
@@ -20,13 +20,13 @@ #include "ash/app_list/views/paged_apps_grid_view.h" #include "ash/app_list/views/search_box_view.h" #include "ash/assistant/ui/assistant_ui_constants.h" +#include "ash/constants/ash_features.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" #include "ash/public/cpp/app_list/app_list_color_provider.h" #include "ash/public/cpp/app_list/app_list_config.h" #include "ash/public/cpp/app_list/app_list_config_provider.h" #include "ash/public/cpp/app_list/app_list_features.h" #include "ash/public/cpp/app_list/app_list_types.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/metrics_util.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/wallpaper_types.h" @@ -754,10 +754,24 @@ search_box_widget_params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent; search_box_widget_params.name = "SearchBoxView"; - search_box_widget_params.delegate = search_box_view_; + + // Focus should be able to move from search box to items in app list view. + auto widget_delegate = std::make_unique<views::WidgetDelegate>(); + widget_delegate->SetFocusTraversesOut(true); + + // Default role of root view is ax::mojom::Role::kWindow which traps + // ChromeVox focus within the root view. Assign ax::mojom::Role::kGroup here + // to allow the focus to move from elements in search box to app list view. + widget_delegate->SetAccessibleRole(ax::mojom::Role::kGroup); + + // SearchBoxView used to be a WidgetDelegateView, so we follow the legacy + // behavior and have the Widget delete the delegate. + widget_delegate->SetOwnedByWidget(true); + search_box_widget_params.delegate = widget_delegate.release(); views::Widget* search_box_widget = new views::Widget; search_box_widget->Init(std::move(search_box_widget_params)); + search_box_widget->SetContentsView(search_box_view_); DCHECK_EQ(search_box_widget, search_box_view_->GetWidget()); // Assign an accessibility role to the native window of |search_box_widget|,
diff --git a/ash/app_list/views/app_list_view.h b/ash/app_list/views/app_list_view.h index 0663ac86..3a5e4fe 100644 --- a/ash/app_list/views/app_list_view.h +++ b/ash/app_list/views/app_list_view.h
@@ -547,9 +547,7 @@ AppListMainView* app_list_main_view_ = nullptr; gfx::NativeView parent_window_ = nullptr; - views::Widget* search_box_widget_ = - nullptr; // Owned by the app list's widget. - SearchBoxView* search_box_view_ = nullptr; // Owned by |search_box_widget_|. + SearchBoxView* search_box_view_ = nullptr; // Owned by views hierarchy. // Owned by the app list's widget. Used to show the darkened AppList // background. AppListBackgroundShieldView* app_list_background_shield_ = nullptr;
diff --git a/ash/app_list/views/app_list_view_unittest.cc b/ash/app_list/views/app_list_view_unittest.cc index cca06ea..2c19a2b 100644 --- a/ash/app_list/views/app_list_view_unittest.cc +++ b/ash/app_list/views/app_list_view_unittest.cc
@@ -44,7 +44,6 @@ #include "ash/public/cpp/app_list/app_list_config.h" #include "ash/public/cpp/app_list/app_list_features.h" #include "ash/public/cpp/app_list/app_list_types.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/pagination/pagination_model.h" #include "ash/public/cpp/presentation_time_recorder.h" #include "ash/public/cpp/test/test_app_list_color_provider.h"
diff --git a/ash/app_list/views/paged_apps_grid_view.cc b/ash/app_list/views/paged_apps_grid_view.cc index 1f6425b..8ebb6d9d 100644 --- a/ash/app_list/views/paged_apps_grid_view.cc +++ b/ash/app_list/views/paged_apps_grid_view.cc
@@ -16,9 +16,9 @@ #include "ash/app_list/views/app_list_view.h" #include "ash/app_list/views/apps_container_view.h" #include "ash/app_list/views/contents_view.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/app_list/app_list_config.h" #include "ash/public/cpp/app_list/app_list_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/pagination/pagination_controller.h" #include "ash/public/cpp/pagination/pagination_model.h" #include "base/barrier_closure.h"
diff --git a/ash/app_list/views/search_box_view.cc b/ash/app_list/views/search_box_view.cc index 952c5219..cf9f316 100644 --- a/ash/app_list/views/search_box_view.cc +++ b/ash/app_list/views/search_box_view.cc
@@ -20,12 +20,12 @@ #include "ash/app_list/views/result_selection_controller.h" #include "ash/app_list/views/search_result_base_view.h" #include "ash/app_list/views/search_result_page_view.h" +#include "ash/constants/ash_features.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" #include "ash/public/cpp/app_list/app_list_color_provider.h" #include "ash/public/cpp/app_list/app_list_config.h" #include "ash/public/cpp/app_list/app_list_features.h" #include "ash/public/cpp/app_list/vector_icons/vector_icons.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/wallpaper_types.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/search_box/search_box_constants.h"
diff --git a/ash/app_list/views/search_box_view_unittest.cc b/ash/app_list/views/search_box_view_unittest.cc index 0566137..633b746d 100644 --- a/ash/app_list/views/search_box_view_unittest.cc +++ b/ash/app_list/views/search_box_view_unittest.cc
@@ -42,7 +42,7 @@ public: explicit KeyPressCounterView(AppListView* app_list_view) : ContentsView(app_list_view), count_(0) {} - ~KeyPressCounterView() override {} + ~KeyPressCounterView() override = default; int GetCountAndReset() { int count = count_; @@ -78,28 +78,30 @@ app_list_view_->InitView(GetContext()); widget_ = CreateTopLevelPlatformWidget(); - view_ = - std::make_unique<SearchBoxView>(this, &view_delegate_, app_list_view()); - view_->Init(false /*is_tablet_mode*/); widget_->SetBounds(gfx::Rect(0, 0, 300, 200)); - counter_view_ = new KeyPressCounterView(app_list_view_); - widget_->GetContentsView()->AddChildView(view()); - widget_->GetContentsView()->AddChildView(counter_view_); + + auto view = + std::make_unique<SearchBoxView>(this, &view_delegate_, app_list_view()); + view->Init(/*is_tablet_mode=*/false); + view_ = widget_->GetContentsView()->AddChildView(std::move(view)); + + counter_view_ = widget_->GetContentsView()->AddChildView( + std::make_unique<KeyPressCounterView>(app_list_view_)); + widget_->Show(); counter_view_->Init(view_delegate_.GetModel()); - view()->set_contents_view(counter_view_); + view_->set_contents_view(counter_view_); } void TearDown() override { app_list_view_->GetWidget()->Close(); widget_->CloseNow(); - view_.reset(); views::test::WidgetTest::TearDown(); } protected: views::Widget* widget() { return widget_; } - SearchBoxView* view() { return view_.get(); } + SearchBoxView* view() { return view_; } AppListView* app_list_view() { return app_list_view_; } AppListTestViewDelegate* view_delegate() { return &view_delegate_; } @@ -183,10 +185,10 @@ TestAppListColorProvider color_provider_; // Needed by AppListView. AppListTestViewDelegate view_delegate_; - views::Widget* widget_; + views::Widget* widget_ = nullptr; AppListView* app_list_view_ = nullptr; - std::unique_ptr<SearchBoxView> view_; - KeyPressCounterView* counter_view_; + SearchBoxView* view_ = nullptr; // Owned by views hierarchy. + KeyPressCounterView* counter_view_ = nullptr; // Owned by views hierarchy. std::u16string last_query_; int query_changed_count_ = 0; int last_result_id_ = 0;
diff --git a/ash/app_list/views/search_result_list_view.cc b/ash/app_list/views/search_result_list_view.cc index 608bc0e..b4c4044 100644 --- a/ash/app_list/views/search_result_list_view.cc +++ b/ash/app_list/views/search_result_list_view.cc
@@ -33,6 +33,7 @@ #include "ui/views/background.h" #include "ui/views/controls/textfield/textfield.h" #include "ui/views/layout/box_layout.h" +#include "ui/views/widget/widget.h" namespace ash {
diff --git a/ash/app_menu/app_menu_model_adapter.cc b/ash/app_menu/app_menu_model_adapter.cc index 8dc56e2..2757c4f 100644 --- a/ash/app_menu/app_menu_model_adapter.cc +++ b/ash/app_menu/app_menu_model_adapter.cc
@@ -5,7 +5,7 @@ #include "ash/app_menu/app_menu_model_adapter.h" #include "ash/app_menu/notification_menu_controller.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/shelf_model.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h"
diff --git a/ash/bubble/bubble_utils.cc b/ash/bubble/bubble_utils.cc index f6f97a5..99a64c5 100644 --- a/ash/bubble/bubble_utils.cc +++ b/ash/bubble/bubble_utils.cc
@@ -108,7 +108,11 @@ label->SetFontList(gfx::FontList({"Roboto"}, gfx::Font::NORMAL, 14, gfx::Font::Weight::NORMAL)); break; - case LabelStyle::kChip: + case LabelStyle::kChipBody: + label->SetFontList(gfx::FontList({"Roboto"}, gfx::Font::NORMAL, 10, + gfx::Font::Weight::MEDIUM)); + break; + case LabelStyle::kChipTitle: label->SetFontList(gfx::FontList({"Roboto"}, gfx::Font::NORMAL, 13, gfx::Font::Weight::NORMAL)); break;
diff --git a/ash/bubble/bubble_utils.h b/ash/bubble/bubble_utils.h index 69bcb60c..93ec6f6 100644 --- a/ash/bubble/bubble_utils.h +++ b/ash/bubble/bubble_utils.h
@@ -31,7 +31,8 @@ enum class LabelStyle { kBadge, kBody, - kChip, + kChipBody, + kChipTitle, kHeader, };
diff --git a/ash/capture_mode/capture_mode_unittests.cc b/ash/capture_mode/capture_mode_unittests.cc index dadef15f2..b8e47e8 100644 --- a/ash/capture_mode/capture_mode_unittests.cc +++ b/ash/capture_mode/capture_mode_unittests.cc
@@ -23,11 +23,11 @@ #include "ash/capture_mode/stop_recording_button_tray.h" #include "ash/capture_mode/test_capture_mode_delegate.h" #include "ash/capture_mode/video_recording_watcher.h" +#include "ash/constants/ash_features.h" #include "ash/display/cursor_window_controller.h" #include "ash/display/output_protection_delegate.h" #include "ash/display/screen_orientation_controller_test_api.h" #include "ash/display/window_tree_host_manager.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/capture_mode_test_api.h" #include "ash/root_window_controller.h" #include "ash/services/recording/recording_service_test_api.h"
diff --git a/ash/capture_mode/capture_mode_util.cc b/ash/capture_mode/capture_mode_util.cc index e11681d..585b87f 100644 --- a/ash/capture_mode/capture_mode_util.cc +++ b/ash/capture_mode/capture_mode_util.cc
@@ -7,7 +7,7 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/capture_mode/capture_mode_controller.h" #include "ash/capture_mode/stop_recording_button_tray.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/root_window_controller.h" #include "ash/shell.h" #include "base/check.h"
diff --git a/ash/clipboard/clipboard_nudge.cc b/ash/clipboard/clipboard_nudge.cc index 09a35b0..464b558f 100644 --- a/ash/clipboard/clipboard_nudge.cc +++ b/ash/clipboard/clipboard_nudge.cc
@@ -4,7 +4,7 @@ #include "ash/clipboard/clipboard_nudge.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/assistant/assistant_state.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/shell_window_ids.h"
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index 858be774..8ce69f9 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -4,9 +4,12 @@ #include "ash/constants/ash_features.h" +#include "ash/constants/ash_switches.h" +#include "base/command_line.h" #include "base/feature_list.h" #include "base/metrics/field_trial_params.h" #include "base/system/sys_info.h" +#include "build/build_config.h" namespace ash { namespace features { @@ -25,6 +28,11 @@ const base::Feature kAccountManagementFlowsV2{"AccountManagementFlowsV2", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables the UI to support Ambient EQ if the device supports it. +// See https://crbug.com/1021193 for more details. +const base::Feature kAllowAmbientEQ{"AllowAmbientEQ", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Controls whether devices are updated before reboot after the first update. const base::Feature kAllowRepeatedUpdates{"AllowRepeatedUpdates", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -100,6 +108,11 @@ const base::Feature kArcPreImeKeyEventSupport{"ArcPreImeKeyEventSupport", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables resize lock for ARC++ and puts restrictions on window resizing. +// TODO(takise): Remove this after the feature is fully launched. +const base::Feature kArcResizeLock{"ArcResizeLock", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Controls whether to enable assistive autocorrect. const base::Feature kAssistAutoCorrect{"AssistAutoCorrect", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -132,6 +145,13 @@ const base::Feature kAssistPersonalInfoPhoneNumber{ "AssistPersonalInfoPhoneNumber", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables the Auto Night Light feature which sets the default schedule type to +// sunset-to-sunrise until the user changes it to something else. This feature +// is not exposed to the end user, and is enabled only via cros_config for +// certain devices. +const base::Feature kAutoNightLight{"AutoNightLight", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Enables or disables auto screen-brightness adjustment when ambient light // changes. const base::Feature kAutoScreenBrightness{"AutoScreenBrightness", @@ -142,6 +162,10 @@ extern const base::Feature kAvatarToolbarButton{ "AvatarToolbarButton", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enables the persistent desks bar at the top of the screen in clamshell mode +// when there are more than one desk. +const base::Feature kBentoBar{"BentoBar", base::FEATURE_DISABLED_BY_DEFAULT}; + // Enables or disables more aggressive filtering out of Bluetooth devices with // "appearances" that are less likely to be pairable or useful. const base::Feature kBluetoothAggressiveAppearanceFilter{ @@ -166,6 +190,11 @@ const base::Feature kCameraPrivacySwitchNotifications{ "CameraPrivacySwitchNotifications", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables the Capture Mode feature which is an enhanced screenshot and screen +// capture user experience. +const base::Feature kCaptureMode{"CaptureMode", + base::FEATURE_ENABLED_BY_DEFAULT}; + // If enabled, will use the CDM in the Chrome OS daemon rather than loading the // CDM using the library CDM interface. const base::Feature kCdmFactoryDaemon{"CdmFactoryDaemon", @@ -208,6 +237,15 @@ const base::Feature kClipboardHistoryScreenshotNudge{ "ClipboardHistoryScreenshotNudge", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enables compositing-based throttling to throttle appropriate frame sinks that +// do not need to be refreshed at high fps. +const base::Feature kCompositingBasedThrottling{ + "CompositingBasedThrottling", base::FEATURE_DISABLED_BY_DEFAULT}; + +// Enables contextual nudges for gesture education. +const base::Feature kContextualNudges{"ContextualNudges", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Enables or disables Crosh System Web App. When enabled, crosh (Chrome OS // Shell) will run as a tabbed System Web App rather than a normal browser tab. const base::Feature kCroshSWA{"CroshSWA", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -248,6 +286,10 @@ const base::Feature kCryptAuthV2Enrollment{"CryptAuthV2Enrollment", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables dark/light mode feature. +const base::Feature kDarkLightMode{"DarkLightMode", + base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kDemoModeSWA{"DemoModeSWA", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -281,6 +323,24 @@ const base::Feature kDisableOfficeEditingComponentApp{ "DisableOfficeEditingComponentApp", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enables indicators to hint where displays are connected. +const base::Feature kDisplayAlignAssist{"DisplayAlignAssist", + base::FEATURE_DISABLED_BY_DEFAULT}; + +// Enables identification overlays on each display. +const base::Feature kDisplayIdentification{"DisplayIdentification", + base::FEATURE_ENABLED_BY_DEFAULT}; + +// Enables the docked (a.k.a. picture-in-picture) magnifier. +// TODO(afakhry): Remove this after the feature is fully launched. +// https://crbug.com/709824. +const base::Feature kDockedMagnifier{"DockedMagnifier", + base::FEATURE_ENABLED_BY_DEFAULT}; + +// Enables dragging an unpinned open app to pinned app side to pin. +const base::Feature kDragUnpinnedAppToPin{"DragUnpinnedAppToPin", + base::FEATURE_DISABLED_BY_DEFAULT}; + // If enabled, DriveFS will be used for Drive sync. const base::Feature kDriveFs{"DriveFS", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -303,6 +363,12 @@ const base::Feature kEmojiSuggestAddition{"EmojiSuggestAddition", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables background blur for the app list, shelf, unified system tray, +// autoclick menu, etc. Also enables the AppsGridView mask layer, slower devices +// may have choppier app list animations while in this mode. crbug.com/765292. +const base::Feature kEnableBackgroundBlur{"EnableBackgroundBlur", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Enables the DNS proxy service providing support split and secure DNS // for Chrome OS. const base::Feature kEnableDnsProxy{"EnableDnsProxy", @@ -396,6 +462,13 @@ const base::Feature kFiltersInRecents{"FiltersInRecents", base::FEATURE_DISABLED_BY_DEFAULT}; +// When enabled, there will be an alert bubble showing up when the device +// returns from low brightness (e.g., sleep, closed cover) without a lock screen +// and the active window is in fullscreen. +// TODO(https://crbug.com/1107185): Remove this after the feature is launched. +const base::Feature kFullscreenAlertBubble{"EnableFullscreenBubble", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Enables or disables handle of `closeView` message from Gaia. The message is // supposed to end the flow. const base::Feature kGaiaCloseViewMessage{"GaiaCloseViewMessage", @@ -444,6 +517,32 @@ const base::Feature kHiddenNetworkWarning{"HiddenNetworkWarning", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enables hiding of ARC media notifications. If this is enabled, all ARC +// notifications that are of the media type will not be shown. This +// is because they will be replaced by native media session notifications. +// TODO(beccahughes): Remove after launch. (https://crbug.com/897836) +const base::Feature kHideArcMediaNotifications{ + "HideArcMediaNotifications", base::FEATURE_ENABLED_BY_DEFAULT}; + +// When enabled, shelf navigation controls and the overview tray item will be +// removed from the shelf in tablet mode (unless otherwise specified by user +// preferences, or policy). +const base::Feature kHideShelfControlsInTabletMode{ + "HideShelfControlsInTabletMode", base::FEATURE_ENABLED_BY_DEFAULT}; + +// Enables ARC integration with the productivity feature that aims to reduce +// context switching by enabling users to collect content and transfer or access +// it later. +const base::Feature kHoldingSpaceArcIntegration{ + "HoldingSpaceArcIntegration", base::FEATURE_ENABLED_BY_DEFAULT}; + +// Enables in-progress downloads integration with the productivity feature that +// aims to reduce context switching by enabling users to collect content and +// transfer or access it later. +const base::Feature kHoldingSpaceInProgressDownloadsIntegration{ + "HoldingSpaceInProgressDownloadsIntegration", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Enable or disable IME decoder via Mojo connection on Chrome OS. const base::Feature kImeMojoDecoder{"ImeMojoDecoder", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -465,6 +564,11 @@ const base::Feature kInstantTethering{"InstantTethering", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables using arrow keys for display arrangement in display settings page. +const base::Feature kKeyboardBasedDisplayArrangementInSettings{ + "KeyboardBasedDisplayArrangementInSettings", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Enables to use lacros-chrome as a primary web browser on Chrome OS. // This works only when LacrosSupport below is enabled. // NOTE: Use crosapi::browser_util::IsLacrosPrimary() instead of checking @@ -487,6 +591,35 @@ const base::Feature kLanguageSettingsUpdate2{"LanguageSettingsUpdate2", base::FEATURE_DISABLED_BY_DEFAULT}; +// Limits the windows listed in Alt-Tab to the ones in the currently active +// desk. +const base::Feature kLimitAltTabToActiveDesk{"LimitAltTabToActiveDesk", + base::FEATURE_DISABLED_BY_DEFAULT}; + +// Supports the feature to hide sensitive content in notifications on the lock +// screen. This option is effective when |kLockScreenNotification| is enabled. +const base::Feature kLockScreenHideSensitiveNotificationsSupport{ + "LockScreenHideSensitiveNotificationsSupport", + base::FEATURE_DISABLED_BY_DEFAULT}; + +// Enables inline reply on notifications on the lock screen. +// This option is effective when |kLockScreenNotification| is enabled. +const base::Feature kLockScreenInlineReply{"LockScreenInlineReply", + base::FEATURE_DISABLED_BY_DEFAULT}; + +// Enables notifications on the lock screen. +const base::Feature kLockScreenNotifications{"LockScreenNotifications", + base::FEATURE_DISABLED_BY_DEFAULT}; + +// Enables lock screen media controls UI and use of media keys on the lock +// screen. +const base::Feature kLockScreenMediaControls{"LockScreenMediaControls", + base::FEATURE_ENABLED_BY_DEFAULT}; + +// Enables the redesigned managed device info UI in the system tray. +const base::Feature kManagedDeviceUIRedesign{"ManagedDeviceUIRedesign", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Whether image annotation is enabled in the ChromeOS media app. const base::Feature kMediaAppAnnotation{"MediaAppAnnotation", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -529,11 +662,30 @@ const base::Feature kNewOobeLayout{"NewOobeLayout", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables the Night Light feature. +const base::Feature kNightLight{"NightLight", base::FEATURE_ENABLED_BY_DEFAULT}; + // Enables support for specific enabled web apps to be treated as note-taking // apps on Chrome OS. const base::Feature kNoteTakingForEnabledWebApps{ "NoteTakingForEnabledWebApps", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enabled notification expansion animation. +const base::Feature kNotificationExpansionAnimation{ + "NotificationExpansionAnimation", base::FEATURE_DISABLED_BY_DEFAULT}; + +// Shorten notification timeouts to 6 seconds. +const base::Feature kNotificationExperimentalShortTimeouts{ + "NotificationExperimentalShortTimeouts", base::FEATURE_ENABLED_BY_DEFAULT}; + +// Enables notification scroll bar in UnifiedSystemTray. +const base::Feature kNotificationScrollBar{"NotificationScrollBar", + base::FEATURE_DISABLED_BY_DEFAULT}; + +// Enables notifications to be shown within context menus. +const base::Feature kNotificationsInContextMenu{ + "NotificationsInContextMenu", base::FEATURE_DISABLED_BY_DEFAULT}; + // Enables new notifications UI and grouped notifications. const base::Feature kNotificationsRefresh{"NotificationsRefresh", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -562,6 +714,11 @@ const base::Feature kOsSettingsDeepLinking{"OsSettingsDeepLinking", base::FEATURE_ENABLED_BY_DEFAULT}; +// Limits the items on the shelf to the ones associated with windows the +// currently active desk. +const base::Feature kPerDeskShelf{"PerDeskShelf", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Provides a UI for users to view information about their Android phone // and perform phone-side actions within Chrome OS. const base::Feature kPhoneHub{"PhoneHub", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -569,6 +726,10 @@ const base::Feature kPinSetupForManagedUsers{"PinSetupForManagedUsers", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables rounded corners for the Picture-in-picture window. +const base::Feature kPipRoundedCorners{"PipRoundedCorners", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Hides shelf in immersive mode and allows esc hold to exit. const base::Feature kPluginVmFullscreen{"PluginVmFullscreen", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -607,10 +768,6 @@ const base::Feature kQuickAnswersOnEditableText{ "QuickAnswersOnEditableText", base::FEATURE_ENABLED_BY_DEFAULT}; -// Controls whether to enable quick answers V2 features. -const base::Feature kQuickAnswersV2{"QuickAnswersV2", - base::FEATURE_DISABLED_BY_DEFAULT}; - // Controls whether to enable quick answers text annotator. const base::Feature kQuickAnswersTextAnnotator{ "QuickAnswersTextAnnotator", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -623,6 +780,10 @@ const base::Feature kQuickAnswersTranslationCloudAPI{ "QuickAnswersTranslationCloudAPI", base::FEATURE_ENABLED_BY_DEFAULT}; +// Controls whether to enable quick answers V2 features. +const base::Feature kQuickAnswersV2{"QuickAnswersV2", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Controls whether the PIN auto submit feature is enabled. const base::Feature kQuickUnlockPinAutosubmit{"QuickUnlockPinAutosubmit", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -633,6 +794,10 @@ const base::Feature kQuickUnlockPinAutosubmitBackfill{ "QuickUnlockPinAutosubmitBackfill", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables suppression of Displays notifications other than resolution change. +const base::Feature kReduceDisplayNotifications{ + "ReduceDisplayNotifications", base::FEATURE_ENABLED_BY_DEFAULT}; + // Enables or disables Release Notes notifications on Chrome OS. const base::Feature kReleaseNotesNotification{"ReleaseNotesNotification", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -646,6 +811,17 @@ const base::Feature kReleaseNotesSuggestionChip{ "ReleaseNotesSuggestionChip", base::FEATURE_ENABLED_BY_DEFAULT}; +// When enabled, the overivew and desk reverse scrolling behaviors are changed +// and if the user performs the old gestures, a notification or toast will show +// up. +// TODO(https://crbug.com/1107183): Remove this after the feature is launched. +const base::Feature kReverseScrollGestures{"EnableReverseScrollGestures", + base::FEATURE_ENABLED_BY_DEFAULT}; + +// Enables the system tray to show more information in larger screen. +const base::Feature kScalableStatusArea{"ScalableStatusArea", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Enables or disables showing a link to the Media app in the Scan app. const base::Feature kScanAppMediaLink{"ScanAppMediaLink", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -658,6 +834,11 @@ const base::Feature kScanAppStickySettings{"ScanAppStickySettings", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables displaying separate network icons for different networks types. +// https://crbug.com/902409 +const base::Feature kSeparateNetworkIcons{"SeparateNetworkIcons", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Enables or disables long kill timeout for session manager daemon. When // enabled, session manager daemon waits for a longer time (e.g. 12s) for chrome // to exit before sending SIGABRT. Otherwise, it uses the default time out @@ -673,6 +854,10 @@ const base::Feature kShowBluetoothDebugLogToggle{ "ShowBluetoothDebugLogToggle", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables the system tray to show date in sufficiently large screen. +const base::Feature kShowDateInTrayButton{"ShowDateInTrayButton", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Shows the Play Store icon in Demo Mode. const base::Feature kShowPlayInDemoMode{"ShowPlayInDemoMode", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -696,6 +881,10 @@ const base::Feature kSplitSettingsSync{"SplitSettingsSync", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enables battery indicator for styluses in the palette tray +const base::Feature kStylusBatteryStatus{"StylusBatteryStatus", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Enables or disables using the system input engine for physical typing in // languages based on latin script. const base::Feature kSystemLatinPhysicalTyping{ @@ -711,10 +900,18 @@ const base::Feature kTelemetryExtension{"TelemetryExtension", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enables trilinear filtering. +const base::Feature kTrilinearFiltering{"TrilinearFiltering", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Enables the updated cellular activation UI; see go/cros-cellular-design. const base::Feature kUpdatedCellularActivationUi{ "UpdatedCellularActivationUi", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables using the BluetoothSystem Mojo interface for Bluetooth operations. +const base::Feature kUseBluetoothSystemInAsh{"UseBluetoothSystemInAsh", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Uses the same browser sync consent dialog as Windows/Mac/Linux. Allows the // user to fully opt-out of browser sync, including marking the IdentityManager // primary account as unconsented. Requires SplitSettingsSync. @@ -744,6 +941,12 @@ const base::Feature kUserActivityPrediction{"UserActivityPrediction", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables vertical split screen for clamshell mode. This allows users to snap +// top and bottom when the screen is in portrait orientation, while snap left +// and right when the screen is in landscape orientation. +const base::Feature kVerticalSplitScreen{"VerticalSplitScreen", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Enable or disable using the floating virtual keyboard as the default option // on Chrome OS. const base::Feature kVirtualKeyboardFloatingDefault{ @@ -777,6 +980,13 @@ const base::Feature kWebApkGenerator{"WebApkGenerator", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enables special handling of Chrome tab drags from a WebUI tab strip. +// These will be treated similarly to a window drag, showing split view +// indicators in tablet mode, etc. The functionality is behind a flag right now +// since it is under development. +const base::Feature kWebUITabStripTabDragIntegration{ + "WebUITabStripTabDragIntegration", base::FEATURE_DISABLED_BY_DEFAULT}; + // Controls whether to enable the syncing of deletes of Wi-Fi configurations. // This only controls sending delete events to the Chrome Sync server. const base::Feature kWifiSyncAllowDeletes{"WifiSyncAllowDeletes", @@ -792,12 +1002,35 @@ const base::Feature kWifiSyncApplyDeletes{"WifiSyncApplyDeletes", base::FEATURE_DISABLED_BY_DEFAULT}; +// Change window creation to be based on cursor position when there are multiple +// displays. +const base::Feature kWindowsFollowCursor{"WindowsFollowCursor", + base::FEATURE_DISABLED_BY_DEFAULT}; + //////////////////////////////////////////////////////////////////////////////// +bool AreContextualNudgesEnabled() { + if (!IsHideShelfControlsInTabletModeEnabled()) + return false; + return base::FeatureList::IsEnabled(kContextualNudges); +} + +bool DoWindowsFollowCursor() { + return base::FeatureList::IsEnabled(kWindowsFollowCursor); +} + bool IsAccountManagementFlowsV2Enabled() { return base::FeatureList::IsEnabled(kAccountManagementFlowsV2); } +bool IsAllowAmbientEQEnabled() { + return base::FeatureList::IsEnabled(kAllowAmbientEQ); +} + +bool IsAltTabLimitedToActiveDesk() { + return base::FeatureList::IsEnabled(kLimitAltTabToActiveDesk); +} + bool IsAmbientModeDevUseProdEnabled() { return base::FeatureList::IsEnabled(kAmbientModeDevUseProdFeature); } @@ -818,12 +1051,42 @@ return base::FeatureList::IsEnabled(kOsSettingsAppNotificationsPage); } +bool IsArcResizeLockEnabled() { + return base::FeatureList::IsEnabled(kArcResizeLock); +} + bool IsAssistiveMultiWordEnabled() { return base::FeatureList::IsEnabled(kImeMojoDecoder) && base::FeatureList::IsEnabled(kSystemLatinPhysicalTyping) && base::FeatureList::IsEnabled(kAssistMultiWord); } +bool IsAutoNightLightEnabled() { + return base::FeatureList::IsEnabled(kAutoNightLight); +} + +bool IsBackgroundBlurEnabled() { + bool enabled_by_feature_flag = + base::FeatureList::IsEnabled(kEnableBackgroundBlur); +#if defined(ARCH_CPU_ARM_FAMILY) + // Enable background blur on Mali when GPU rasterization is enabled. + // See crbug.com/996858 for the condition. + return enabled_by_feature_flag && + base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kAshEnableTabletMode); +#else + return enabled_by_feature_flag; +#endif +} + +bool IsBentoBarEnabled() { + return base::FeatureList::IsEnabled(kBentoBar); +} + +bool IsCaptureModeEnabled() { + return base::FeatureList::IsEnabled(kCaptureMode); +} + bool IsCellularActivationUiEnabled() { return base::FeatureList::IsEnabled(kUpdatedCellularActivationUi); } @@ -844,6 +1107,14 @@ return base::FeatureList::IsEnabled(kClipboardHistoryScreenshotNudge); } +bool IsCompositingBasedThrottlingEnabled() { + return base::FeatureList::IsEnabled(kCompositingBasedThrottling); +} + +bool IsDarkLightModeEnabled() { + return base::FeatureList::IsEnabled(kDarkLightMode); +} + bool IsDeepLinkingEnabled() { return base::FeatureList::IsEnabled(kOsSettingsDeepLinking); } @@ -856,6 +1127,18 @@ return base::FeatureList::IsEnabled(kDiagnosticsApp); } +bool IsDisplayAlignmentAssistanceEnabled() { + return base::FeatureList::IsEnabled(kDisplayAlignAssist); +} + +bool IsDisplayIdentificationEnabled() { + return base::FeatureList::IsEnabled(kDisplayIdentification); +} + +bool IsDragUnpinnedAppToPinEnabled() { + return base::FeatureList::IsEnabled(kDragUnpinnedAppToPin); +} + bool IsEcheSWAEnabled() { return base::FeatureList::IsEnabled(kEcheSWA); } @@ -868,6 +1151,10 @@ return base::FeatureList::IsEnabled(kFamilyLinkOnSchoolDevice); } +bool IsFullscreenAlertBubbleEnabled() { + return base::FeatureList::IsEnabled(kFullscreenAlertBubble); +} + bool IsGaiaCloseViewMessageEnabled() { return base::FeatureList::IsEnabled(kGaiaCloseViewMessage); } @@ -876,6 +1163,23 @@ return base::FeatureList::IsEnabled(kGaiaReauthEndpoint); } +bool IsHideArcMediaNotificationsEnabled() { + return base::FeatureList::IsEnabled(kHideArcMediaNotifications); +} + +bool IsHideShelfControlsInTabletModeEnabled() { + return base::FeatureList::IsEnabled(kHideShelfControlsInTabletMode); +} + +bool IsHoldingSpaceArcIntegrationEnabled() { + return base::FeatureList::IsEnabled(kHoldingSpaceArcIntegration); +} + +bool IsHoldingSpaceInProgressDownloadsIntegrationEnabled() { + return base::FeatureList::IsEnabled( + kHoldingSpaceInProgressDownloadsIntegration); +} + bool IsHostnameSettingEnabled() { return base::FeatureList::IsEnabled(kEnableHostnameSetting); } @@ -893,6 +1197,28 @@ kInstantTetheringBackgroundAdvertisementSupport); } +bool IsKeyboardBasedDisplayArrangementInSettingsEnabled() { + return base::FeatureList::IsEnabled( + kKeyboardBasedDisplayArrangementInSettings); +} + +bool IsLockScreenHideSensitiveNotificationsSupported() { + return base::FeatureList::IsEnabled( + kLockScreenHideSensitiveNotificationsSupport); +} + +bool IsLockScreenInlineReplyEnabled() { + return base::FeatureList::IsEnabled(kLockScreenInlineReply); +} + +bool IsLockScreenNotificationsEnabled() { + return base::FeatureList::IsEnabled(kLockScreenNotifications); +} + +bool IsManagedDeviceUIRedesignEnabled() { + return base::FeatureList::IsEnabled(kManagedDeviceUIRedesign); +} + bool IsMicMuteNotificationsEnabled() { return base::FeatureList::IsEnabled(kMicMuteNotifications); } @@ -910,6 +1236,22 @@ return base::FeatureList::IsEnabled(kNewOobeLayout); } +bool IsNotificationExpansionAnimationEnabled() { + return base::FeatureList::IsEnabled(kNotificationExpansionAnimation); +} + +bool IsNotificationExperimentalShortTimeoutsEnabled() { + return base::FeatureList::IsEnabled(kNotificationExperimentalShortTimeouts); +} + +bool IsNotificationScrollBarEnabled() { + return base::FeatureList::IsEnabled(kNotificationScrollBar); +} + +bool IsNotificationsInContextMenuEnabled() { + return base::FeatureList::IsEnabled(kNotificationsInContextMenu); +} + bool IsOobeChromeVoxHintEnabled() { return base::FeatureList::IsEnabled(kEnableOobeChromeVoxHint); } @@ -918,6 +1260,10 @@ return base::FeatureList::IsEnabled(kEnablePciguardUi); } +bool IsPerDeskShelfEnabled() { + return base::FeatureList::IsEnabled(kPerDeskShelf); +} + bool IsPhoneHubEnabled() { return base::FeatureList::IsEnabled(kPhoneHub); } @@ -934,6 +1280,10 @@ return base::FeatureList::IsEnabled(kPinSetupForManagedUsers); } +bool IsPipRoundedCornersEnabled() { + return base::FeatureList::IsEnabled(kPipRoundedCorners); +} + bool IsProjectorEnabled() { return base::FeatureList::IsEnabled(kProjector); } @@ -967,6 +1317,14 @@ return base::FeatureList::IsEnabled(kQuickAnswersV2); } +bool IsReduceDisplayNotificationsEnabled() { + return base::FeatureList::IsEnabled(kReduceDisplayNotifications); +} + +bool IsReverseScrollGesturesEnabled() { + return base::FeatureList::IsEnabled(kReverseScrollGestures); +} + bool IsSamlNotificationOnPasswordChangeSuccessEnabled() { return base::FeatureList::IsEnabled( kEnableSamlNotificationOnPasswordChangeSuccess); @@ -976,23 +1334,54 @@ return base::FeatureList::IsEnabled(kEnableSamlReauthenticationOnLockscreen); } +bool IsScalableStatusAreaEnabled() { + return base::FeatureList::IsEnabled(kScalableStatusArea); +} + +bool IsSeparateNetworkIconsEnabled() { + return base::FeatureList::IsEnabled(kSeparateNetworkIcons); +} + bool IsShimlessRMAFlowEnabled() { return base::FeatureList::IsEnabled(kShimlessRMAFlow); } +bool IsShowDateInTrayButtonEnabled() { + return IsScalableStatusAreaEnabled() && + base::FeatureList::IsEnabled(kShowDateInTrayButton); +} + bool IsSplitSettingsSyncEnabled() { return base::FeatureList::IsEnabled(kSplitSettingsSync); } +bool IsStylusBatteryStatusEnabled() { + return base::FeatureList::IsEnabled(kStylusBatteryStatus); +} + bool IsSystemLatinPhysicalTypingEnabled() { return base::FeatureList::IsEnabled(kImeMojoDecoder) && base::FeatureList::IsEnabled(kSystemLatinPhysicalTyping); } +bool IsTrilinearFilteringEnabled() { + static bool use_trilinear_filtering = + base::FeatureList::IsEnabled(kTrilinearFiltering); + return use_trilinear_filtering; +} + +bool IsVerticalSplitScreenEnabled() { + return base::FeatureList::IsEnabled(kVerticalSplitScreen); +} + bool IsWallpaperWebUIEnabled() { return base::FeatureList::IsEnabled(kWallpaperWebUI); } +bool IsWebUITabStripTabDragIntegrationEnabled() { + return base::FeatureList::IsEnabled(kWebUITabStripTabDragIntegration); +} + bool IsWifiSyncAndroidEnabled() { return base::FeatureList::IsEnabled(kWifiSyncAndroid); } @@ -1029,5 +1418,20 @@ base::FeatureList::IsEnabled(kCryptAuthV2DeviceSync); } +namespace { + +// The boolean flag indicating if "WebUITabStrip" feature is enabled in Chrome. +bool g_webui_tab_strip_enabled = false; + +} // namespace + +void SetWebUITabStripEnabled(bool enabled) { + g_webui_tab_strip_enabled = enabled; +} + +bool IsWebUITabStripEnabled() { + return g_webui_tab_strip_enabled; +} + } // namespace features } // namespace ash
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h index 703cfca8..1d7335a 100644 --- a/ash/constants/ash_features.h +++ b/ash/constants/ash_features.h
@@ -18,6 +18,7 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAccountManagementFlowsV2; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAllowAmbientEQ; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAllowRepeatedUpdates; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAllowScrollSettings; @@ -58,6 +59,7 @@ extern const base::Feature kArcManagedAdbSideloadingSupport; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kArcPreImeKeyEventSupport; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kArcResizeLock; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAssistAutoCorrect; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAssistMultiWord; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAssistPersonalInfo; @@ -70,8 +72,11 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAssistPersonalInfoPhoneNumber; COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kAutoNightLight; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAutoScreenBrightness; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kAvatarToolbarButton; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kBentoBar; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kBluetoothAggressiveAppearanceFilter; COMPONENT_EXPORT(ASH_CONSTANTS) @@ -81,6 +86,7 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kBluetoothWbsDogfood; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kCameraPrivacySwitchNotifications; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kCaptureMode; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kCdmFactoryDaemon; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kCellularForbidAttachApn; @@ -95,6 +101,9 @@ extern const base::Feature kClipboardHistoryNudgeSessionReset; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kClipboardHistoryScreenshotNudge; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kCompositingBasedThrottling; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kContextualNudges; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kCroshSWA; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kCrostiniDiskResizing; @@ -110,6 +119,7 @@ extern const base::Feature kCryptAuthV2DeviceSync; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kCryptAuthV2Enrollment; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kDarkLightMode; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kDemoModeSWA; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kDiagnosticsApp; COMPONENT_EXPORT(ASH_CONSTANTS) @@ -120,6 +130,12 @@ extern const base::Feature kDisableIdleSocketsCloseOnMemoryPressure; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kDisableOfficeEditingComponentApp; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kDisplayAlignAssist; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kDisplayIdentification; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kDockedMagnifier; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kDragUnpinnedAppToPin; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kDriveFs; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kDriveFsBidirectionalNativeMessaging; @@ -128,6 +144,8 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kEcheSWAResizing; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kEmojiSuggestAddition; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kEnableBackgroundBlur; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kEnableDnsProxy; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kEnableFilesAppCopyImage; @@ -164,6 +182,8 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kFilesZipUnpack; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kFiltersInRecents; COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kFullscreenAlertBubble; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kGaiaCloseViewMessage; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kGaiaReauthEndpoint; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kGamepadVibration; @@ -182,6 +202,14 @@ extern const base::Feature kHelpAppSearchServiceIntegration; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kHiddenNetworkWarning; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kHideArcMediaNotifications; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kHideShelfControlsInTabletMode; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kHoldingSpaceArcIntegration; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kHoldingSpaceInProgressDownloadsIntegration; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kImeMojoDecoder; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kImeMozcProto; COMPONENT_EXPORT(ASH_CONSTANTS) @@ -189,10 +217,24 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kImeSystemEmojiPicker; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kInstantTethering; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kKeyboardBasedDisplayArrangementInSettings; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kLacrosPrimary; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kLacrosSupport; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kLanguageSettingsUpdate2; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kLimitAltTabToActiveDesk; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kLockScreenHideSensitiveNotificationsSupport; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kLockScreenInlineReply; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kLockScreenNotifications; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kLockScreenMediaControls; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kManagedDeviceUIRedesign; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kMediaAppAnnotation; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kMediaAppDisplayExif; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kMediaAppHandlesPdf; @@ -205,9 +247,18 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kMojoDBusRelay; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kMultilingualTyping; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kNewOobeLayout; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kNightLight; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kNoteTakingForEnabledWebApps; COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kNotificationExpansionAnimation; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kNotificationExperimentalShortTimeouts; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kNotificationScrollBar; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kNotificationsInContextMenu; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kNotificationsRefresh; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kOnDeviceGrammarCheck; @@ -218,9 +269,11 @@ extern const base::Feature kOsSettingsAppNotificationsPage; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kOsSettingsDeepLinking; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kPerDeskShelf; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kPhoneHub; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kPinSetupForManagedUsers; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kPipRoundedCorners; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kPluginVmFullscreen; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kPluginVmShowCameraPermissions; @@ -235,13 +288,12 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kQuickAnswersOnEditableText; COMPONENT_EXPORT(ASH_CONSTANTS) -extern const base::Feature kQuickAnswersV2; -COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kQuickAnswersTextAnnotator; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kQuickAnswersTranslation; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kQuickAnswersTranslationCloudAPI; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kQuickAnswersV2; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kQuickUnlockPinAutosubmit; // TODO(crbug.com/1104164) - Remove this once most users have their preferences @@ -249,32 +301,45 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kQuickUnlockPinAutosubmitBackfill; COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kReduceDisplayNotifications; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kReleaseNotesNotification; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kReleaseNotesNotificationAllChannels; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kReleaseNotesSuggestionChip; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kReverseScrollGestures; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kScalableStatusArea; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kScanAppMediaLink; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kScanAppSearchablePdf; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kScanAppStickySettings; COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kSeparateNetworkIcons; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kSessionManagerLongKillTimeout; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kShimlessRMAFlow; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kShowBluetoothDebugLogToggle; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kShowDateInTrayButton; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kShowPlayInDemoMode; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kSmartDimExperimentalComponent; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kSplitSettingsSync; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kStylusBatteryStatus; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kSystemLatinPhysicalTyping; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kSystemProxyForSystemServices; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kTelemetryExtension; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kTrilinearFiltering; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kUpdatedCellularActivationUi; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kUseBluetoothSystemInAsh; // Visible for testing. Call UseBrowserSyncConsent() to check the flag. COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kUseBrowserSyncConsent; @@ -286,6 +351,7 @@ extern const base::Feature kUseWallpaperStagingUrl; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kUserActivityPrediction; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kVerticalSplitScreen; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kVirtualKeyboardFloatingDefault; COMPONENT_EXPORT(ASH_CONSTANTS) @@ -299,20 +365,32 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kWallpaperWebUI; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kWebApkGenerator; COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kWebUITabStripTabDragIntegration; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kWifiSyncAllowDeletes; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kWifiSyncAndroid; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kWifiSyncApplyDeletes; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kWindowsFollowCursor; // Keep alphabetized. +COMPONENT_EXPORT(ASH_CONSTANTS) bool AreContextualNudgesEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool DoWindowsFollowCursor(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAccountManagementFlowsV2Enabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAllowAmbientEQEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAltTabLimitedToActiveDesk(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAmbientModeDevUseProdEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAmbientModeEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAmbientModePhotoPreviewEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAppListBubbleEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAppNotificationsPageEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsArcResizeLockEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAssistiveMultiWordEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAutoNightLightEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsBackgroundBlurEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsBentoBarEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsCaptureModeEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsCellularActivationUiEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsClipboardHistoryContextMenuNudgeEnabled(); @@ -320,29 +398,54 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsClipboardHistoryNudgeSessionResetEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsClipboardHistoryScreenshotNudgeEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsCompositingBasedThrottlingEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDarkLightModeEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDeepLinkingEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDemoModeSWAEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDiagnosticsAppEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDisplayAlignmentAssistanceEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDisplayIdentificationEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDragUnpinnedAppToPinEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsEcheSWAEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsEcheSWAResizingEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsFamilyLinkOnSchoolDeviceEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsFullscreenAlertBubbleEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsGaiaCloseViewMessageEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsGaiaReauthEndpointEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsHideArcMediaNotificationsEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsHideShelfControlsInTabletModeEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsHoldingSpaceArcIntegrationEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) +bool IsHoldingSpaceInProgressDownloadsIntegrationEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsHostnameSettingEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsInputInDiagnosticsAppEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsInputNoiseCancellationUiEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsInstantTetheringBackgroundAdvertisingSupported(); +COMPONENT_EXPORT(ASH_CONSTANTS) +bool IsKeyboardBasedDisplayArrangementInSettingsEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) +bool IsLockScreenHideSensitiveNotificationsSupported(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsLockScreenInlineReplyEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsLockScreenNotificationsEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsManagedDeviceUIRedesignEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsMicMuteNotificationsEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsMinimumChromeVersionEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsNetworkingInDiagnosticsAppEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsNewOobeLayoutEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsNotificationExpansionAnimationEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) +bool IsNotificationExperimentalShortTimeoutsEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsNotificationScrollBarEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsNotificationsInContextMenuEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOobeChromeVoxHintEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPciguardUiEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPerDeskShelfEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPhoneHubEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPinAutosubmitBackfillFeatureEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPinAutosubmitFeatureEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPinSetupForManagedUsersEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPipRoundedCornersEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsProjectorEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsProjectorFeaturePodEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsQuickAnswersDogfood(); @@ -351,14 +454,23 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsQuickAnswersTranslationCloudAPIEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsQuickAnswersTranslationEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsQuickAnswersV2Enabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsReduceDisplayNotificationsEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsReverseScrollGesturesEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsSamlNotificationOnPasswordChangeSuccessEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsSamlReauthenticationOnLockscreenEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsScalableStatusAreaEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsSeparateNetworkIconsEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsShimlessRMAFlowEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsShowDateInTrayButtonEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsSplitSettingsSyncEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsStylusBatteryStatusEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsSystemLatinPhysicalTypingEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsTrilinearFilteringEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsVerticalSplitScreenEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsWallpaperWebUIEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsWebUITabStripTabDragIntegrationEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsWifiSyncAndroidEnabled(); // TODO(michaelpg): Remove after M71 branch to re-enable Play Store by default. COMPONENT_EXPORT(ASH_CONSTANTS) bool ShouldShowPlayStoreInDemoMode(); @@ -370,6 +482,11 @@ // Keep alphabetized. +// These two functions are supposed to be temporary functions to set or get +// whether "WebUITabStrip" feature is enabled from Chrome. +COMPONENT_EXPORT(ASH_CONSTANTS) void SetWebUITabStripEnabled(bool enabled); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsWebUITabStripEnabled(); + } // namespace features } // namespace ash
diff --git a/ash/display/cros_display_config.cc b/ash/display/cros_display_config.cc index 46418c9f..6f2834f 100644 --- a/ash/display/cros_display_config.cc +++ b/ash/display/cros_display_config.cc
@@ -6,6 +6,7 @@ #include <utility> +#include "ash/constants/ash_features.h" #include "ash/display/display_alignment_controller.h" #include "ash/display/display_configuration_controller.h" #include "ash/display/display_highlight_controller.h" @@ -15,7 +16,6 @@ #include "ash/display/screen_orientation_controller.h" #include "ash/display/touch_calibrator_controller.h" #include "ash/display/window_tree_host_manager.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/tablet_mode_observer.h" #include "ash/public/mojom/cros_display_config.mojom.h" #include "ash/shell.h"
diff --git a/ash/display/cros_display_config_unittest.cc b/ash/display/cros_display_config_unittest.cc index f11d8ed7..fcde2ce6 100644 --- a/ash/display/cros_display_config_unittest.cc +++ b/ash/display/cros_display_config_unittest.cc
@@ -4,12 +4,12 @@ #include "ash/display/cros_display_config.h" +#include "ash/constants/ash_features.h" #include "ash/display/display_alignment_controller.h" #include "ash/display/display_highlight_controller.h" #include "ash/display/screen_orientation_controller.h" #include "ash/display/screen_orientation_controller_test_api.h" #include "ash/display/touch_calibrator_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/mojom/cros_display_config.mojom.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/display/cursor_window_controller.cc b/ash/display/cursor_window_controller.cc index a338a57..94072d7 100644 --- a/ash/display/cursor_window_controller.cc +++ b/ash/display/cursor_window_controller.cc
@@ -8,12 +8,12 @@ #include "ash/capture_mode/capture_mode_controller.h" #include "ash/capture_mode/capture_mode_session.h" #include "ash/constants/ash_constants.h" +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/display/display_color_manager.h" #include "ash/display/mirror_window_controller.h" #include "ash/display/window_tree_host_manager.h" #include "ash/fast_ink/cursor/cursor_view.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/root_window_controller.h"
diff --git a/ash/display/display_alignment_controller_unittest.cc b/ash/display/display_alignment_controller_unittest.cc index abf7a34..7dda6e2 100644 --- a/ash/display/display_alignment_controller_unittest.cc +++ b/ash/display/display_alignment_controller_unittest.cc
@@ -4,8 +4,8 @@ #include "ash/display/display_alignment_controller.h" +#include "ash/constants/ash_features.h" #include "ash/display/display_alignment_indicator.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "base/test/scoped_feature_list.h"
diff --git a/ash/display/display_alignment_indicator_unittest.cc b/ash/display/display_alignment_indicator_unittest.cc index dffe42d..46065c0 100644 --- a/ash/display/display_alignment_indicator_unittest.cc +++ b/ash/display/display_alignment_indicator_unittest.cc
@@ -4,7 +4,6 @@ #include "ash/display/display_alignment_indicator.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/display/display_highlight_controller_unittest.cc b/ash/display/display_highlight_controller_unittest.cc index efbe168..490dc867 100644 --- a/ash/display/display_highlight_controller_unittest.cc +++ b/ash/display/display_highlight_controller_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/display/display_highlight_controller.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "base/test/scoped_feature_list.h"
diff --git a/ash/display/output_protection_delegate.cc b/ash/display/output_protection_delegate.cc index 3caedee..cc0bf1eb 100644 --- a/ash/display/output_protection_delegate.cc +++ b/ash/display/output_protection_delegate.cc
@@ -5,7 +5,7 @@ #include "ash/display/output_protection_delegate.h" #include "ash/capture_mode/capture_mode_controller.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/shell.h" #include "base/callback_helpers.h" #include "ui/display/display.h"
diff --git a/ash/display/resolution_notification_controller.cc b/ash/display/resolution_notification_controller.cc index 02fbcf2..2559a166 100644 --- a/ash/display/resolution_notification_controller.cc +++ b/ash/display/resolution_notification_controller.cc
@@ -8,7 +8,6 @@ #include "ash/display/display_change_dialog.h" #include "ash/display/display_util.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/notification_utils.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/display/resolution_notification_controller_unittest.cc b/ash/display/resolution_notification_controller_unittest.cc index a65c5a44..c7a3ee3fc 100644 --- a/ash/display/resolution_notification_controller_unittest.cc +++ b/ash/display/resolution_notification_controller_unittest.cc
@@ -6,7 +6,6 @@ #include "ash/display/display_change_dialog.h" #include "ash/display/display_util.h" -#include "ash/public/cpp/ash_features.h" #include "ash/screen_util.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h"
diff --git a/ash/display/screen_orientation_controller_unittest.cc b/ash/display/screen_orientation_controller_unittest.cc index 850a6082..a4cb664 100644 --- a/ash/display/screen_orientation_controller_unittest.cc +++ b/ash/display/screen_orientation_controller_unittest.cc
@@ -10,10 +10,10 @@ #include "ash/accelerometer/accelerometer_reader.h" #include "ash/accelerometer/accelerometer_types.h" #include "ash/constants/app_types.h" +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/display/screen_orientation_controller.h" #include "ash/display/screen_orientation_controller_test_api.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "ash/system/screen_layout_observer.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/display/window_tree_host_manager.cc b/ash/display/window_tree_host_manager.cc index b5d9963..dc7eb2e 100644 --- a/ash/display/window_tree_host_manager.cc +++ b/ash/display/window_tree_host_manager.cc
@@ -19,7 +19,6 @@ #include "ash/host/ash_window_tree_host.h" #include "ash/host/ash_window_tree_host_init_params.h" #include "ash/host/root_window_transformer.h" -#include "ash/public/cpp/ash_features.h" #include "ash/root_window_controller.h" #include "ash/root_window_settings.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/drag_drop/drag_drop_controller_unittest.cc b/ash/drag_drop/drag_drop_controller_unittest.cc index a6e042c4..722a9ac 100644 --- a/ash/drag_drop/drag_drop_controller_unittest.cc +++ b/ash/drag_drop/drag_drop_controller_unittest.cc
@@ -6,9 +6,9 @@ #include <memory> +#include "ash/constants/ash_features.h" #include "ash/drag_drop/drag_image_view.h" #include "ash/drag_drop/toplevel_window_drag_delegate.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "ash/test_shell_delegate.h"
diff --git a/ash/drag_drop/tab_drag_drop_delegate.cc b/ash/drag_drop/tab_drag_drop_delegate.cc index 1d337426..47ca61e 100644 --- a/ash/drag_drop/tab_drag_drop_delegate.cc +++ b/ash/drag_drop/tab_drag_drop_delegate.cc
@@ -4,7 +4,7 @@ #include "ash/drag_drop/tab_drag_drop_delegate.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/presentation_time_recorder.h" #include "ash/public/cpp/window_properties.h" #include "ash/screen_util.h"
diff --git a/ash/drag_drop/tab_drag_drop_delegate_unittest.cc b/ash/drag_drop/tab_drag_drop_delegate_unittest.cc index a8f77cdb4..909fdf1 100644 --- a/ash/drag_drop/tab_drag_drop_delegate_unittest.cc +++ b/ash/drag_drop/tab_drag_drop_delegate_unittest.cc
@@ -9,7 +9,7 @@ #include <utility> #include <vector> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/scoped_animation_disabler.h" #include "ash/screen_util.h" #include "ash/shell.h"
diff --git a/ash/host/DEPS b/ash/host/DEPS index 6437995..9f1d28bc 100644 --- a/ash/host/DEPS +++ b/ash/host/DEPS
@@ -3,7 +3,6 @@ "+ash/host", "+ash/ash_export.h", "+ash/constants", - "+ash/public/cpp/ash_features.h", ] specific_include_rules = {
diff --git a/ash/host/ash_window_tree_host.cc b/ash/host/ash_window_tree_host.cc index 856cdfd..907fb9c 100644 --- a/ash/host/ash_window_tree_host.cc +++ b/ash/host/ash_window_tree_host.cc
@@ -6,12 +6,12 @@ #include <memory> +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/host/ash_window_tree_host_init_params.h" #include "ash/host/ash_window_tree_host_mirroring_unified.h" #include "ash/host/ash_window_tree_host_platform.h" #include "ash/host/ash_window_tree_host_unified.h" -#include "ash/public/cpp/ash_features.h" #include "base/command_line.h" #include "base/system/sys_info.h" #include "ui/aura/client/screen_position_client.h"
diff --git a/ash/login/ui/lock_contents_view_unittest.cc b/ash/login/ui/lock_contents_view_unittest.cc index cb3034a..06bfd586 100644 --- a/ash/login/ui/lock_contents_view_unittest.cc +++ b/ash/login/ui/lock_contents_view_unittest.cc
@@ -30,7 +30,6 @@ #include "ash/login/ui/login_user_view.h" #include "ash/login/ui/scrollable_users_list_view.h" #include "ash/login/ui/views_utils.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/login_screen_test_api.h" #include "ash/public/mojom/tray_action.mojom.h"
diff --git a/ash/login/ui/lock_screen_media_controls_view_unittest.cc b/ash/login/ui/lock_screen_media_controls_view_unittest.cc index 9a2fb18..083493d 100644 --- a/ash/login/ui/lock_screen_media_controls_view_unittest.cc +++ b/ash/login/ui/lock_screen_media_controls_view_unittest.cc
@@ -4,11 +4,11 @@ #include "ash/login/ui/lock_screen_media_controls_view.h" +#include "ash/constants/ash_features.h" #include "ash/login/ui/fake_login_detachable_base_model.h" #include "ash/login/ui/lock_contents_view.h" #include "ash/login/ui/login_test_base.h" #include "ash/login/ui/media_controls_header_view.h" -#include "ash/public/cpp/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/ash/media/media_controller_impl.cc b/ash/media/media_controller_impl.cc index 1ef88de..33135ce 100644 --- a/ash/media/media_controller_impl.cc +++ b/ash/media/media_controller_impl.cc
@@ -4,7 +4,7 @@ #include "ash/media/media_controller_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/media_client.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/media/media_controller_unittest.cc b/ash/media/media_controller_unittest.cc index e87c320e..9ae3d7ed 100644 --- a/ash/media/media_controller_unittest.cc +++ b/ash/media/media_controller_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h"
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn index 69f4fab..f261429 100644 --- a/ash/public/cpp/BUILD.gn +++ b/ash/public/cpp/BUILD.gn
@@ -61,8 +61,6 @@ "arc_app_id_provider.h", "arc_resize_lock_type.h", "ash_constants.h", - "ash_features.cc", - "ash_features.h", "ash_pref_names.cc", "ash_pref_names.h", "ash_public_export.h",
diff --git a/ash/public/cpp/app_list/app_list_config.cc b/ash/public/cpp/app_list/app_list_config.cc index 573e34f..496f950 100644 --- a/ash/public/cpp/app_list/app_list_config.cc +++ b/ash/public/cpp/app_list/app_list_config.cc
@@ -6,9 +6,8 @@ #include <algorithm> +#include "ash/constants/ash_features.h" #include "ash/public/cpp/app_list/app_list_config_provider.h" -#include "ash/public/cpp/app_list/app_list_features.h" -#include "ash/public/cpp/ash_features.h" #include "base/check.h" #include "base/macros.h" #include "base/no_destructor.h"
diff --git a/ash/public/cpp/ash_features.cc b/ash/public/cpp/ash_features.cc deleted file mode 100644 index 228e0004..0000000 --- a/ash/public/cpp/ash_features.cc +++ /dev/null
@@ -1,335 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ash/public/cpp/ash_features.h" - -#include "ash/constants/ash_switches.h" -#include "base/command_line.h" -#include "base/feature_list.h" -#include "build/build_config.h" - -namespace ash { -namespace features { - -const base::Feature kAllowAmbientEQ{"AllowAmbientEQ", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kArcResizeLock{"ArcResizeLock", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kAutoNightLight{"AutoNightLight", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kBentoBar{"BentoBar", base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kCaptureMode{"CaptureMode", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kCompositingBasedThrottling{ - "CompositingBasedThrottling", base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kContextualNudges{"ContextualNudges", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kDarkLightMode{"DarkLightMode", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kDisplayAlignAssist{"DisplayAlignAssist", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kDisplayIdentification{"DisplayIdentification", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kDockedMagnifier{"DockedMagnifier", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kLimitAltTabToActiveDesk{"LimitAltTabToActiveDesk", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kLockScreenNotifications{"LockScreenNotifications", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kLockScreenInlineReply{"LockScreenInlineReply", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kLockScreenHideSensitiveNotificationsSupport{ - "LockScreenHideSensitiveNotificationsSupport", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kLockScreenMediaControls{"LockScreenMediaControls", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kHideArcMediaNotifications{ - "HideArcMediaNotifications", base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kManagedDeviceUIRedesign{"ManagedDeviceUIRedesign", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kNightLight{"NightLight", base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kNotificationExpansionAnimation{ - "NotificationExpansionAnimation", base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kNotificationExperimentalShortTimeouts{ - "NotificationExperimentalShortTimeouts", base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kNotificationScrollBar{"NotificationScrollBar", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kPerDeskShelf{"PerDeskShelf", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kPipRoundedCorners{"PipRoundedCorners", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kReduceDisplayNotifications{ - "ReduceDisplayNotifications", base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kSeparateNetworkIcons{"SeparateNetworkIcons", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kTrilinearFiltering{"TrilinearFiltering", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kUseBluetoothSystemInAsh{"UseBluetoothSystemInAsh", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kEnableBackgroundBlur{"EnableBackgroundBlur", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kHideShelfControlsInTabletMode{ - "HideShelfControlsInTabletMode", base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kReverseScrollGestures{"EnableReverseScrollGestures", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kFullscreenAlertBubble{"EnableFullscreenBubble", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kStylusBatteryStatus{"StylusBatteryStatus", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kVerticalSplitScreen{"VerticalSplitScreen", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kWebUITabStripTabDragIntegration{ - "WebUITabStripTabDragIntegration", base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kWindowsFollowCursor{"WindowsFollowCursor", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kNotificationsInContextMenu{ - "NotificationsInContextMenu", base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kHoldingSpaceArcIntegration{ - "HoldingSpaceArcIntegration", base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kHoldingSpaceInProgressDownloadsIntegration{ - "HoldingSpaceInProgressDownloadsIntegration", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kDragUnpinnedAppToPin{"DragUnpinnedAppToPin", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kScalableStatusArea{"ScalableStatusArea", - base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kShowDateInTrayButton{"ShowDateInTrayButton", - base::FEATURE_DISABLED_BY_DEFAULT}; - -const base::Feature kKeyboardBasedDisplayArrangementInSettings{ - "KeyboardBasedDisplayArrangementInSettings", - base::FEATURE_ENABLED_BY_DEFAULT}; - -bool IsAllowAmbientEQEnabled() { - return base::FeatureList::IsEnabled(kAllowAmbientEQ); -} - -bool IsAltTabLimitedToActiveDesk() { - return base::FeatureList::IsEnabled(kLimitAltTabToActiveDesk); -} - -bool IsArcResizeLockEnabled() { - return base::FeatureList::IsEnabled(kArcResizeLock); -} - -bool IsPerDeskShelfEnabled() { - return base::FeatureList::IsEnabled(kPerDeskShelf); -} - -bool IsAutoNightLightEnabled() { - return base::FeatureList::IsEnabled(kAutoNightLight); -} - -bool IsCaptureModeEnabled() { - return base::FeatureList::IsEnabled(kCaptureMode); -} - -bool IsCompositingBasedThrottlingEnabled() { - return base::FeatureList::IsEnabled(kCompositingBasedThrottling); -} - -bool IsDarkLightModeEnabled() { - return base::FeatureList::IsEnabled(kDarkLightMode); -} - -bool IsHideArcMediaNotificationsEnabled() { - return base::FeatureList::IsEnabled(kHideArcMediaNotifications); -} - -bool IsKeyboardBasedDisplayArrangementInSettingsEnabled() { - return base::FeatureList::IsEnabled( - kKeyboardBasedDisplayArrangementInSettings); -} - -bool IsLockScreenNotificationsEnabled() { - return base::FeatureList::IsEnabled(kLockScreenNotifications); -} - -bool IsLockScreenInlineReplyEnabled() { - return base::FeatureList::IsEnabled(kLockScreenInlineReply); -} - -bool IsLockScreenHideSensitiveNotificationsSupported() { - return base::FeatureList::IsEnabled( - kLockScreenHideSensitiveNotificationsSupport); -} - -bool IsManagedDeviceUIRedesignEnabled() { - return base::FeatureList::IsEnabled(kManagedDeviceUIRedesign); -} - -bool IsNotificationExpansionAnimationEnabled() { - return base::FeatureList::IsEnabled(kNotificationExpansionAnimation); -} - -bool IsNotificationScrollBarEnabled() { - return base::FeatureList::IsEnabled(kNotificationScrollBar); -} - -bool IsNotificationExperimentalShortTimeoutsEnabled() { - return base::FeatureList::IsEnabled(kNotificationExperimentalShortTimeouts); -} - -bool IsPipRoundedCornersEnabled() { - return base::FeatureList::IsEnabled(kPipRoundedCorners); -} - -bool IsSeparateNetworkIconsEnabled() { - return base::FeatureList::IsEnabled(kSeparateNetworkIcons); -} - -bool IsTrilinearFilteringEnabled() { - static bool use_trilinear_filtering = - base::FeatureList::IsEnabled(kTrilinearFiltering); - return use_trilinear_filtering; -} - -bool IsBackgroundBlurEnabled() { - bool enabled_by_feature_flag = - base::FeatureList::IsEnabled(kEnableBackgroundBlur); -#if defined(ARCH_CPU_ARM_FAMILY) - // Enable background blur on Mali when GPU rasterization is enabled. - // See crbug.com/996858 for the condition. - return enabled_by_feature_flag && - base::CommandLine::ForCurrentProcess()->HasSwitch( - ash::switches::kAshEnableTabletMode); -#else - return enabled_by_feature_flag; -#endif -} - -bool IsReduceDisplayNotificationsEnabled() { - return base::FeatureList::IsEnabled(kReduceDisplayNotifications); -} - -bool IsHideShelfControlsInTabletModeEnabled() { - return base::FeatureList::IsEnabled(kHideShelfControlsInTabletMode); -} - -bool IsReverseScrollGesturesEnabled() { - return base::FeatureList::IsEnabled(kReverseScrollGestures); -} - -bool IsFullscreenAlertBubbleEnabled() { - return base::FeatureList::IsEnabled(kFullscreenAlertBubble); -} - -bool AreContextualNudgesEnabled() { - if (!IsHideShelfControlsInTabletModeEnabled()) - return false; - return base::FeatureList::IsEnabled(kContextualNudges); -} - -bool IsStylusBatteryStatusEnabled() { - return base::FeatureList::IsEnabled(kStylusBatteryStatus); -} - -bool IsDisplayIdentificationEnabled() { - return base::FeatureList::IsEnabled(kDisplayIdentification); -} - -bool IsVerticalSplitScreenEnabled() { - return base::FeatureList::IsEnabled(kVerticalSplitScreen); -} - -bool IsWebUITabStripTabDragIntegrationEnabled() { - return base::FeatureList::IsEnabled(kWebUITabStripTabDragIntegration); -} - -bool IsDisplayAlignmentAssistanceEnabled() { - return base::FeatureList::IsEnabled(kDisplayAlignAssist); -} - -bool IsNotificationsInContextMenuEnabled() { - return base::FeatureList::IsEnabled(kNotificationsInContextMenu); -} - -bool IsHoldingSpaceArcIntegrationEnabled() { - return base::FeatureList::IsEnabled(kHoldingSpaceArcIntegration); -} - -bool IsHoldingSpaceInProgressDownloadsIntegrationEnabled() { - return base::FeatureList::IsEnabled( - kHoldingSpaceInProgressDownloadsIntegration); -} - -bool IsDragUnpinnedAppToPinEnabled() { - return base::FeatureList::IsEnabled(kDragUnpinnedAppToPin); -} - -bool IsScalableStatusAreaEnabled() { - return base::FeatureList::IsEnabled(kScalableStatusArea); -} - -bool IsShowDateInTrayButtonEnabled() { - return IsScalableStatusAreaEnabled() && - base::FeatureList::IsEnabled(kShowDateInTrayButton); -} - -bool DoWindowsFollowCursor() { - return base::FeatureList::IsEnabled(kWindowsFollowCursor); -} - -bool IsBentoBarEnabled() { - return base::FeatureList::IsEnabled(kBentoBar); -} - -namespace { - -// The boolean flag indicating if "WebUITabStrip" feature is enabled in Chrome. -bool g_webui_tab_strip_enabled = false; - -} // namespace - -void SetWebUITabStripEnabled(bool enabled) { - g_webui_tab_strip_enabled = enabled; -} - -bool IsWebUITabStripEnabled() { - return g_webui_tab_strip_enabled; -} - -} // namespace features -} // namespace ash
diff --git a/ash/public/cpp/ash_features.h b/ash/public/cpp/ash_features.h deleted file mode 100644 index 9752aa0..0000000 --- a/ash/public/cpp/ash_features.h +++ /dev/null
@@ -1,277 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef ASH_PUBLIC_CPP_ASH_FEATURES_H_ -#define ASH_PUBLIC_CPP_ASH_FEATURES_H_ - -#include "ash/public/cpp/ash_public_export.h" -#include "base/feature_list.h" - -namespace ash { -namespace features { - -// Enables the UI to support Ambient EQ if the device supports it. -// See https://crbug.com/1021193 for more details. -ASH_PUBLIC_EXPORT extern const base::Feature kAllowAmbientEQ; - -// Enables resize lock for ARC++ and puts restrictions on window resizing. -// TODO(takise): Remove this after the feature is fully launched. -ASH_PUBLIC_EXPORT extern const base::Feature kArcResizeLock; - -// Enables the Auto Night Light feature which sets the default schedule type to -// sunset-to-sunrise until the user changes it to something else. This feature -// is not exposed to the end user, and is enabled only via cros_config for -// certain devices. -ASH_PUBLIC_EXPORT extern const base::Feature kAutoNightLight; - -// Enables the persistent desks bar at the top of the screen in clamshell mode -// when there are more than one desk. -ASH_PUBLIC_EXPORT extern const base::Feature kBentoBar; - -// Enables the Capture Mode feature which is an enhanced screenshot and screen -// capture user experience. -ASH_PUBLIC_EXPORT extern const base::Feature kCaptureMode; - -// Enables compositing-based throttling to throttle appropriate frame sinks that -// do not need to be refreshed at high fps. -ASH_PUBLIC_EXPORT extern const base::Feature kCompositingBasedThrottling; - -// Enables contextual nudges for gesture education. -ASH_PUBLIC_EXPORT extern const base::Feature kContextualNudges; - -// Enables dark/light mode feature. -ASH_PUBLIC_EXPORT extern const base::Feature kDarkLightMode; - -// Enables indicators to hint where displays are connected. -ASH_PUBLIC_EXPORT extern const base::Feature kDisplayAlignAssist; - -// Enables identification overlays on each display. -ASH_PUBLIC_EXPORT extern const base::Feature kDisplayIdentification; - -// Enables the docked (a.k.a. picture-in-picture) magnifier. -// TODO(afakhry): Remove this after the feature is fully launched. -// https://crbug.com/709824. -ASH_PUBLIC_EXPORT extern const base::Feature kDockedMagnifier; - -// Limits the windows listed in Alt-Tab to the ones in the currently active -// desk. -ASH_PUBLIC_EXPORT extern const base::Feature kLimitAltTabToActiveDesk; - -// Enables notifications on the lock screen. -ASH_PUBLIC_EXPORT extern const base::Feature kLockScreenNotifications; - -// Enables inline reply on notifications on the lock screen. -// This option is effective when |kLockScreenNotification| is enabled. -ASH_PUBLIC_EXPORT extern const base::Feature kLockScreenInlineReply; - -// Supports the feature to hide sensitive content in notifications on the lock -// screen. This option is effective when |kLockScreenNotification| is enabled. -ASH_PUBLIC_EXPORT extern const base::Feature - kLockScreenHideSensitiveNotificationsSupport; - -// Enables lock screen media controls UI and use of media keys on the lock -// screen. -ASH_PUBLIC_EXPORT extern const base::Feature kLockScreenMediaControls; - -// Enables hiding of ARC media notifications. If this is enabled, all ARC -// notifications that are of the media type will not be shown. This -// is because they will be replaced by native media session notifications. -// TODO(beccahughes): Remove after launch. (https://crbug.com/897836) -ASH_PUBLIC_EXPORT extern const base::Feature kHideArcMediaNotifications; - -// Enables using arrow keys for display arrangement in display settings page. -ASH_PUBLIC_EXPORT extern const base::Feature - kKeyboardBasedDisplayArrangementInSettings; - -// Enables the redesigned managed device info UI in the system tray. -ASH_PUBLIC_EXPORT extern const base::Feature kManagedDeviceUIRedesign; - -// Enables resizing/moving the selection region for partial screenshot. -ASH_PUBLIC_EXPORT extern const base::Feature kMovablePartialScreenshot; - -// Enables the Night Light feature. -ASH_PUBLIC_EXPORT extern const base::Feature kNightLight; - -// Enabled notification expansion animation. -ASH_PUBLIC_EXPORT extern const base::Feature kNotificationExpansionAnimation; - -// Shorten notification timeouts to 6 seconds. -ASH_PUBLIC_EXPORT extern const base::Feature - kNotificationExperimentalShortTimeouts; - -// Enables notification scroll bar in UnifiedSystemTray. -ASH_PUBLIC_EXPORT extern const base::Feature kNotificationScrollBar; - -// Limits the items on the shelf to the ones associated with windows the -// currently active desk. -ASH_PUBLIC_EXPORT extern const base::Feature kPerDeskShelf; - -// Enables rounded corners for the Picture-in-picture window. -ASH_PUBLIC_EXPORT extern const base::Feature kPipRoundedCorners; - -// Enables suppression of Displays notifications other than resolution change. -ASH_PUBLIC_EXPORT extern const base::Feature kReduceDisplayNotifications; - -// Enables displaying separate network icons for different networks types. -// https://crbug.com/902409 -ASH_PUBLIC_EXPORT extern const base::Feature kSeparateNetworkIcons; - -// Enables trilinear filtering. -ASH_PUBLIC_EXPORT extern const base::Feature kTrilinearFiltering; - -// Enables using the BluetoothSystem Mojo interface for Bluetooth operations. -ASH_PUBLIC_EXPORT extern const base::Feature kUseBluetoothSystemInAsh; - -// Enables background blur for the app list, shelf, unified system tray, -// autoclick menu, etc. Also enables the AppsGridView mask layer, slower devices -// may have choppier app list animations while in this mode. crbug.com/765292. -ASH_PUBLIC_EXPORT extern const base::Feature kEnableBackgroundBlur; - -// When enabled, shelf navigation controls and the overview tray item will be -// removed from the shelf in tablet mode (unless otherwise specified by user -// preferences, or policy). -ASH_PUBLIC_EXPORT extern const base::Feature kHideShelfControlsInTabletMode; - -// When enabled, the overivew and desk reverse scrolling behaviors are changed -// and if the user performs the old gestures, a notification or toast will show -// up. -// TODO(https://crbug.com/1107183): Remove this after the feature is launched. -ASH_PUBLIC_EXPORT extern const base::Feature kReverseScrollGestures; - -// When enabled, there will be an alert bubble showing up when the device -// returns from low brightness (e.g., sleep, closed cover) without a lock screen -// and the active window is in fullscreen. -// TODO(https://crbug.com/1107185): Remove this after the feature is launched. -ASH_PUBLIC_EXPORT extern const base::Feature kFullscreenAlertBubble; - -// Enables battery indicator for styluses in the palette tray -ASH_PUBLIC_EXPORT extern const base::Feature kStylusBatteryStatus; - -// Enables vertical split screen for clamshell mode. This allows users to snap -// top and bottom when the screen is in portrait orientation, while snap left -// and right when the screen is in landscape orientation. -ASH_PUBLIC_EXPORT extern const base::Feature kVerticalSplitScreen; - -// Enables special handling of Chrome tab drags from a WebUI tab strip. -// These will be treated similarly to a window drag, showing split view -// indicators in tablet mode, etc. The functionality is behind a flag -// right now since it is under development. -ASH_PUBLIC_EXPORT extern const base::Feature kWebUITabStripTabDragIntegration; - -// Change window creation to be based on cursor position -// when there are multiple displays. -ASH_PUBLIC_EXPORT extern const base::Feature kWindowsFollowCursor; - -// Enables notifications to be shown within context menus. -ASH_PUBLIC_EXPORT extern const base::Feature kNotificationsInContextMenu; - -// Enables ARC integration with the productivity feature that aims to reduce -// context switching by enabling users to collect content and transfer or access -// it later. -ASH_PUBLIC_EXPORT extern const base::Feature kHoldingSpaceArcIntegration; - -// Enables in-progress downloads integration with the productivity feature that -// aims to reduce context switching by enabling users to collect content and -// transfer or access it later. -ASH_PUBLIC_EXPORT extern const base::Feature - kHoldingSpaceInProgressDownloadsIntegration; - -// Enables dragging an unpinned open app to pinned app side to pin. -ASH_PUBLIC_EXPORT extern const base::Feature kDragUnpinnedAppToPin; - -// Enables the system tray to show more information in larger screen. -ASH_PUBLIC_EXPORT extern const base::Feature kScalableStatusArea; - -// Enables the system tray to show date in sufficiently large screen. -ASH_PUBLIC_EXPORT extern const base::Feature kShowDateInTrayButton; - -ASH_PUBLIC_EXPORT bool IsAllowAmbientEQEnabled(); - -ASH_PUBLIC_EXPORT bool IsAltTabLimitedToActiveDesk(); - -ASH_PUBLIC_EXPORT bool IsPerDeskShelfEnabled(); - -ASH_PUBLIC_EXPORT bool IsArcResizeLockEnabled(); - -ASH_PUBLIC_EXPORT bool IsAutoNightLightEnabled(); - -ASH_PUBLIC_EXPORT bool IsCaptureModeEnabled(); - -ASH_PUBLIC_EXPORT bool IsCompositingBasedThrottlingEnabled(); - -ASH_PUBLIC_EXPORT bool IsDarkLightModeEnabled(); - -ASH_PUBLIC_EXPORT bool IsHideArcMediaNotificationsEnabled(); - -ASH_PUBLIC_EXPORT bool IsKeyboardBasedDisplayArrangementInSettingsEnabled(); - -ASH_PUBLIC_EXPORT bool IsKeyboardShortcutViewerAppEnabled(); - -ASH_PUBLIC_EXPORT bool IsLockScreenNotificationsEnabled(); - -ASH_PUBLIC_EXPORT bool IsManagedDeviceUIRedesignEnabled(); - -ASH_PUBLIC_EXPORT bool IsLockScreenInlineReplyEnabled(); - -ASH_PUBLIC_EXPORT bool IsLockScreenHideSensitiveNotificationsSupported(); - -ASH_PUBLIC_EXPORT bool IsNotificationExpansionAnimationEnabled(); - -ASH_PUBLIC_EXPORT bool IsNotificationExperimentalShortTimeoutsEnabled(); - -ASH_PUBLIC_EXPORT bool IsNotificationScrollBarEnabled(); - -ASH_PUBLIC_EXPORT bool IsPipRoundedCornersEnabled(); - -ASH_PUBLIC_EXPORT bool IsSeparateNetworkIconsEnabled(); - -ASH_PUBLIC_EXPORT bool IsTrilinearFilteringEnabled(); - -ASH_PUBLIC_EXPORT bool IsBackgroundBlurEnabled(); - -ASH_PUBLIC_EXPORT bool IsReduceDisplayNotificationsEnabled(); - -ASH_PUBLIC_EXPORT bool IsHideShelfControlsInTabletModeEnabled(); - -ASH_PUBLIC_EXPORT bool IsReverseScrollGesturesEnabled(); - -ASH_PUBLIC_EXPORT bool IsFullscreenAlertBubbleEnabled(); - -ASH_PUBLIC_EXPORT bool AreContextualNudgesEnabled(); - -ASH_PUBLIC_EXPORT bool IsStylusBatteryStatusEnabled(); - -ASH_PUBLIC_EXPORT bool IsDisplayIdentificationEnabled(); - -ASH_PUBLIC_EXPORT bool IsVerticalSplitScreenEnabled(); - -ASH_PUBLIC_EXPORT bool IsWebUITabStripTabDragIntegrationEnabled(); - -ASH_PUBLIC_EXPORT bool IsDisplayAlignmentAssistanceEnabled(); - -ASH_PUBLIC_EXPORT bool IsNotificationsInContextMenuEnabled(); - -ASH_PUBLIC_EXPORT bool IsHoldingSpaceArcIntegrationEnabled(); - -ASH_PUBLIC_EXPORT bool IsHoldingSpaceInProgressDownloadsIntegrationEnabled(); - -ASH_PUBLIC_EXPORT bool IsDragUnpinnedAppToPinEnabled(); - -ASH_PUBLIC_EXPORT bool IsScalableStatusAreaEnabled(); - -ASH_PUBLIC_EXPORT bool IsShowDateInTrayButtonEnabled(); - -ASH_PUBLIC_EXPORT bool IsBentoBarEnabled(); - -// These two functions are supposed to be temporary functions to set or get -// whether "WebUITabStrip" feature is enabled from Chrome. -ASH_PUBLIC_EXPORT void SetWebUITabStripEnabled(bool enabled); -ASH_PUBLIC_EXPORT bool IsWebUITabStripEnabled(); - -ASH_PUBLIC_EXPORT bool DoWindowsFollowCursor(); - -} // namespace features -} // namespace ash - -#endif // ASH_PUBLIC_CPP_ASH_FEATURES_H_
diff --git a/ash/public/cpp/external_arc/message_center/arc_notification_content_view.cc b/ash/public/cpp/external_arc/message_center/arc_notification_content_view.cc index a1fca9c9..2a4c0a8ce 100644 --- a/ash/public/cpp/external_arc/message_center/arc_notification_content_view.cc +++ b/ash/public/cpp/external_arc/message_center/arc_notification_content_view.cc
@@ -6,7 +6,6 @@ #include <memory> -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/external_arc/message_center/arc_notification_surface.h" #include "ash/public/cpp/external_arc/message_center/arc_notification_view.h" #include "base/auto_reset.h"
diff --git a/ash/public/cpp/external_arc/message_center/arc_notification_manager.cc b/ash/public/cpp/external_arc/message_center/arc_notification_manager.cc index 0838282..017d518 100644 --- a/ash/public/cpp/external_arc/message_center/arc_notification_manager.cc +++ b/ash/public/cpp/external_arc/message_center/arc_notification_manager.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> +#include "ash/constants/ash_features.h" #include "ash/public/cpp/arc_app_id_provider.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/external_arc/message_center/arc_notification_delegate.h" #include "ash/public/cpp/external_arc/message_center/arc_notification_item_impl.h" #include "ash/public/cpp/external_arc/message_center/arc_notification_view.h"
diff --git a/ash/public/cpp/file_icon_util.cc b/ash/public/cpp/file_icon_util.cc index 8146272..aeddabb2 100644 --- a/ash/public/cpp/file_icon_util.cc +++ b/ash/public/cpp/file_icon_util.cc
@@ -7,7 +7,7 @@ #include <string> #include <utility> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "base/files/file_path.h" #include "base/no_destructor.h" #include "base/strings/string_util.h"
diff --git a/ash/search_box/search_box_view_base.cc b/ash/search_box/search_box_view_base.cc index 2b6f97ba..37890041 100644 --- a/ash/search_box/search_box_view_base.cc +++ b/ash/search_box/search_box_view_base.cc
@@ -233,9 +233,6 @@ : delegate_(delegate), content_container_(new views::View), search_box_(new SearchBoxTextfield(this)) { - // Focus should be able to move from search box to items in app list view. - SetFocusTraversesOut(true); - DCHECK(delegate_); SetLayoutManager(std::make_unique<views::FillLayout>()); AddChildView(content_container_); @@ -410,13 +407,6 @@ search_box_->DestroyTouchSelection(); } -ax::mojom::Role SearchBoxViewBase::GetAccessibleWindowRole() { - // Default role of root view is ax::mojom::Role::kWindow which traps ChromeVox - // focus within the root view. Assign ax::mojom::Role::kGroup here to allow - // the focus to move from elements in search box to app list view. - return ax::mojom::Role::kGroup; -} - void SearchBoxViewBase::OnSearchBoxFocusedChanged() { UpdateSearchBoxBorder(); Layout();
diff --git a/ash/search_box/search_box_view_base.h b/ash/search_box/search_box_view_base.h index d6b985a..b7f9bc7e 100644 --- a/ash/search_box/search_box_view_base.h +++ b/ash/search_box/search_box_view_base.h
@@ -15,7 +15,7 @@ #include "ui/views/background.h" #include "ui/views/controls/button/image_button.h" #include "ui/views/controls/textfield/textfield_controller.h" -#include "ui/views/widget/widget_delegate.h" +#include "ui/views/view.h" namespace gfx { class ImageSkia; @@ -25,7 +25,6 @@ class BoxLayout; class ImageView; class Textfield; -class View; } // namespace views namespace ash { @@ -43,14 +42,11 @@ kMaxValue = kGestureTap, }; -// TODO(wutao): WidgetDelegateView owns itself and cannot be deleted from the -// views hierarchy automatically. Make SearchBoxViewBase a subclass of View -// instead of WidgetDelegateView. // SearchBoxViewBase consists of icons and a Textfield. The Textfiled is for // inputting queries and triggering callbacks. The icons include a search icon, // a close icon and a back icon for different functionalities. This class // provides common functions for the search box view across Chrome OS. -class SearchBoxViewBase : public views::WidgetDelegateView, +class SearchBoxViewBase : public views::View, public views::TextfieldController { public: explicit SearchBoxViewBase(SearchBoxViewDelegate* delegate); @@ -92,9 +88,6 @@ // deactivating the searchbox. void NotifyGestureEvent(); - // Overridden from views::WidgetDelegate: - ax::mojom::Role GetAccessibleWindowRole() override; - // Used only in the tests to get the current search icon. views::ImageView* get_search_icon_for_test() { return search_icon_; }
diff --git a/ash/session/fullscreen_controller.cc b/ash/session/fullscreen_controller.cc index de933b1e..f808e3a 100644 --- a/ash/session/fullscreen_controller.cc +++ b/ash/session/fullscreen_controller.cc
@@ -6,7 +6,7 @@ #include <limits> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/session/fullscreen_alert_bubble.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/shelf/assistant_overlay_unittest.cc b/ash/shelf/assistant_overlay_unittest.cc index a72a9c4..c8d7d6c 100644 --- a/ash/shelf/assistant_overlay_unittest.cc +++ b/ash/shelf/assistant_overlay_unittest.cc
@@ -9,7 +9,6 @@ #include <vector> #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/assistant/assistant_state.h" #include "ash/public/cpp/shelf_config.h"
diff --git a/ash/shelf/back_button_unittest.cc b/ash/shelf/back_button_unittest.cc index f1ca631..58b1563 100644 --- a/ash/shelf/back_button_unittest.cc +++ b/ash/shelf/back_button_unittest.cc
@@ -10,7 +10,7 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/app_list/test/app_list_test_helper.h" #include "ash/app_list/views/app_list_view.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/shelf/shelf.h" #include "ash/shelf/shelf_navigation_widget.h" #include "ash/shelf/shelf_view.h"
diff --git a/ash/shelf/contextual_tooltip.cc b/ash/shelf/contextual_tooltip.cc index 32a334b..874793c 100644 --- a/ash/shelf/contextual_tooltip.cc +++ b/ash/shelf/contextual_tooltip.cc
@@ -4,8 +4,8 @@ #include "ash/shelf/contextual_tooltip.h" +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/shelf_config.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/shelf/contextual_tooltip_unittest.cc b/ash/shelf/contextual_tooltip_unittest.cc index aa2bc02d..43a428e 100644 --- a/ash/shelf/contextual_tooltip_unittest.cc +++ b/ash/shelf/contextual_tooltip_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/shelf/contextual_tooltip.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/session/session_controller_impl.h" #include "ash/shelf/contextual_nudge_status_tracker.h"
diff --git a/ash/shelf/drag_handle.cc b/ash/shelf/drag_handle.cc index 0e2f2d8..e773714 100644 --- a/ash/shelf/drag_handle.cc +++ b/ash/shelf/drag_handle.cc
@@ -5,7 +5,7 @@ #include "ash/shelf/drag_handle.h" #include "ash/accessibility/accessibility_controller_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/session/session_controller_impl.h" #include "ash/shelf/contextual_tooltip.h"
diff --git a/ash/shelf/home_button_unittest.cc b/ash/shelf/home_button_unittest.cc index 83524af..1796a30f 100644 --- a/ash/shelf/home_button_unittest.cc +++ b/ash/shelf/home_button_unittest.cc
@@ -15,7 +15,7 @@ #include "ash/assistant/assistant_controller_impl.h" #include "ash/assistant/model/assistant_ui_model.h" #include "ash/assistant/test/test_assistant_service.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/assistant/controller/assistant_ui_controller.h" #include "ash/public/cpp/tablet_mode.h" #include "ash/root_window_controller.h"
diff --git a/ash/shelf/home_to_overview_nudge_controller_unittest.cc b/ash/shelf/home_to_overview_nudge_controller_unittest.cc index 3475550..59f61fc 100644 --- a/ash/shelf/home_to_overview_nudge_controller_unittest.cc +++ b/ash/shelf/home_to_overview_nudge_controller_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/shelf/home_to_overview_nudge_controller.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/session/session_controller_impl.h" #include "ash/shelf/contextual_nudge.h"
diff --git a/ash/shelf/hotseat_widget.cc b/ash/shelf/hotseat_widget.cc index b21b007d..b9bc4c39 100644 --- a/ash/shelf/hotseat_widget.cc +++ b/ash/shelf/hotseat_widget.cc
@@ -6,9 +6,9 @@ #include <utility> +#include "ash/constants/ash_features.h" #include "ash/focus_cycler.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/shelf_model.h" #include "ash/public/cpp/shelf_types.h"
diff --git a/ash/shelf/hotseat_widget_unittest.cc b/ash/shelf/hotseat_widget_unittest.cc index d3bee8cf..c31dd9f 100644 --- a/ash/shelf/hotseat_widget_unittest.cc +++ b/ash/shelf/hotseat_widget_unittest.cc
@@ -10,8 +10,8 @@ #include "ash/app_list/test/app_list_test_helper.h" #include "ash/app_list/views/app_list_view.h" #include "ash/assistant/assistant_controller_impl.h" +#include "ash/constants/ash_features.h" #include "ash/focus_cycler.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/assistant/controller/assistant_ui_controller.h" #include "ash/public/cpp/presentation_time_recorder.h" #include "ash/public/cpp/test/assistant_test_api.h"
diff --git a/ash/shelf/scrollable_shelf_view_unittest.cc b/ash/shelf/scrollable_shelf_view_unittest.cc index 769b35d..a74f46b 100644 --- a/ash/shelf/scrollable_shelf_view_unittest.cc +++ b/ash/shelf/scrollable_shelf_view_unittest.cc
@@ -8,7 +8,6 @@ #include "ash/app_list/app_list_presenter_impl.h" #include "ash/app_list/views/app_list_view.h" #include "ash/drag_drop/drag_image_view.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/root_window_controller.h" #include "ash/shelf/scrollable_shelf_constants.h"
diff --git a/ash/shelf/shelf.cc b/ash/shelf/shelf.cc index 8634f7f7..9dac3c59 100644 --- a/ash/shelf/shelf.cc +++ b/ash/shelf/shelf.cc
@@ -9,7 +9,6 @@ #include "ash/animation/animation_change_type.h" #include "ash/app_list/app_list_controller_impl.h" #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/keyboard/keyboard_controller_observer.h" #include "ash/public/cpp/shelf_item_delegate.h" #include "ash/public/cpp/shelf_model.h"
diff --git a/ash/shelf/shelf_config.cc b/ash/shelf/shelf_config.cc index d059ee3..2c7146a7 100644 --- a/ash/shelf/shelf_config.cc +++ b/ash/shelf/shelf_config.cc
@@ -7,7 +7,7 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/accessibility/accessibility_observer.h" #include "ash/app_list/app_list_controller_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "ash/style/ash_color_provider.h"
diff --git a/ash/shelf/shelf_drag_handle_unittest.cc b/ash/shelf/shelf_drag_handle_unittest.cc index e6357ad..b45d102 100644 --- a/ash/shelf/shelf_drag_handle_unittest.cc +++ b/ash/shelf/shelf_drag_handle_unittest.cc
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "ash/app_list/test/app_list_test_helper.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/shelf_types.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc index c644a2e6..97085aa 100644 --- a/ash/shelf/shelf_layout_manager.cc +++ b/ash/shelf/shelf_layout_manager.cc
@@ -13,9 +13,9 @@ #include "ash/app_list/app_list_controller_impl.h" #include "ash/app_list/app_list_metrics.h" #include "ash/app_list/views/app_list_view.h" +#include "ash/constants/ash_features.h" #include "ash/display/screen_orientation_controller.h" #include "ash/public/cpp/app_list/app_list_types.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/presentation_time_recorder.h" #include "ash/public/cpp/shelf_config.h"
diff --git a/ash/shelf/shelf_layout_manager_unittest.cc b/ash/shelf/shelf_layout_manager_unittest.cc index 32936d1..dc0f730 100644 --- a/ash/shelf/shelf_layout_manager_unittest.cc +++ b/ash/shelf/shelf_layout_manager_unittest.cc
@@ -20,7 +20,6 @@ #include "ash/keyboard/ui/keyboard_ui.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" #include "ash/keyboard/ui/keyboard_util.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/ash_prefs.h" #include "ash/public/cpp/keyboard/keyboard_controller.h"
diff --git a/ash/shelf/shelf_tooltip_bubble.cc b/ash/shelf/shelf_tooltip_bubble.cc index b16588a..1457dec 100644 --- a/ash/shelf/shelf_tooltip_bubble.cc +++ b/ash/shelf/shelf_tooltip_bubble.cc
@@ -4,7 +4,7 @@ #include "ash/shelf/shelf_tooltip_bubble.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/style/ash_color_provider.h" #include "ash/system/tray/tray_constants.h" #include "ash/wm/collision_detection/collision_detection_utils.h"
diff --git a/ash/shelf/shelf_view.cc b/ash/shelf/shelf_view.cc index 9abc6c2..b1e6805 100644 --- a/ash/shelf/shelf_view.cc +++ b/ash/shelf/shelf_view.cc
@@ -9,11 +9,11 @@ #include <utility> #include "ash/app_list/app_list_controller_impl.h" +#include "ash/constants/ash_features.h" #include "ash/drag_drop/drag_image_view.h" #include "ash/keyboard/keyboard_util.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" #include "ash/metrics/user_metrics_recorder.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/metrics_util.h" #include "ash/public/cpp/shelf_model.h" #include "ash/public/cpp/shelf_types.h"
diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc index 0866dd5..439f6eb 100644 --- a/ash/shelf/shelf_view_unittest.cc +++ b/ash/shelf/shelf_view_unittest.cc
@@ -13,11 +13,11 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/app_list/test/app_list_test_helper.h" #include "ash/app_list/views/app_list_view.h" +#include "ash/constants/ash_features.h" #include "ash/display/screen_orientation_controller.h" #include "ash/display/screen_orientation_controller_test_api.h" #include "ash/focus_cycler.h" #include "ash/ime/ime_controller_impl.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/shelf_item_delegate.h" #include "ash/public/cpp/shelf_model.h"
diff --git a/ash/shelf/shelf_widget.cc b/ash/shelf/shelf_widget.cc index 25c31325..d71cb5f 100644 --- a/ash/shelf/shelf_widget.cc +++ b/ash/shelf/shelf_widget.cc
@@ -9,9 +9,9 @@ #include "ash/animation/animation_change_type.h" #include "ash/app_list/app_list_controller_impl.h" +#include "ash/constants/ash_features.h" #include "ash/focus_cycler.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/shelf_model.h" #include "ash/public/cpp/window_properties.h"
diff --git a/ash/shelf/shelf_widget_unittest.cc b/ash/shelf/shelf_widget_unittest.cc index feca64f..95f994c 100644 --- a/ash/shelf/shelf_widget_unittest.cc +++ b/ash/shelf/shelf_widget_unittest.cc
@@ -4,11 +4,11 @@ #include "ash/shelf/shelf_widget.h" +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" #include "ash/keyboard/ui/keyboard_util.h" #include "ash/keyboard/ui/test/keyboard_test_util.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/keyboard/keyboard_switches.h" #include "ash/public/cpp/shelf_config.h" #include "ash/root_window_controller.h"
diff --git a/ash/shelf/swipe_home_to_overview_controller.cc b/ash/shelf/swipe_home_to_overview_controller.cc index 780eb3f..f21518ed 100644 --- a/ash/shelf/swipe_home_to_overview_controller.cc +++ b/ash/shelf/swipe_home_to_overview_controller.cc
@@ -5,8 +5,8 @@ #include "ash/shelf/swipe_home_to_overview_controller.h" #include "ash/app_list/app_list_controller_impl.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/app_list/app_list_config.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/session/session_controller_impl.h" #include "ash/shelf/contextual_tooltip.h"
diff --git a/ash/shelf/swipe_home_to_overview_controller_unittest.cc b/ash/shelf/swipe_home_to_overview_controller_unittest.cc index 3c51353..cc10588 100644 --- a/ash/shelf/swipe_home_to_overview_controller_unittest.cc +++ b/ash/shelf/swipe_home_to_overview_controller_unittest.cc
@@ -8,7 +8,6 @@ #include "ash/app_list/test/app_list_test_helper.h" #include "ash/app_list/views/app_list_view.h" #include "ash/app_list/views/search_box_view.h" -#include "ash/public/cpp/ash_features.h" #include "ash/root_window_controller.h" #include "ash/shelf/shelf.h" #include "ash/shelf/shelf_metrics.h"
diff --git a/ash/shell.cc b/ash/shell.cc index ccd6f0a..412d9990 100644 --- a/ash/shell.cc +++ b/ash/shell.cc
@@ -79,7 +79,6 @@ #include "ash/multi_device_setup/multi_device_notification_presenter.h" #include "ash/policy/policy_recommendation_restorer.h" #include "ash/projector/projector_controller_impl.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_prefs.h" #include "ash/public/cpp/holding_space/holding_space_controller.h" #include "ash/public/cpp/nearby_share_delegate.h"
diff --git a/ash/shell_tab_handler.cc b/ash/shell_tab_handler.cc index 8ef79a2..f8e3557 100644 --- a/ash/shell_tab_handler.cc +++ b/ash/shell_tab_handler.cc
@@ -6,7 +6,6 @@ #include "ash/capture_mode/capture_mode_util.h" #include "ash/focus_cycler.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shelf/shelf.h" #include "ash/shelf/shelf_navigation_widget.h" #include "ash/shell.h"
diff --git a/ash/shortcut_viewer/keyboard_shortcut_viewer_metadata.cc b/ash/shortcut_viewer/keyboard_shortcut_viewer_metadata.cc index 7fac2057..5e310f0 100644 --- a/ash/shortcut_viewer/keyboard_shortcut_viewer_metadata.cc +++ b/ash/shortcut_viewer/keyboard_shortcut_viewer_metadata.cc
@@ -5,7 +5,6 @@ #include "ash/shortcut_viewer/keyboard_shortcut_viewer_metadata.h" #include "ash/constants/ash_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shortcut_viewer/keyboard_shortcut_item.h" #include "ash/shortcut_viewer/strings/grit/shortcut_viewer_strings.h" #include "ash/shortcut_viewer/vector_icons/vector_icons.h"
diff --git a/ash/shortcut_viewer/views/keyboard_shortcut_view.cc b/ash/shortcut_viewer/views/keyboard_shortcut_view.cc index e8722eb4..43ff618 100644 --- a/ash/shortcut_viewer/views/keyboard_shortcut_view.cc +++ b/ash/shortcut_viewer/views/keyboard_shortcut_view.cc
@@ -365,9 +365,9 @@ void KeyboardShortcutView::InitViews() { TRACE_EVENT0("shortcut_viewer", "InitViews"); // Init search box view. - search_box_view_ = std::make_unique<KSVSearchBoxView>(this); - search_box_view_->Init(); - AddChildView(search_box_view_.get()); + auto search_box_view = std::make_unique<KSVSearchBoxView>(this); + search_box_view->Init(); + search_box_view_ = AddChildView(std::move(search_box_view)); // Init no search result illustration view. search_no_result_view_ = CreateNoSearchResultView(); @@ -611,7 +611,7 @@ } KSVSearchBoxView* KeyboardShortcutView::GetSearchBoxViewForTesting() { - return search_box_view_.get(); + return search_box_view_; } const std::vector<KeyboardShortcutItemView*>&
diff --git a/ash/shortcut_viewer/views/keyboard_shortcut_view.h b/ash/shortcut_viewer/views/keyboard_shortcut_view.h index e2e6247..257f102 100644 --- a/ash/shortcut_viewer/views/keyboard_shortcut_view.h +++ b/ash/shortcut_viewer/views/keyboard_shortcut_view.h
@@ -96,9 +96,8 @@ // The container for KeyboardShortcutItemViews matching a user's query. views::View* search_results_container_ = nullptr; - // SearchBoxViewBase is a WidgetDelegateView, which owns itself and cannot be - // deleted from the views hierarchy automatically. - std::unique_ptr<KSVSearchBoxView> search_box_view_; + // Owned by views hierarchy. + KSVSearchBoxView* search_box_view_ = nullptr; // Contains all the shortcut item views from all categories. This list is also // used for searching. The views are not owned by the Views hierarchy to avoid
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb index 0dd28cbc..16f5b2bc 100644 --- a/ash/strings/ash_strings_af.xtb +++ b/ash/strings/ash_strings_af.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Moenie Steur Nie is aan.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Wys kennisgewinginstellings. Kennisgewings is af vir 'n program}other{Wys kennisgewinginstellings. Kennisgewings is af vir # programme}}</translation> <translation id="1525508553941733066">MAAK TOE</translation> +<translation id="1536604384701784949">Om <ph name="USER_EMAIL_ADDRESS" /> te gebruik, moet jy eers uit alle rekeninge afmeld. Om af te meld, moet jy Kanselleer kies om terug te gaan. Kies dan die tyd om die statusarea oop te maak en kies Meld af. Meld dan weer by <ph name="USER_EMAIL_ADDRESS_2" /> aan.</translation> <translation id="15373452373711364">Groot muismerker</translation> <translation id="1546492247443594934">Lessenaar 2</translation> <translation id="1550523713251050646">Klik vir meer opsies</translation> @@ -525,6 +526,7 @@ <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="5039804452771397117">Laat toe</translation> <translation id="504465286040788597">Vorige paragraaf</translation> <translation id="5071064518267176975">'n Program wil die mikrofoon gebruik</translation> <translation id="5075554201838155866">Begin onderskrifte</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Pin</translation> <translation id="746232733191930409">Skermopnamemodus</translation> <translation id="7466449121337984263">Raak asseblief die sensor</translation> +<translation id="7473891865547856676">Nee, dankie</translation> <translation id="7477793887173910789">Beheer jou musiek, video's en meer</translation> <translation id="7483025031359818980">Seleksiearea is gestel op volskerm</translation> <translation id="7486227320194954040">Vou merkernutsgoed in</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index fbd5a04..dd885ca0 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">አትረብሽ በርቷል።</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{የማሳወቂያ ቅንብሮችን አሳይ። ማሳወቂያዎች ለአንድ መተግበሪያ ጠፍተዋል}one{የማሳወቂያ ቅንብሮችን አሳይ። ማሳወቂያዎች ለ# መተግበሪያዎች ጠፍተዋል}other{የማሳወቂያ ቅንብሮችን አሳይ። ማሳወቂያዎች ለ# መተግበሪያዎች ጠፍተዋል}}</translation> <translation id="1525508553941733066">አሰናብት</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" />ን ለመጠቀም በመጀመሪያ ከሁሉም መለያዎች ዘግተው መውጣት ይኖርብዎታል። ዘግቶ ለመውጣት ወደ ኋላ ለመመለስ ይቅር የሚለውን ይምረጡ። ከዚያ የሁኔታውን አከባቢ ለመክፈት ጊዜውን ይምረጡ እና ዘግተህ ውጣ የሚለውን ይምረጡ። ከዚያ እንደገና ወደ <ph name="USER_EMAIL_ADDRESS_2" /> በመለያ ይግቡ።</translation> <translation id="15373452373711364">ትልቅ የመዳፊት ጠቋሚ</translation> <translation id="1546492247443594934">ዴስክ 2</translation> <translation id="1550523713251050646">ለተጨማሪ አማራጮች ጠቅ ያድርጉ</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">ሙሉ ማያ ገጽን ለመቅረጽ በማንኛውም ቦታ ላይ ጠቅ ያድርጉ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ከአዲስ ስልክ ጋር ተገናኝቷል</translation> <translation id="5035389544768382859">የማሳያ ውቅረትን ያረጋግጡ</translation> +<translation id="5039804452771397117">ፍቀድ</translation> <translation id="504465286040788597">ቀዳሚ አንቀጽ</translation> <translation id="5071064518267176975">አንድ መተግበሪያ ማይክሮፎኑን መጠቀም ይፈልጋል</translation> <translation id="5075554201838155866">ዝግ መግለጫ ፅሁፎችን ይጀምሩ</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">ሰካ</translation> <translation id="746232733191930409">የማያ ገጽ ቀረጻ ሁነታ</translation> <translation id="7466449121337984263">እባክዎ ዳሳሹን ይንኩ</translation> +<translation id="7473891865547856676">አይ፣ አመሰግናለሁ</translation> <translation id="7477793887173910789">የእርስዎን ሙዚቃ፣ ቪዲዮዎች እና ተጨማሪ ነገሮች ይቆጣጠሩ</translation> <translation id="7483025031359818980">የምርጫ አካባቢ ወደ ሙሉ ማያ ገጽ ተቀናብሯል</translation> <translation id="7486227320194954040">የምልክት ማድረጊያ መሣሪያዎችን ሰብስብ</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index 23065de..ab1bf7a 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -524,6 +524,7 @@ <translation id="5033299697334913360">انقر في أي مكان لالتقاط صورة لوضع ملء الشاشة.</translation> <translation id="5035236842988137213">الجهاز <ph name="DEVICE_NAME" /> متصل بهاتف جديد</translation> <translation id="5035389544768382859">تأكيد ضبط شاشة العرض</translation> +<translation id="5039804452771397117">سماح</translation> <translation id="504465286040788597">الفقرة السابقة</translation> <translation id="5071064518267176975">يريد أحد التطبيقات استخدام الميكروفون</translation> <translation id="5075554201838155866">تفعيل الترجمة والشرح</translation> @@ -801,6 +802,7 @@ <translation id="7461924472993315131">تثبيت</translation> <translation id="746232733191930409">وضع تسجيل الشاشة</translation> <translation id="7466449121337984263">يُرجى لمس جهاز الاستشعار.</translation> +<translation id="7473891865547856676">لا، شكرًا</translation> <translation id="7477793887173910789">التحكم في الموسيقى والفيديوهات وغير ذلك</translation> <translation id="7483025031359818980">تم ضبط منطقة الاختيار على ملء الشاشة.</translation> <translation id="7486227320194954040">تصغير أدوات التحديد</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb index 418f126a..5dc0664 100644 --- a/ash/strings/ash_strings_as.xtb +++ b/ash/strings/ash_strings_as.xtb
@@ -521,6 +521,7 @@ <translation id="5033299697334913360">পূৰ্ণ স্ক্ৰীন কেপচাৰ কৰিবলৈ যিকোনো ঠাইতে ক্লিক কৰক</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" />ক এটা নতুন ডিভাইচত সংযোগ কৰা হ'ল</translation> <translation id="5035389544768382859">ডিছপ্লে’ৰ কনফিগাৰেশ্বন নিশ্চিত কৰক</translation> +<translation id="5039804452771397117">অনুমতি দিয়ক</translation> <translation id="504465286040788597">পূৰ্বৱৰ্তী দফা</translation> <translation id="5071064518267176975">এটা এপে মাইক্ৰ’ফ’ন ব্যৱহাৰ কৰিব বিচাৰিছে</translation> <translation id="5075554201838155866">ছাব-টাইটেল আৰম্ভ কৰক</translation> @@ -797,6 +798,7 @@ <translation id="7461924472993315131">পিন</translation> <translation id="746232733191930409">স্ক্ৰীন ৰেকৰ্ডিং ম'ড</translation> <translation id="7466449121337984263">অনুগ্ৰহ কৰি ছেন্সৰটো স্পৰ্শ কৰক</translation> +<translation id="7473891865547856676">নালাগে, ধন্যবাদ</translation> <translation id="7477793887173910789">আপোনাৰ সংগীত, ভিডিঅ’সমূহ আৰু অধিক নিয়ন্ত্ৰণ কৰক</translation> <translation id="7483025031359818980">বাছনিৰ ক্ষেত্ৰ সম্পূৰ্ণ স্ক্ৰীন হিচাপে ছেট কৰা হ'ল</translation> <translation id="7486227320194954040">মাৰ্কাৰ সঁজুলি সংকোচন কৰক</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb index fdc5b534..2ada711 100644 --- a/ash/strings/ash_strings_az.xtb +++ b/ash/strings/ash_strings_az.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Narahat etməyin rejimi aktivdir</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Bildiriş ayarlarını göstərin. Bildirişlər tətbiqdə deaktivdir}other{Bildiriş ayarlarını göstərin. Bildirişlər # tətbiqdə deaktivdir}}</translation> <translation id="1525508553941733066">KƏNARLAŞDIRIN</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> istifadə etmək üçün bütün hesablardan çıxmalısınız. Çıxmaq üçün "Ləğv edin" seçiminə toxunaraq geri qayıdın. Sonra status sahəsini açmaq üçün vaxt seçin və "Çıxış" seçiminə toxunun. Sonra yenidən <ph name="USER_EMAIL_ADDRESS_2" /> hesabına daxil olun.</translation> <translation id="15373452373711364">Böyük maus kursoru</translation> <translation id="1546492247443594934">Masa 2</translation> <translation id="1550523713251050646">Əlavə seçimlər üçün klikləyin</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">İcazə verin</translation> <translation id="504465286040788597">Əvvəlki paraqraf</translation> <translation id="5071064518267176975">Tətbiq mikrofondan istifadə etmək istəyir</translation> <translation id="5075554201838155866">Bağlanmış subtitrləri başladın</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Pin</translation> <translation id="746232733191930409">Ekran yazılması rejimi</translation> <translation id="7466449121337984263">Sensora toxunun</translation> +<translation id="7473891865547856676">Yox</translation> <translation id="7477793887173910789">Musiqi, video və daha çoxuna nəzarət edin</translation> <translation id="7483025031359818980">Seçim sahəsi tam ekran olaraq ayarlanıb</translation> <translation id="7486227320194954040">Marker alətlərini yığcamlaşdırın</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb index 5ed0f3c..2c64bba 100644 --- a/ash/strings/ash_strings_be.xtb +++ b/ash/strings/ash_strings_be.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Рэжым "Не турбаваць" уключаны.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Паказаць налады апавяшчэнняў. Апавяшчэнні выключаны для адной праграмы}one{Паказаць налады апавяшчэнняў. Апавяшчэнні выключаны для # праграмы}few{Паказаць налады апавяшчэнняў. Апавяшчэнні выключаны для # праграм}many{Паказаць налады апавяшчэнняў. Апавяшчэнні выключаны для # праграм}other{Паказаць налады апавяшчэнняў. Апавяшчэнні выключаны для # праграмы}}</translation> <translation id="1525508553941733066">АДХІЛІЦЬ</translation> +<translation id="1536604384701784949">Каб мець магчымасць выкарыстоўваць уліковы запіс <ph name="USER_EMAIL_ADDRESS" />, вам трэба спачатку выйсці з усіх уліковых запісаў. Для гэтага вярніцеся назад, націснуўшы "Скасаваць". Потым адкрыйце панэль стану, націснуўшы на гадзіннік, а на ёй выберыце "Выйсці". Затым увайдзіце ва ўліковы запіс <ph name="USER_EMAIL_ADDRESS_2" /> зноў.</translation> <translation id="15373452373711364">Вялікі курсор мышы</translation> <translation id="1546492247443594934">Стол 2</translation> <translation id="1550523713251050646">Націсніце, каб убачыць дадатковыя параметры</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Каб зняць увесь экран, націсніце ў любым яго месцы</translation> <translation id="5035236842988137213">Прылада <ph name="DEVICE_NAME" /> падключана да новага тэлефона</translation> <translation id="5035389544768382859">Пацвярджэнне канфігурацыі дысплэя</translation> +<translation id="5039804452771397117">Дазволіць</translation> <translation id="504465286040788597">Папярэдні абзац</translation> <translation id="5071064518267176975">Праграма запытвае дазвол на выкарыстанне мікрафона</translation> <translation id="5075554201838155866">Паказаць субцітры</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">PIN-код</translation> <translation id="746232733191930409">Рэжым запісу экрана</translation> <translation id="7466449121337984263">Дакраніцеся да сканера</translation> +<translation id="7473891865547856676">Не, дзякуй</translation> <translation id="7477793887173910789">Кіруйце музыкай, відэа і шмат чым іншым</translation> <translation id="7483025031359818980">У якасці вобласці вылучэння выбраны ўвесь экран</translation> <translation id="7486227320194954040">Згарнуць інструменты маркера</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index e91dca10..f24fa62e 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -525,6 +525,7 @@ <translation id="5033299697334913360">Кликнете върху произволно място, за да се заснеме целият екран</translation> <translation id="5035236842988137213">Устройството <ph name="DEVICE_NAME" /> е свързано с нов телефон</translation> <translation id="5035389544768382859">Потвърждаване на конфигурацията на дисплея</translation> +<translation id="5039804452771397117">Разрешаване</translation> <translation id="504465286040788597">Предишен абзац</translation> <translation id="5071064518267176975">Приложение иска да използва микрофона</translation> <translation id="5075554201838155866">Стартиране на надписите</translation> @@ -802,6 +803,7 @@ <translation id="7461924472993315131">Фиксиране</translation> <translation id="746232733191930409">Режим за записване на екрана</translation> <translation id="7466449121337984263">Моля, докоснете сензора</translation> +<translation id="7473891865547856676">Не, благодаря</translation> <translation id="7477793887173910789">Управление на музиката, видеоклиповете и др.</translation> <translation id="7483025031359818980">Целият екран е зададен като избрана област</translation> <translation id="7486227320194954040">Свиване на инструментите за маркиране</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index 24d5e2d..9db74ae 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -522,6 +522,7 @@ <translation id="5033299697334913360">সম্পূর্ণ স্ক্রিন ক্যাপচার করতে যেকোনও জায়গায় ক্লিক করুন</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" />টি নতুন ফোনে কানেক্ট করা হয়েছে</translation> <translation id="5035389544768382859">ডিসপ্লে কনফিগারেশন কনফার্ম করুন</translation> +<translation id="5039804452771397117">অনুমতি দিন</translation> <translation id="504465286040788597">পূর্ববর্তী অনুচ্ছেদ</translation> <translation id="5071064518267176975">অ্যাপ মাইক্রোফোন ব্যবহার করতে চায়</translation> <translation id="5075554201838155866">ক্লোজড ক্যাপশন শুরু করুন</translation> @@ -799,6 +800,7 @@ <translation id="7461924472993315131">পিন</translation> <translation id="746232733191930409">স্ক্রিন রেকর্ড করার মোড</translation> <translation id="7466449121337984263">সেন্সরটি স্পর্শ করুন</translation> +<translation id="7473891865547856676">না থাক</translation> <translation id="7477793887173910789">আপনার মিউজিক, ভিডিও ও আরও অনেক কিছু নিয়ন্ত্রণ করুন</translation> <translation id="7483025031359818980">ফুল স্ক্রিনকে সোর্স হিসেবে সেট করা হয়েছে</translation> <translation id="7486227320194954040">মার্কার টুল আড়াল করুন</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb index 10d3d0b7..155698c 100644 --- a/ash/strings/ash_strings_bs.xtb +++ b/ash/strings/ash_strings_bs.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Uključen je način rada Ne ometaj.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Prikaži postavke obavještenja. Obavještenja aplikacije su isključena.}one{Prikaži postavke obavještenja. Obavještenja za # aplikaciju su isključena.}few{Prikaži postavke obavještenja. Obavještenja za # aplikacije su isključena.}other{Prikaži postavke obavještenja. Obavještenja za # aplikacija su isključena.}}</translation> <translation id="1525508553941733066">ODBACI</translation> +<translation id="1536604384701784949">Da koristite račun <ph name="USER_EMAIL_ADDRESS" />, najprije se morate odjaviti sa svih računa. Da se odjavite, odaberite Otkaži da se vratite. Zatim odaberite vrijeme da otvorite područje statusa i odaberite Odjava. Zatim se ponovo prijavite na račun <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Veliki kursor miša</translation> <translation id="1546492247443594934">Radna površina 2</translation> <translation id="1550523713251050646">Kliznite za više opcija</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Dozvoli</translation> <translation id="504465286040788597">Prethodni pasus</translation> <translation id="5071064518267176975">Aplikacija želi koristiti mikrofon</translation> <translation id="5075554201838155866">Pokreni titlove</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">PIN</translation> <translation id="746232733191930409">Način rada snimanja ekrana</translation> <translation id="7466449121337984263">Dodirnite senzor</translation> +<translation id="7473891865547856676">Ne, hvala</translation> <translation id="7477793887173910789">Kontrolirajte muziku, videozapise i drugi sadržaj</translation> <translation id="7483025031359818980">Područje za odabir je postavljeno preko cijelog ekrana</translation> <translation id="7486227320194954040">Suzi alate označivača</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 7d9b5c8..08c479f 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">El mode No molestis està activat.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostra la configuració de les notificacions. Les notificacions estan desactivades per a una aplicació.}other{Mostra la configuració de les notificacions. Les notificacions estan desactivades per a # aplicacions.}}</translation> <translation id="1525508553941733066">IGNORA</translation> +<translation id="1536604384701784949">Per utilitzar l'adreça <ph name="USER_EMAIL_ADDRESS" />, primer has de tancar la sessió de tots els comptes. Per tancar la sessió i tornar enrere, selecciona Cancel·la. Després selecciona l'hora per obrir l'àrea d'estat i, a continuació, l'opció Tanca la sessió. Torna a iniciar la sessió amb l'adreça <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Cursor del ratolí gran</translation> <translation id="1546492247443594934">Escriptori 2</translation> <translation id="1550523713251050646">Feu clic per veure més opcions</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Permet</translation> <translation id="504465286040788597">Paràgraf anterior</translation> <translation id="5071064518267176975">Una aplicació vol utilitzar el micròfon</translation> <translation id="5075554201838155866">Inicia els subtítols</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Fixa</translation> <translation id="746232733191930409">Mode de gravació de pantalla</translation> <translation id="7466449121337984263">Toca el sensor</translation> +<translation id="7473891865547856676">No, gràcies</translation> <translation id="7477793887173910789">Controla la música, els vídeos i molt més</translation> <translation id="7483025031359818980">S'ha establert la pantalla completa com a àrea de selecció</translation> <translation id="7486227320194954040">Replega les eines de marcatge</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index 79bd659..f370709 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Režim Nerušit je zapnutý.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Zobrazit nastavení oznámení. U jedné aplikace jsou oznámení vypnutá}few{Zobrazit nastavení oznámení. U # aplikací jsou oznámení vypnutá}many{Zobrazit nastavení oznámení. U # aplikace jsou oznámení vypnutá}other{Zobrazit nastavení oznámení. U # aplikací jsou oznámení vypnutá}}</translation> <translation id="1525508553941733066">ZAVŘÍT</translation> +<translation id="1536604384701784949">Pokud chcete použít účet <ph name="USER_EMAIL_ADDRESS" />, bude nutné se nejprve odhlásit od všech dalších účtů. Pokud se chcete odhlásit, vraťte se zpět pomocí tlačítka Zrušit. Poté výběrem času otevřete stavovou oblast a vyberte Odhlásit se. Poté se přihlaste k účtu <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Velký kurzor myši</translation> <translation id="1546492247443594934">Plocha 2</translation> <translation id="1550523713251050646">Kliknutím zobrazíte další možnosti</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Povolit</translation> <translation id="504465286040788597">Předchozí odstavec</translation> <translation id="5071064518267176975">Aplikace chce použít mikrofon</translation> <translation id="5075554201838155866">Zapnout skryté titulky</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Připnout</translation> <translation id="746232733191930409">Režim nahrávání obrazovky</translation> <translation id="7466449121337984263">Dotkněte se senzoru</translation> +<translation id="7473891865547856676">Ne, děkuji</translation> <translation id="7477793887173910789">Ovládejte hudbu, videa a další obsah</translation> <translation id="7483025031359818980">Oblast výběru je nastavena na celou obrazovku</translation> <translation id="7486227320194954040">Sbalit zvýrazňovací nástroje</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index 4745d82..b1e9b61 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Forstyr ikke er aktiveret.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Vis indstillinger for notifikationer. Notifikationer er slået fra for en app}one{Vis indstillinger for notifikationer. Notifikationer er slået fra for # app}other{Vis indstillinger for notifikationer. Notifikationer er slået fra for # apps}}</translation> <translation id="1525508553941733066">AFVIS</translation> +<translation id="1536604384701784949">Hvis du vil bruge <ph name="USER_EMAIL_ADDRESS" />, skal du først logge ud af alle dine konti først. Klik på Annuller for at gå tilbage og logge ud. Vælg derefter klokkeslættet for at åbne statusområdet, og vælg så Log ud. Log derefter ind på <ph name="USER_EMAIL_ADDRESS_2" /> igen.</translation> <translation id="15373452373711364">Stor musemarkør</translation> <translation id="1546492247443594934">Skrivebord 2</translation> <translation id="1550523713251050646">Klik for at se flere muligheder</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Klik et vilkårligt sted for at tage et billede af hele skærmen</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> har oprettet forbindelse til en ny telefon</translation> <translation id="5035389544768382859">Bekræft skærmkonfiguration</translation> +<translation id="5039804452771397117">Tillad</translation> <translation id="504465286040788597">Forrige afsnit</translation> <translation id="5071064518267176975">En app anmoder om at anvende mikrofonen</translation> <translation id="5075554201838155866">Start undertekster</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Fastgør</translation> <translation id="746232733191930409">Tilstanden Skærmoptagelse</translation> <translation id="7466449121337984263">Placer fingeren på sensoren</translation> +<translation id="7473891865547856676">Nej tak</translation> <translation id="7477793887173910789">Styr din musik, dine videoer og meget mere</translation> <translation id="7483025031359818980">Fuld skærm er valgt som kilde</translation> <translation id="7486227320194954040">Skjul tuschværktøjer</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index d5e697e..c2277f0 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -524,6 +524,7 @@ <translation id="5033299697334913360">Auf eine beliebige Stelle klicken, um den ganzen Bildschirm aufzuzeichnen</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ist mit einem neuen Smartphone verbunden</translation> <translation id="5035389544768382859">Displaykonfiguration bestätigen</translation> +<translation id="5039804452771397117">Zulassen</translation> <translation id="504465286040788597">Vorheriger Absatz</translation> <translation id="5071064518267176975">Eine App möchte das Mikrofon verwenden</translation> <translation id="5075554201838155866">Untertitel verwenden</translation> @@ -801,6 +802,7 @@ <translation id="7461924472993315131">Anpinnen</translation> <translation id="746232733191930409">Modus zur Aufzeichnung des Bildschirms</translation> <translation id="7466449121337984263">Berühren Sie den Sensor</translation> +<translation id="7473891865547856676">Nein danke</translation> <translation id="7477793887173910789">Musik, Videos und andere Medien steuern</translation> <translation id="7483025031359818980">Auswahlbereich auf ganzen Bildschirm festgelegt</translation> <translation id="7486227320194954040">Markierungstools minimieren</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index 59936f9..90c08c31 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Η λειτουργία Μην ενοχλείτε είναι ενεργή.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Εμφάνιση ρυθμίσεων ειδοποιήσεων. Έχουν απενεργοποιηθεί οι ειδοποιήσεις για κάποια εφαρμογή.}other{Εμφάνιση ρυθμίσεων ειδοποιήσεων. Έχουν απενεργοποιηθεί οι ειδοποιήσεις για # εφαρμογές.}}</translation> <translation id="1525508553941733066">ΑΠΟΡΡΙΨΗ</translation> +<translation id="1536604384701784949">Για να χρησιμοποιήσετε τη διεύθυνση <ph name="USER_EMAIL_ADDRESS" />, πρέπει να αποσυνδεθείτε πρώτα από όλους τους λογαριασμούς. Για να αποσυνδεθείτε, επιλέξτε Ακύρωση για επιστροφή. Έπειτα επιλέξτε την ώρα για να ανοίξετε την περιοχή κατάστασης και επιλέξτε Αποσύνδεση. Στη συνέχεια συνδεθείτε ξανά στη διεύθυνση <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Μεγάλος δείκτης ποντικιού</translation> <translation id="1546492247443594934">Γραφείο 2</translation> <translation id="1550523713251050646">Κάντε κλικ για περισσότερες επιλογές</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Κάντε κλικ σε οποιοδήποτε σημείο για εγγραφή ολόκληρης της οθόνης.</translation> <translation id="5035236842988137213">Η συσκευή <ph name="DEVICE_NAME" /> συνδέθηκε σε ένα νέο τηλέφωνο</translation> <translation id="5035389544768382859">Επιβεβαίωση διαμόρφωσης οθόνης</translation> +<translation id="5039804452771397117">Επιτρέπεται</translation> <translation id="504465286040788597">Προηγούμενη παράγραφος</translation> <translation id="5071064518267176975">Μια εφαρμογή θέλει να χρησιμοποιήσει το μικρόφωνο</translation> <translation id="5075554201838155866">Έναρξη υποτίτλων</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Καρφίτσωμα</translation> <translation id="746232733191930409">Λειτουργία εγγραφής οθόνης</translation> <translation id="7466449121337984263">Αγγίξτε τον αισθητήρα.</translation> +<translation id="7473891865547856676">Όχι, ευχαριστώ</translation> <translation id="7477793887173910789">Ελέγξτε τη μουσική σας, τα βίντεο και περισσότερα</translation> <translation id="7483025031359818980">Η περιοχή επιλογής ορίστηκε σε ολόκληρη την οθόνη</translation> <translation id="7486227320194954040">Σύμπτυξη εργαλείων δείκτη</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index df6adafd..51da01f1 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -524,6 +524,7 @@ <translation id="5033299697334913360">Click anywhere to capture full screen</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> connected to a new phone</translation> <translation id="5035389544768382859">Confirm display configuration</translation> +<translation id="5039804452771397117">Allow</translation> <translation id="504465286040788597">Previous paragraph</translation> <translation id="5071064518267176975">An app wants to use the microphone</translation> <translation id="5075554201838155866">Start closed captions</translation> @@ -801,6 +802,7 @@ <translation id="7461924472993315131">Pin</translation> <translation id="746232733191930409">Screen recording mode</translation> <translation id="7466449121337984263">Please touch the sensor</translation> +<translation id="7473891865547856676">No, thanks</translation> <translation id="7477793887173910789">Control your music, videos and more</translation> <translation id="7483025031359818980">Selection area set to full screen</translation> <translation id="7486227320194954040">Collapse marker tools</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index eb038493..3e21d86 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">No interrumpir está activado.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostrar la configuración de las notificaciones: Están desactivadas para una app}other{Mostrar la configuración de las notificaciones: Están desactivadas para # apps}}</translation> <translation id="1525508553941733066">IGNORAR</translation> +<translation id="1536604384701784949">Para usar <ph name="USER_EMAIL_ADDRESS" />, primero deberás salir de todas tus cuentas. Si deseas salir, selecciona Cancelar para regresar. Luego, selecciona el reloj para abrir el área de estado y selecciona Salir. Luego, accede de nuevo en <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Cursor del mouse grande</translation> <translation id="1546492247443594934">Escritorio 2</translation> <translation id="1550523713251050646">Haz clic para obtener más opciones</translation> @@ -525,6 +526,7 @@ <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="5039804452771397117">Permitir</translation> <translation id="504465286040788597">Párrafo anterior</translation> <translation id="5071064518267176975">Una app quiere usar el micrófono</translation> <translation id="5075554201838155866">Activar subtítulos</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Fijar</translation> <translation id="746232733191930409">Modo de grabación de pantalla</translation> <translation id="7466449121337984263">Toca el sensor</translation> +<translation id="7473891865547856676">No, gracias</translation> <translation id="7477793887173910789">Controla tu música, videos y mucho más</translation> <translation id="7483025031359818980">Se estableció la pantalla completa como área de selección</translation> <translation id="7486227320194954040">Contraer las herramientas de marcado</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index fcb21db..3a0ab8352 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">El modo No molestar está activado.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Muestra la configuración de notificaciones. Las notificaciones están desactivadas para una aplicación.}other{Muestra la configuración de notificaciones. Las notificaciones están desactivadas para # aplicaciones.}}</translation> <translation id="1525508553941733066">CERRAR</translation> +<translation id="1536604384701784949">Para usar <ph name="USER_EMAIL_ADDRESS" />, primero tienes que cerrar sesión en todas las cuentas. Para hacerlo, selecciona Cancelar para ir atrás. Luego, selecciona la hora para abrir el área de estado y escoge Cerrar sesión. Después, vuelve a iniciar sesión con <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Cursor del ratón grande</translation> <translation id="1546492247443594934">Escritorio 2</translation> <translation id="1550523713251050646">Haz clic aquí para obtener más opciones</translation> @@ -525,6 +526,7 @@ <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="5039804452771397117">Permitir</translation> <translation id="504465286040788597">Párrafo anterior</translation> <translation id="5071064518267176975">Una aplicación quiere usar el micrófono</translation> <translation id="5075554201838155866">Iniciar subtítulos</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Fijar</translation> <translation id="746232733191930409">Modo de grabación de pantalla</translation> <translation id="7466449121337984263">Toca el sensor</translation> +<translation id="7473891865547856676">No, gracias</translation> <translation id="7477793887173910789">Controla tu música, tus vídeos y más</translation> <translation id="7483025031359818980">Área de selección establecida en pantalla completa</translation> <translation id="7486227320194954040">Ocultar herramientas de marcado</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb index 1ec593c..7e6408be 100644 --- a/ash/strings/ash_strings_et.xtb +++ b/ash/strings/ash_strings_et.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Režiim Mitte segada on sees.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Kuvab märguandeseaded. Märguanded on rakenduse jaoks välja lülitatud}other{Kuvab märguandeseaded. Märguanded on # rakenduse jaoks välja lülitatud}}</translation> <translation id="1525508553941733066">LOOBU</translation> +<translation id="1536604384701784949">Konto <ph name="USER_EMAIL_ADDRESS" /> kasutamiseks peate kõigepealt kõikidelt kontodelt välja logima. Väljalogimiseks valige tagasiminekuks nupp Tühista. Seejärel valige aeg, et avada olekuala, ja seejärel valige käsk Logi välja. Lõpuks logige kontole <ph name="USER_EMAIL_ADDRESS_2" /> uuesti sisse.</translation> <translation id="15373452373711364">Suur hiirekursor</translation> <translation id="1546492247443594934">Töölaud 2</translation> <translation id="1550523713251050646">Klõpsake lisavalikute nägemiseks</translation> @@ -525,6 +526,7 @@ <translation id="5033299697334913360">Täisekraani jäädvustamiseks klõpsake ekraanikuval kus tahes</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ühendati uue telefoniga</translation> <translation id="5035389544768382859">Kuva seadistuse kinnitamine</translation> +<translation id="5039804452771397117">Luba</translation> <translation id="504465286040788597">Eelmine lõik</translation> <translation id="5071064518267176975">Rakendus soovib mikrofoni kasutada</translation> <translation id="5075554201838155866">Alusta subtiitrite kasutamist</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Kinnita</translation> <translation id="746232733191930409">Ekraanisalvestuse režiim</translation> <translation id="7466449121337984263">Puudutage andurit</translation> +<translation id="7473891865547856676">Tänan, ei</translation> <translation id="7477793887173910789">Hallake oma muusikat, videoid ja muud</translation> <translation id="7483025031359818980">Valikualaks on määratud täisekraan</translation> <translation id="7486227320194954040">Ahenda markeerimistööristade loendit</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb index 199eca6..16a30e5b 100644 --- a/ash/strings/ash_strings_eu.xtb +++ b/ash/strings/ash_strings_eu.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Aktibatuta dago ez molestatzeko modua.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Erakutsi jakinarazpen-ezarpenak. Aplikazio batean desaktibatuta daude jakinarazpenak.}other{Erakutsi jakinarazpen-ezarpenak. # aplikaziotan desaktibatuta daude jakinarazpenak.}}</translation> <translation id="1525508553941733066">BAZTERTU</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> erabiltzeko, kontu guztietako saioak amaitu beharko dituzu. Saioa amaitzeko, egin atzera Utzi hautatuta. Ondoren, hautatu egoeraren eremua irekitzeko ordua eta, gero, Amaitu saioa. Azkenik, hasi saioa berriro <ph name="USER_EMAIL_ADDRESS_2" /> kontuan.</translation> <translation id="15373452373711364">Saguaren kurtsore handia</translation> <translation id="1546492247443594934">2. lan-eremua</translation> <translation id="1550523713251050646">Aukera gehiago ikusteko, egin klik hemen</translation> @@ -157,7 +158,7 @@ <translation id="2167870087604746126">+ V</translation> <translation id="2170530631236737939">Pasatu hiru hatz behera ikuspegi orokorretik irteteko</translation> <translation id="2208323208084708176">Mahaigain bateratuko modua</translation> -<translation id="2220572644011485463">PIN kodea edo pasahitza</translation> +<translation id="2220572644011485463">PINa edo pasahitza</translation> <translation id="2222338659135520253">Saioa hasi egin behar da</translation> <translation id="2222841058024245321">7. lan-eremua</translation> <translation id="2224075387478458881">Ezin da pantaila grabatu eduki babestua ikusgai dagoenean</translation> @@ -185,7 +186,7 @@ <translation id="2391579633712104609">180°</translation> <translation id="240006516586367791">Multimedia-edukia kontrolatzeko aukerak</translation> <translation id="2405664212338326887">Konektatu gabe</translation> -<translation id="2408955596600435184">Idatzi PIN kodea</translation> +<translation id="2408955596600435184">Idatzi PINa</translation> <translation id="2412593942846481727">Eguneratu egin daiteke</translation> <translation id="2427507373259914951">Egin klik ezkerreko botoiarekin</translation> <translation id="2429753432712299108">Bluetooth bidezko "<ph name="DEVICE_NAME" />" gailuak parekatzeko baimena nahi du. Onartu aurretik, berretsi gailu horretan pasakode hau agertzen dela: <ph name="PASSKEY" /></translation> @@ -525,10 +526,11 @@ <translation id="5033299697334913360">Egin klik edonon pantaila osoaren argazkia ateratzeko</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> beste telefono batekin konektatu da</translation> <translation id="5035389544768382859">Berretsi pantailaren konfigurazioa</translation> +<translation id="5039804452771397117">Baimendu</translation> <translation id="504465286040788597">Aurreko paragrafoa</translation> <translation id="5071064518267176975">Aplikazio batek mikrofonoa erabili nahi du</translation> <translation id="5075554201838155866">Abiarazi azpitituluak</translation> -<translation id="5078796286268621944">Okerreko PIN kodea</translation> +<translation id="5078796286268621944">Okerra da PINa</translation> <translation id="5083553833479578423">Lortu Laguntzailea eginbidearen aukera gehiago.</translation> <translation id="5136175204352732067">Beste teklatu bat konektatu duzu</translation> <translation id="5155897006997040331">Irakurketa-abiadura</translation> @@ -577,7 +579,7 @@ <translation id="558849140439112033">Arrastatu argazkian agertzea nahi duzun eremua hautatzeko</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">Ahozko argibideak desgaitzeko, sakatu Ktrl + Alt + Z.</translation> -<translation id="5601503069213153581">PIN kodea</translation> +<translation id="5601503069213153581">PINa</translation> <translation id="5619862035903135339">Administratzailearen gidalerroek pantaila-kaptura bat egitea desgaitzen dute</translation> <translation id="5625955975703555628">LTE+</translation> <translation id="5648021990716966815">Mikrofonoaren konektorea</translation> @@ -669,7 +671,7 @@ <translation id="6330012934079202188">Lan-eremu guztietako leihoak daude ikusgai. Une honetako lan-eremuko leihoak egon daitezen ikusgai, sakatu gora egiteko gezi-tekla.</translation> <translation id="6338485349199627913"><ph name="MANAGER" /> domeinuak kudeatutako saio kudeatua da <ph name="DISPLAY_NAME" /></translation> <translation id="6376931439017688372">Aktibatuta dago Bluetooth-a</translation> -<translation id="6381109794406942707">Gailua desblokeatzeko, idatzi PIN kodea.</translation> +<translation id="6381109794406942707">Gailua desblokeatzeko, idatzi PINa.</translation> <translation id="639644700271529076">BLOK MAIUS desaktibatuta dago</translation> <translation id="6406704438230478924">altgr</translation> <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />. Seinalearen indarra: <ph name="SIGNAL_STRENGTH" />.</translation> @@ -682,7 +684,7 @@ <translation id="6459472438155181876">Pantaila <ph name="DISPLAY_NAME" /> gailura zabaltzen</translation> <translation id="6482559668224714696">Pantaila osoko lupa</translation> <translation id="6490471652906364588">USB-C gailua (eskuinaldeko ataka)</translation> -<translation id="649452524636452238">Txartel adimendunaren PIN kodea</translation> +<translation id="649452524636452238">Txartel adimendunaren PINa</translation> <translation id="6501401484702599040">Pantaila <ph name="RECEIVER_NAME" /> gailura igortzen ari da</translation> <translation id="6520517963145875092">Hautatu argazkian agertzea nahi duzun leihoa</translation> <translation id="652139407789908527">Eguneratu bitartean, pantaila ohi baino denbora gehiago egongo da hutsik (minutu bat gehienez ere). Eguneratu bitartean, ez sakatu etengailua.</translation> @@ -745,7 +747,7 @@ <translation id="6972754398087986839">Hasi erabiltzen</translation> <translation id="6981982820502123353">Erabilerraztasuna</translation> <translation id="698231206551913481">Erabiltzailea kentzen denean, harekin erlazionatutako fitxategi eta gailuko datu guztiak betiko ezabatuko dira.</translation> -<translation id="7007983414944123363">Ezin izan da egiaztatu PIN kodea edo pasahitza. Saiatu berriro.</translation> +<translation id="7007983414944123363">Ezin izan da egiaztatu PINa edo pasahitza. Saiatu berriro.</translation> <translation id="7015766095477679451">Itzuli ordu honetan: <ph name="COME_BACK_TIME" />.</translation> <translation id="70168403932084660">6. lan-eremua</translation> <translation id="7025533177575372252">Konektatu <ph name="DEVICE_NAME" /> telefonoarekin</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Ainguratu</translation> <translation id="746232733191930409">Pantaila grabatzeko modua</translation> <translation id="7466449121337984263">Ukitu sentsorea</translation> +<translation id="7473891865547856676">Ez, eskerrik asko</translation> <translation id="7477793887173910789">Kontrolatu musika, bideoak eta beste</translation> <translation id="7483025031359818980">Hautapen-eremua pantaila osoan dago ezarrita</translation> <translation id="7486227320194954040">Tolestu markatzailearen tresnak</translation> @@ -875,7 +878,7 @@ <translation id="8000066093800657092">Ez dago sarerik</translation> <translation id="8004512796067398576">Gehikuntza</translation> <translation id="8029247720646289474">Ezin izan da konektatu wifi-gunera</translation> -<translation id="8029629653277878342">PIN kodea edo pasahitza behar da gailua babestuago edukitzeko</translation> +<translation id="8029629653277878342">PINa edo pasahitza behar da gailua babestuago edukitzeko</translation> <translation id="8030169304546394654">Deskonektatuta</translation> <translation id="8036504271468642248">Aurreko esaldia</translation> <translation id="8042893070933512245">Ireki Erabilerraztasun-ezarpenak menua</translation> @@ -978,7 +981,7 @@ <translation id="8841375032071747811">Atzera botoia</translation> <translation id="8843682306134542540">Aldatu biratzearen blokeoa. <ph name="STATE_TEXT" /></translation> <translation id="8850991929411075241">Bilaketa + Ihes</translation> -<translation id="8853703225951107899">Oraindik ezin izan da egiaztatu PIN kodea edo pasahitza. Oharra: pasahitza duela gutxi aldatu baduzu, erabili pasahitz zaharra. Saioa amaitu eta gero aplikatuko da pasahitz berria.</translation> +<translation id="8853703225951107899">Oraindik ezin izan da egiaztatu PINa edo pasahitza. Oharra: pasahitza duela gutxi aldatu baduzu, erabili pasahitz zaharra. Saioa amaitu eta gero aplikatuko da pasahitz berria.</translation> <translation id="8870509716567206129">Aplikazioak ez du onartzen pantaila zatitua erabiltzea.</translation> <translation id="8871580645200179206">Aldatu gai ilunaren egoera. <ph name="STATE_TEXT" /></translation> <translation id="8874184842967597500">Konektatu gabe</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index b243f07..5728d04 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">«مزاحم نشوید» روشن است.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{نشان دادن تنظیمات اعلان. اعلانهای یک برنامه خاموش است}one{نشان دادن تنظیمات اعلان. اعلانهای # برنامه خاموش است}other{نشان دادن تنظیمات اعلان. اعلانهای # برنامه خاموش است}}</translation> <translation id="1525508553941733066">رد کردن</translation> +<translation id="1536604384701784949">برای استفاده از <ph name="USER_EMAIL_ADDRESS" />، باید ابتدا از سیستم همه حسابها خارج شوید. برای خروج از سیستم، «لغو» را انتخاب کنید تا به عقب برگردید. سپس زمان را انتخاب کنید تا ناحیه نشانگر وضعیت باز شود و سپس «خروج از سیستم»را انتخاب کنید. سپس دوباره به سیستم <ph name="USER_EMAIL_ADDRESS_2" /> وارد شوید.</translation> <translation id="15373452373711364">نشانگر موشواره بزرگ</translation> <translation id="1546492247443594934">میز ۲</translation> <translation id="1550523713251050646">برای گزینههای بیشتر کلیک کنید</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">برای گرفتن عکس از کل صفحه، روی هرجایی که میخواهید کلیک کنید</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> به تلفن جدیدی متصل است</translation> <translation id="5035389544768382859">تأیید پیکربندی نمایشگر</translation> +<translation id="5039804452771397117">اجازه دادن</translation> <translation id="504465286040788597">پاراگراف قبلی</translation> <translation id="5071064518267176975">برنامهای میخواهد از میکروفون شما استفاده کند</translation> <translation id="5075554201838155866">شروع زیرنویس ناشنوایان</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">پین</translation> <translation id="746232733191930409">حالت ضبط صفحهنمایش</translation> <translation id="7466449121337984263">لطفاً حسگر را لمس کنید</translation> +<translation id="7473891865547856676">نه متشکرم</translation> <translation id="7477793887173910789">کنترل موسیقی، ویدیو و سایر موارد</translation> <translation id="7483025031359818980">ناحیه انتخاب روی تمام صفحه تنظیم شد</translation> <translation id="7486227320194954040">جمع کردن ابزارهای نشانگذاری</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index 890e4f8..a9cdc0fa 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Älä häiritse ‑tila on päällä.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Näytä ilmoitusasetukset. Ilmoitukset on poistettu 1 sovelluksen käytöstä.}other{Näytä ilmoitusasetukset. Ilmoitukset on poistettu # sovelluksen käytöstä.}}</translation> <translation id="1525508553941733066">HYLKÄÄ</translation> +<translation id="1536604384701784949">Jotta <ph name="USER_EMAIL_ADDRESS" /> on käytettävissä, sinun on ensin kirjauduttava ulos kaikilta tileiltä. Jos haluat kirjautua ulos, palaa takaisin valitsemalla Peru. Avaa sitten tila-alue valitsemalla aika ja valitse Kirjaudu ulos. Kirjaa sitten <ph name="USER_EMAIL_ADDRESS_2" /> uudelleen sisään.</translation> <translation id="15373452373711364">Suuri hiiren osoitin</translation> <translation id="1546492247443594934">Pöytä 2</translation> <translation id="1550523713251050646">Näet lisävaihtoehtoja klikkaamalla tätä.</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Salli</translation> <translation id="504465286040788597">Edellinen kappale</translation> <translation id="5071064518267176975">Sovellus haluaa käyttää mikrofonia</translation> <translation id="5075554201838155866">Käynnistä tekstitykset</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Kiinnitä</translation> <translation id="746232733191930409">Näytön tallentajatila</translation> <translation id="7466449121337984263">Kosketa tunnistinta</translation> +<translation id="7473891865547856676">Ei kiitos</translation> <translation id="7477793887173910789">Ohjaa musiikkia, videoita ja muuta</translation> <translation id="7483025031359818980">Lähteeksi on valittu koko näyttö</translation> <translation id="7486227320194954040">Tiivistä tussityökalut</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb index ae57ef2..39b82340 100644 --- a/ash/strings/ash_strings_fil.xtb +++ b/ash/strings/ash_strings_fil.xtb
@@ -525,6 +525,7 @@ <translation id="5033299697334913360">Mag-click kahit saan para i-capture ang full screen</translation> <translation id="5035236842988137213">Kumonekta ang <ph name="DEVICE_NAME" /> sa isang bagong telepono</translation> <translation id="5035389544768382859">Kumpirmahin ang Configuration ng Display</translation> +<translation id="5039804452771397117">Payagan</translation> <translation id="504465286040788597">Nakaraang talata</translation> <translation id="5071064518267176975">Gustong gamitin ng isang app ang mikropono</translation> <translation id="5075554201838155866">Simulan ang mga closed caption</translation> @@ -802,6 +803,7 @@ <translation id="7461924472993315131">I-pin</translation> <translation id="746232733191930409">Screen recording mode</translation> <translation id="7466449121337984263">Pakipindot ang sensor</translation> +<translation id="7473891865547856676">Hindi, Salamat</translation> <translation id="7477793887173910789">Kontrolin ang iyong musika, mga video, at higit pa</translation> <translation id="7483025031359818980">Itinakda sa full screen ang selection area</translation> <translation id="7486227320194954040">I-collapse ang mga tool ng marker</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb index 1c8efd3..611033a 100644 --- a/ash/strings/ash_strings_fr-CA.xtb +++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Le mode Ne pas déranger est activé.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Afficher les paramètres de notification. Les notifications sont désactivées pour une application}one{Afficher les paramètres de notification. Les notifications sont désactivées pour # application}other{Afficher les paramètres de notification. Les notifications sont désactivées pour # applications}}</translation> <translation id="1525508553941733066">IGNORER</translation> +<translation id="1536604384701784949">Pour utiliser <ph name="USER_EMAIL_ADDRESS" />, vous devez d'abord vous déconnecter de tous les comptes. Pour vous déconnecter, sélectionnez Annuler afin de revenir en arrière. Sélectionnez ensuite l'heure pour ouvrir la zone de notifications, puis sélectionnez Se déconnecter. Puis connectez-vous de nouveau à <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Grand curseur</translation> <translation id="1546492247443594934">Bureau 2</translation> <translation id="1550523713251050646">Cliquez pour afficher plus d'options</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Autoriser</translation> <translation id="504465286040788597">Paragraphe précédent</translation> <translation id="5071064518267176975">Une application demande l'autorisation d'utiliser le microphone</translation> <translation id="5075554201838155866">Activer les sous-titres</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">NIP</translation> <translation id="746232733191930409">Mode d'enregistrement de l'écran</translation> <translation id="7466449121337984263">Veuillez toucher le capteur</translation> +<translation id="7473891865547856676">Non merci</translation> <translation id="7477793887173910789">Commandez votre musique, vos vidéos et plus encore</translation> <translation id="7483025031359818980">La zone de sélection est définie à l'écran au complet</translation> <translation id="7486227320194954040">Réduire les outils de marqueur</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index a70ac49..2b404ff2 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Le mode Ne pas déranger est activé.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Afficher les paramètres de notification. Les notifications sont désactivées pour une application}one{Afficher les paramètres de notification. Les notifications sont désactivées pour # application}other{Afficher les paramètres de notification. Les notifications sont désactivées pour # applications}}</translation> <translation id="1525508553941733066">IGNORER</translation> +<translation id="1536604384701784949">Pour utiliser <ph name="USER_EMAIL_ADDRESS" />, vous devez d'abord vous déconnecter de tous les comptes. Pour cela, sélectionnez "Annuler" pour revenir en arrière, sélectionnez l'heure pour ouvrir la zone d'état, puis "Se déconnecter". Ensuite, reconnectez-vous à <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Grand curseur</translation> <translation id="1546492247443594934">Bureau 2</translation> <translation id="1550523713251050646">Cliquez pour obtenir plus d'options.</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Cliquez n'importe où pour effectuer une capture en plein écran</translation> <translation id="5035236842988137213">L'appareil <ph name="DEVICE_NAME" /> est associé à un nouveau téléphone</translation> <translation id="5035389544768382859">Confirmer la configuration de l'écran</translation> +<translation id="5039804452771397117">Autoriser</translation> <translation id="504465286040788597">Paragraphe précédent</translation> <translation id="5071064518267176975">Une appli souhaite utiliser le micro</translation> <translation id="5075554201838155866">Lancer les sous-titres</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Épingler</translation> <translation id="746232733191930409">Mode d'enregistrement d'écran</translation> <translation id="7466449121337984263">Veuillez toucher le capteur</translation> +<translation id="7473891865547856676">Non, merci</translation> <translation id="7477793887173910789">Contrôler votre musique, vos vidéos et d'autres contenus</translation> <translation id="7483025031359818980">Zone de sélection définie sur l'écran entier</translation> <translation id="7486227320194954040">Réduire les outils Marqueur</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb index d305bee..b51e42f 100644 --- a/ash/strings/ash_strings_gl.xtb +++ b/ash/strings/ash_strings_gl.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Está activado o modo Non molestar.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostrar a configuración de notificacións. Están desactivadas para unha aplicación}other{Mostrar a configuración de notificacións. Están desactivadas para # aplicacións}}</translation> <translation id="1525508553941733066">IGNORAR</translation> +<translation id="1536604384701784949">Para usar <ph name="USER_EMAIL_ADDRESS" />, primeiro debes pechar sesión en todas as contas. Se queres ir á pantalla anterior e pechar sesión, selecciona Cancelar. Despois, selecciona a hora para abrir a área de estado e escolle Pechar sesión. A continuación, inicia sesión de novo en <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Cursor do rato grande</translation> <translation id="1546492247443594934">Escritorio 2</translation> <translation id="1550523713251050646">Fai clic para ver máis opcións</translation> @@ -525,6 +526,7 @@ <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="5039804452771397117">Permitir</translation> <translation id="504465286040788597">Anterior parágrafo</translation> <translation id="5071064518267176975">Unha aplicación quere usar o micrófono</translation> <translation id="5075554201838155866">Iniciar subtítulos</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Marcar cun alfinete</translation> <translation id="746232733191930409">Modo de gravación da pantalla</translation> <translation id="7466449121337984263">Toca o sensor</translation> +<translation id="7473891865547856676">Non, grazas</translation> <translation id="7477793887173910789">Controlar a túa música, os vídeos e moito máis</translation> <translation id="7483025031359818980">Definiuse a pantalla completa como área de selección</translation> <translation id="7486227320194954040">Contraer ferramentas de marcador</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index 410557d..e1da8c08 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -522,6 +522,7 @@ <translation id="5033299697334913360">પૂર્ણ સ્ક્રીન કૅપ્ચર કરવા માટે સ્ક્રીન પર ગમે ત્યાં ક્લિક કરો</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" />, નવા ફોન સાથે કનેક્ટ થયું</translation> <translation id="5035389544768382859">ડિસ્પ્લેની ગોઠવણને કન્ફર્મ કરો</translation> +<translation id="5039804452771397117">મંજૂરી આપો</translation> <translation id="504465286040788597">પહેલાંનો ફકરો</translation> <translation id="5071064518267176975">ઍપ માઇક્રોફોનનો ઉપયોગ કરવા માગે છે</translation> <translation id="5075554201838155866">ઉપશીર્ષકો શરૂ કરો</translation> @@ -799,6 +800,7 @@ <translation id="7461924472993315131">પિન કરો</translation> <translation id="746232733191930409">સ્ક્રીન રેકોર્ડિંગ મોડ</translation> <translation id="7466449121337984263">કૃપા કરીને સેન્સરને સ્પર્શ કરો</translation> +<translation id="7473891865547856676">નહીં આભાર</translation> <translation id="7477793887173910789">તમારું મ્યુઝિક, વીડિયો અને બીજું ઘણું નિયંત્રિત કરો</translation> <translation id="7483025031359818980">સૉર્સ તરીકે પૂર્ણ સ્ક્રીન સેટ કરવામાં આવી</translation> <translation id="7486227320194954040">માર્કર સાધનોને નાનાં કરો</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index 71ce991d6..16a46c5 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">'परेशान न करें' मोड चालू है.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{सूचना सेटिंग दिखाएं. किसी एक ऐप्लिकेशन के लिए सूचनाएं बंद हैं}one{सूचना सेटिंग दिखाएं. # ऐप्लिकेशन के लिए सूचनाएं बंद हैं}other{सूचना सेटिंग दिखाएं. # ऐप्लिकेशन के लिए सूचनाएं बंद हैं}}</translation> <translation id="1525508553941733066">ख़ारिज करें</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> का इस्तेमाल करने के लिए, पहले आपको सभी खातों से साइन आउट करना होगा. साइन आउट करने के लिए, 'रद्द करें' चुनकर वापस जाएं. इसके बाद, स्टेटस एरिया खोलने के लिए 'समय' चुनकर, 'साइन आउट करें' चुनें. इसके बाद, <ph name="USER_EMAIL_ADDRESS_2" /> में साइन इन करें.</translation> <translation id="15373452373711364">बड़ा माउस कर्सर</translation> <translation id="1546492247443594934">डेस्क 2</translation> <translation id="1550523713251050646">ज़्यादा विकल्पों के लिए क्लिक करें</translation> @@ -525,6 +526,7 @@ <translation id="5033299697334913360">फ़ुल स्क्रीन कैप्चर करने के लिए कहीं पर भी क्लिक करें</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> एक नए फ़ोन से कनेक्ट हो गया है</translation> <translation id="5035389544768382859">डिसप्ले के कॉन्फ़िगरेशन की पुष्टि करें</translation> +<translation id="5039804452771397117">अनुमति दें</translation> <translation id="504465286040788597">पिछले पैराग्राफ़ पर जाएं</translation> <translation id="5071064518267176975">कोई ऐप्लिकेशन, माइक्रोफ़ोन का इस्तेमाल करना चाहता है</translation> <translation id="5075554201838155866">सबटाइटल चालू करें</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">पिन करें</translation> <translation id="746232733191930409">स्क्रीन रिकॉर्डिंग मोड</translation> <translation id="7466449121337984263">कृपया सेंसर को छुएं</translation> +<translation id="7473891865547856676">नहीं, रहने दें</translation> <translation id="7477793887173910789">अपने संगीत और वीडियो के साथ दूसरी चीज़ें नियंत्रित करें</translation> <translation id="7483025031359818980">फ़ुल स्क्रीन को सोर्स के तौर पर सेट किया गया</translation> <translation id="7486227320194954040">मार्कर टूल छोटे करें</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb index e5ff579..eca995e 100644 --- a/ash/strings/ash_strings_hr.xtb +++ b/ash/strings/ash_strings_hr.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Način Ne uznemiravaj je uključen.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Prikaz postavki obavijesti. Obavijesti su isključene za jednu aplikaciju}one{Prikaz postavki obavijesti. Obavijesti su isključene za # aplikaciju}few{Prikaz postavki obavijesti. Obavijesti su isključene za # aplikacije}other{Prikaz postavki obavijesti. Obavijesti su isključene za # aplikacija}}</translation> <translation id="1525508553941733066">ODBACI</translation> +<translation id="1536604384701784949">Da biste koristili <ph name="USER_EMAIL_ADDRESS" />, najprije se trebate odjaviti sa svih računa. Da biste se odjavili, odaberite Odustani da biste se vratili. Zatim odaberite vrijeme da bi se otvorilo područje statusa i odaberite opciju Odjava. Nakon toga se ponovo prijavite na <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Veliki pokazivač miša</translation> <translation id="1546492247443594934">Radna površina 2</translation> <translation id="1550523713251050646">Kliknite za više opcija</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Kliknite bilo gdje da biste snimili cijeli zaslon</translation> <translation id="5035236842988137213">Uređaj <ph name="DEVICE_NAME" /> povezan je s novim telefonom</translation> <translation id="5035389544768382859">Potvrđivanje konfiguracije zaslona</translation> +<translation id="5039804452771397117">Dopusti</translation> <translation id="504465286040788597">Prethodni odlomak</translation> <translation id="5071064518267176975">Aplikacija želi koristiti mikrofon</translation> <translation id="5075554201838155866">Pokreni titlove</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Prikvači</translation> <translation id="746232733191930409">Način snimanja zaslona</translation> <translation id="7466449121337984263">Dodirnite senzor</translation> +<translation id="7473891865547856676">Ne, hvala</translation> <translation id="7477793887173910789">Upravljate glazbom, videozapisima i drugim medijima</translation> <translation id="7483025031359818980">Za područje odabira postavljen je cijeli zaslon</translation> <translation id="7486227320194954040">Sažmi alate markera</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb index b93b4481..70900e2c 100644 --- a/ash/strings/ash_strings_hu.xtb +++ b/ash/strings/ash_strings_hu.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">A Ne zavarjanak funkció be van kapcsolva.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Értesítési beállítások megjelenítése. Az értesítések egyetlen alkalmazásnál vannak kikapcsolva}other{Értesítési beállítások megjelenítése. Az értesítések # alkalmazásnál ki vannak kapcsolva}}</translation> <translation id="1525508553941733066">ELVETÉS</translation> +<translation id="1536604384701784949">A(z) <ph name="USER_EMAIL_ADDRESS" /> használatához előbb ki kell jelentkeznie az összes fiókból. A kijelentkezéshez válassza a Mégse gombot. Ezzel visszalép az előző képernyőre. Ezután válassza az órát az állapotsor megnyitásához, majd válassza a Kijelentkezés lehetőséget. Végül jelentkezzen be újra a(z) <ph name="USER_EMAIL_ADDRESS_2" /> e-mail-címmel.</translation> <translation id="15373452373711364">Nagy egérmutató</translation> <translation id="1546492247443594934">2. asztal</translation> <translation id="1550523713251050646">Kattintson további lehetőségekért</translation> @@ -525,6 +526,7 @@ <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="5039804452771397117">Engedélyezés</translation> <translation id="504465286040788597">Előző bekezdés</translation> <translation id="5071064518267176975">Egy alkalmazás használni szeretné a mikrofont</translation> <translation id="5075554201838155866">Feliratok indítása</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Rögzítés</translation> <translation id="746232733191930409">Képernyőfelvétel mód</translation> <translation id="7466449121337984263">Érintse meg az érzékelőt</translation> +<translation id="7473891865547856676">Nem, köszönöm</translation> <translation id="7477793887173910789">Zeneszámok, videók és további tartalmak vezérlése</translation> <translation id="7483025031359818980">Kijelölési terület teljes képernyős nézetre állítva</translation> <translation id="7486227320194954040">Jelölőeszközök összecsukása</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb index 2143119..c2f0bc45 100644 --- a/ash/strings/ash_strings_hy.xtb +++ b/ash/strings/ash_strings_hy.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">«Չանհանգստացնել» ռեժիմն ակտիվ է։</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Ցուցադրել ծանուցումների կարգավորումները: Ծանուցումներն անջատված են մեկ հավելվածի համար:}one{Ցուցադրել ծանուցումների կարգավորումները: Ծանուցումներն անջատված են # հավելվածի համար:}other{Ցուցադրել ծանուցումների կարգավորումները: Ծանուցումներն անջատված են # հավելվածի համար:}}</translation> <translation id="1525508553941733066">ՓԱԿԵԼ</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> հասցեն օգտագործելու համար նախ դուք պետք է դուրս գաք բոլոր հաշիվներից։ Դրա համար սեղմեք «Չեղարկել» և մեկ քայլ հետ գնացեք։ Այնուհետև սեղմեք ժամացույցի վրա և վիճակի տարածքում ընտրեք «Դուրս գալ»։ Նորից մտեք <ph name="USER_EMAIL_ADDRESS_2" /> հաշիվ։</translation> <translation id="15373452373711364">Մկնիկի մեծ նշորդ</translation> <translation id="1546492247443594934">Աշխատասեղան 2</translation> <translation id="1550523713251050646">Լրացուցիչ ընտրանքների համար սեղմեք</translation> @@ -355,7 +356,7 @@ <translation id="380165613292957338">Ողջույն: Ինչո՞վ կարող եմ օգնել:</translation> <translation id="3826099427150913765">Անցնել գաղտնաբառով նույնականացմանը</translation> <translation id="383058930331066723">Մարտկոցի տնտեսման ռեժիմը միացված է</translation> -<translation id="3835880383832568924">Թարմացումները տեսնելու համար բացեք Դյուրանցումներ հավելվածը</translation> +<translation id="3835880383832568924">Թարմացումները տեսնելու համար բացեք «Դյուրանցումներ» հավելվածը</translation> <translation id="383629559565718788">Ցուցադրել ստեղնաշարի կարգավորումները</translation> <translation id="3846214748874656680">Դուք գալ լիաէկրան ռեժիմից</translation> <translation id="3846575436967432996">Ցանցի մասին տեղեկություններ չկան</translation> @@ -463,7 +464,7 @@ <translation id="4578906031062871102">Կարգավորումների ընտրացանկը բացված է</translation> <translation id="4581047786858252841">Խոսափողը միացված է</translation> <translation id="4585337515783392668">Դադարեցնել հեռարձակումը անհայտ սարքին</translation> -<translation id="4586483766170476230">Անտատել սելֆիի ֆոտոխցիկը</translation> +<translation id="4586483766170476230">Անջատել սելֆիի ֆոտոխցիկը</translation> <translation id="4587299710837179226">Խոսափողն անջատված է</translation> <translation id="4596144739579517758">Մուգ թեման անջատված է</translation> <translation id="4611292653554630842">Մուտք</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Լիաէկրան ռեժիմում լուսանկարելու համար սեղմեք էկրանի որևէ կետ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> սարքը կապվեց նոր հեռախոսի հետ</translation> <translation id="5035389544768382859">Հաստատեք էկրանի կազմաձևումը</translation> +<translation id="5039804452771397117">Թույլ տալ</translation> <translation id="504465286040788597">Նախորդ պարբերությունը</translation> <translation id="5071064518267176975">Հավելվածը հայցում է խոսափողն օգտագործելու թույլտվություն</translation> <translation id="5075554201838155866">Ցույց տալ ենթագրերը</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Ամրացնել</translation> <translation id="746232733191930409">Էկրանի տեսագրման ռեժիմ</translation> <translation id="7466449121337984263">Մատը դրեք տվիչին</translation> +<translation id="7473891865547856676">Ոչ</translation> <translation id="7477793887173910789">Վերահսկեք երաժշտությունը, տեսանյութերը և այլն</translation> <translation id="7483025031359818980">Ընտրված է ամբողջ էկրանը</translation> <translation id="7486227320194954040">Ծալել նշիչի գործիքները</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index 4ab5ca02..65ef53c 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Mode Jangan Ganggu aktif.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Tampilkan setelan notifikasi. Notifikasi nonaktif untuk satu aplikasi}other{Tampilkan setelan notifikasi. Notifikasi nonaktif untuk # aplikasi}}</translation> <translation id="1525508553941733066">TUTUP</translation> +<translation id="1536604384701784949">Untuk menggunakan <ph name="USER_EMAIL_ADDRESS" />, Anda perlu logout dari semua akun terlebih dahulu. Untuk logout, pilih Batal untuk kembali. Lalu, pilih waktu untuk membuka area status dan pilih Logout. Lalu login ke <ph name="USER_EMAIL_ADDRESS_2" /> lagi.</translation> <translation id="15373452373711364">Kursor mouse besar</translation> <translation id="1546492247443594934">Halaman kerja 2</translation> <translation id="1550523713251050646">Klik untuk opsi lainnya</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Izinkan</translation> <translation id="504465286040788597">Paragraf sebelumnya</translation> <translation id="5071064518267176975">Sebuah aplikasi ingin menggunakan mikrofon</translation> <translation id="5075554201838155866">Mulai teks tertutup</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Sematkan</translation> <translation id="746232733191930409">Mode perekaman layar</translation> <translation id="7466449121337984263">Sentuh sensor</translation> +<translation id="7473891865547856676">Lain Kali</translation> <translation id="7477793887173910789">Kontrol musik, video, dan banyak lagi</translation> <translation id="7483025031359818980">Area pemilihan disetel ke layar penuh</translation> <translation id="7486227320194954040">Ciutkan alat penanda</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb index 21cd8105..03b2dc3c 100644 --- a/ash/strings/ash_strings_is.xtb +++ b/ash/strings/ash_strings_is.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Kveikt er á „Ónáðið ekki“.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Sýna tilkynningastillingar. Slökkt er á tilkynningum fyrir forrit}one{Sýna tilkynningastillingar. Slökkt er á tilkynningum fyrir # forrit}other{Sýna tilkynningastillingar. Slökkt er á tilkynningum fyrir # forrit}}</translation> <translation id="1525508553941733066">LOKA</translation> +<translation id="1536604384701784949">Til að nota <ph name="USER_EMAIL_ADDRESS" /> þarftu fyrst að skrá þig út af öllum reikningum. Veldu „Hætta við“ til að fara til baka og skrá þig út. Veldu svo tíma til að opna stöðusvæðið og veldu „Skrá út“. Skráðu þig svo aftur inn á <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Stór músarbendill</translation> <translation id="1546492247443594934">Skrifborð 2</translation> <translation id="1550523713251050646">Smelltu til að sjá fleiri valkosti</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Leyfa</translation> <translation id="504465286040788597">Fyrri málsgrein</translation> <translation id="5071064518267176975">Forrit vill nota hljóðnemann</translation> <translation id="5075554201838155866">Ræsa skjátexta</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Festa</translation> <translation id="746232733191930409">Skjáupptökustilling</translation> <translation id="7466449121337984263">Snertu fingrafaralesarann</translation> +<translation id="7473891865547856676">Nei, takk</translation> <translation id="7477793887173910789">Stjórnaðu tónlistinni, myndskeiðunum og fleiru</translation> <translation id="7483025031359818980">Valsvæði stillt á allan skjáinn</translation> <translation id="7486227320194954040">Draga saman merkiverkfæri</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb index 51eec7a..8908827 100644 --- a/ash/strings/ash_strings_it.xtb +++ b/ash/strings/ash_strings_it.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">La modalità Non disturbare è attiva.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostra impostazioni di notifica. Le notifiche sono disattivate per un'app}other{Mostra impostazioni di notifica. Le notifiche sono disattivate per # app}}</translation> <translation id="1525508553941733066">IGNORA</translation> +<translation id="1536604384701784949">Per usare l'account <ph name="USER_EMAIL_ADDRESS" />, devi prima uscire da tutti gli account. A tale scopo, seleziona Annulla per tornare indietro. Dopodiché seleziona l'ora per aprire l'area di stato e seleziona Esci, quindi accedi di nuovo all'account <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Puntatore del mouse grande</translation> <translation id="1546492247443594934">Scrivania 2</translation> <translation id="1550523713251050646">Fai clic per visualizzare altre opzioni</translation> @@ -525,6 +526,7 @@ <translation id="5033299697334913360">Fai clic su un punto qualsiasi per acquisire l'intera schermata</translation> <translation id="5035236842988137213">Il dispositivo <ph name="DEVICE_NAME" /> si è connesso a un nuovo telefono</translation> <translation id="5035389544768382859">Conferma la configurazione del display</translation> +<translation id="5039804452771397117">Consenti</translation> <translation id="504465286040788597">Paragrafo precedente</translation> <translation id="5071064518267176975">Un'app vuole usare il microfono</translation> <translation id="5075554201838155866">Avvia sottotitoli</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Blocca</translation> <translation id="746232733191930409">Modalità Registrazione dello schermo</translation> <translation id="7466449121337984263">Tocca il sensore</translation> +<translation id="7473891865547856676">No grazie</translation> <translation id="7477793887173910789">Gestisci la tua musica, i tuoi video e altro ancora</translation> <translation id="7483025031359818980">Area di selezione impostata su Schermo intero</translation> <translation id="7486227320194954040">Comprimi strumenti indicatore</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index 5127198..8c338bc8 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">מצב 'נא לא להפריע' מופעל.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{צפייה בהגדרות של הודעות. ההודעות מושבתות באפליקציה אחת}two{צפייה בהגדרות של הודעות. ההודעות מושבתות ב-# אפליקציות}many{צפייה בהגדרות של הודעות. ההודעות מושבתות ב-# אפליקציות}other{צפייה בהגדרות של הודעות. ההודעות מושבתות ב-# אפליקציות}}</translation> <translation id="1525508553941733066">סגירה</translation> +<translation id="1536604384701784949">כדי להשתמש ב-<ph name="USER_EMAIL_ADDRESS" />, עליך לצאת תחילה מכל החשבונות. כדי לצאת, בוחרים ב'ביטול' וחוזרים חזרה. לאחר מכן בוחרים בשעה לפתיחת אזור הסטטוס ובאפשרות 'יציאה'. לאחר מכן נכנסים שוב אל <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">סמן עכבר גדול</translation> <translation id="1546492247443594934">שולחן עבודה 2</translation> <translation id="1550523713251050646">יש ללחוץ לקבלת אפשרויות נוספות</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">כדי לצלם את המסך המלא, יש ללחוץ במקום כלשהו</translation> <translation id="5035236842988137213">מכשיר <ph name="DEVICE_NAME" /> התחבר לטלפון חדש</translation> <translation id="5035389544768382859">אישור הגדרת המסך</translation> +<translation id="5039804452771397117">זה בסדר</translation> <translation id="504465286040788597">הפיסקה הקודמת</translation> <translation id="5071064518267176975">אפליקציה כלשהי מבקשת להשתמש במיקרופון</translation> <translation id="5075554201838155866">לפתיחת הכתוביות</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">הצמדה</translation> <translation id="746232733191930409">מצב הקלטת מסך</translation> <translation id="7466449121337984263">יש לגעת בחיישן</translation> +<translation id="7473891865547856676">לא, תודה</translation> <translation id="7477793887173910789">שליטה במוזיקה, בסרטונים ועוד</translation> <translation id="7483025031359818980">אזור הבחירה הוגדר כמסך מלא</translation> <translation id="7486227320194954040">כיווץ כלי הסימון</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb index 6a6f36e..2fb6d42 100644 --- a/ash/strings/ash_strings_ja.xtb +++ b/ash/strings/ash_strings_ja.xtb
@@ -525,6 +525,7 @@ <translation id="5033299697334913360">全画面をキャプチャするには任意の場所をクリックしてください</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> が新しいスマートフォンに接続されました</translation> <translation id="5035389544768382859">ディスプレイ設定の確定</translation> +<translation id="5039804452771397117">許可</translation> <translation id="504465286040788597">前の段落</translation> <translation id="5071064518267176975">アプリがマイクの使用を求めています</translation> <translation id="5075554201838155866">字幕を開始</translation> @@ -803,6 +804,7 @@ <translation id="7461924472993315131">固定</translation> <translation id="746232733191930409">画面の録画モード</translation> <translation id="7466449121337984263">センサーをタッチしてください</translation> +<translation id="7473891865547856676">スキップ</translation> <translation id="7477793887173910789">音楽、動画、その他のメディアを操作します</translation> <translation id="7483025031359818980">選択領域を全画面に設定しました</translation> <translation id="7486227320194954040">マーカーツールを折りたたむ</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb index 046f0823..743db5f 100644 --- a/ash/strings/ash_strings_ka.xtb +++ b/ash/strings/ash_strings_ka.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">„არ შემაწუხოთ“ ჩართულია.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{შეტყობინების პარამეტრების ჩვენება. შეტყობინებები გამორთულია აპისთვის}other{შეტყობინების პარამეტრების ჩვენება. შეტყობინებები გამორთულია # აპისთვის}}</translation> <translation id="1525508553941733066">დახურვა</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> რომ გამოიყენოთ, პირველ რიგში, დანარჩენი ანგარიშებიდან უნდა გამოხვიდეთ. გამოსასვლელად აირჩიეთ „გაუქმება“, უკან რომ დაბრუნდეთ. ამის შემდეგ აირჩიეთ დრო (სტატუსის არე რომ გაიხსნას) და „გასვლა“. შემდეგ ხელახლა შედით <ph name="USER_EMAIL_ADDRESS_2" />-ში.</translation> <translation id="15373452373711364">დიდი მაუსის კურსორი</translation> <translation id="1546492247443594934">დესკტოპი 2</translation> <translation id="1550523713251050646">დააწკაპუნეთ დამატებითი ვარიანტების სანახავად</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">სრული ეკრანის აღსაბეჭდად დააწკაპუნეთ ნებისმიერ ადგილზე</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> დაკავშირებულია ახალ ტელეფონთან</translation> <translation id="5035389544768382859">დაადასტურეთ ეკრანის კონფიგურაცია</translation> +<translation id="5039804452771397117">დაშვება</translation> <translation id="504465286040788597">წინა აბზაცი</translation> <translation id="5071064518267176975">აპი მოითხოვს მიკროფონის გამოყენებას</translation> <translation id="5075554201838155866">დახურული სუბტიტრების გაშვება</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">პინი</translation> <translation id="746232733191930409">ეკრანის ჩაწერის რეჟიმი</translation> <translation id="7466449121337984263">შეეხეთ სენსორს</translation> +<translation id="7473891865547856676">არა, გმადლობთ</translation> <translation id="7477793887173910789">მართეთ თქვენი მუსიკა, ვიდეოები და სხვა</translation> <translation id="7483025031359818980">არჩევის არე დაყენებულია სრულ ეკრანზე</translation> <translation id="7486227320194954040">მარკერის ხელსაწყოების ჩაკეცვა</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb index ad9f5800..065e12f 100644 --- a/ash/strings/ash_strings_kk.xtb +++ b/ash/strings/ash_strings_kk.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Мазаламау режимі қосулы.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Хабарландыру параметрлерін көрсету. Қолданбаның хабарландырулары өшірулі}other{Хабарландыру параметрлерін көрсету. # қолданбаның хабарландырулары өшірулі}}</translation> <translation id="1525508553941733066">ЖАБУ</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> есептік жазбасын пайдалану үшін алдымен барлық есептік жазбадан шығуыңыз керек. Шығу үшін "Бас тарту" түймесін басып, артқа қайтыңыз. Бұдан кейін күй аумағын ашу уақытын таңдап, "Шығу" түймесін басыңыз. Сосын <ph name="USER_EMAIL_ADDRESS_2" /> есептік жазбасына қайта кіріңіз.</translation> <translation id="15373452373711364">Үлкен тінтуір курсоры</translation> <translation id="1546492247443594934">2-ші жұмыс үстелі</translation> <translation id="1550523713251050646">Қосымша опциялар үшін басыңыз</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Толық экранды түсіру үшін кез келген жерді басыңыз.</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> жаңа телефонға жалғанды</translation> <translation id="5035389544768382859">Дисплей конфигурациясын растау</translation> +<translation id="5039804452771397117">Рұқсат беру</translation> <translation id="504465286040788597">Алдыңғы абзац</translation> <translation id="5071064518267176975">Қолданба микрофонды пайдалануға рұқсат сұрайды</translation> <translation id="5075554201838155866">Субтитрді қосу</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Бекіту</translation> <translation id="746232733191930409">Экран жазу режимі</translation> <translation id="7466449121337984263">Саусақ ізін оқу сканерін түртіңіз.</translation> +<translation id="7473891865547856676">Жоқ, рақмет</translation> <translation id="7477793887173910789">Музыканы, бейнелерді және т.б. басқарыңыз.</translation> <translation id="7483025031359818980">Таңдау аймағы толық экранға орнатылды.</translation> <translation id="7486227320194954040">Белгілеу құралдарын жию</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb index 5632908..4d08f83 100644 --- a/ash/strings/ash_strings_km.xtb +++ b/ash/strings/ash_strings_km.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">មុខងារ "កុំរំខាន" ត្រូវបានបើក។</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{បង្ហាញការកំណត់ការជូនដំណឹង។ ការជូនដំណឹងត្រូវបានបិទសម្រាប់កម្មវិធីមួយ}other{បង្ហាញការកំណត់ការជូនដំណឹង។ ការជូនដំណឹងត្រូវបានបិទសម្រាប់កម្មវិធី #}}</translation> <translation id="1525508553941733066">បដិសេធ</translation> +<translation id="1536604384701784949">ដើម្បីប្រើ <ph name="USER_EMAIL_ADDRESS" /> អ្នកត្រូវចេញពីគណនីទាំងអស់ជាមុនសិន។ ដើម្បីចេញពីគណនី សូមជ្រើសរើស "បោះបង់" ដើម្បីថយក្រោយ។ ក្រោយមកជ្រើសរើសពេលដែលត្រូវបើកតំបន់ស្ថានភាព រួចជ្រើសរើស "ចេញពីគណនី"។ បន្ទាប់មកចូលគណនី <ph name="USER_EMAIL_ADDRESS_2" /> ម្ដងទៀត។</translation> <translation id="15373452373711364">ព្រួញកណ្តុរធំ</translation> <translation id="1546492247443594934">តុទី 2</translation> <translation id="1550523713251050646">ចុចសម្រាប់ជម្រើសជាច្រើនទៀត</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">ចុចកន្លែងណាមួយ ដើម្បីថតពេញអេក្រង់</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> បានភ្ជាប់ទៅទូរសព្ទថ្មី</translation> <translation id="5035389544768382859">បញ្ជាក់កំណត់រចនាសម្ព័ន្ធផ្ទាំងអេក្រង់</translation> +<translation id="5039804452771397117">អនុញ្ញាត</translation> <translation id="504465286040788597">កថាខណ្ឌមុន</translation> <translation id="5071064518267176975">មានកម្មវិធីមួយចង់ប្រើមីក្រូហ្វូន</translation> <translation id="5075554201838155866">ចាប់ផ្ដើមអក្សររត់</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">លេខសម្គាល់</translation> <translation id="746232733191930409">មុខងារថតវីដេអូអេក្រង់</translation> <translation id="7466449121337984263">សូមប៉ះឧបករណ៍ចាប់សញ្ញា</translation> +<translation id="7473891865547856676">ទេ អរគុណ</translation> <translation id="7477793887173910789">គ្រប់គ្រងតន្ត្រី វីដេអូរបស់អ្នក និងអ្វីៗជាច្រើនទៀត</translation> <translation id="7483025031359818980">ផ្នែកនៃការជ្រើសរើសត្រូវបានកំណត់ទៅអេក្រង់ពេញ</translation> <translation id="7486227320194954040">បង្រួមឧបករណ៍ហ្វឺត</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index de4b170..944509b0 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">'ಅಡಚಣೆ ಮಾಡಬೇಡಿ' ಆನ್ ಆಗಿದೆ.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೋರಿಸಿ. ಒಂದು ಅಪ್ಲಿಕೇಶನ್ಗಾಗಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ}one{ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೋರಿಸಿ. # ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ}other{ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೋರಿಸಿ. # ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ}}</translation> <translation id="1525508553941733066">ವಜಾಗೊಳಿಸಿ</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> ಅನ್ನು ಬಳಸಲು ಮೊದಲು ನೀವು ಎಲ್ಲಾ ಖಾತೆಗಳಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಬೇಕು. ಸೈನ್ ಔಟ್ ಮಾಡಲು, ಹಿಂತಿರುಗಲು ರದ್ದುಗೊಳಿಸಿ ಆಯ್ಕೆಮಾಡಿ. ನಂತರ ಸ್ಥಿತಿ ಕ್ಷೇತ್ರವನ್ನು ತೆರೆಯಲು ಸಮಯವನ್ನು ಆರಿಸಿ ಹಾಗೂ ಸೈನ್ ಔಟ್ ಆಯ್ಕೆಮಾಡಿ. ನಂತರ ಪುನಃ <ph name="USER_EMAIL_ADDRESS_2" /> ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation> <translation id="15373452373711364">ದೊಡ್ಡ ಮೌಸ್ ಕರ್ಸರ್</translation> <translation id="1546492247443594934">ಡೆಸ್ಕ್ 2</translation> <translation id="1550523713251050646">ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳಿಗೆ ಕ್ಲಿಕ್ ಮಾಡಿ</translation> @@ -522,6 +523,7 @@ <translation id="5033299697334913360">ಫುಲ್ಸ್ಕ್ರೀನ್ ಅನ್ನು ಕ್ಯಾಪ್ಚರ್ ಮಾಡಲು ಎಲ್ಲಿಯಾದರೂ ಕ್ಲಿಕ್ ಮಾಡಿ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ಸಾಧನವು ಹೊಸ ಫೋನ್ ಒಂದಕ್ಕೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation> <translation id="5035389544768382859">ಡಿಸ್ಪ್ಲೇ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಖಚಿತಪಡಿಸಿ</translation> +<translation id="5039804452771397117">ಅನುಮತಿಸಿ</translation> <translation id="504465286040788597">ಹಿಂದಿನ ಪ್ಯಾರಾಗ್ರಾಫ್</translation> <translation id="5071064518267176975">ಮೈಕ್ರೊಫೋನ್ ಬಳಸಲು ಆ್ಯಪ್ ಬಯಸುತ್ತದೆ</translation> <translation id="5075554201838155866">ಉಪಶೀರ್ಷಿಕೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸಿ</translation> @@ -800,6 +802,7 @@ <translation id="7461924472993315131">ಪಿನ್</translation> <translation id="746232733191930409">ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡಿಂಗ್ ಮೋಡ್</translation> <translation id="7466449121337984263">ಸೆನ್ಸರ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ</translation> +<translation id="7473891865547856676">ಇಲ್ಲ, ಧನ್ಯವಾದಗಳು</translation> <translation id="7477793887173910789">ನಿಮ್ಮ ಸಂಗೀತ, ವೀಡಿಯೊಗಳು ಹಾಗೂ ಇತ್ಯಾದಿಗಳನ್ನು ನಿಯಂತ್ರಿಸಿ</translation> <translation id="7483025031359818980">ಪೂರ್ಣ ಸ್ಕ್ರೀನ್ಗೆ ಹೊಂದಿಸಲು ಪ್ರದೇಶವನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="7486227320194954040">ಮಾರ್ಕರ್ ಪರಿಕರಗಳನ್ನು ಕುಗ್ಗಿಸಿ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb index 24c64a7..eda2116d 100644 --- a/ash/strings/ash_strings_ko.xtb +++ b/ash/strings/ash_strings_ko.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">방해 금지 모드가 사용 설정되어 있습니다.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{알림 설정을 표시합니다. 앱 1개의 알림이 사용 중지되어 있습니다.}other{알림 설정을 표시합니다. 앱 #개의 알림이 사용 중지되어 있습니다.}}</translation> <translation id="1525508553941733066">닫기</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> 계정을 사용하려면 모든 계정에서 로그아웃해야 합니다. 로그아웃하려면 취소를 선택하여 뒤로 돌아가세요. 그런 다음 시간을 선택하여 상태 영역을 열고 로그아웃을 선택합니다. 그리고 <ph name="USER_EMAIL_ADDRESS_2" /> 계정으로 로그인하면 됩니다.</translation> <translation id="15373452373711364">큰 마우스 커서</translation> <translation id="1546492247443594934">데스크 2</translation> <translation id="1550523713251050646">더 많은 옵션을 확인하려면 클릭하세요.</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">전체 화면을 캡처하려면 아무 곳이나 클릭하세요</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" />이(가) 새 휴대전화에 연결되었습니다.</translation> <translation id="5035389544768382859">화면 구성 확인</translation> +<translation id="5039804452771397117">허용</translation> <translation id="504465286040788597">이전 단락</translation> <translation id="5071064518267176975">앱에서 마이크를 사용하려고 함</translation> <translation id="5075554201838155866">자막 사용</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">고정</translation> <translation id="746232733191930409">화면 녹화 모드</translation> <translation id="7466449121337984263">센서를 터치하세요.</translation> +<translation id="7473891865547856676">건너뛰기</translation> <translation id="7477793887173910789">음악, 동영상 등의 항목 제어하기</translation> <translation id="7483025031359818980">선택 영역이 전체 화면으로 설정됨</translation> <translation id="7486227320194954040">마커 도구 접기</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb index aa8eb9de3..1fae5fdd 100644 --- a/ash/strings/ash_strings_ky.xtb +++ b/ash/strings/ash_strings_ky.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">"Тынчымды алба" режими күйүк.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Билдирмелердин жөндөөлөрүн көрсөтүү. Колдонмонун билдирмелери өчүк}other{Билдирмелердин жөндөөлөрүн көрсөтүү. # колдонмонун билдирмелери өчүк}}</translation> <translation id="1525508553941733066">ЭТИБАРГА АЛБОО</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> аккаунтун колдонуу үчүн, адегенде бардык аккаунттарыңыздан чыгышыңыз керек. Аккаунттардан чыгуу үчүн "Жокко чыгаруу" баскычын басып, артка кайтыңыз. Андан соң, статус аймагын ачып, "Чыгууну" тандаңыз. Эми <ph name="USER_EMAIL_ADDRESS_2" /> аккаунтуна кайра кириңиз.</translation> <translation id="15373452373711364">Чоң чычкан курсору</translation> <translation id="1546492247443594934">2-иш такта</translation> <translation id="1550523713251050646">Көбүрөөк опциялар үчүн чыкылдатыңыз</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Толук экранды сүрөткө тартуу үчүн каалаган жерин басыңыз</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> жаңы телефонго туташты</translation> <translation id="5035389544768382859">Дисплейдин конфигурациясын ырастоо</translation> +<translation id="5039804452771397117">Уруксат берүү</translation> <translation id="504465286040788597">Мурунку абзац</translation> <translation id="5071064518267176975">Колдонмо микрофонду ачканы жатат</translation> <translation id="5075554201838155866">Коштомо жазууларды баштоо</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Кадап коюу</translation> <translation id="746232733191930409">Экрандан видео жаздырып алуу режими</translation> <translation id="7466449121337984263">Сенсорго тийиңиз, сураныч</translation> +<translation id="7473891865547856676">Жок, рахмат</translation> <translation id="7477793887173910789">Музыканы, видеолорду жана башкаларды көзөмөлдөңүз</translation> <translation id="7483025031359818980">Толук экран тандалды</translation> <translation id="7486227320194954040">Белгилегичтин куралдарын жыйыштыруу</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb index 26f0b0e..863877f 100644 --- a/ash/strings/ash_strings_lo.xtb +++ b/ash/strings/ash_strings_lo.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">ໂໝດຫ້າມລົບກວນເປີດຢູ່.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{ສະແດງການຕັ້ງຄ່າການແຈ້ງເຕືອນ. ການແຈ້ງເຕືອນປິດຢູ່ສຳລັບໜຶ່ງແອັບ}other{ສະແດງການຕັ້ງຄ່າການແຈ້ງເຕືອນ. ການແຈ້ງເຕືອນປິດຢູ່ສຳລັບ # ແອັບ}}</translation> <translation id="1525508553941733066">ປິດໄວ້</translation> +<translation id="1536604384701784949">ເພື່ອໃຊ້ <ph name="USER_EMAIL_ADDRESS" /> ທ່ານຈະຕ້ອງອອກຈາກລະບົບທຸກບັນຊີກ່ອນ. ເພື່ອອອກຈາກລະບົບ, ໃຫ້ເລືອກຍົກເລີກເພື່ອກັບຄືນ. ຈາກນັ້ນເລືອກເວລາເພື່ອເປີດພື້ນທີ່ສະຖານະແລ້ວເລືອກອອກຈາກລະບົບ. ຈາກນັ້ນເຂົ້າສູ່ລະບົບຫາ <ph name="USER_EMAIL_ADDRESS_2" /> ຄືນໃໝ່.</translation> <translation id="15373452373711364">ເຄີເຊີເມົາສ໌ໃຫຍ່</translation> <translation id="1546492247443594934">ໂຕະ 2</translation> <translation id="1550523713251050646">ຄລິກສຳລັບຕົວເລືອກເພີ່ມເຕີມ</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">ຄລິກບ່ອນໃດກໍໄດ້ເພື່ອຖ່າຍຮູບແບບເຕັມຈໍ</translation> <translation id="5035236842988137213">ເຊື່ອມຕໍ່ <ph name="DEVICE_NAME" />ກັບໂທລະສັບໃໝ່ແລ້ວ</translation> <translation id="5035389544768382859">ຢືນຢັນການຕັ້ງຄ່າຈໍສະແດງຜົນ</translation> +<translation id="5039804452771397117">ອະນຸຍາດ</translation> <translation id="504465286040788597">ຫຍໍ້ໜ້າກ່ອນໜ້າ</translation> <translation id="5071064518267176975">ມີແອັບຕ້ອງການໃຊ້ໄມໂຄຣໂຟນ</translation> <translation id="5075554201838155866">ເລີ່ມຄຳບັນຍາຍ</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">ປັກໝຸດ</translation> <translation id="746232733191930409">ໂໝດການບັນທຶກໜ້າຈໍ</translation> <translation id="7466449121337984263">ກະລຸນາແຕະເຊັນເຊີ</translation> +<translation id="7473891865547856676">ບໍ່, ຂອບໃຈ</translation> <translation id="7477793887173910789">ຄວບຄຸມເພງ, ວິດີໂອຂອງທ່ານ ແລະ ອື່ນໆອີກ</translation> <translation id="7483025031359818980">ຕັ້ງຄ່າພື້ນທີ່ການເລືອກເປັນເຕັມຈໍແລ້ວ</translation> <translation id="7486227320194954040">ຫຍໍ້ເຄື່ອງໝາຍມາກເກີ</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index a081e4c..57b8e56 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Netrukdymo režimas įjungtas.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Rodyti pranešimų nustatymus. Programos pranešimai išjungti}one{Rodyti pranešimų nustatymus. # programos pranešimai išjungti}few{Rodyti pranešimų nustatymus. # programų pranešimai išjungti}many{Rodyti pranešimų nustatymus. # programos pranešimai išjungti}other{Rodyti pranešimų nustatymus. # programų pranešimai išjungti}}</translation> <translation id="1525508553941733066">ATSISAKYTI</translation> +<translation id="1536604384701784949">Kad galėtumėte naudoti <ph name="USER_EMAIL_ADDRESS" />, pirmiausia turite atsijungti nuo visų paskyrų. Norėdami atsijungti, pasirinkite „Atšaukti“, kad grįžtumėte. Tada pasirinkite laiką, kad atidarytumėte būsenos sritį, ir pasirinkite „Atsijungti“. Tada vėl prisijunkite prie <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Didelis pelės žymeklis</translation> <translation id="1546492247443594934">2 pultas</translation> <translation id="1550523713251050646">Spustelėkite, jei reikia daugiau parinkčių</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Spustelėkite bet kur, kad užfiksuotumėte visą ekraną</translation> <translation id="5035236842988137213">„<ph name="DEVICE_NAME" />“ įrenginys buvo susietas su telefonu</translation> <translation id="5035389544768382859">Ekrano konfigūracijos patvirtinimas</translation> +<translation id="5039804452771397117">Leisti</translation> <translation id="504465286040788597">Ankstesnė pastraipa</translation> <translation id="5071064518267176975">Programa nori naudoti mikrofoną</translation> <translation id="5075554201838155866">Įjungti subtitrus</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Prisegti</translation> <translation id="746232733191930409">Ekrano vaizdo įrašymo režimas</translation> <translation id="7466449121337984263">Palieskite jutiklį</translation> +<translation id="7473891865547856676">Ne, ačiū</translation> <translation id="7477793887173910789">Valdykite savo muziką, vaizdo įrašus ir žaidimus</translation> <translation id="7483025031359818980">Pasirinkta viso ekrano sritis</translation> <translation id="7486227320194954040">Sutraukti žymeklio įrankius</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb index bcaed76..2d1c9d7 100644 --- a/ash/strings/ash_strings_lv.xtb +++ b/ash/strings/ash_strings_lv.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Režīms “Netraucēt” ir ieslēgts.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Rādīt paziņojumu iestatījumus. Paziņojumi lietotnei ir izslēgti}zero{Rādīt paziņojumu iestatījumus. Paziņojumi ir izslēgti # lietotnēm}one{Rādīt paziņojumu iestatījumus. Paziņojumi ir izslēgti # lietotnei}other{Rādīt paziņojumu iestatījumus. Paziņojumi ir izslēgti # lietotnēm}}</translation> <translation id="1525508553941733066">NERĀDĪT</translation> +<translation id="1536604384701784949">Lai izmantotu kontu <ph name="USER_EMAIL_ADDRESS" />, jums vispirms ir jāizrakstās no visiem kontiem. Lai pārietu atpakaļ un izrakstītos, atlasiet “Atcelt”. Pēc tam atlasiet laiku, lai atvērtu statusa apgabalu, un atlasiet “Izrakstīties”. Vēlreiz pierakstieties kontā <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Liels peles kursors</translation> <translation id="1546492247443594934">2. galds</translation> <translation id="1550523713251050646">Noklikšķiniet, lai skatītu citas iespējas.</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Atļaut</translation> <translation id="504465286040788597">Iepriekšējā rindkopa</translation> <translation id="5071064518267176975">Lietotne pieprasa atļauju izmantot mikrofonu</translation> <translation id="5075554201838155866">Ieslēgt subtitrus</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Piespraust</translation> <translation id="746232733191930409">Ekrāna ierakstīšanas režīms</translation> <translation id="7466449121337984263">Lūdzu, pieskarieties sensoram.</translation> +<translation id="7473891865547856676">Nē, paldies!</translation> <translation id="7477793887173910789">Pārvaldiet savu mūziku, videoklipus un citu saturu</translation> <translation id="7483025031359818980">Kā atlases apgabals ir iestatīts viss ekrāns</translation> <translation id="7486227320194954040">Sakļaut marķiera rīkus</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb index ef45385..6c25db4 100644 --- a/ash/strings/ash_strings_mk.xtb +++ b/ash/strings/ash_strings_mk.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">„Не вознемирувај“ е вклучено.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Прикажи ги поставките за известувања. Известувањата се исклучени за една апликација}one{Прикажи ги поставките за известувања. Известувањата се исклучени за # апликација}other{Прикажи ги поставките за известувања. Известувањата се исклучени за # апликации}}</translation> <translation id="1525508553941733066">ОТФРЛИ</translation> +<translation id="1536604384701784949">За да ја користите <ph name="USER_EMAIL_ADDRESS" />, прво треба да се одјавите од сите сметки. За да се одјавите, изберете „Откажи“ за да се вратите назад. Потоа, изберете го времето за да се отвори статусната област и изберете „Одјави се“. Потоа, повторно најавете се на <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Голем курсор на глувчето</translation> <translation id="1546492247443594934">Биро 2</translation> <translation id="1550523713251050646">Кликни за повеќе опции</translation> @@ -525,6 +526,7 @@ <translation id="5033299697334913360">Кликнете каде било за да го сликате целиот екран</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> е поврзан со нов телефон</translation> <translation id="5035389544768382859">Потврдете ја конфигурацијата на екранот</translation> +<translation id="5039804452771397117">Дозволи</translation> <translation id="504465286040788597">Претходен пасус</translation> <translation id="5071064518267176975">Дадена апликација сака да го користи микрофонот</translation> <translation id="5075554201838155866">Стартувај затворени титлови</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Закачи</translation> <translation id="746232733191930409">Режим на снимање на екранот</translation> <translation id="7466449121337984263">Допрете го сензорот</translation> +<translation id="7473891865547856676">Не, фала</translation> <translation id="7477793887173910789">Контролирајте ја музиката, видеата и др.</translation> <translation id="7483025031359818980">Областа за избор е цел екран</translation> <translation id="7486227320194954040">Собери ги алатките за означувачи</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index c0137a01..775a3eb 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">ശല്യപ്പെടുത്തരുത് മോഡ് ഓണാണ്.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{അറിയിപ്പ് ക്രമീകരണം കാണിക്കുക. ഒരു ആപ്പിന് അറിയിപ്പുകൾ ഓഫാണ്}other{അറിയിപ്പ് ക്രമീകരണം കാണിക്കുക. # ആപ്പുകൾക്ക് അറിയിപ്പുകൾ ഓഫാണ്}}</translation> <translation id="1525508553941733066">ഡിസ്മിസ്സ് ചെയ്യുക</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> ഉപയോഗിക്കാൻ നിങ്ങൾ ആദ്യം എല്ലാ അക്കൗണ്ടുകളിൽ നിന്നും സൈൻ ഔട്ട് ചെയ്യണം. സൈൻ ഔട്ട് ചെയ്യുന്നതിന്, "റദ്ദാക്കുക" തിരഞ്ഞെടുത്ത് തിരികെ പോകുക. തുടർന്ന്, സ്റ്റാറ്റസ് ഏരിയ തുറക്കുന്നതിനുള്ള സമയം തിരഞ്ഞെടുത്ത് 'സൈൻ ഔട്ട് ചെയ്യുക' തിരഞ്ഞെടുക്കുക. ശേഷം, വീണ്ടും <ph name="USER_EMAIL_ADDRESS_2" /> എന്ന വിലാസത്തിലേക്ക് സൈൻ ഇൻ ചെയ്യുക.</translation> <translation id="15373452373711364">വലിയ മൗസ് കഴ്സർ</translation> <translation id="1546492247443594934">ഡെസ്ക് 2</translation> <translation id="1550523713251050646">കൂടുതൽ ഓപ്ഷനുകൾക്ക് ക്ലിക്ക് ചെയ്യുക</translation> @@ -522,6 +523,7 @@ <translation id="5033299697334913360">പൂർണ്ണ സ്ക്രീൻ ക്യാപ്ചർ ചെയ്യാൻ എവിടെയെങ്കിലും ക്ലിക്ക് ചെയ്യുക</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> പുതിയ ഫോണിലേക്ക് കണക്റ്റ് ചെയ്തു</translation> <translation id="5035389544768382859">ഡിസ്പ്ലേ കോൺഫിഗറേഷൻ സ്ഥിരീകരിക്കുക</translation> +<translation id="5039804452771397117">അനുവദിക്കൂ</translation> <translation id="504465286040788597">മുമ്പത്തെ പാരഗ്രാഫ്</translation> <translation id="5071064518267176975">ഒരു ആപ്പിന് മൈക്രോഫോൺ ഉപയോഗിക്കണം</translation> <translation id="5075554201838155866">സബ്ടൈറ്റിലുകൾ ആരംഭിക്കുക</translation> @@ -799,6 +801,7 @@ <translation id="7461924472993315131">പിൻ ചെയ്യുക</translation> <translation id="746232733191930409">സ്ക്രീൻ റെക്കോർഡിംഗ് മോഡ്</translation> <translation id="7466449121337984263">സെൻസറിൽ സ്പർശിക്കുക</translation> +<translation id="7473891865547856676">വേണ്ട, നന്ദി</translation> <translation id="7477793887173910789">നിങ്ങളുടെ സംഗീതവും വീഡിയോകളും മറ്റും നിയന്ത്രിക്കുക</translation> <translation id="7483025031359818980">തിരഞ്ഞെടുക്കൽ ഏരിയ പൂർണ്ണ സ്ക്രീനായി സജ്ജീകരിച്ചു</translation> <translation id="7486227320194954040">മാർക്കർ ടൂളുകൾ ചുരുക്കുക</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb index 1fe6065f..512e692 100644 --- a/ash/strings/ash_strings_mn.xtb +++ b/ash/strings/ash_strings_mn.xtb
@@ -526,6 +526,7 @@ <translation id="5033299697334913360">Бүтэн дэлгэцийн зургийг авахын тулд дурын газар товшино уу</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> шинэ утсанд холбогдсон байна</translation> <translation id="5035389544768382859">Дэлгэцийн тохируулгыг баталгаажуулах</translation> +<translation id="5039804452771397117">Зөвшөөрөх</translation> <translation id="504465286040788597">Өмнөх догол мөр</translation> <translation id="5071064518267176975">Апп микрофон ашиглахыг хүсэж байна</translation> <translation id="5075554201838155866">Хаалттай тайлбаруудыг эхлүүлэх</translation> @@ -803,6 +804,7 @@ <translation id="7461924472993315131">Pin</translation> <translation id="746232733191930409">Дэлгэцийн үйлдэл бичих горим</translation> <translation id="7466449121337984263">Мэдрэгчид хүрнэ үү</translation> +<translation id="7473891865547856676">Үгүй, баярлалаа</translation> <translation id="7477793887173910789">Хөгжим, видео болон бусад зүйлээ хянах</translation> <translation id="7483025031359818980">Сонголтын хэсгийг бүтэн дэлгэц болгож тохируулсан</translation> <translation id="7486227320194954040">Тэмдэглэгээний хэрэгслийг хураах</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index f620b46..2f6102c 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -522,6 +522,7 @@ <translation id="5033299697334913360">फुल स्क्रीन कॅप्चर करण्यासाठी कुठेही क्लिक करा</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> नवीन फोनशी कनेक्ट केले</translation> <translation id="5035389544768382859">डिस्प्ले कॉंफिगरेशन निश्चित करा</translation> +<translation id="5039804452771397117">परवानगी द्या</translation> <translation id="504465286040788597">मागील परिच्छेद</translation> <translation id="5071064518267176975">ॲपला मायक्रोफोन वापरायचा आहे</translation> <translation id="5075554201838155866">सबटायटल सुरू करा</translation> @@ -799,6 +800,7 @@ <translation id="7461924472993315131">पिन</translation> <translation id="746232733191930409">स्क्रीन रेकॉर्डिंग मोड</translation> <translation id="7466449121337984263">कृपया सेन्सरला स्पर्श करा</translation> +<translation id="7473891865547856676">नाही, नको</translation> <translation id="7477793887173910789">व्हिडिओ पाहा आणि बरेच काही नियंत्रित करा</translation> <translation id="7483025031359818980">निवड क्षेत्र फुल स्क्रीनवर सेट आहे</translation> <translation id="7486227320194954040">मार्कर टूल कोलॅप्स करा</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index 89ea87f..663b7ad 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Jangan ganggu dihidupkan.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Tunjukkan tetapan pemberitahuan. Pemberitahuan dimatikan untuk satu apl}other{Tunjukkan tetapan pemberitahuan. Pemberitahuan dimatikan untuk # apl}}</translation> <translation id="1525508553941733066">KETEPIKAN</translation> +<translation id="1536604384701784949">Untuk menggunakan <ph name="USER_EMAIL_ADDRESS" />, anda perlu log keluar daripada semua akaun dahulu. Untuk log keluar, pilih Batal untuk kembali. Kemudian pilih masa untuk membuka ruang status dan pilih Log keluar. Kemudian log masuk ke <ph name="USER_EMAIL_ADDRESS_2" /> sekali lagi.</translation> <translation id="15373452373711364">Kursor tetikus besar</translation> <translation id="1546492247443594934">Meja 2</translation> <translation id="1550523713251050646">Klik untuk mendapatkan lagi pilihan</translation> @@ -525,6 +526,7 @@ <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="5039804452771397117">Benarkan</translation> <translation id="504465286040788597">Perenggan sebelumnya</translation> <translation id="5071064518267176975">Satu apl mahu menggunakan mikrofon</translation> <translation id="5075554201838155866">Mulakan sari kata</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Pin</translation> <translation id="746232733191930409">Mod rakaman skrin</translation> <translation id="7466449121337984263">Sila sentuh penderia</translation> +<translation id="7473891865547856676">Tidak, Terima Kasih</translation> <translation id="7477793887173910789">Kawal muzik, video anda dan banyak lagi</translation> <translation id="7483025031359818980">Kawasan pilihan ditetapkan kepada skrin penuh</translation> <translation id="7486227320194954040">Runtuhkan alatan penanda</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb index 31b91cc..7415db6b6 100644 --- a/ash/strings/ash_strings_my.xtb +++ b/ash/strings/ash_strings_my.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">'မနှောင့်ယှက်ရ' ဖွင့်ထားသည်။</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{အကြောင်းကြားချက်ဆက်တင်များကို ပြရန်။ အက်ပ်တစ်ခုအတွက် အကြောင်းကြားချက်များကို ပိတ်ထားသည်}other{အကြောင်းကြားချက်ဆက်တင်များကို ပြရန်။ အက်ပ် # ခုအတွက် အကြောင်းကြားချက်များကို ပိတ်ထားသည်}}</translation> <translation id="1525508553941733066">ပယ်ရန်</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> သုံးရန် အကောင့်အားလုံးမှ ဦးစွာထွက်ရမည်။ ထွက်ရန်အတွက် နောက်ပြန်သွားရန် ‘မလုပ်တော့’ ကို ရွေးပါ။ ထို့နောက် အခြေအနေပြ နေရာဖွင့်ရန် အချိန်ရွေးပြီး ‘ထွက်ရန်’ ကို ရွေးပါ။ ထို့နောက် <ph name="USER_EMAIL_ADDRESS_2" /> သို့ ထပ်မံ လက်မှတ်ထိုးဝင်ပါ။</translation> <translation id="15373452373711364">ကြီးမားသည့် မောက်စ်ညွှန်ပြကိရိယာ</translation> <translation id="1546492247443594934">စာရေးခုံ ၂</translation> <translation id="1550523713251050646">ပိုမိုရွေးစရာများအတွက် နှိပ်ပါ</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">ဖန်သားပြင်အပြည့် ရိုက်ယူရန် မည်သည့်နေရာကိုမဆို နှိပ်ပါ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> က ဖုန်းအသစ်သို့ ချိတ်ဆက်ထားသည်</translation> <translation id="5035389544768382859">ဖန်သားပြင် စီစဉ်သတ်မှတ်မှု အတည်ပြုခြင်း</translation> +<translation id="5039804452771397117">ခွင့်ပြုရန်</translation> <translation id="504465286040788597">ယခင်စာပိုဒ်</translation> <translation id="5071064518267176975">အက်ပ်က သင့်မိုက်ခရိုဖုန်းကို သုံးလိုသည်</translation> <translation id="5075554201838155866">စာတန်းများ စတင်ရန်</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">ပင်နံပါတ်</translation> <translation id="746232733191930409">ဖန်သားပြင်ရိုက်ကူးခြင်းမုဒ်</translation> <translation id="7466449121337984263">အာရုံခံကိရိယာကို ထိပါ</translation> +<translation id="7473891865547856676">မလိုပါ</translation> <translation id="7477793887173910789">သင့်သီချင်း၊ ဗီဒီယိုနှင့် အခြားအရာများ ထိန်းချုပ်ရန်</translation> <translation id="7483025031359818980">ရွေးချယ်ရန်နေရာအဖြစ် ဖန်သားပြင်အပြည့်ကို သတ်မှတ်လိုက်သည်</translation> <translation id="7486227320194954040">အမှတ်အသားပြုတူးလ်များ ချုံ့ရန်</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb index 165e692..bbe7e45 100644 --- a/ash/strings/ash_strings_ne.xtb +++ b/ash/strings/ash_strings_ne.xtb
@@ -513,6 +513,7 @@ <translation id="5033299697334913360">फुल स्क्रिनको फोटो खिच्न कुनै ठाउँमा क्लिक गर्नुहोस्</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> कुनै नयाँ फोनसँग जोडियो</translation> <translation id="5035389544768382859">डिस्प्ले कन्फिगुरेसन पुष्टि गर्नुहोस्</translation> +<translation id="5039804452771397117">अनुमति दिनुहोस्</translation> <translation id="504465286040788597">अघिल्लो अनुच्छेद</translation> <translation id="5078796286268621944">गलत PIN</translation> <translation id="5083553833479578423">सहायकका थप सुविधाहरू अनलक गर्नुहोस्।</translation> @@ -785,6 +786,7 @@ <translation id="7461924472993315131">पिन</translation> <translation id="746232733191930409">स्क्रिन रेकर्डिङ मोड</translation> <translation id="7466449121337984263">कृपया फिंगरप्रिन्ट सेन्सरमा छुनुहोस्</translation> +<translation id="7473891865547856676">पर्दैन, धन्यवाद</translation> <translation id="7477793887173910789">आफ्नो सङ्गीत, भिडियो र थप कुराहरू नियन्त्रण गर्नुहोस्</translation> <translation id="7483025031359818980">स्रोतका रुपमा 'फुल स्क्रिन' चयन गरिएको छ</translation> <translation id="7497767806359279797">भाषा तथा किबोर्ड छनौट गर्नुहोस्</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb index 6cc67f2..e9cb1ab 100644 --- a/ash/strings/ash_strings_nl.xtb +++ b/ash/strings/ash_strings_nl.xtb
@@ -525,6 +525,7 @@ <translation id="5033299697334913360">Klik ergens om een opname van het volledige scherm te maken</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> verbonden met nieuwe telefoon</translation> <translation id="5035389544768382859">Schermconfiguratie bevestigen</translation> +<translation id="5039804452771397117">Toestaan</translation> <translation id="504465286040788597">Vorige alinea</translation> <translation id="5071064518267176975">Een app wil de microfoon gebruiken</translation> <translation id="5075554201838155866">Ondertiteling starten</translation> @@ -802,6 +803,7 @@ <translation id="7461924472993315131">Vastzetten</translation> <translation id="746232733191930409">Schermopnamemodus</translation> <translation id="7466449121337984263">Raak de sensor aan</translation> +<translation id="7473891865547856676">Nee, bedankt</translation> <translation id="7477793887173910789">Je muziek, video's en meer bedienen</translation> <translation id="7483025031359818980">Selectiegebied ingesteld op volledig scherm</translation> <translation id="7486227320194954040">Markeringstools samenvouwen</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb index 61f28f6..6a57a37 100644 --- a/ash/strings/ash_strings_no.xtb +++ b/ash/strings/ash_strings_no.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Ikke forstyrr er på.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Vis innstillinger for varsler. Varsler er slått av for en app}other{Vis innstillinger for varsler. Varsler er slått av for # apper}}</translation> <translation id="1525508553941733066">AVVIS</translation> +<translation id="1536604384701784949">For å bruke <ph name="USER_EMAIL_ADDRESS" /> må du først logge av alle kontoer. For å logge av, velg Avbryt for å gå tilbake. Velg deretter klokkeslettet for å åpne statusfeltet, og velg Logg av. Logg deretter på <ph name="USER_EMAIL_ADDRESS_2" /> igjen.</translation> <translation id="15373452373711364">Stor markør</translation> <translation id="1546492247443594934">Skrivebord 2</translation> <translation id="1550523713251050646">Klikk for å se flere alternativer</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Klikk hvor som helst for å ta bilde i fullskjerm</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> koblet til en ny telefon</translation> <translation id="5035389544768382859">Bekreft skjermkonfigurasjon</translation> +<translation id="5039804452771397117">Tillat</translation> <translation id="504465286040788597">Forrige avsnitt</translation> <translation id="5071064518267176975">En app vil bruke mikrofonen</translation> <translation id="5075554201838155866">Start teksting</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Fest</translation> <translation id="746232733191930409">Skjermopptaksmodus</translation> <translation id="7466449121337984263">Trykk på sensoren</translation> +<translation id="7473891865547856676">Nei takk</translation> <translation id="7477793887173910789">Styr musikk, video og mer</translation> <translation id="7483025031359818980">Hele skjermen er valgt som kilde</translation> <translation id="7486227320194954040">Skjul merkepennverktøy</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb index beec70aa..421635d 100644 --- a/ash/strings/ash_strings_or.xtb +++ b/ash/strings/ash_strings_or.xtb
@@ -522,6 +522,7 @@ <translation id="5033299697334913360">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍ କ୍ୟାପଚର୍ କରିବାକୁ ସ୍କ୍ରିନର ଯେ କୌଣସି ସ୍ଥାନରେ କ୍ଲିକ୍ କରନ୍ତୁ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ଏକ ନୂଆ ଫୋନ୍ ସହ ସଂଯୁକ୍ତ ହୋଇଛି</translation> <translation id="5035389544768382859">ଡିସପ୍ଲେ କନଫିଗରେସନ୍ ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation> +<translation id="5039804452771397117">ଅନୁମତି</translation> <translation id="504465286040788597">ପୂର୍ବବର୍ତ୍ତୀ ଅନୁଚ୍ଛେଦ</translation> <translation id="5071064518267176975">ଏକ ଆପ୍ ମାଇକ୍ରୋଫୋନ୍ ବ୍ୟବହାର କରିବାକୁ ଚାହେଁ</translation> <translation id="5075554201838155866">କ୍ଲୋଜ୍ଡ କ୍ୟାପସନଗୁଡ଼ିକ ଆରମ୍ଭ କରନ୍ତୁ</translation> @@ -799,6 +800,7 @@ <translation id="7461924472993315131">ପିନ୍</translation> <translation id="746232733191930409">ସ୍କ୍ରିନ୍ ରେକର୍ଡିଂ ମୋଡ୍</translation> <translation id="7466449121337984263">ଦୟାକରି ସେନ୍ସରକୁ ସ୍ପର୍ଶ କରନ୍ତୁ</translation> +<translation id="7473891865547856676">ନାହିଁ, ଧନ୍ୟବାଦ</translation> <translation id="7477793887173910789">ଆପଣଙ୍କର ସଙ୍ଗୀତ, ଭିଡିଓଗୁଡ଼ିକ ଏବଂ ଆହୁରି ଅନେକ କିଛିକୁ ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ</translation> <translation id="7483025031359818980">ଚୟନ କ୍ଷେତ୍ର ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରେ ସେଟ୍ କରାଯାଇଛି</translation> <translation id="7486227320194954040">ମାର୍କର୍ ଟୁଲଗୁଡ଼ିକୁ ସଙ୍କୁଚିତ କରନ୍ତୁ</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb index 8cceac7..91ace6c1 100644 --- a/ash/strings/ash_strings_pa.xtb +++ b/ash/strings/ash_strings_pa.xtb
@@ -522,6 +522,7 @@ <translation id="5033299697334913360">ਪੂਰੀ ਸਕ੍ਰੀਨ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਲਈ ਕਿਤੇ ਵੀ ਕਲਿੱਕ ਕਰੋ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" />ਨੂੰ ਨਵੇਂ ਫ਼ੋਨ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ</translation> <translation id="5035389544768382859">ਡਿਸਪਲੇ ਸੰਰੂਪਣ ਦੀ ਤਸਦੀਕ ਕਰੋ</translation> +<translation id="5039804452771397117">ਆਗਿਆ ਦਿਓ</translation> <translation id="504465286040788597">ਪਿਛਲਾ ਪੈਰਾ</translation> <translation id="5071064518267176975">ਇੱਕ ਐਪ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਚਾਹੁੰਦੀ ਹੈ</translation> <translation id="5075554201838155866">ਬੰਦ ਸੁਰਖੀਆਂ ਸ਼ੁਰੂ ਕਰੋ</translation> @@ -799,6 +800,7 @@ <translation id="7461924472993315131">Pin</translation> <translation id="746232733191930409">ਸਕ੍ਰੀਨ ਰਿਕਾਰਡਿੰਗ ਮੋਡ</translation> <translation id="7466449121337984263">ਕਿਰਪਾ ਕਰਕੇ ਸੈਂਸਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ</translation> +<translation id="7473891865547856676">ਨਹੀਂ ਧੰਨਵਾਦ</translation> <translation id="7477793887173910789">ਆਪਣਾ ਸੰਗੀਤ, ਵੀਡੀਓ ਕੰਟਰੋਲ ਕਰੋ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ</translation> <translation id="7483025031359818980">ਚੋਣ ਖੇਤਰ ਨੂੰ ਪੂਰੀ ਸਕ੍ਰੀਨ 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ</translation> <translation id="7486227320194954040">ਮਾਰਕਰ ਟੂਲਾਂ ਨੂੰ ਸਮੇਟੋ</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index 9b4ac02..9df444f 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Tryb Nie przeszkadzać jest włączony.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Pokaż ustawienia powiadomień. Jedna aplikacja ma wyłączone powiadomienia.}few{Pokaż ustawienia powiadomień. # aplikacje mają wyłączone powiadomienia.}many{Pokaż ustawienia powiadomień. # aplikacji ma wyłączone powiadomienia.}other{Pokaż ustawienia powiadomień. # aplikacji ma wyłączone powiadomienia.}}</translation> <translation id="1525508553941733066">ZAMKNIJ</translation> +<translation id="1536604384701784949">Jeśli chcesz użyć adresu <ph name="USER_EMAIL_ADDRESS" />, musisz najpierw wylogować się ze wszystkich kont. Aby to zrobić, kliknij Anuluj i wróć na poprzednią stronę. Kliknij na niej godzinę, aby otworzyć pasek stanu, i kliknij Wyloguj się. Następnie zaloguj się ponownie na konto <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Duży kursor myszy</translation> <translation id="1546492247443594934">Biurko 2</translation> <translation id="1550523713251050646">Kliknij, by wyświetlić więcej opcji</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Aby zrobić zrzut całego ekranu, kliknij w dowolnym miejscu</translation> <translation id="5035236842988137213">Urządzenie <ph name="DEVICE_NAME" /> zostało połączone z nowym telefonem</translation> <translation id="5035389544768382859">Potwierdź konfigurację wyświetlacza</translation> +<translation id="5039804452771397117">Zezwalaj</translation> <translation id="504465286040788597">Poprzedni akapit</translation> <translation id="5071064518267176975">Aplikacja chce używać mikrofonu</translation> <translation id="5075554201838155866">Włącz napisy</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Przypnij</translation> <translation id="746232733191930409">Tryb nagrywania ekranu</translation> <translation id="7466449121337984263">Dotknij czytnika</translation> +<translation id="7473891865547856676">Nie, dziękuję</translation> <translation id="7477793887173910789">Steruj filmami, muzyką i innymi multimediami</translation> <translation id="7483025031359818980">Jako obszar ustawiono cały ekran</translation> <translation id="7486227320194954040">Zwiń narzędzia pisaka</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index a5e6970c..9dae0ac 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">O "Não perturbe" está ativado.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostrar configurações de notificação. As notificações estão desativadas para um app}one{Mostrar configurações de notificação. As notificações estão desativadas para # app}other{Mostrar configurações de notificação. As notificações estão desativadas para # apps}}</translation> <translation id="1525508553941733066">DISPENSAR</translation> +<translation id="1536604384701784949">Antes de usar <ph name="USER_EMAIL_ADDRESS" />, você precisa desconectar todas as contas. Para fazer isso, selecione "Cancelar" e volte à seção anterior. Em seguida, abra a área de status no horário, selecione "Sair" e faça login na conta <ph name="USER_EMAIL_ADDRESS_2" /> novamente.</translation> <translation id="15373452373711364">Cursor grande do mouse</translation> <translation id="1546492247443594934">Espaço de trabalho 2</translation> <translation id="1550523713251050646">Clique para ver mais opções</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Permitir</translation> <translation id="504465286040788597">Parágrafo anterior</translation> <translation id="5071064518267176975">Um app quer usar o microfone</translation> <translation id="5075554201838155866">Iniciar closed captions</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Fixar</translation> <translation id="746232733191930409">Modo de gravação de tela</translation> <translation id="7466449121337984263">Toque no sensor</translation> +<translation id="7473891865547856676">Não, obrigado</translation> <translation id="7477793887173910789">Controle suas músicas, seus vídeos e muito mais</translation> <translation id="7483025031359818980">Área de seleção definida como tela cheia</translation> <translation id="7486227320194954040">Recolher ferramentas de marcador</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index 79b8511..1a2c641 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">O modo Não incomodar está ativado.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostrar definições de notificação. As notificações estão desativadas para uma aplicação}other{Mostrar definições de notificação. As notificações estão desativadas para # aplicações}}</translation> <translation id="1525508553941733066">IGNORAR</translation> +<translation id="1536604384701784949">Para utilizar <ph name="USER_EMAIL_ADDRESS" />, primeiro, tem de terminar a sessão de todas as contas. Para terminar sessão, selecione Cancelar para retroceder. Em seguida, selecione a hora para abrir a área de estado e selecione Terminar sessão. Em seguida, volte a iniciar sessão com <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Cursor do rato grande</translation> <translation id="1546492247443594934">Secretária 2</translation> <translation id="1550523713251050646">Clicar para obter mais opções</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Clique em qualquer local para capturar o ecrã inteiro.</translation> <translation id="5035236842988137213">O dispositivo <ph name="DEVICE_NAME" /> estabeleceu ligação a um novo telemóvel.</translation> <translation id="5035389544768382859">Confirme a configuração do ecrã</translation> +<translation id="5039804452771397117">Permitir</translation> <translation id="504465286040788597">Parágrafo anterior</translation> <translation id="5071064518267176975">Uma app pretende utilizar o microfone</translation> <translation id="5075554201838155866">Iniciar legendas</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Fixar</translation> <translation id="746232733191930409">Modo de gravação de ecrã</translation> <translation id="7466449121337984263">Toque no sensor.</translation> +<translation id="7473891865547856676">Não, obrigado</translation> <translation id="7477793887173910789">Controle a sua música, vídeos e muito mais.</translation> <translation id="7483025031359818980">Área de seleção definida para ecrã inteiro</translation> <translation id="7486227320194954040">Reduzir ferramentas de marcador</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index 4997051..2747f90b 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Funcția Nu deranja este activată.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Afișează setările pentru notificări. Notificările sunt dezactivate pentru o aplicație}few{Afișează setările pentru notificări. Notificările sunt dezactivate pentru # aplicații}other{Afișează setările pentru notificări. Notificările sunt dezactivate pentru # de aplicații}}</translation> <translation id="1525508553941733066">ÎNCHIDE</translation> +<translation id="1536604384701784949">Pentru a folosi <ph name="USER_EMAIL_ADDRESS" />, mai întâi trebuie să te deconectezi de la toate conturile. Ca să te deconectezi, selectează Anulează pentru a reveni. Apoi selectează ora pentru a deschide zona de stare și selectează Deconectează-te. Apoi conectează-te din nou la <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Cursor de mouse mare</translation> <translation id="1546492247443594934">Desktop 2</translation> <translation id="1550523713251050646">Dă clic pentru mai multe opțiuni</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Permite</translation> <translation id="504465286040788597">Paragraful anterior</translation> <translation id="5071064518267176975">O aplicație solicită permisiunea de a folosi microfonul</translation> <translation id="5075554201838155866">Pornește subtitrările</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Fixează</translation> <translation id="746232733191930409">Modul de înregistrare a ecranului</translation> <translation id="7466449121337984263">Atinge senzorul</translation> +<translation id="7473891865547856676">Nu, mulțumesc</translation> <translation id="7477793887173910789">Gestionează muzica, videoclipurile și altele</translation> <translation id="7483025031359818980">Zona de selectare este setată la ecran complet</translation> <translation id="7486227320194954040">Restrânge instrumentele pentru marker</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb index 45b4de2c..908b79a3 100644 --- a/ash/strings/ash_strings_ru.xtb +++ b/ash/strings/ash_strings_ru.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Режим "Не беспокоить" включен</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Показать настройки уведомлений. Уведомления отключены для одного приложения.}one{Показать настройки уведомлений. Уведомления отключены для # приложения.}few{Показать настройки уведомлений. Уведомления отключены для # приложений.}many{Показать настройки уведомлений. Уведомления отключены для # приложений.}other{Показать настройки уведомлений. Уведомления отключены для # приложения.}}</translation> <translation id="1525508553941733066">ЗАКРЫТЬ</translation> +<translation id="1536604384701784949">Чтобы использовать адрес электронной почты <ph name="USER_EMAIL_ADDRESS" />, вам сначала нужно выйти из всех аккаунтов. Для этого нажмите "Отмена" и вернитесь на шаг назад. Затем нажмите на часы и на открывшейся панели состояния выберите "Выйти". Войдите в аккаунт <ph name="USER_EMAIL_ADDRESS_2" /> ещё раз.</translation> <translation id="15373452373711364">Большой курсор мыши</translation> <translation id="1546492247443594934">Рабочий стол 2</translation> <translation id="1550523713251050646">Чтобы изменить источник питания, нажмите здесь.</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Чтобы снять экран полностью, нажмите в любом его месте</translation> <translation id="5035236842988137213">Устройство <ph name="DEVICE_NAME" /> подключено к новому телефону</translation> <translation id="5035389544768382859">Подтвердите конфигурацию экрана</translation> +<translation id="5039804452771397117">Разрешить</translation> <translation id="504465286040788597">Предыдущий абзац</translation> <translation id="5071064518267176975">Приложение запрашивает доступ к микрофону</translation> <translation id="5075554201838155866">Показать субтитры</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Закрепить</translation> <translation id="746232733191930409">Режим записи видео с экрана</translation> <translation id="7466449121337984263">Приложите палец к сканеру.</translation> +<translation id="7473891865547856676">Пропустить</translation> <translation id="7477793887173910789">Управляйте воспроизведением музыки, видео и других медиафайлов</translation> <translation id="7483025031359818980">Выбран весь экран</translation> <translation id="7486227320194954040">Свернуть инструменты маркера</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb index a94adf5..68c940c7 100644 --- a/ash/strings/ash_strings_si.xtb +++ b/ash/strings/ash_strings_si.xtb
@@ -525,6 +525,7 @@ <translation id="5033299697334913360">පූර්ණ තිරය ග්රහණය කිරීමට ඕනෑම තැනක ක්ලික් කරන්න</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> නව දුරකථනයකට සම්බන්ධයි</translation> <translation id="5035389544768382859">සංදර්ශක වින්යාසය තහවුරු කරන්න</translation> +<translation id="5039804452771397117">ඉඩදෙන්න</translation> <translation id="504465286040788597">පෙර ඡේදය</translation> <translation id="5071064518267176975">යෙදුමකට මයික්රෆෝනය භාවිත කිරීමට අවශ්යය</translation> <translation id="5075554201838155866">සංවෘත සිරස්තල ආරම්භ කරන්න</translation> @@ -802,6 +803,7 @@ <translation id="7461924472993315131">පින්</translation> <translation id="746232733191930409">තිර පටිගත කිරීම් ප්රකාරය</translation> <translation id="7466449121337984263">සංවේදකය ස්පර්ශ කරන්න</translation> +<translation id="7473891865547856676">එපා ස්තූතියි</translation> <translation id="7477793887173910789">ඔබේ සංගීත, වීඩියෝ, සහ තවත් ඒවා පාලන කරන්න</translation> <translation id="7483025031359818980">තේරීම් ප්රදේශය පූර්ණ තිරයට සකසා ඇත</translation> <translation id="7486227320194954040">ලකුණුකර මෙවලම් හකුළන්න</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb index 2fa3e6b..b2dac58 100644 --- a/ash/strings/ash_strings_sk.xtb +++ b/ash/strings/ash_strings_sk.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Režim Nerušiť je zapnutý.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Zobraziť nastavenia upozornení. Upozornenia sú pre aplikáciu vypnuté}few{Zobraziť nastavenia upozornení. Upozornenia sú vypnuté pre # aplikácie}many{Show notification settings. Notifications are off for # apps}other{Zobraziť nastavenia upozornení. Upozornenia sú vypnuté pre # aplikácií}}</translation> <translation id="1525508553941733066">ZATVORIŤ</translation> +<translation id="1536604384701784949">Ak chcete používať účet <ph name="USER_EMAIL_ADDRESS" />, musíte sa odhlásiť zo všetkých ostatných účtov. Ak sa chcete odhlásiť, výberom položky Zrušiť prejdite späť. Potom zvoľte čas, kedy sa má otvoriť stavová oblasť, a vyberte Odhlásiť sa. Potom sa znova prihláste do účtu <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Veľký kurzor myši</translation> <translation id="1546492247443594934">2. plocha</translation> <translation id="1550523713251050646">Kliknutím zobrazíte ďalšie možnosti</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Kliknutím na ľubovoľné miesto nahráte celú obrazovku</translation> <translation id="5035236842988137213">Zariadenie <ph name="DEVICE_NAME" /> bolo pripojené k novému telefónu</translation> <translation id="5035389544768382859">Potvrdenie konfigurácie zobrazenia</translation> +<translation id="5039804452771397117">Povoliť</translation> <translation id="504465286040788597">Predchádzajúci odsek</translation> <translation id="5071064518267176975">Určitá aplikácia chce používať mikrofón</translation> <translation id="5075554201838155866">Spustiť skryté titulky</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Pripnúť</translation> <translation id="746232733191930409">Režim nahrávania obrazovky</translation> <translation id="7466449121337984263">Dotknite sa senzora</translation> +<translation id="7473891865547856676">Nie, ďakujem</translation> <translation id="7477793887173910789">Ovládajte svoju hudbu, videá a ďalší obsah</translation> <translation id="7483025031359818980">Oblasť výberu je nastavená na celú obrazovku</translation> <translation id="7486227320194954040">Zbaliť nástroje značiek</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index 67c94b0..f4ab867 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Način »ne moti« je vklopljen.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Prikaz nastavitev obvestil. Obvestila so izklopljena za eno aplikacijo.}one{Prikaz nastavitev obvestil. Obvestila so izklopljena za # aplikacijo.}two{Prikaz nastavitev obvestil. Obvestila so izklopljena za # aplikaciji.}few{Prikaz nastavitev obvestil. Obvestila so izklopljena za # aplikacije.}other{Prikaz nastavitev obvestil. Obvestila so izklopljena za # aplikacij.}}</translation> <translation id="1525508553941733066">OPUSTI</translation> +<translation id="1536604384701784949">Če želite uporabljati <ph name="USER_EMAIL_ADDRESS" />, se morate najprej odjaviti iz vseh računov. Če se želite odjaviti, izberite »Prekliči«, da se vrnete. Nato izberite čas, če želite odpreti območje stanja, in izberite »Odjava«. Nato se znova prijavite v <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Velik miškin kazalec</translation> <translation id="1546492247443594934">Namizje 2</translation> <translation id="1550523713251050646">Kliknite za več možnosti</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Dovoli</translation> <translation id="504465286040788597">Prejšnji odstavek</translation> <translation id="5071064518267176975">Aplikacija želi uporabljati mikrofon</translation> <translation id="5075554201838155866">Začni podnapise</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Pripni</translation> <translation id="746232733191930409">Način snemanja zaslona</translation> <translation id="7466449121337984263">Dotaknite se tipala</translation> +<translation id="7473891865547856676">Ne, hvala</translation> <translation id="7477793887173910789">Upravljanje glasbe, videoposnetkov in drugega</translation> <translation id="7483025031359818980">Območje izbire je nastavljeno na celotni zaslon</translation> <translation id="7486227320194954040">Strni orodja označevalnika</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb index 6740868..3201e47c 100644 --- a/ash/strings/ash_strings_sq.xtb +++ b/ash/strings/ash_strings_sq.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Modaliteti "Mos shqetëso" është aktiv.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Shfaq cilësimet e njoftimeve. Njoftimet janë joaktive për një aplikacion}other{Shfaq cilësimet e njoftimeve. Njoftimet janë joaktive për # aplikacione}}</translation> <translation id="1525508553941733066">ANULO</translation> +<translation id="1536604384701784949">Për të përdorur <ph name="USER_EMAIL_ADDRESS" /> duhet të dalësh nga të gjitha llogaritë përpara. Për të dalë, zgjidh "Anulo" për t'u kthyer mbrapa. Pastaj zgjidh kohën për të hapur zonën e statusit dhe zgjidh "Dil". Pastaj identifikohu përsëri në <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Kursor i madh</translation> <translation id="1546492247443594934">Tavolina e punës 2</translation> <translation id="1550523713251050646">Kliko për opsione të tjera</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Lejo</translation> <translation id="504465286040788597">Paragrafi i mëparshëm</translation> <translation id="5071064518267176975">Një aplikacion kërkon të përdorë mikrofonin</translation> <translation id="5075554201838155866">Fillo titrat</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Gozhdoje</translation> <translation id="746232733191930409">Modaliteti i regjistrimit të ekranit</translation> <translation id="7466449121337984263">Prek sensorin</translation> +<translation id="7473891865547856676">Jo, faleminderit</translation> <translation id="7477793887173910789">Kontrollo muzikën, videot e tua etj.</translation> <translation id="7483025031359818980">Zona e përzgjedhjes është caktuar në ekran të plotë</translation> <translation id="7486227320194954040">Palos veglat e piketës</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb index 0dc156e..3160db33 100644 --- a/ash/strings/ash_strings_sr-Latn.xtb +++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -525,6 +525,7 @@ <translation id="5033299697334913360">Kliknite bilo gde da biste snimili ceo ekran</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> se povezao sa novim telefonom</translation> <translation id="5035389544768382859">Potvrdite konfiguraciju ekrana</translation> +<translation id="5039804452771397117">Dozvoli</translation> <translation id="504465286040788597">Prethodni pasus</translation> <translation id="5071064518267176975">Aplikacija želi da koristi mikrofon</translation> <translation id="5075554201838155866">Pokreni titl</translation> @@ -802,6 +803,7 @@ <translation id="7461924472993315131">Zakači</translation> <translation id="746232733191930409">Režim snimanja ekrana</translation> <translation id="7466449121337984263">Dodirnite senzor</translation> +<translation id="7473891865547856676">Ne, hvala</translation> <translation id="7477793887173910789">Kontrolišite muziku, video snimke i drugo</translation> <translation id="7483025031359818980">Oblast za izbor je podešena na ceo ekran</translation> <translation id="7486227320194954040">Skupi alatke za marker</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index 8bc8f24..a34b116 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb
@@ -525,6 +525,7 @@ <translation id="5033299697334913360">Кликните било где да бисте снимили цео екран</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> се повезао са новим телефоном</translation> <translation id="5035389544768382859">Потврдите конфигурацију екрана</translation> +<translation id="5039804452771397117">Дозволи</translation> <translation id="504465286040788597">Претходни пасус</translation> <translation id="5071064518267176975">Апликација жели да користи микрофон</translation> <translation id="5075554201838155866">Покрени титл</translation> @@ -802,6 +803,7 @@ <translation id="7461924472993315131">Закачи</translation> <translation id="746232733191930409">Режим снимања екрана</translation> <translation id="7466449121337984263">Додирните сензор</translation> +<translation id="7473891865547856676">Не, хвала</translation> <translation id="7477793887173910789">Контролишите музику, видео снимке и друго</translation> <translation id="7483025031359818980">Област за избор је подешена на цео екран</translation> <translation id="7486227320194954040">Скупи алатке за маркер</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index bd6833e..3089051 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Stör ej har aktiverats.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Visa aviseringsinställningar. Aviseringar har inaktiverats för 1 app}other{Visa aviseringsinställningar. Aviseringar har inaktiverats för # appar}}</translation> <translation id="1525508553941733066">IGNORERA</translation> +<translation id="1536604384701784949">Du måste logga ut från alla konton innan du kan använda <ph name="USER_EMAIL_ADDRESS" />. Tryck på Avbryt för att återgå och logga ut. Öppna sedan statusfältet genom att välja klockan och välj sedan Logga ut. Logga sedan in på <ph name="USER_EMAIL_ADDRESS_2" /> på nytt.</translation> <translation id="15373452373711364">Stor muspekare</translation> <translation id="1546492247443594934">Skrivbord 2</translation> <translation id="1550523713251050646">Klicka här för fler alternativ</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Tillåt</translation> <translation id="504465286040788597">Föregående stycke</translation> <translation id="5071064518267176975">En app vill använda mikrofonen</translation> <translation id="5075554201838155866">Starta textning</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Fäst</translation> <translation id="746232733191930409">Skärminspelningsläge</translation> <translation id="7466449121337984263">Tryck på sensorn</translation> +<translation id="7473891865547856676">Nej tack</translation> <translation id="7477793887173910789">Styr uppspelningen av musik, videor med mera</translation> <translation id="7483025031359818980">Markeringsområdet är inställt på helskärm</translation> <translation id="7486227320194954040">Komprimera markeringsverktygen</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index 538d7704..5152ddb 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Hali ya 'Usinisumbue' imewashwa</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Onyesha mipangilio ya arifa. Umezima arifa katika programu moja}other{Onyesha mipangilio ya arifa. Umezima arifa katika programu #}}</translation> <translation id="1525508553941733066">ONDOA</translation> +<translation id="1536604384701784949">Ili uweze kutumia <ph name="USER_EMAIL_ADDRESS" />, unahitaji kuondoka kwenye akaunti zote kwanza. Kuondoka kwenye akaunti, chagua Ghairi ili urudi nyuma. Kisha, chagua wakati ili ufungue eneo la hali na uchague Ondoka kwenye akaunti. Kisha uingie katika akaunti tena kwa kutumia <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Kishale kikubwa cha kipanya</translation> <translation id="1546492247443594934">Eneokazi la 2</translation> <translation id="1550523713251050646">Bofya ili upate chaguo zaidi</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Ruhusu</translation> <translation id="504465286040788597">Aya iliyotangulia</translation> <translation id="5071064518267176975">Kuna programu inayotaka kutumia maikrofoni</translation> <translation id="5075554201838155866">Anzisha manukuu</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Bana</translation> <translation id="746232733191930409">Hali ya kurekodi skrini</translation> <translation id="7466449121337984263">Tafadhali gusa kitambuzi</translation> +<translation id="7473891865547856676">La Asante</translation> <translation id="7477793887173910789">Dhibiti muziki, video na vipengee vyako vingine</translation> <translation id="7483025031359818980">Sehemu iliyochaguliwa imewekwa kuwa skrini nzima</translation> <translation id="7486227320194954040">Kunja zana za kitia alama</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index d1bdca0..2f04bb7 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -522,6 +522,7 @@ <translation id="5033299697334913360">முழுத்திரையைப் படமெடுக்க, எங்கு வேண்டுமானாலும் கிளிக் செய்யவும்</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ஒரு புதிய ஃபோனுடன் இணைக்கப்பட்டுள்ளது</translation> <translation id="5035389544768382859">திரை உள்ளமைவை உறுதிசெய்யுங்கள்</translation> +<translation id="5039804452771397117">அனுமதி</translation> <translation id="504465286040788597">முந்தைய பத்தி</translation> <translation id="5071064518267176975">மைக்ரோஃபோனை ஓர் ஆப்ஸ் பயன்படுத்த விரும்புகிறது</translation> <translation id="5075554201838155866">வசனங்களைக் காட்டு</translation> @@ -799,6 +800,7 @@ <translation id="7461924472993315131">நிலையாக வை</translation> <translation id="746232733191930409">ஸ்கிரீன் ரெக்கார்டிங் பயன்முறை</translation> <translation id="7466449121337984263">சென்சாரைத் தொடவும்</translation> +<translation id="7473891865547856676">வேண்டாம்</translation> <translation id="7477793887173910789">உங்கள் இசை, வீடியோக்கள் மற்றும் பலவற்றைக் கட்டுப்படுத்தலாம்</translation> <translation id="7483025031359818980">தேர்ந்தெடுக்கப்பட்ட பகுதியாக முழுத்திரை அமைக்கப்பட்டது</translation> <translation id="7486227320194954040">மார்க்கர் கருவிகளைச் சுருக்கு</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 534fc8f..52946d3 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -523,6 +523,7 @@ <translation id="5033299697334913360">ఫుల్ స్క్రీన్ను క్యాప్చర్ చేయడానికి ఎక్కడైనా క్లిక్ చేయండి</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ఒక కొత్త ఫోన్కి కనెక్ట్ చేయబడింది</translation> <translation id="5035389544768382859">డిస్ప్లే కాన్ఫిగరేషన్ను నిర్ధారించండి</translation> +<translation id="5039804452771397117">అనుమతించు</translation> <translation id="504465286040788597">మునుపటి పేరా</translation> <translation id="5071064518267176975">యాప్ మైక్రోఫోన్ను ఉపయోగించాలనుకుంటోంది</translation> <translation id="5075554201838155866">క్యాప్షన్లను ప్రారంభించు</translation> @@ -800,6 +801,7 @@ <translation id="7461924472993315131">పిన్ చేయి</translation> <translation id="746232733191930409">స్క్రీన్ రికార్డింగ్ మోడ్</translation> <translation id="7466449121337984263">దయచేసి సెన్సార్ను తాకండి</translation> +<translation id="7473891865547856676">వద్దు, ధన్యవాదాలు</translation> <translation id="7477793887173910789">మీ సంగీతం, వీడియోలు అలాగే ఇంకా మరిన్నింటిని నియంత్రించండి</translation> <translation id="7483025031359818980">ఎంపిక చేసుకోవాల్సిన చోటు ఫుల్ స్క్రీన్కు సెట్ చేయబడింది</translation> <translation id="7486227320194954040">మార్కర్ టూల్స్ను కుదించు</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb index 7e57d597..490c3e66 100644 --- a/ash/strings/ash_strings_th.xtb +++ b/ash/strings/ash_strings_th.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">โหมดห้ามรบกวนเปิดอยู่</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{แสดงการตั้งค่าการแจ้งเตือน ปิดการแจ้งเตือนไว้สำหรับ 1 แอป}other{แสดงการตั้งค่าการแจ้งเตือน ปิดการแจ้งเตือนไว้สำหรับ # แอป}}</translation> <translation id="1525508553941733066">ปิด</translation> +<translation id="1536604384701784949">คุณจะต้องออกจากระบบบัญชีทั้งหมดก่อนเพื่อใช้ <ph name="USER_EMAIL_ADDRESS" /> หากต้องการออกจากระบบ ให้เลือก "ยกเลิก" เพื่อย้อนกลับ เลือกเวลาเพื่อเปิดพื้นที่แสดงสถานะ แล้วเลือก "ออกจากระบบ" จากนั้นลงชื่อเข้าใช้ <ph name="USER_EMAIL_ADDRESS_2" /> อีกครั้ง</translation> <translation id="15373452373711364">เคอร์เซอร์เมาส์ขนาดใหญ่</translation> <translation id="1546492247443594934">เดสก์ที่ 2</translation> <translation id="1550523713251050646">คลิกเพื่อดูตัวเลือกเพิ่มเติม</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">คลิกที่ใดก็ได้เพื่อจับภาพแบบเต็มหน้าจอ</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> เชื่อมต่อโทรศัพท์เครื่องใหม่แล้ว</translation> <translation id="5035389544768382859">ยืนยันการกำหนดค่าจอแสดงผล</translation> +<translation id="5039804452771397117">อนุญาต</translation> <translation id="504465286040788597">ย่อหน้าก่อนหน้า</translation> <translation id="5071064518267176975">แอปหนึ่งต้องการใช้ไมโครโฟน</translation> <translation id="5075554201838155866">เริ่มคำอธิบายภาพ</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">ตรึง</translation> <translation id="746232733191930409">โหมดบันทึกหน้าจอ</translation> <translation id="7466449121337984263">โปรดแตะเซ็นเซอร์</translation> +<translation id="7473891865547856676">ไม่ ขอบคุณ</translation> <translation id="7477793887173910789">ควบคุมเพลง วิดีโอ และอื่นๆ</translation> <translation id="7483025031359818980">กำหนดพื้นที่สำหรับการเลือกเป็นเต็มหน้าจอ</translation> <translation id="7486227320194954040">ยุบเครื่องมือทำเครื่องหมาย</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index b8df9d3..2bb1b57 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Rahatsız Etmeyin modu açık.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Bildirim ayarlarını göster. Bildirimler bir uygulama için kapalı}other{Bildirim ayarlarını göster. Bildirimler # uygulama için kapalı}}</translation> <translation id="1525508553941733066">KAPAT</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> adresini kullanabilmeniz için önce tüm hesapların oturumunu kapatmanız gerekir. Oturumu kapatmak için İptal'i seçerek geri dönün. Ardından durum alanını açmak için saati seçip Oturumu kapat'ı seçin. Sonra, <ph name="USER_EMAIL_ADDRESS_2" /> hesabında tekrar oturum açın.</translation> <translation id="15373452373711364">Büyük fare imleci</translation> <translation id="1546492247443594934">Çalışma Masası 2</translation> <translation id="1550523713251050646">Daha fazla seçenek için tıklayın</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">İzin ver</translation> <translation id="504465286040788597">Önceki paragraf</translation> <translation id="5071064518267176975">Bir uygulama, mikrofonu kullanmak istiyor</translation> <translation id="5075554201838155866">Altyazıları başlat</translation> @@ -802,6 +804,7 @@ <translation id="7461924472993315131">Sabitle</translation> <translation id="746232733191930409">Ekran kaydetme modu</translation> <translation id="7466449121337984263">Lütfen sensöre dokunun</translation> +<translation id="7473891865547856676">Hayır, Teşekkürler</translation> <translation id="7477793887173910789">Müzik, video ve diğer içeriklerinizi kontrol edin</translation> <translation id="7483025031359818980">Seçim alanı tam ekran olarak ayarlandı</translation> <translation id="7486227320194954040">İşaretçi araçlarını daralt</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index ffdf79e..584735b 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Режим "Не турбувати" ввімкнено.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Показати налаштування сповіщень. Сповіщення вимкнено для додатка}one{Показати налаштування сповіщень. Сповіщення вимкнено для # додатка}few{Показати налаштування сповіщень. Сповіщення вимкнено для # додатків}many{Показати налаштування сповіщень. Сповіщення вимкнено для # додатків}other{Показати налаштування сповіщень. Сповіщення вимкнено для # додатка}}</translation> <translation id="1525508553941733066">ЗАКРИТИ</translation> +<translation id="1536604384701784949">Щоб використовувати електронну адресу <ph name="USER_EMAIL_ADDRESS" />, спершу потрібно вийти з усіх облікових записів. Для цього спершу поверніться, натиснувши кнопку "Скасувати". Потім натисніть час, щоб відкрити панель стану, і натисніть "Вийти". Тоді ввійдіть в обліковий запис <ph name="USER_EMAIL_ADDRESS_2" /> ще раз.</translation> <translation id="15373452373711364">Великий курсор миші</translation> <translation id="1546492247443594934">Робочий стіл 2</translation> <translation id="1550523713251050646">Натисніть, щоб побачити більше опцій</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">Натисніть будь-де, щоб зробити знімок усього екрана</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> під’єднано до нового телефона</translation> <translation id="5035389544768382859">Підтвердьте налаштування дисплея</translation> +<translation id="5039804452771397117">Дозволити</translation> <translation id="504465286040788597">Попередній абзац</translation> <translation id="5071064518267176975">Додаток хоче використовувати мікрофон</translation> <translation id="5075554201838155866">Увімкнути субтитри</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Закріпити</translation> <translation id="746232733191930409">Режим запису екрана</translation> <translation id="7466449121337984263">Торкніться сканера</translation> +<translation id="7473891865547856676">Ні, дякую</translation> <translation id="7477793887173910789">Керуйте музикою, відео й іншим контентом</translation> <translation id="7483025031359818980">Вибрано весь екран</translation> <translation id="7486227320194954040">Згорнути інструменти маркера</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb index 2b2773c..5b7bf7b 100644 --- a/ash/strings/ash_strings_ur.xtb +++ b/ash/strings/ash_strings_ur.xtb
@@ -522,6 +522,7 @@ <translation id="5033299697334913360">فُل اسکرین کیپچر کرنے کیلئے کہیں بھی کلک کریں</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> نئے فون سے منسلک ہو گیا</translation> <translation id="5035389544768382859">ڈسپلے کنفیگریشن کی تصدیق کریں</translation> +<translation id="5039804452771397117">اجازت دیں</translation> <translation id="504465286040788597">گزشتہ پیراگراف</translation> <translation id="5071064518267176975">ایک ایپ مائیکروفون کا استعمال کرنا چاہتی ہے</translation> <translation id="5075554201838155866">سب ٹائٹلز شروع کریں</translation> @@ -799,6 +800,7 @@ <translation id="7461924472993315131">پن کریں</translation> <translation id="746232733191930409">اسکرین ریکارڈنگ کی وضع</translation> <translation id="7466449121337984263">براہ کرم سینسر کو ٹچ کریں</translation> +<translation id="7473891865547856676">نہیں شکریہ</translation> <translation id="7477793887173910789">اپنی موسیقی، ویڈیوز اور بھی بہت کچھ کنٹرول کریں</translation> <translation id="7483025031359818980">فُل اسکرین کو بطور سورس سیٹ کیا گیا</translation> <translation id="7486227320194954040">مارکر ٹولز کو سکیڑیں</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb index 7bbeded..019d451 100644 --- a/ash/strings/ash_strings_uz.xtb +++ b/ash/strings/ash_strings_uz.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Bezovta qilinmasin rejimi yoniq.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Bildirishnoma sozlamalarini ochish. Ilova uchun bildirishnomalar yoqilmagan}other{Bildirishnoma sozlamalarini ochish. # ta ilova uchun bildirishnomalar yoqilmagan}}</translation> <translation id="1525508553941733066">YOPISH</translation> +<translation id="1536604384701784949"><ph name="USER_EMAIL_ADDRESS" /> hisobidan foydalanish uchun avval barcha hisoblardan chiqing. Hisobdan chiqish uchun Bekor qilish ustiga bosib, ortga qayting. Keyin soatni tanlab, holat panelini oching va Chiqish bandini tanlang. Keyin <ph name="USER_EMAIL_ADDRESS_2" /> hisobiga qaytadan kiring.</translation> <translation id="15373452373711364">Sichqonchaning katta kursori</translation> <translation id="1546492247443594934">Desk 2</translation> <translation id="1550523713251050646">Qo‘shimcha parametrlarni ko‘rish</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Ruxsat berish</translation> <translation id="504465286040788597">Avvalgi xatboshi</translation> <translation id="5071064518267176975">Ilova mikrofondan foydalanmoqchi</translation> <translation id="5075554201838155866">Taglavhalarni chiqarish</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Qadab qo‘yish</translation> <translation id="746232733191930409">Ekranni yozib olish rejimi</translation> <translation id="7466449121337984263">Sensorga tegining</translation> +<translation id="7473891865547856676">Yo‘q, rahmat</translation> <translation id="7477793887173910789">Multimedia boshqaruvi</translation> <translation id="7483025031359818980">Tanlash hududi sifatida butun ekran belgilandi</translation> <translation id="7486227320194954040">Marker vositalarini yigʻish</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index 8f64da38..b589f97 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Chế độ Không làm phiền đang bật.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Hiển thị tùy chọn cài đặt thông báo. Các thông báo hiện đang tắt cho một ứng dụng}other{Hiển thị tùy chọn cài đặt thông báo. Các thông báo hiện đang tắt cho # ứng dụng}}</translation> <translation id="1525508553941733066">LOẠI BỎ</translation> +<translation id="1536604384701784949">Để sử dụng <ph name="USER_EMAIL_ADDRESS" />, trước tiên bạn cần đăng xuất khỏi tất cả tài khoản. Để đăng xuất, hãy chọn Huỷ để quay lại. Tiếp theo, hãy chọn thời gian để mở khu vực trạng thái rồi chọn Đăng xuất. Sau đó, hãy đăng nhập lại vào <ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Con trỏ chuột lớn</translation> <translation id="1546492247443594934">Không gian làm việc 2</translation> <translation id="1550523713251050646">Nhấp để xem các tùy chọn khác</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Cho phép</translation> <translation id="504465286040788597">Đoạn trước</translation> <translation id="5071064518267176975">Một ứng dụng muốn dùng micrô</translation> <translation id="5075554201838155866">Bắt đầu phụ đề</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Ghim</translation> <translation id="746232733191930409">Chế độ ghi màn hình</translation> <translation id="7466449121337984263">Vui lòng chạm vào cảm biến</translation> +<translation id="7473891865547856676">Không, cảm ơn</translation> <translation id="7477793887173910789">Điều khiển nhạc, video và nhiều nội dung khác</translation> <translation id="7483025031359818980">Đã đặt vùng chọn thành toàn màn hình</translation> <translation id="7486227320194954040">Thu gọn công cụ đánh dấu</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb index c16687f..7ae4053 100644 --- a/ash/strings/ash_strings_zh-CN.xtb +++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">“勿扰”模式已开启。</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{显示通知设置。针对 1 个应用关闭通知}other{显示通知设置。针对 # 个应用关闭通知}}</translation> <translation id="1525508553941733066">关闭</translation> +<translation id="1536604384701784949">若要使用 <ph name="USER_EMAIL_ADDRESS" />,您需先退出所有帐号。若要退出,请点击“取消”以返回。接着,选择屏幕右下角的时间以打开状态区并选择“退出”。然后,再次登录到 <ph name="USER_EMAIL_ADDRESS_2" />。</translation> <translation id="15373452373711364">大号鼠标光标</translation> <translation id="1546492247443594934">桌面 2</translation> <translation id="1550523713251050646">点击即可查看更多选项</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">点击任意位置即可截取整个屏幕</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" />已连接到新手机</translation> <translation id="5035389544768382859">确认显示屏配置</translation> +<translation id="5039804452771397117">允许</translation> <translation id="504465286040788597">上一个段落</translation> <translation id="5071064518267176975">有一款应用想使用麦克风</translation> <translation id="5075554201838155866">启用字幕</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">固定</translation> <translation id="746232733191930409">录屏模式</translation> <translation id="7466449121337984263">请轻触传感器</translation> +<translation id="7473891865547856676">不,谢谢</translation> <translation id="7477793887173910789">控制您的音乐、视频等媒体内容</translation> <translation id="7483025031359818980">所选区域设为全屏</translation> <translation id="7486227320194954040">收起标记工具</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb index b68f1f9..23b0f5e3 100644 --- a/ash/strings/ash_strings_zh-HK.xtb +++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">「請勿騷擾」模式已開啟。</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{顯示通知設定。已關閉 1 個應用程式的通知}other{顯示通知設定。已關閉 # 個應用程式的通知}}</translation> <translation id="1525508553941733066">關閉</translation> +<translation id="1536604384701784949">您需要先登出所有帳戶,才能使用 <ph name="USER_EMAIL_ADDRESS" />。如要登出,請選取 [取消] 以返回。然後選取時間以開啟狀態區,並選取 [登出]。然後,再次登入 <ph name="USER_EMAIL_ADDRESS_2" />。</translation> <translation id="15373452373711364">大型滑鼠游標</translation> <translation id="1546492247443594934">桌面 2</translation> <translation id="1550523713251050646">點擊即可取得更多選項</translation> @@ -523,6 +524,7 @@ <translation id="5033299697334913360">點擊任何一處即可擷取全螢幕畫面</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> 已連接至新手機</translation> <translation id="5035389544768382859">確認螢幕設定</translation> +<translation id="5039804452771397117">允許</translation> <translation id="504465286040788597">上一段</translation> <translation id="5071064518267176975">有應用程式要求使用麥克風</translation> <translation id="5075554201838155866">啟用字幕</translation> @@ -800,6 +802,7 @@ <translation id="7461924472993315131">Pin</translation> <translation id="746232733191930409">螢幕錄影模式</translation> <translation id="7466449121337984263">請輕觸感應器</translation> +<translation id="7473891865547856676">不用了,謝謝</translation> <translation id="7477793887173910789">控制音樂、影片及其他內容</translation> <translation id="7483025031359818980">揀咗全螢幕作為來源</translation> <translation id="7486227320194954040">收合標記工具</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index a469dc40..26e623bc 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">零打擾模式已開啟。</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{顯示通知設定。已關閉一個應用程式的通知}other{顯示通知設定。已關閉 # 個應用程式的通知}}</translation> <translation id="1525508553941733066">關閉</translation> +<translation id="1536604384701784949">如要使用 <ph name="USER_EMAIL_ADDRESS" />,你必須先登出所有帳戶,做法是選擇 [取消] 返回上個頁面,然後選取時間來開啟狀態區,並且點選 [登出]。接著就能重新登入 <ph name="USER_EMAIL_ADDRESS_2" />。</translation> <translation id="15373452373711364">大型滑鼠游標</translation> <translation id="1546492247443594934">桌面 2</translation> <translation id="1550523713251050646">按一下即可查看更多選項</translation> @@ -524,6 +525,7 @@ <translation id="5033299697334913360">點擊任一處即可擷取全螢幕畫面</translation> <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> 已連結到新手機</translation> <translation id="5035389544768382859">確認螢幕設定</translation> +<translation id="5039804452771397117">允許</translation> <translation id="504465286040788597">上一段</translation> <translation id="5071064518267176975">某個應用程式要求使用麥克風</translation> <translation id="5075554201838155866">啟用隱藏式輔助字幕</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">固定</translation> <translation id="746232733191930409">螢幕畫面錄製模式</translation> <translation id="7466449121337984263">請輕觸感應器</translation> +<translation id="7473891865547856676">不用了,謝謝</translation> <translation id="7477793887173910789">控管你的音樂、影片等項目</translation> <translation id="7483025031359818980">選取區域為全螢幕</translation> <translation id="7486227320194954040">收合標記工具</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb index 8308e17..2442c1f5 100644 --- a/ash/strings/ash_strings_zu.xtb +++ b/ash/strings/ash_strings_zu.xtb
@@ -80,6 +80,7 @@ <translation id="1516740043221086139">Ukungaphazamisi kuvuliwe.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Bonisa izilungiselelo zesaziso. Izaziso zivalekile kuhlelo lokusebenza}one{Bonisa izilungiselelo zesaziso. Izaziso zivaliwe kuzinhlelo zokusebenza ezingu-#}other{Bonisa izilungiselelo zesaziso. Izaziso zivaliwe kuzinhlelo zokusebenza ezingu-#}}</translation> <translation id="1525508553941733066">CASHISA</translation> +<translation id="1536604384701784949">Ukusebenzisa i-<ph name="USER_EMAIL_ADDRESS" /> kudingeka ukuthi uphume ngemvume kuqala kuwo wonke ama-akhawunti. Ukuze uphume ngemvume, khetha okuthi Khansela ukuze ubuyele emuva. Bese ukhetha isikhathi sokuvula indawo yesimo bese ukhetha okuthi Phuma ngemvume. Bese ungena ngemvume futhi ku-<ph name="USER_EMAIL_ADDRESS_2" />.</translation> <translation id="15373452373711364">Isikhombisi esikhulu segundane</translation> <translation id="1546492247443594934">Itafula 2</translation> <translation id="1550523713251050646">Chofoza ukuze uthole izinketho eziningi</translation> @@ -524,6 +525,7 @@ <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="5039804452771397117">Vumela</translation> <translation id="504465286040788597">Ipharagrafu yangaphambilini</translation> <translation id="5071064518267176975">I-app ifuna ukusebenzisa imakrofoni</translation> <translation id="5075554201838155866">Qalisa amazwibela avaliwe</translation> @@ -801,6 +803,7 @@ <translation id="7461924472993315131">Phina</translation> <translation id="746232733191930409">Imodi yokurekhoda isikrini</translation> <translation id="7466449121337984263">Sicela uthinte inzwa</translation> +<translation id="7473891865547856676">Cha ngiyabonga</translation> <translation id="7477793887173910789">Lawula umculo wakho, amavidiyo, nokuningi</translation> <translation id="7483025031359818980">Indawo yokukhetha isethwe kusikrini esigcwele</translation> <translation id="7486227320194954040">Goqa amathuluzi wemaka</translation>
diff --git a/ash/style/ash_color_provider.cc b/ash/style/ash_color_provider.cc index 32666a3..a901e6d 100644 --- a/ash/style/ash_color_provider.cc +++ b/ash/style/ash_color_provider.cc
@@ -7,7 +7,7 @@ #include <math.h> #include "ash/constants/ash_constants.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/style/color_mode_observer.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/style/default_colors.cc b/ash/style/default_colors.cc index a0c2da6..f258d923 100644 --- a/ash/style/default_colors.cc +++ b/ash/style/default_colors.cc
@@ -4,7 +4,7 @@ #include "ash/style/default_colors.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" namespace ash {
diff --git a/ash/system/accessibility/tray_accessibility.cc b/ash/system/accessibility/tray_accessibility.cc index 585bd85..2e6c5a4 100644 --- a/ash/system/accessibility/tray_accessibility.cc +++ b/ash/system/accessibility/tray_accessibility.cc
@@ -10,7 +10,6 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/accessibility/accessibility_delegate.h" #include "ash/accessibility/magnifier/docked_magnifier_controller_impl.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_view_ids.h" #include "ash/public/cpp/system_tray_client.h" #include "ash/resources/vector_icons/vector_icons.h"
diff --git a/ash/system/accessibility/tray_accessibility_unittest.cc b/ash/system/accessibility/tray_accessibility_unittest.cc index 698a5c5..22122c22 100644 --- a/ash/system/accessibility/tray_accessibility_unittest.cc +++ b/ash/system/accessibility/tray_accessibility_unittest.cc
@@ -8,7 +8,6 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/accessibility/accessibility_observer.h" #include "ash/accessibility/magnifier/docked_magnifier_controller_impl.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h"
diff --git a/ash/system/audio/audio_detailed_view.cc b/ash/system/audio/audio_detailed_view.cc index 534263e..ba52272 100644 --- a/ash/system/audio/audio_detailed_view.cc +++ b/ash/system/audio/audio_detailed_view.cc
@@ -6,7 +6,6 @@ #include "ash/components/audio/cras_audio_handler.h" #include "ash/constants/ash_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/strings/grit/ash_strings.h" #include "ash/style/ash_color_provider.h"
diff --git a/ash/system/audio/unified_audio_detailed_view_controller_unittest.cc b/ash/system/audio/unified_audio_detailed_view_controller_unittest.cc index 51a5107..fde15af 100644 --- a/ash/system/audio/unified_audio_detailed_view_controller_unittest.cc +++ b/ash/system/audio/unified_audio_detailed_view_controller_unittest.cc
@@ -7,7 +7,6 @@ #include "ash/components/audio/audio_devices_pref_handler.h" #include "ash/components/audio/audio_devices_pref_handler_stub.h" #include "ash/constants/ash_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/system/audio/audio_detailed_view.h" #include "ash/system/audio/mic_gain_slider_controller.h" #include "ash/system/unified/unified_system_tray_controller.h"
diff --git a/ash/system/audio/unified_volume_view.cc b/ash/system/audio/unified_volume_view.cc index 434c0e8..37a3877 100644 --- a/ash/system/audio/unified_volume_view.cc +++ b/ash/system/audio/unified_volume_view.cc
@@ -8,7 +8,6 @@ #include <memory> #include <utility> -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/system/caps_lock_notification_controller.cc b/ash/system/caps_lock_notification_controller.cc index 78df6fb9..9ae7e37 100644 --- a/ash/system/caps_lock_notification_controller.cc +++ b/ash/system/caps_lock_notification_controller.cc
@@ -5,7 +5,7 @@ #include "ash/system/caps_lock_notification_controller.h" #include "ash/accessibility/accessibility_controller_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/notification_utils.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/root_window_controller.h"
diff --git a/ash/system/gesture_education/gesture_education_notification_controller.cc b/ash/system/gesture_education/gesture_education_notification_controller.cc index 9f0baaef..39dc8b4 100644 --- a/ash/system/gesture_education/gesture_education_notification_controller.cc +++ b/ash/system/gesture_education/gesture_education_notification_controller.cc
@@ -4,7 +4,7 @@ #include "ash/system/gesture_education/gesture_education_notification_controller.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/notification_utils.h" #include "ash/public/cpp/shelf_config.h"
diff --git a/ash/system/gesture_education/gesture_education_notification_controller_unittest.cc b/ash/system/gesture_education/gesture_education_notification_controller_unittest.cc index 7930db03..b27d455 100644 --- a/ash/system/gesture_education/gesture_education_notification_controller_unittest.cc +++ b/ash/system/gesture_education/gesture_education_notification_controller_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/system/gesture_education/gesture_education_notification_controller.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/system/holding_space/holding_space_drag_util.cc b/ash/system/holding_space/holding_space_drag_util.cc index a9621df6..16251492 100644 --- a/ash/system/holding_space/holding_space_drag_util.cc +++ b/ash/system/holding_space/holding_space_drag_util.cc
@@ -7,7 +7,7 @@ #include <memory> #include "ash/bubble/bubble_utils.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/holding_space/holding_space_image.h" #include "ash/public/cpp/holding_space/holding_space_item.h" #include "ash/public/cpp/rounded_image_view.h" @@ -224,7 +224,7 @@ // Label. ScopedLightModeAsDefault scoped_light_mode; auto* label = AddChildView(bubble_utils::CreateLabel( - bubble_utils::LabelStyle::kChip, item->text())); + bubble_utils::LabelStyle::kChipTitle, item->text())); label->SetElideBehavior(gfx::ElideBehavior::ELIDE_MIDDLE); label->SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT); layout->SetFlexForView(label, 1);
diff --git a/ash/system/holding_space/holding_space_item_chip_view.cc b/ash/system/holding_space/holding_space_item_chip_view.cc index 5bdd3288..a4d4eef 100644 --- a/ash/system/holding_space/holding_space_item_chip_view.cc +++ b/ash/system/holding_space/holding_space_item_chip_view.cc
@@ -42,8 +42,8 @@ // Appearance. constexpr int kChildSpacing = 8; constexpr int kLabelMaskGradientWidth = 16; -constexpr gfx::Insets kLabelMargins(0, 0, 0, /*right=*/2); -constexpr gfx::Insets kPadding(8, 8, 8, /*right=*/10); +constexpr gfx::Insets kLabelMargins(/*top=*/4, 0, /*bottom=*/4, /*right=*/2); +constexpr gfx::Insets kPadding(0, /*left=*/8, 0, /*right=*/10); constexpr int kPreferredHeight = 40; constexpr int kPreferredWidth = 160; constexpr int kSecondaryActionIconSize = 16; @@ -57,7 +57,7 @@ PaintCallbackLabel& operator=(const PaintCallbackLabel&) = delete; ~PaintCallbackLabel() override = default; - using Callback = base::RepeatingCallback<void(gfx::Canvas* canvas)>; + using Callback = base::RepeatingCallback<void(views::Label*, gfx::Canvas*)>; void SetCallback(Callback callback) { callback_ = std::move(callback); } private: @@ -65,7 +65,7 @@ void OnPaint(gfx::Canvas* canvas) override { views::Label::OnPaint(canvas); if (!callback_.is_null()) - callback_.Run(canvas); + callback_.Run(this, canvas); } Callback callback_; @@ -85,18 +85,15 @@ // Helpers --------------------------------------------------------------------- -// Returns a label builder with desired `style`, `text` and paint `callback`. +// Returns a label builder with desired `style` and paint `callback`. std::unique_ptr<HoldingSpaceViewBuilder<views::Label>> CreateLabelBuilder( bubble_utils::LabelStyle style, - const std::u16string& text, PaintCallbackLabel::Callback callback) { auto label = views::Builder<PaintCallbackLabel>() - .SetBorder(views::CreateEmptyBorder(kLabelMargins)) .SetCallback(std::move(callback)) .SetElideBehavior(gfx::ELIDE_MIDDLE) .SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT) .SetPaintToLayer() - .SetText(text) .Build(); // NOTE: A11y events are handled by `HoldingSpaceItemChipView`. @@ -189,10 +186,21 @@ views::FlexSpecification( views::MinimumFlexSizeRule::kScaleToZero, views::MaximumFlexSizeRule::kUnbounded))) - .AddChild(CreateLabelBuilder(bubble_utils::LabelStyle::kChip, - item->text(), - paint_label_mask_callback) - ->CopyAddressTo(&label_)) + .AddChild( + HoldingSpaceViewBuilder<views::View>( + views::Builder<views::BoxLayoutView>() + .SetOrientation(Orientation::kVertical) + .SetMainAxisAlignment(MainAxisAlignment::kCenter) + .SetCrossAxisAlignment(CrossAxisAlignment::kStretch) + .SetInsideBorderInsets(kLabelMargins)) + .AddChild(CreateLabelBuilder( + bubble_utils::LabelStyle::kChipTitle, + paint_label_mask_callback) + ->CopyAddressTo(&primary_label_)) + .AddChild(CreateLabelBuilder( + bubble_utils::LabelStyle::kChipBody, + paint_label_mask_callback) + ->CopyAddressTo(&secondary_label_))) .AddChild( HoldingSpaceViewBuilder<views::BoxLayoutView>( views::Builder<views::BoxLayoutView>() @@ -208,35 +216,38 @@ &HoldingSpaceItemChipView::UpdateImage, base::Unretained(this))); UpdateImage(); + UpdateLabels(); } HoldingSpaceItemChipView::~HoldingSpaceItemChipView() = default; views::View* HoldingSpaceItemChipView::GetTooltipHandlerForPoint( const gfx::Point& point) { - // Tooltips for this view are handled by `label_`, which will only show - // tooltips if the underlying text has been elided due to insufficient space. - return HitTestPoint(point) ? label_ : nullptr; + // Tooltips for this view are handled by `primary_label_`, which will only + // show tooltips if the underlying text has been elided due to insufficient + // space. + return HitTestPoint(point) ? primary_label_ : nullptr; } void HoldingSpaceItemChipView::OnHoldingSpaceItemUpdated( const HoldingSpaceItem* item) { HoldingSpaceItemView::OnHoldingSpaceItemUpdated(item); if (this->item() == item) { - label_->SetText(item->text()); + UpdateLabels(); UpdateSecondaryAction(); } } void HoldingSpaceItemChipView::OnPrimaryActionVisibilityChanged(bool visible) { - // The `label_` must be repainted to update its mask for + // Labels must be repainted to update their masks for // `primary_action_container()` visibility. - label_->SchedulePaint(); + primary_label_->SchedulePaint(); + secondary_label_->SchedulePaint(); } void HoldingSpaceItemChipView::OnSelectionUiChanged() { HoldingSpaceItemView::OnSelectionUiChanged(); - UpdateLabel(); + UpdateLabels(); UpdateSecondaryAction(); } @@ -255,7 +266,7 @@ void HoldingSpaceItemChipView::OnThemeChanged() { HoldingSpaceItemView::OnThemeChanged(); UpdateImage(); - UpdateLabel(); + UpdateLabels(); // Pause. const SkColor icon_color = AshColorProvider::Get()->GetContentLayerColor( @@ -270,19 +281,20 @@ gfx::CreateVectorIcon(kResumeIcon, kSecondaryActionIconSize, icon_color)); } -void HoldingSpaceItemChipView::OnPaintLabelMask(gfx::Canvas* canvas) { +void HoldingSpaceItemChipView::OnPaintLabelMask(views::Label* label, + gfx::Canvas* canvas) { // If the `primary_action_container()` isn't visible, masking is unnecessary. if (!primary_action_container()->GetVisible()) return; - // If the `primary_action_container()` is visible, `label_` fades out its tail + // If the `primary_action_container()` is visible, `label` fades out its tail // to avoid overlap. gfx::Point gradient_start, gradient_end; if (base::i18n::IsRTL()) { gradient_end.set_x(primary_action_container()->width()); gradient_start.set_x(gradient_end.x() + kLabelMaskGradientWidth); } else { - gradient_end.set_x(label_->width() - primary_action_container()->width()); + gradient_end.set_x(label->width() - primary_action_container()->width()); gradient_start.set_x(gradient_end.x() - kLabelMaskGradientWidth); } @@ -292,7 +304,7 @@ flags.setShader(gfx::CreateGradientShader( gradient_start, gradient_end, SK_ColorBLACK, SK_ColorTRANSPARENT)); - canvas->DrawRect(label_->GetLocalBounds(), flags); + canvas->DrawRect(label->GetLocalBounds(), flags); } void HoldingSpaceItemChipView::OnSecondaryActionPressed() { @@ -316,15 +328,32 @@ SchedulePaint(); } -void HoldingSpaceItemChipView::UpdateLabel() { +// TODO(dmblack): Implement secondary label text. +void HoldingSpaceItemChipView::UpdateLabels() { const bool multiselect = delegate()->selection_ui() == HoldingSpaceViewDelegate::SelectionUi::kMultiSelect; - label_->SetEnabledColor( + // Primary. + primary_label_->SetText(item()->text()); + primary_label_->SetEnabledColor( selected() && multiselect ? GetMultiSelectTextColor() : AshColorProvider::Get()->GetContentLayerColor( AshColorProvider::ContentLayerType::kTextColorPrimary)); + + if (!item()->IsInProgress()) { + secondary_label_->SetVisible(false); + return; + } + + // Secondary. + secondary_label_->SetText(item()->text()); + secondary_label_->SetEnabledColor( + selected() && multiselect + ? GetMultiSelectTextColor() + : AshColorProvider::Get()->GetContentLayerColor( + AshColorProvider::ContentLayerType::kTextColorSecondary)); + secondary_label_->SetVisible(true); } void HoldingSpaceItemChipView::UpdateSecondaryAction() {
diff --git a/ash/system/holding_space/holding_space_item_chip_view.h b/ash/system/holding_space/holding_space_item_chip_view.h index 5a273af..dc2c573b 100644 --- a/ash/system/holding_space/holding_space_item_chip_view.h +++ b/ash/system/holding_space/holding_space_item_chip_view.h
@@ -42,22 +42,23 @@ void OnMouseEvent(ui::MouseEvent* event) override; void OnThemeChanged() override; - // Invoked during `label_`'s paint sequence to paint its optional mask. Note - // that `label_` is only masked when the `primary_action()` is visible to - // avoid overlapping. - void OnPaintLabelMask(gfx::Canvas* canvas); + // Invoked during `label`'s paint sequence to paint its optional mask. Note + // that `label` is only masked when the `primary_action_container()` is + // visible to avoid overlapping. + void OnPaintLabelMask(views::Label* label, gfx::Canvas* canvas); // Invoked when the secondary action is pressed. This will be one of either // `secondary_action_pause_` or `secondary_action_resume_`. void OnSecondaryActionPressed(); void UpdateImage(); - void UpdateLabel(); + void UpdateLabels(); void UpdateSecondaryAction(); // Owned by view hierarchy. RoundedImageView* image_ = nullptr; - views::Label* label_ = nullptr; + views::Label* primary_label_ = nullptr; + views::Label* secondary_label_ = nullptr; views::View* secondary_action_container_ = nullptr; views::ImageButton* secondary_action_pause_ = nullptr; views::ImageButton* secondary_action_resume_ = nullptr;
diff --git a/ash/system/holding_space/holding_space_tray_icon.cc b/ash/system/holding_space/holding_space_tray_icon.cc index f03816e..8e814dc 100644 --- a/ash/system/holding_space/holding_space_tray_icon.cc +++ b/ash/system/holding_space/holding_space_tray_icon.cc
@@ -4,7 +4,6 @@ #include "ash/system/holding_space/holding_space_tray_icon.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/holding_space/holding_space_constants.h" #include "ash/public/cpp/holding_space/holding_space_item.h" #include "ash/public/cpp/holding_space/holding_space_metrics.h"
diff --git a/ash/system/holding_space/holding_space_tray_icon_preview.cc b/ash/system/holding_space/holding_space_tray_icon_preview.cc index 56948f0..0ec2157 100644 --- a/ash/system/holding_space/holding_space_tray_icon_preview.cc +++ b/ash/system/holding_space/holding_space_tray_icon_preview.cc
@@ -6,7 +6,7 @@ #include <algorithm> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/holding_space/holding_space_constants.h" #include "ash/public/cpp/holding_space/holding_space_image.h" #include "ash/public/cpp/holding_space/holding_space_item.h"
diff --git a/ash/system/holding_space/pinned_files_section.cc b/ash/system/holding_space/pinned_files_section.cc index 92732d58..f88eec8 100644 --- a/ash/system/holding_space/pinned_files_section.cc +++ b/ash/system/holding_space/pinned_files_section.cc
@@ -117,7 +117,7 @@ // Label. auto* label = AddChildView( - bubble_utils::CreateLabel(bubble_utils::LabelStyle::kChip)); + bubble_utils::CreateLabel(bubble_utils::LabelStyle::kChipTitle)); label->SetText(l10n_util::GetStringUTF16( IDS_ASH_HOLDING_SPACE_PINNED_FILES_APP_CHIP_TEXT)); layout->SetFlexForView(label, 1);
diff --git a/ash/system/message_center/ash_message_center_lock_screen_controller.cc b/ash/system/message_center/ash_message_center_lock_screen_controller.cc index 87ab104..483b10d 100644 --- a/ash/system/message_center/ash_message_center_lock_screen_controller.cc +++ b/ash/system/message_center/ash_message_center_lock_screen_controller.cc
@@ -4,8 +4,8 @@ #include "ash/system/message_center/ash_message_center_lock_screen_controller.h" +#include "ash/constants/ash_features.h" #include "ash/login/ui/lock_screen.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/toast_data.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/system/message_center/message_center_controller.cc b/ash/system/message_center/message_center_controller.cc index e6f014e..cc4f1612 100644 --- a/ash/system/message_center/message_center_controller.cc +++ b/ash/system/message_center/message_center_controller.cc
@@ -8,7 +8,6 @@ #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/message_center/arc_notification_manager_base.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/system/message_center/message_center_scroll_bar.cc b/ash/system/message_center/message_center_scroll_bar.cc index 8f420b55..6e5bbe1 100644 --- a/ash/system/message_center/message_center_scroll_bar.cc +++ b/ash/system/message_center/message_center_scroll_bar.cc
@@ -4,7 +4,7 @@ #include "ash/system/message_center/message_center_scroll_bar.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "base/metrics/histogram_macros.h" #include "ui/compositor/layer.h"
diff --git a/ash/system/message_center/message_center_utils.cc b/ash/system/message_center/message_center_utils.cc index 2ba090d..0c96ad9 100644 --- a/ash/system/message_center/message_center_utils.cc +++ b/ash/system/message_center/message_center_utils.cc
@@ -4,7 +4,6 @@ #include "ash/system/message_center/message_center_utils.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/vm_camera_mic_constants.h" #include "ui/message_center/message_center.h"
diff --git a/ash/system/message_center/stacked_notification_bar.cc b/ash/system/message_center/stacked_notification_bar.cc index fe739ee9..5b5b8e5c 100644 --- a/ash/system/message_center/stacked_notification_bar.cc +++ b/ash/system/message_center/stacked_notification_bar.cc
@@ -4,7 +4,6 @@ #include "ash/system/message_center/stacked_notification_bar.h" -#include "ash/public/cpp/ash_features.h" #include "ash/strings/grit/ash_strings.h" #include "ash/style/ash_color_provider.h" #include "ash/system/message_center/message_center_style.h"
diff --git a/ash/system/message_center/unified_message_center_bubble_unittest.cc b/ash/system/message_center/unified_message_center_bubble_unittest.cc index 207f9e6..5089df6 100644 --- a/ash/system/message_center/unified_message_center_bubble_unittest.cc +++ b/ash/system/message_center/unified_message_center_bubble_unittest.cc
@@ -6,7 +6,6 @@ #include <memory> -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "ash/system/message_center/unified_message_center_view.h" #include "ash/system/tray/tray_constants.h"
diff --git a/ash/system/message_center/unified_message_center_view.cc b/ash/system/message_center/unified_message_center_view.cc index a736b8a..91fe7d2 100644 --- a/ash/system/message_center/unified_message_center_view.cc +++ b/ash/system/message_center/unified_message_center_view.cc
@@ -7,7 +7,6 @@ #include <algorithm> #include <memory> -#include "ash/public/cpp/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "ash/system/message_center/ash_message_center_lock_screen_controller.h"
diff --git a/ash/system/message_center/unified_message_center_view_unittest.cc b/ash/system/message_center/unified_message_center_view_unittest.cc index 9ea06e2..6ffe98c 100644 --- a/ash/system/message_center/unified_message_center_view_unittest.cc +++ b/ash/system/message_center/unified_message_center_view_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/system/message_center/unified_message_center_view.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h"
diff --git a/ash/system/message_center/unified_message_list_view.cc b/ash/system/message_center/unified_message_list_view.cc index 2bed895..ab5e47d 100644 --- a/ash/system/message_center/unified_message_list_view.cc +++ b/ash/system/message_center/unified_message_list_view.cc
@@ -4,7 +4,6 @@ #include "ash/system/message_center/unified_message_list_view.h" -#include "ash/public/cpp/ash_features.h" #include "ash/system/message_center/message_center_style.h" #include "ash/system/message_center/message_center_utils.h" #include "ash/system/message_center/metrics_utils.h"
diff --git a/ash/system/message_center/unified_message_list_view_unittest.cc b/ash/system/message_center/unified_message_list_view_unittest.cc index e9e284c..4ba3f151 100644 --- a/ash/system/message_center/unified_message_list_view_unittest.cc +++ b/ash/system/message_center/unified_message_list_view_unittest.cc
@@ -4,7 +4,6 @@ #include "ash/system/message_center/unified_message_list_view.h" -#include "ash/public/cpp/ash_features.h" #include "ash/system/tray/tray_constants.h" #include "ash/system/unified/unified_system_tray_model.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/system/network/network_icon.cc b/ash/system/network/network_icon.cc index 402ab173..f726833 100644 --- a/ash/system/network/network_icon.cc +++ b/ash/system/network/network_icon.cc
@@ -8,7 +8,6 @@ #include <utility> #include "ash/constants/ash_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/network_icon_image_source.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/strings/grit/ash_strings.h"
diff --git a/ash/system/night_light/night_light_controller_impl.cc b/ash/system/night_light/night_light_controller_impl.cc index 3ce1362..b9d0b84d 100644 --- a/ash/system/night_light/night_light_controller_impl.cc +++ b/ash/system/night_light/night_light_controller_impl.cc
@@ -7,9 +7,9 @@ #include <cmath> #include <memory> +#include "ash/constants/ash_features.h" #include "ash/display/display_color_manager.h" #include "ash/display/window_tree_host_manager.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/notification_utils.h" #include "ash/public/cpp/system_tray_client.h"
diff --git a/ash/system/night_light/night_light_controller_unittest.cc b/ash/system/night_light/night_light_controller_unittest.cc index 4ef8b0c..08fb919 100644 --- a/ash/system/night_light/night_light_controller_unittest.cc +++ b/ash/system/night_light/night_light_controller_unittest.cc
@@ -7,9 +7,9 @@ #include <sstream> #include <string> +#include "ash/constants/ash_features.h" #include "ash/display/cursor_window_controller.h" #include "ash/display/window_tree_host_manager.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/session/session_types.h" #include "ash/root_window_controller.h"
diff --git a/ash/system/overview/overview_button_tray_unittest.cc b/ash/system/overview/overview_button_tray_unittest.cc index a264e90..5ba75c7 100644 --- a/ash/system/overview/overview_button_tray_unittest.cc +++ b/ash/system/overview/overview_button_tray_unittest.cc
@@ -5,9 +5,9 @@ #include "ash/system/overview/overview_button_tray.h" #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/constants/ash_features.h" #include "ash/display/window_tree_host_manager.h" #include "ash/login_status.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_types.h" #include "ash/public/cpp/tablet_mode.h" #include "ash/root_window_controller.h"
diff --git a/ash/system/palette/palette_tool.cc b/ash/system/palette/palette_tool.cc index 438dcc0..60aab8df 100644 --- a/ash/system/palette/palette_tool.cc +++ b/ash/system/palette/palette_tool.cc
@@ -7,7 +7,7 @@ #include <memory> #include "ash/assistant/util/assistant_util.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/system/palette/palette_tool_manager.h" #include "ash/system/palette/palette_utils.h" #include "ash/system/palette/tools/capture_region_mode.h"
diff --git a/ash/system/palette/palette_tray.cc b/ash/system/palette/palette_tray.cc index 9dce1982..6e2781c 100644 --- a/ash/system/palette/palette_tray.cc +++ b/ash/system/palette/palette_tray.cc
@@ -7,7 +7,7 @@ #include <memory> #include "ash/accessibility/accessibility_controller_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/stylus_utils.h"
diff --git a/ash/system/palette/palette_tray_unittest.cc b/ash/system/palette/palette_tray_unittest.cc index b32913f9..dda20c9e 100644 --- a/ash/system/palette/palette_tray_unittest.cc +++ b/ash/system/palette/palette_tray_unittest.cc
@@ -11,10 +11,10 @@ #include "ash/assistant/test/test_assistant_client.h" #include "ash/assistant/test/test_assistant_service.h" #include "ash/assistant/util/assistant_util.h" +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/highlighter/highlighter_controller.h" #include "ash/highlighter/highlighter_controller_test_api.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/assistant/assistant_state.h" #include "ash/public/cpp/stylus_utils.h"
diff --git a/ash/system/power/peripheral_battery_notifier.cc b/ash/system/power/peripheral_battery_notifier.cc index 75f19f1..1efcd12 100644 --- a/ash/system/power/peripheral_battery_notifier.cc +++ b/ash/system/power/peripheral_battery_notifier.cc
@@ -7,8 +7,8 @@ #include <string> #include <vector> +#include "ash/constants/ash_features.h" #include "ash/power/hid_battery_util.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/notification_utils.h" #include "ash/public/cpp/system_tray_client.h" #include "ash/resources/vector_icons/vector_icons.h"
diff --git a/ash/system/power/peripheral_battery_notifier_listener_integration_test.cc b/ash/system/power/peripheral_battery_notifier_listener_integration_test.cc index 8b6c6bd0..1dee82d 100644 --- a/ash/system/power/peripheral_battery_notifier_listener_integration_test.cc +++ b/ash/system/power/peripheral_battery_notifier_listener_integration_test.cc
@@ -7,7 +7,7 @@ #include <memory> #include <string> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/shell.h" #include "ash/system/power/peripheral_battery_notifier.h" #include "ash/system/power/peripheral_battery_tests.h"
diff --git a/ash/system/power/peripheral_battery_notifier_unittest.cc b/ash/system/power/peripheral_battery_notifier_unittest.cc index cd49334..e4e39d4 100644 --- a/ash/system/power/peripheral_battery_notifier_unittest.cc +++ b/ash/system/power/peripheral_battery_notifier_unittest.cc
@@ -7,7 +7,7 @@ #include <memory> #include <string> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/test/test_system_tray_client.h" #include "ash/shell.h" #include "ash/system/power/peripheral_battery_listener.h"
diff --git a/ash/system/power/power_button_menu_view.cc b/ash/system/power/power_button_menu_view.cc index a3b9c95..1ca2dda8 100644 --- a/ash/system/power/power_button_menu_view.cc +++ b/ash/system/power/power_button_menu_view.cc
@@ -7,9 +7,9 @@ #include <memory> #include "ash/capture_mode/capture_mode_controller.h" +#include "ash/constants/ash_features.h" #include "ash/display/screen_orientation_controller.h" #include "ash/login/login_screen_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/new_window_delegate.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/system/power/power_button_screenshot_controller_unittest.cc b/ash/system/power/power_button_screenshot_controller_unittest.cc index b6f44e2..83d2025 100644 --- a/ash/system/power/power_button_screenshot_controller_unittest.cc +++ b/ash/system/power/power_button_screenshot_controller_unittest.cc
@@ -7,8 +7,8 @@ #include <memory> #include "ash/capture_mode/capture_mode_metrics.h" +#include "ash/constants/ash_features.h" #include "ash/login_status.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/window_properties.h" #include "ash/shell.h" #include "ash/system/power/power_button_controller.h"
diff --git a/ash/system/screen_layout_observer.cc b/ash/system/screen_layout_observer.cc index 50d473d..294d39c 100644 --- a/ash/system/screen_layout_observer.cc +++ b/ash/system/screen_layout_observer.cc
@@ -8,10 +8,10 @@ #include <utility> #include <vector> +#include "ash/constants/ash_features.h" #include "ash/display/screen_orientation_controller.h" #include "ash/metrics/user_metrics_action.h" #include "ash/metrics/user_metrics_recorder.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/notification_utils.h" #include "ash/public/cpp/system_tray_client.h" #include "ash/resources/vector_icons/vector_icons.h"
diff --git a/ash/system/screen_layout_observer_unittest.cc b/ash/system/screen_layout_observer_unittest.cc index 58fd045..29d2780 100644 --- a/ash/system/screen_layout_observer_unittest.cc +++ b/ash/system/screen_layout_observer_unittest.cc
@@ -6,7 +6,7 @@ #include <string> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/system/status_area_widget.cc b/ash/system/status_area_widget.cc index 2a2fe018..aaee4e7 100644 --- a/ash/system/status_area_widget.cc +++ b/ash/system/status_area_widget.cc
@@ -8,7 +8,6 @@ #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/session/session_controller_impl.h" #include "ash/shelf/shelf.h"
diff --git a/ash/system/system_notification_controller.cc b/ash/system/system_notification_controller.cc index 4a37d349..c27f13f 100644 --- a/ash/system/system_notification_controller.cc +++ b/ash/system/system_notification_controller.cc
@@ -5,7 +5,6 @@ #include "ash/system/system_notification_controller.h" #include "ash/constants/ash_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/system/caps_lock_notification_controller.h" #include "ash/system/cast/cast_notification_controller.h" #include "ash/system/gesture_education/gesture_education_notification_controller.h"
diff --git a/ash/system/time/time_tray_item_view.cc b/ash/system/time/time_tray_item_view.cc index 5b60d90..7b130d6 100644 --- a/ash/system/time/time_tray_item_view.cc +++ b/ash/system/time/time_tray_item_view.cc
@@ -4,7 +4,7 @@ #include "ash/system/time/time_tray_item_view.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shelf/shelf.h" #include "ash/shell.h"
diff --git a/ash/system/time/time_tray_item_view_unittest.cc b/ash/system/time/time_tray_item_view_unittest.cc index 97e751a..deab3db 100644 --- a/ash/system/time/time_tray_item_view_unittest.cc +++ b/ash/system/time/time_tray_item_view_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/system/time/time_tray_item_view.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/shelf/shelf.h" #include "ash/system/time/time_view.h" #include "ash/system/unified/unified_system_tray_model.h"
diff --git a/ash/system/tray/tray_bubble_view.cc b/ash/system/tray/tray_bubble_view.cc index a290d02..d44c3e2 100644 --- a/ash/system/tray/tray_bubble_view.cc +++ b/ash/system/tray/tray_bubble_view.cc
@@ -9,7 +9,6 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/public/cpp/accelerators.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "ash/style/ash_color_provider.h" #include "ash/system/tray/tray_constants.h"
diff --git a/ash/system/tray/tray_event_filter.cc b/ash/system/tray/tray_event_filter.cc index 0ac5ba49..740c9a5 100644 --- a/ash/system/tray/tray_event_filter.cc +++ b/ash/system/tray/tray_event_filter.cc
@@ -5,7 +5,6 @@ #include "ash/system/tray/tray_event_filter.h" #include "ash/capture_mode/capture_mode_util.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/root_window_controller.h" #include "ash/shelf/shelf.h"
diff --git a/ash/system/tray/tray_event_filter_unittest.cc b/ash/system/tray/tray_event_filter_unittest.cc index 3df2f2d..d914369 100644 --- a/ash/system/tray/tray_event_filter_unittest.cc +++ b/ash/system/tray/tray_event_filter_unittest.cc
@@ -4,7 +4,6 @@ #include "ash/system/tray/tray_event_filter.h" -#include "ash/public/cpp/ash_features.h" #include "ash/root_window_controller.h" #include "ash/shelf/shelf.h" #include "ash/shell.h"
diff --git a/ash/system/unified/feature_pods_container_view.cc b/ash/system/unified/feature_pods_container_view.cc index ac5880d..9b932372 100644 --- a/ash/system/unified/feature_pods_container_view.cc +++ b/ash/system/unified/feature_pods_container_view.cc
@@ -4,7 +4,6 @@ #include "ash/system/unified/feature_pods_container_view.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/pagination/pagination_controller.h" #include "ash/public/cpp/pagination/pagination_model.h" #include "ash/system/tray/tray_constants.h"
diff --git a/ash/system/unified/feature_pods_container_view_unittest.cc b/ash/system/unified/feature_pods_container_view_unittest.cc index d36ac9d..bef1b84f 100644 --- a/ash/system/unified/feature_pods_container_view_unittest.cc +++ b/ash/system/unified/feature_pods_container_view_unittest.cc
@@ -4,7 +4,6 @@ #include "ash/system/unified/feature_pods_container_view.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/pagination/pagination_controller.h" #include "ash/public/cpp/pagination/pagination_model.h" #include "ash/system/tray/tray_constants.h"
diff --git a/ash/system/unified/notification_counter_view.cc b/ash/system/unified/notification_counter_view.cc index c2f8285..d3db6d7b 100644 --- a/ash/system/unified/notification_counter_view.cc +++ b/ash/system/unified/notification_counter_view.cc
@@ -6,7 +6,7 @@ #include <algorithm> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/vm_camera_mic_constants.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/system/unified/notification_counter_view_unittest.cc b/ash/system/unified/notification_counter_view_unittest.cc index e0544be..7deb3c3 100644 --- a/ash/system/unified/notification_counter_view_unittest.cc +++ b/ash/system/unified/notification_counter_view_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/system/unified/notification_counter_view.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/system/unified/notification_icons_controller.h" #include "ash/system/unified/unified_system_tray.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/system/unified/notification_icons_controller.cc b/ash/system/unified/notification_icons_controller.cc index e9816ab..3fe70cb 100644 --- a/ash/system/unified/notification_icons_controller.cc +++ b/ash/system/unified/notification_icons_controller.cc
@@ -4,7 +4,7 @@ #include "ash/system/unified/notification_icons_controller.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/vm_camera_mic_constants.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/system/unified/notification_icons_controller_unittest.cc b/ash/system/unified/notification_icons_controller_unittest.cc index f9153dd..e11144d 100644 --- a/ash/system/unified/notification_icons_controller_unittest.cc +++ b/ash/system/unified/notification_icons_controller_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/system/unified/notification_icons_controller.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/notification_utils.h" #include "ash/public/cpp/vm_camera_mic_constants.h" #include "ash/system/tray/tray_item_view.h"
diff --git a/ash/system/unified/unified_system_info_view.cc b/ash/system/unified/unified_system_info_view.cc index 69f8a3777..31624c7 100644 --- a/ash/system/unified/unified_system_info_view.cc +++ b/ash/system/unified/unified_system_info_view.cc
@@ -4,7 +4,7 @@ #include "ash/system/unified/unified_system_info_view.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_view_ids.h" #include "ash/public/cpp/session/session_observer.h" #include "ash/resources/vector_icons/vector_icons.h"
diff --git a/ash/system/unified/unified_system_info_view_unittest.cc b/ash/system/unified/unified_system_info_view_unittest.cc index 9391666..5e0cbf3 100644 --- a/ash/system/unified/unified_system_info_view_unittest.cc +++ b/ash/system/unified/unified_system_info_view_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/system/unified/unified_system_info_view.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/session/test_session_controller_client.h" #include "ash/shell.h"
diff --git a/ash/system/unified/unified_system_tray.cc b/ash/system/unified/unified_system_tray.cc index 27d1c9b..5cb7d95 100644 --- a/ash/system/unified/unified_system_tray.cc +++ b/ash/system/unified/unified_system_tray.cc
@@ -5,8 +5,8 @@ #include "ash/system/unified/unified_system_tray.h" #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/constants/ash_features.h" #include "ash/focus_cycler.h" -#include "ash/public/cpp/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shelf/shelf.h" #include "ash/shell.h"
diff --git a/ash/system/unified/unified_system_tray_bubble.cc b/ash/system/unified/unified_system_tray_bubble.cc index c90a3976..a49ce80 100644 --- a/ash/system/unified/unified_system_tray_bubble.cc +++ b/ash/system/unified/unified_system_tray_bubble.cc
@@ -4,7 +4,6 @@ #include "ash/system/unified/unified_system_tray_bubble.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shelf/shelf.h" #include "ash/shell.h" #include "ash/system/message_center/unified_message_center_bubble.h"
diff --git a/ash/system/unified/unified_system_tray_controller.cc b/ash/system/unified/unified_system_tray_controller.cc index f75e75b..260bfc6 100644 --- a/ash/system/unified/unified_system_tray_controller.cc +++ b/ash/system/unified/unified_system_tray_controller.cc
@@ -10,7 +10,6 @@ #include "ash/metrics/user_metrics_recorder.h" #include "ash/projector/projector_controller_impl.h" #include "ash/projector/projector_feature_pod_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/metrics_util.h" #include "ash/public/cpp/pagination/pagination_controller.h" #include "ash/public/cpp/system_tray_client.h"
diff --git a/ash/system/unified/unified_system_tray_controller_unittest.cc b/ash/system/unified/unified_system_tray_controller_unittest.cc index 900762e..2513f6f 100644 --- a/ash/system/unified/unified_system_tray_controller_unittest.cc +++ b/ash/system/unified/unified_system_tray_controller_unittest.cc
@@ -4,7 +4,6 @@ #include "ash/system/unified/unified_system_tray_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "ash/system/message_center/ash_message_center_lock_screen_controller.h"
diff --git a/ash/system/unified/unified_system_tray_view.cc b/ash/system/unified/unified_system_tray_view.cc index c7a7034..4579972 100644 --- a/ash/system/unified/unified_system_tray_view.cc +++ b/ash/system/unified/unified_system_tray_view.cc
@@ -6,7 +6,6 @@ #include <numeric> -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h"
diff --git a/ash/system/update/update_notification_controller_unittest.cc b/ash/system/update/update_notification_controller_unittest.cc index 0fdf4a3a..aded103 100644 --- a/ash/system/update/update_notification_controller_unittest.cc +++ b/ash/system/update/update_notification_controller_unittest.cc
@@ -4,7 +4,6 @@ #include "ash/system/update/update_notification_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "ash/system/model/system_tray_model.h" #include "ash/system/session/shutdown_confirmation_dialog.h"
diff --git a/ash/wm/collision_detection/collision_detection_utils.cc b/ash/wm/collision_detection/collision_detection_utils.cc index 1a22b6d..7a4778bf 100644 --- a/ash/wm/collision_detection/collision_detection_utils.cc +++ b/ash/wm/collision_detection/collision_detection_utils.cc
@@ -6,8 +6,8 @@ #include "ash/capture_mode/capture_mode_controller.h" #include "ash/capture_mode/capture_mode_session.h" +#include "ash/constants/ash_features.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_types.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/shelf/shelf.h"
diff --git a/ash/wm/desks/desk_animation_impl.cc b/ash/wm/desks/desk_animation_impl.cc index 55433a6..15d5ed8 100644 --- a/ash/wm/desks/desk_animation_impl.cc +++ b/ash/wm/desks/desk_animation_impl.cc
@@ -4,7 +4,6 @@ #include "ash/wm/desks/desk_animation_impl.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/presentation_time_recorder.h" #include "ash/root_window_controller.h" #include "ash/shell.h"
diff --git a/ash/wm/desks/desks_bar_view.cc b/ash/wm/desks/desks_bar_view.cc index db0d0e3..5b74669 100644 --- a/ash/wm/desks/desks_bar_view.cc +++ b/ash/wm/desks/desks_bar_view.cc
@@ -8,8 +8,8 @@ #include <iterator> #include <utility> +#include "ash/constants/ash_features.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/window_properties.h" #include "ash/shelf/gradient_layer_delegate.h"
diff --git a/ash/wm/desks/desks_controller.cc b/ash/wm/desks/desks_controller.cc index d86e384..b36745a2 100644 --- a/ash/wm/desks/desks_controller.cc +++ b/ash/wm/desks/desks_controller.cc
@@ -8,7 +8,7 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/app_list/app_list_controller_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/shelf_model.h" #include "ash/public/cpp/shelf_types.h" #include "ash/public/cpp/shell_window_ids.h"
diff --git a/ash/wm/desks/desks_unittests.cc b/ash/wm/desks/desks_unittests.cc index 2805696..e571017 100644 --- a/ash/wm/desks/desks_unittests.cc +++ b/ash/wm/desks/desks_unittests.cc
@@ -6,12 +6,12 @@ #include "ash/accessibility/sticky_keys/sticky_keys_controller.h" #include "ash/app_list/app_list_controller_impl.h" +#include "ash/constants/ash_features.h" #include "ash/display/screen_orientation_controller.h" #include "ash/display/screen_orientation_controller_test_api.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" #include "ash/keyboard/ui/test/keyboard_test_util.h" #include "ash/multi_user/multi_user_window_manager_impl.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/ash_prefs.h" #include "ash/public/cpp/event_rewriter_controller.h"
diff --git a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc index 67d7d6ef..1b492fe 100644 --- a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc +++ b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/session/session_controller_impl.h" #include "ash/shelf/contextual_tooltip.h"
diff --git a/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc b/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc index 49dc91b..8720998 100644 --- a/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc +++ b/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc
@@ -6,10 +6,10 @@ #include "ash/app_list/app_list_controller_impl.h" #include "ash/constants/app_types.h" +#include "ash/constants/ash_features.h" #include "ash/display/screen_orientation_controller.h" #include "ash/keyboard/keyboard_util.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/session/session_controller_impl.h" #include "ash/shelf/contextual_tooltip.h" #include "ash/shell.h"
diff --git a/ash/wm/gestures/wm_gesture_handler.cc b/ash/wm/gestures/wm_gesture_handler.cc index 9bb7830..ede3907 100644 --- a/ash/wm/gestures/wm_gesture_handler.cc +++ b/ash/wm/gestures/wm_gesture_handler.cc
@@ -4,7 +4,7 @@ #include "ash/wm/gestures/wm_gesture_handler.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/toast_data.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/wm/gestures/wm_gesture_handler_unittest.cc b/ash/wm/gestures/wm_gesture_handler_unittest.cc index 02f27c33..fe486f9 100644 --- a/ash/wm/gestures/wm_gesture_handler_unittest.cc +++ b/ash/wm/gestures/wm_gesture_handler_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/wm/gestures/wm_gesture_handler.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h"
diff --git a/ash/wm/immersive_fullscreen_controller_unittest.cc b/ash/wm/immersive_fullscreen_controller_unittest.cc index c1d55d3..20c5e46 100644 --- a/ash/wm/immersive_fullscreen_controller_unittest.cc +++ b/ash/wm/immersive_fullscreen_controller_unittest.cc
@@ -6,7 +6,6 @@ #include "ash/frame/header_view.h" #include "ash/frame/non_client_frame_view_ash.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/shelf_types.h" #include "ash/root_window_controller.h"
diff --git a/ash/wm/mru_window_tracker.cc b/ash/wm/mru_window_tracker.cc index 50ac0c3..ea1112b 100644 --- a/ash/wm/mru_window_tracker.cc +++ b/ash/wm/mru_window_tracker.cc
@@ -7,7 +7,6 @@ #include <algorithm> #include "ash/constants/app_types.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/window_properties.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/wm/overview/overview_controller.cc b/ash/wm/overview/overview_controller.cc index f8ccdd7..c28d364 100644 --- a/ash/wm/overview/overview_controller.cc +++ b/ash/wm/overview/overview_controller.cc
@@ -9,7 +9,6 @@ #include "ash/frame_throttler/frame_throttling_controller.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/window_properties.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h"
diff --git a/ash/wm/overview/overview_controller_unittest.cc b/ash/wm/overview/overview_controller_unittest.cc index 2358600e..ea877555 100644 --- a/ash/wm/overview/overview_controller_unittest.cc +++ b/ash/wm/overview/overview_controller_unittest.cc
@@ -12,7 +12,6 @@ #include "ash/keyboard/ui/keyboard_ui_controller.h" #include "ash/keyboard/ui/keyboard_util.h" #include "ash/keyboard/ui/test/keyboard_test_util.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/keyboard/keyboard_switches.h" #include "ash/public/cpp/overview_test_api.h" #include "ash/public/cpp/test/shell_test_api.h"
diff --git a/ash/wm/overview/overview_grid.cc b/ash/wm/overview/overview_grid.cc index fa7dbcd8..657ac0c 100644 --- a/ash/wm/overview/overview_grid.cc +++ b/ash/wm/overview/overview_grid.cc
@@ -11,7 +11,6 @@ #include "ash/frame_throttler/frame_throttling_controller.h" #include "ash/metrics/histogram_macros.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/metrics_util.h" #include "ash/public/cpp/presentation_time_recorder.h" #include "ash/public/cpp/shelf_config.h"
diff --git a/ash/wm/overview/overview_highlight_controller_unittest.cc b/ash/wm/overview/overview_highlight_controller_unittest.cc index e5b38ff..503fbda 100644 --- a/ash/wm/overview/overview_highlight_controller_unittest.cc +++ b/ash/wm/overview/overview_highlight_controller_unittest.cc
@@ -4,7 +4,6 @@ #include "ash/wm/overview/overview_highlight_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "ash/wm/desks/close_desk_button.h"
diff --git a/ash/wm/overview/overview_session.cc b/ash/wm/overview/overview_session.cc index abe384e..9fe6a47 100644 --- a/ash/wm/overview/overview_session.cc +++ b/ash/wm/overview/overview_session.cc
@@ -11,7 +11,6 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/app_list/app_list_controller_impl.h" #include "ash/metrics/user_metrics_recorder.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/window_properties.h" #include "ash/root_window_controller.h"
diff --git a/ash/wm/overview/overview_session_unittest.cc b/ash/wm/overview/overview_session_unittest.cc index 062ece4..bd1be6d 100644 --- a/ash/wm/overview/overview_session_unittest.cc +++ b/ash/wm/overview/overview_session_unittest.cc
@@ -20,7 +20,6 @@ #include "ash/display/screen_orientation_controller.h" #include "ash/display/screen_orientation_controller_test_api.h" #include "ash/drag_drop/drag_drop_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/test/shell_test_api.h" #include "ash/public/cpp/window_properties.h"
diff --git a/ash/wm/overview/overview_window_drag_controller.cc b/ash/wm/overview/overview_window_drag_controller.cc index 3a8956d6..2d4f813 100644 --- a/ash/wm/overview/overview_window_drag_controller.cc +++ b/ash/wm/overview/overview_window_drag_controller.cc
@@ -9,7 +9,6 @@ #include <utility> #include "ash/display/mouse_cursor_event_filter.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/presentation_time_recorder.h" #include "ash/screen_util.h" #include "ash/shell.h"
diff --git a/ash/wm/overview/overview_window_drag_controller_unittest.cc b/ash/wm/overview/overview_window_drag_controller_unittest.cc index 6c0bd360..a25144c 100644 --- a/ash/wm/overview/overview_window_drag_controller_unittest.cc +++ b/ash/wm/overview/overview_window_drag_controller_unittest.cc
@@ -6,7 +6,6 @@ #include "ash/display/screen_orientation_controller.h" #include "ash/display/screen_orientation_controller_test_api.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "ash/wm/desks/desk.h"
diff --git a/ash/wm/overview/overview_window_drag_histogram_unittests.cc b/ash/wm/overview/overview_window_drag_histogram_unittests.cc index 467a44ee..e4575ac 100644 --- a/ash/wm/overview/overview_window_drag_histogram_unittests.cc +++ b/ash/wm/overview/overview_window_drag_histogram_unittests.cc
@@ -5,7 +5,6 @@ #include <memory> #include <vector> -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "ash/wm/desks/desk_mini_view.h"
diff --git a/ash/wm/overview/scoped_overview_animation_settings.cc b/ash/wm/overview/scoped_overview_animation_settings.cc index 7464748a..5908773f 100644 --- a/ash/wm/overview/scoped_overview_animation_settings.cc +++ b/ash/wm/overview/scoped_overview_animation_settings.cc
@@ -5,7 +5,6 @@ #include "ash/wm/overview/scoped_overview_animation_settings.h" #include "ash/metrics/histogram_macros.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/metrics_util.h" #include "ash/wm/overview/overview_constants.h" #include "base/bind.h"
diff --git a/ash/wm/overview/scoped_overview_transform_window.cc b/ash/wm/overview/scoped_overview_transform_window.cc index 9e47192e..f472cc8 100644 --- a/ash/wm/overview/scoped_overview_transform_window.cc +++ b/ash/wm/overview/scoped_overview_transform_window.cc
@@ -7,7 +7,7 @@ #include <algorithm> #include <utility> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/window_properties.h" #include "ash/shell.h" #include "ash/wm/overview/delayed_animation_observer_impl.h"
diff --git a/ash/wm/overview/scoped_overview_transform_window_unittest.cc b/ash/wm/overview/scoped_overview_transform_window_unittest.cc index 1ea9c104..4c1c7c6 100644 --- a/ash/wm/overview/scoped_overview_transform_window_unittest.cc +++ b/ash/wm/overview/scoped_overview_transform_window_unittest.cc
@@ -4,7 +4,6 @@ #include "ash/wm/overview/scoped_overview_transform_window.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/window_properties.h" #include "ash/test/ash_test_base.h" #include "ash/wm/overview/overview_utils.h"
diff --git a/ash/wm/splitview/split_view_controller_unittest.cc b/ash/wm/splitview/split_view_controller_unittest.cc index 8011982..78f478e 100644 --- a/ash/wm/splitview/split_view_controller_unittest.cc +++ b/ash/wm/splitview/split_view_controller_unittest.cc
@@ -15,7 +15,6 @@ #include "ash/constants/app_types.h" #include "ash/display/screen_orientation_controller.h" #include "ash/display/screen_orientation_controller_test_api.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/fps_counter.h" #include "ash/public/cpp/presentation_time_recorder.h" #include "ash/public/cpp/shelf_config.h"
diff --git a/ash/wm/splitview/split_view_utils.cc b/ash/wm/splitview/split_view_utils.cc index 272c9ae7..b1f35eae 100644 --- a/ash/wm/splitview/split_view_utils.cc +++ b/ash/wm/splitview/split_view_utils.cc
@@ -5,7 +5,7 @@ #include "ash/wm/splitview/split_view_utils.h" #include "ash/accessibility/accessibility_controller_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/toast_data.h" #include "ash/screen_util.h" #include "ash/shell.h"
diff --git a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc index e1fb23dc..d6a78c7 100644 --- a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc +++ b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc
@@ -20,7 +20,6 @@ #include "ash/constants/ash_switches.h" #include "ash/display/screen_orientation_controller.h" #include "ash/public/cpp/accessibility_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/tablet_mode.h" #include "ash/public/cpp/test/shell_test_api.h"
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc index 2641aa7..c60537d 100644 --- a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc +++ b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
@@ -7,7 +7,6 @@ #include <string> #include "ash/app_list/app_list_controller_impl.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/overview_test_api.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/shelf_prefs.h"
diff --git a/ash/wm/tablet_mode/tablet_mode_window_state.cc b/ash/wm/tablet_mode/tablet_mode_window_state.cc index 097a116..4fa89ad3 100644 --- a/ash/wm/tablet_mode/tablet_mode_window_state.cc +++ b/ash/wm/tablet_mode/tablet_mode_window_state.cc
@@ -7,7 +7,6 @@ #include <utility> #include "ash/drag_drop/tab_drag_drop_delegate.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/window_animation_types.h" #include "ash/public/cpp/window_properties.h"
diff --git a/ash/wm/window_cycle/window_cycle_controller.cc b/ash/wm/window_cycle/window_cycle_controller.cc index ab8b00a..8ce71f6 100644 --- a/ash/wm/window_cycle/window_cycle_controller.cc +++ b/ash/wm/window_cycle/window_cycle_controller.cc
@@ -6,12 +6,12 @@ #include "ash/accelerators/accelerator_controller_impl.h" #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/constants/ash_features.h" #include "ash/events/event_rewriter_controller_impl.h" #include "ash/metrics/task_switch_metrics_recorder.h" #include "ash/metrics/task_switch_source.h" #include "ash/metrics/user_metrics_recorder.h" #include "ash/public/cpp/accelerators.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/session/session_controller_impl.h"
diff --git a/ash/wm/window_cycle/window_cycle_controller_unittest.cc b/ash/wm/window_cycle/window_cycle_controller_unittest.cc index 87dc37f..f8d888d 100644 --- a/ash/wm/window_cycle/window_cycle_controller_unittest.cc +++ b/ash/wm/window_cycle/window_cycle_controller_unittest.cc
@@ -12,11 +12,11 @@ #include "ash/accessibility/test_accessibility_controller_client.h" #include "ash/app_list/app_list_controller_impl.h" #include "ash/app_list/test/app_list_test_helper.h" +#include "ash/constants/ash_features.h" #include "ash/focus_cycler.h" #include "ash/frame_throttler/frame_throttling_controller.h" #include "ash/frame_throttler/mock_frame_throttling_observer.h" #include "ash/multi_user/multi_user_window_manager_impl.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/ash_prefs.h" #include "ash/public/cpp/multi_user_window_manager.h"
diff --git a/ash/wm/window_cycle/window_cycle_list.cc b/ash/wm/window_cycle/window_cycle_list.cc index 136c7edc..07dbcaa 100644 --- a/ash/wm/window_cycle/window_cycle_list.cc +++ b/ash/wm/window_cycle/window_cycle_list.cc
@@ -10,8 +10,8 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/app_list/app_list_controller_impl.h" +#include "ash/constants/ash_features.h" #include "ash/frame_throttler/frame_throttling_controller.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/metrics_util.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/window_properties.h"
diff --git a/ash/wm/window_util.cc b/ash/wm/window_util.cc index 941485d..53d2594 100644 --- a/ash/wm/window_util.cc +++ b/ash/wm/window_util.cc
@@ -9,7 +9,6 @@ #include "ash/constants/app_types.h" #include "ash/multi_user/multi_user_window_manager_impl.h" #include "ash/public/cpp/app_types_util.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/tablet_mode_observer.h" #include "ash/public/cpp/window_properties.h"
diff --git a/ash/wm/workspace/workspace_window_resizer.cc b/ash/wm/workspace/workspace_window_resizer.cc index be63329..4ec5855 100644 --- a/ash/wm/workspace/workspace_window_resizer.cc +++ b/ash/wm/workspace/workspace_window_resizer.cc
@@ -9,7 +9,7 @@ #include <utility> #include "ash/constants/app_types.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/root_window_controller.h" #include "ash/scoped_animation_disabler.h"
diff --git a/base/BUILD.gn b/base/BUILD.gn index cdf351b..c1936037 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -2296,11 +2296,13 @@ "tracing/tracing_tls.h", ] - public_deps += [ "//third_party/perfetto:libperfetto" ] + public_deps += [ + "//base/tracing/protos:chrome_track_event_zero", + "//third_party/perfetto:libperfetto", + ] deps += [ "//base/tracing/protos:chrome_track_event", - "//base/tracing/protos:chrome_track_event_zero", "//third_party/perfetto/include/perfetto/protozero", ]
diff --git a/base/tracing/protos/chrome_track_event.proto b/base/tracing/protos/chrome_track_event.proto index 2f9b2ea..e8de17c6 100644 --- a/base/tracing/protos/chrome_track_event.proto +++ b/base/tracing/protos/chrome_track_event.proto
@@ -34,7 +34,8 @@ } message ChromeBrowserContext { - optional fixed64 ptr = 1; + reserved 1; + optional string id = 2; } message ChromeProfileDestroyer { @@ -151,6 +152,50 @@ optional uint32 resource_id = 1; } +// Information about RenderProcessHost. +message RenderProcessHost { + // Unique Id to identify the RenderProcessHost. This is the browser-side, + // persistent id for this RenderProcessHost that stays constant even across OS + // layer processes managed by this RenderProcessHost. + optional uint32 id = 1; + // See ProcessLock::ToString(). + optional string process_lock = 2; + // The PID of the child process. + optional int32 child_process_id = 3; + + // Details about the associated browser context. + optional ChromeBrowserContext browser_context = 4; +} + +message RenderProcessHostListener { + // Routing ID of the listener to the RenderProcessHost, recorded when a new ID + // is added or when an ID is removed. + optional uint32 routing_id = 1; +} + +message RenderProcessHostCleanup { + // Number of IPC listeners registered to the host when Cleanup() was called. + optional uint32 listener_count = 1; + // Number of "keep alive" references active in the RenderProcessHost, recorded + // when Cleanup() was called. + optional uint32 keep_alive_ref_count = 2; +} + +message ChildProcessLauncherPriority { + // True if the new priority set to background. + optional bool is_backgrounded = 1; + // True if the renderer proecss has pending views. + optional bool has_pending_views = 2; + + // Importance of the child process in Android. + enum Importance { + IMPORTANCE_NORMAL = 1; + IMPORTANCE_MODERATE = 2; + IMPORTANCE_IMPORTANT = 3; + } + optional Importance importance = 3; +} + message ChromeTrackEvent { // Extension range for Chrome: 1000-1999 // Next ID: 1018 @@ -182,7 +227,12 @@ optional ChromeHashedPerformanceMark chrome_hashed_performance_mark = 1011; - // reserved 1012 to 1015. + optional RenderProcessHost render_process_host = 1012; + optional RenderProcessHostCleanup render_process_host_cleanup = 1013; + optional RenderProcessHostListener render_process_host_listener_changed = + 1014; + optional ChildProcessLauncherPriority child_process_launcher_priority = + 1015; optional ResourceBundle resource_bundle = 1016;
diff --git a/build/android/gyp/dex.py b/build/android/gyp/dex.py index e6d5fe7..e55ab4e 100755 --- a/build/android/gyp/dex.py +++ b/build/android/gyp/dex.py
@@ -23,6 +23,8 @@ import convert_dex_profile +_DEX_XMX = '2G' # Increase this when __final_dex OOMs. + _IGNORE_WARNINGS = ( # Caused by Play Services: r'Type `libcore.io.Memory` was not found', @@ -540,7 +542,7 @@ def MergeDexForIncrementalInstall(r8_jar_path, src_paths, dest_dex_jar, min_api): - dex_cmd = build_utils.JavaCmd(verify=False) + [ + dex_cmd = build_utils.JavaCmd(verify=False, xmx=_DEX_XMX) + [ '-cp', r8_jar_path, 'com.android.tools.r8.D8', @@ -578,7 +580,7 @@ final_dex_inputs = list(options.class_inputs) final_dex_inputs += options.dex_inputs - dex_cmd = build_utils.JavaCmd(options.warnings_as_errors) + dex_cmd = build_utils.JavaCmd(options.warnings_as_errors, xmx=_DEX_XMX) if options.dump_inputs: dex_cmd += ['-Dcom.android.tools.r8.dumpinputtofile=d8inputs.zip']
diff --git a/cc/layers/deadline_policy.cc b/cc/layers/deadline_policy.cc index 2b343da4..65f376dd 100644 --- a/cc/layers/deadline_policy.cc +++ b/cc/layers/deadline_policy.cc
@@ -6,7 +6,28 @@ #include <limits> +#include "base/notreached.h" +#include "base/strings/stringprintf.h" + namespace cc { +namespace { + +const char* PolicyToString(DeadlinePolicy::Type type) { + switch (type) { + case DeadlinePolicy::Type::kUseExistingDeadline: + return "UseExistingDeadline"; + case DeadlinePolicy::Type::kUseDefaultDeadline: + return "UseDefaultDeadline"; + case DeadlinePolicy::Type::kUseSpecifiedDeadline: + return "UseSpecifiedDeadline"; + case DeadlinePolicy::Type::kUseInfiniteDeadline: + return "UseInfiniteDeadline"; + } + NOTREACHED(); + return ""; +} + +} // namespace // static DeadlinePolicy DeadlinePolicy::UseExistingDeadline() { @@ -36,4 +57,10 @@ DeadlinePolicy::DeadlinePolicy(const DeadlinePolicy& other) = default; +std::string DeadlinePolicy::ToString() const { + return base::StringPrintf("DeadlinePolicy(%s, %d)", + PolicyToString(policy_type_), + deadline_in_frames_.value_or(-1)); +} + } // namespace cc
diff --git a/cc/layers/deadline_policy.h b/cc/layers/deadline_policy.h index 9a62c1fe..57416c66 100644 --- a/cc/layers/deadline_policy.h +++ b/cc/layers/deadline_policy.h
@@ -6,6 +6,7 @@ #define CC_LAYERS_DEADLINE_POLICY_H_ #include <cstdint> +#include <string> #include "base/check.h" #include "cc/cc_export.h" @@ -58,6 +59,8 @@ return !(*this == other); } + std::string ToString() const; + private: explicit DeadlinePolicy( Type policy_type,
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index e9631df0..1d86513 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -888,6 +888,7 @@ "//chrome/android/webapk/libs/common:splash_java", "//chrome/android/webapk/test:junit_test_support", "//chrome/browser/android/browserservices/intents:java", + "//chrome/browser/android/browserservices/intents:junit", "//chrome/browser/android/browserservices/verification:java", "//chrome/browser/android/lifecycle:java", "//chrome/browser/android/webapps/launchpad:junit_tests", @@ -1125,6 +1126,7 @@ "//base:jni_java", "//cc:cc_java", "//chrome/android:chrome_java", + "//chrome/browser/android/browserservices/intents:java", "//chrome/browser/flags:java", "//chrome/browser/tab:java", "//chrome/browser/ui/android/appmenu:java", @@ -1458,6 +1460,7 @@ "//ui/base/mojom:mojom_java", "//url:gurl_java", "//url:gurl_javatests", + "//url:gurl_junit_test_support", "//url:origin_java", "//url/mojom:url_mojom_gurl_java", ]
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni index b980197..ca9581d 100644 --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni
@@ -908,6 +908,7 @@ "java/res/xml/manage_sync_preferences.xml", "java/res/xml/phone_as_a_security_key_accessory_filter.xml", "java/res/xml/privacy_preferences.xml", + "java/res/xml/quick_action_search_widget_info.xml", "java/res/xml/search_widget_info.xml", "java/res/xml/tracing_preferences.xml", ]
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index 127a921..dd13a9b 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -1128,6 +1128,7 @@ "java/src/org/chromium/chrome/browser/query_tiles/QueryTileUtils.java", "java/src/org/chromium/chrome/browser/query_tiles/TileProviderFactory.java", "java/src/org/chromium/chrome/browser/query_tiles/TileServiceUtils.java", + "java/src/org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider.java", "java/src/org/chromium/chrome/browser/read_later/ReadLaterIPHController.java", "java/src/org/chromium/chrome/browser/read_later/ReadingListBridge.java", "java/src/org/chromium/chrome/browser/read_later/ReadingListUtils.java", @@ -1392,7 +1393,6 @@ "java/src/org/chromium/chrome/browser/webapps/WebappInfo.java", "java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java", "java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProviderFactory.java", - "java/src/org/chromium/chrome/browser/webapps/WebappIntentUtils.java", "java/src/org/chromium/chrome/browser/webapps/WebappLaunchCauseMetrics.java", "java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java", "java/src/org/chromium/chrome/browser/webapps/WebappLocator.java",
diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/chrome_junit_test_java_sources.gni index 2635d93..f482479 100644 --- a/chrome/android/chrome_junit_test_java_sources.gni +++ b/chrome/android/chrome_junit_test_java_sources.gni
@@ -253,7 +253,6 @@ "junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java", "junit/src/org/chromium/chrome/browser/webapps/WebappDirectoryManagerTest.java", "junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java", - "junit/src/org/chromium/chrome/browser/webapps/WebappIntentUtilsTest.java", "junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java", "junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java", ]
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantClient.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantClient.java index 9f6051f1..0f2c689 100644 --- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantClient.java +++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantClient.java
@@ -180,7 +180,7 @@ if (mAccountInitializationStarted) return; mAccountInitializationStarted = true; - AccountManagerFacadeProvider.getInstance().tryGetGoogleAccounts(accounts -> { + AccountManagerFacadeProvider.getInstance().getAccounts().then(accounts -> { if (mNativeClientAndroid == 0) return; if (accounts.size() == 1) { // If there's only one account, there aren't any doubts.
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java index 1e4a48c..c60478e 100644 --- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java +++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java
@@ -1092,7 +1092,8 @@ } private void startAndWaitNativeInitialization() { - Assert.assertFalse(LibraryLoader.getInstance().isInitialized()); + Assert.assertFalse( + NativeLibraryLoadedStatus.getProviderForTesting().areMainDexNativeMethodsReady()); CommandLine.getInstance().removeSwitch(ChromeSwitches.DISABLE_NATIVE_INITIALIZATION); TestThreadUtils.runOnUiThreadBlocking(
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTestUtils.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTestUtils.java index afc8ee9..b9e390c 100644 --- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTestUtils.java +++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTestUtils.java
@@ -62,6 +62,7 @@ import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.content_public.browser.test.util.TestTouchUtils; import org.chromium.url.GURL; +import org.chromium.url.JUnitTestGURLs; import java.io.File; import java.io.FileOutputStream; @@ -360,14 +361,18 @@ */ public static List<SiteSuggestion> createFakeSiteSuggestions() { List<SiteSuggestion> siteSuggestions = new ArrayList<>(); - siteSuggestions.add(new SiteSuggestion("0 EXPLORE_SITES", new GURL("https://www.bar.com"), - "", TileTitleSource.UNKNOWN, TileSource.EXPLORE, TileSectionType.PERSONALIZED, - new Date())); + siteSuggestions.add(new SiteSuggestion("0 EXPLORE_SITES", + // Use pre-serialized GURL to avoid loading native. + JUnitTestGURLs.getGURL(JUnitTestGURLs.EXAMPLE_URL), "", TileTitleSource.UNKNOWN, + TileSource.EXPLORE, TileSectionType.PERSONALIZED, new Date())); + String urlTemplate = JUnitTestGURLs.getGURL(JUnitTestGURLs.URL_1_NUMERAL).serialize(); for (int i = 0; i < 7; i++) { siteSuggestions.add(new SiteSuggestion(String.valueOf(i), - new GURL("https://www." + i + ".com"), "", TileTitleSource.TITLE_TAG, - TileSource.TOP_SITES, TileSectionType.PERSONALIZED, new Date())); + // Use pre-serialized GURL to avoid loading native. + GURL.deserialize(urlTemplate.replace("www.1.com", "www." + i + ".com")), "", + TileTitleSource.TITLE_TAG, TileSource.TOP_SITES, TileSectionType.PERSONALIZED, + new Date())); } return siteSuggestions;
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/SingleTabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/SingleTabSwitcherMediator.java index eb91cd6..48735d9 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/SingleTabSwitcherMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/SingleTabSwitcherMediator.java
@@ -133,8 +133,7 @@ private void updateFavicon(Tab tab) { assert mTabListFaviconProvider.isInitialized(); - // TODO(crbug/783819): convert TabListFaviconProvider to GURL - mTabListFaviconProvider.getFaviconForUrlAsync(tab.getUrl().getSpec(), false, + mTabListFaviconProvider.getFaviconForUrlAsync(tab.getUrl(), false, (Drawable favicon) -> { mPropertyModel.set(FAVICON, favicon); }); } @@ -253,7 +252,7 @@ private void updateSelectedTab(Tab tab) { mPropertyModel.set(TITLE, tab.getTitle()); - mTabListFaviconProvider.getFaviconForUrlAsync(tab.getUrl().getSpec(), false, + mTabListFaviconProvider.getFaviconForUrlAsync(tab.getUrl(), false, (Drawable favicon) -> { mPropertyModel.set(FAVICON, favicon); }); }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/pseudotab/PseudoTab.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/pseudotab/PseudoTab.java index 39c4dc8..a2551a0c 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/pseudotab/PseudoTab.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/pseudotab/PseudoTab.java
@@ -26,6 +26,7 @@ import org.chromium.chrome.browser.tabpersistence.TabStateDirectory; import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; import org.chromium.components.embedder_support.util.UrlUtilities; +import org.chromium.url.GURL; import java.io.ByteArrayInputStream; import java.io.DataInputStream; @@ -179,10 +180,9 @@ * Get the URL of the {@link PseudoTab}. * @return The URL */ - public String getUrl() { - // TODO(crbug/783819): Return the GURL directly. + public GURL getUrl() { if (mTab != null && mTab.get() != null && mTab.get().isInitialized()) { - return mTab.get().getUrl() != null ? mTab.get().getUrl().getSpec() : null; + return mTab.get().getUrl(); } assert mTabId != null; return TabAttributeCache.getUrl(mTabId);
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/pseudotab/TabAttributeCache.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/pseudotab/TabAttributeCache.java index 86b1932..2d44b0a 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/pseudotab/TabAttributeCache.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/pseudotab/TabAttributeCache.java
@@ -65,8 +65,7 @@ @Override public void onUrlUpdated(Tab tab) { if (tab.isIncognito()) return; - String url = tab.getUrl().getSpec(); - cacheUrl(tab.getId(), url); + cacheUrl(tab.getId(), tab.getUrl()); } @Override @@ -107,6 +106,7 @@ int id = tab.getId(); getSharedPreferences() .edit() + .remove(getDeprecatedUrlKey(id)) .remove(getUrlKey(id)) .remove(getTitleKey(id)) .remove(getRootIdKey(id)) @@ -126,7 +126,7 @@ mTabModelSelector.getTabModelFilterProvider().getTabModelFilter(false); for (int i = 0; i < filter.getCount(); i++) { Tab tab = filter.getTabAt(i); - cacheUrl(tab.getId(), tab.getUrl().getSpec()); + cacheUrl(tab.getId(), tab.getUrl()); cacheTitle(tab.getId(), tab.getTitle()); cacheRootId(tab.getId(), CriticalPersistedTabData.from(tab).getRootId()); cacheTimestampMillis( @@ -168,6 +168,11 @@ } private static String getUrlKey(int id) { + return id + "_gurl"; + } + + // Legacy from when URL was serialized as raw string. + private static String getDeprecatedUrlKey(int id) { return id + "_url"; } @@ -176,13 +181,16 @@ * @param id The ID of the {@link PseudoTab}. * @return The URL */ - public static String getUrl(int id) { - return getSharedPreferences().getString(getUrlKey(id), ""); + public static GURL getUrl(int id) { + String url = getSharedPreferences().getString(getUrlKey(id), ""); + if (!url.isEmpty()) { + return GURL.deserialize(url); + } + return new GURL(getSharedPreferences().getString(getDeprecatedUrlKey(id), "")); } - private static void cacheUrl(int id, String url) { - // TODO(crbug/783819): Use GURL directly. - getSharedPreferences().edit().putString(getUrlKey(id), url).apply(); + private static void cacheUrl(int id, GURL url) { + getSharedPreferences().edit().putString(getUrlKey(id), url.serialize()).apply(); } /** @@ -190,7 +198,7 @@ * @param id The ID of the {@link PseudoTab}. * @param url The URL */ - static void setUrlForTesting(int id, String url) { + static void setUrlForTesting(int id, GURL url) { cacheUrl(id, url); }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MultiThumbnailCardProvider.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MultiThumbnailCardProvider.java index cbf2cde1..58abf0d8 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MultiThumbnailCardProvider.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MultiThumbnailCardProvider.java
@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.tasks.pseudotab.PseudoTab; import org.chromium.chrome.tab_ui.R; import org.chromium.content_public.browser.UiThreadTaskTraits; +import org.chromium.url.GURL; import java.util.ArrayList; import java.util.List; @@ -115,7 +116,7 @@ for (int i = 0; i < 4; i++) { if (mTabs.get(i) != null) { final int index = i; - final String url = mTabs.get(i).getUrl(); + final GURL url = mTabs.get(i).getUrl(); final boolean isIncognito = mTabs.get(i).isIncognito(); // getTabThumbnailWithCallback() might call the callback up to twice, // so use |lastFavicon| to avoid fetching the favicon the second time.
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider.java index f5a1248..21d9c76 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider.java
@@ -23,6 +23,7 @@ import org.chromium.chrome.tab_ui.R; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.ui.base.ViewUtils; +import org.chromium.url.GURL; import java.util.List; @@ -153,7 +154,7 @@ * @param faviconCallback The callback that requests for favicon. */ public void getFaviconForUrlAsync( - String url, boolean isIncognito, Callback<Drawable> faviconCallback) { + GURL url, boolean isIncognito, Callback<Drawable> faviconCallback) { if (mFaviconHelper == null || UrlUtilities.isNTPUrl(url)) { faviconCallback.onResult(getRoundedChromeDrawable(isIncognito)); } else { @@ -175,7 +176,7 @@ * @param icon The favicon that was received. * @return The processed favicon. */ - public Drawable getFaviconForUrlSync(String url, boolean isIncognito, Bitmap icon) { + public Drawable getFaviconForUrlSync(GURL url, boolean isIncognito, Bitmap icon) { if (icon == null) { boolean isNativeUrl = NativePage.isNativePageUrl(url, isIncognito); return isNativeUrl ? getRoundedChromeDrawable(isIncognito) @@ -192,7 +193,7 @@ * @param faviconCallback The callback that requests for the composed favicon. */ public void getComposedFaviconImageAsync( - List<String> urls, boolean isIncognito, Callback<Drawable> faviconCallback) { + List<GURL> urls, boolean isIncognito, Callback<Drawable> faviconCallback) { assert urls != null && urls.size() > 1 && urls.size() <= 4; mFaviconHelper.getComposedFaviconImage(mProfile, urls, mFaviconSize, (image, iconUrl) -> {
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java index 48b13b4..828d1bef 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
@@ -1614,11 +1614,11 @@ } // The order of the url list matches the multi-thumbnail. - List<String> urls = new ArrayList<>(); + List<GURL> urls = new ArrayList<>(); urls.add(pseudoTab.getUrl()); for (int i = 0; urls.size() < 4 && i < relatedTabList.size(); i++) { if (pseudoTab.getId() == relatedTabList.get(i).getId()) continue; - urls.add(relatedTabList.get(i).getUrl().getSpec()); + urls.add(relatedTabList.get(i).getUrl()); } // For tab group card in grid tab switcher, the favicon is the composed favicon.
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/SingleTabSwitcherMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/SingleTabSwitcherMediatorUnitTest.java index 3c1b611..f14b85f5 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/SingleTabSwitcherMediatorUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/SingleTabSwitcherMediatorUnitTest.java
@@ -44,6 +44,7 @@ import org.chromium.chrome.browser.tasks.tab_management.TabListFaviconProvider; import org.chromium.chrome.browser.tasks.tab_management.TabSwitcher; import org.chromium.ui.modelutil.PropertyModel; +import org.chromium.url.GURL; import org.chromium.url.JUnitTestGURLs; /** Tests for {@link SingleTabSwitcherMediator}. */ @@ -52,10 +53,10 @@ public class SingleTabSwitcherMediatorUnitTest { private final int mTabId = 1; private final String mTitle = "test"; - private final String mUrlString = JUnitTestGURLs.URL_1; + private final GURL mUrl = JUnitTestGURLs.getGURL(JUnitTestGURLs.URL_1); private final int mTabId2 = 2; private final String mTitle2 = "test2"; - private final String mUrlString2 = JUnitTestGURLs.URL_2; + private final GURL mUrl2 = JUnitTestGURLs.getGURL(JUnitTestGURLs.URL_2); private SingleTabSwitcherMediator mMediator; private PropertyModel mPropertyModel; @@ -99,10 +100,10 @@ doReturn(0).when(mNormalTabModel).index(); doReturn(1).when(mNormalTabModel).getCount(); doReturn(false).when(mNormalTabModel).isIncognito(); - doReturn(JUnitTestGURLs.getGURL(mUrlString)).when(mTab).getUrl(); + doReturn(mUrl).when(mTab).getUrl(); doReturn(mTabId).when(mTab).getId(); doReturn(mTitle).when(mTab).getTitle(); - doReturn(JUnitTestGURLs.getGURL(mUrlString2)).when(mTab2).getUrl(); + doReturn(mUrl2).when(mTab2).getUrl(); doReturn(mTabId2).when(mTab2).getId(); doReturn(mTitle2).when(mTab2).getTitle(); doReturn(true).when(mIncognitoTabModel).isIncognito(); @@ -130,7 +131,7 @@ .addTabModelFilterObserver(mTabModelObserverCaptor.capture()); verify(mTabModelSelector).addObserver(mTabModelSelectorObserverCaptor.capture()); verify(mTabListFaviconProvider) - .getFaviconForUrlAsync(eq(mUrlString), eq(false), mFaviconCallbackCaptor.capture()); + .getFaviconForUrlAsync(eq(mUrl), eq(false), mFaviconCallbackCaptor.capture()); assertTrue(mMediator.overviewVisible()); verify(mOverviewModeObserver).startedShowing(); verify(mOverviewModeObserver).finishedShowing(); @@ -160,7 +161,7 @@ .addTabModelFilterObserver(mTabModelObserverCaptor.capture()); verify(mTabModelSelector).addObserver(mTabModelSelectorObserverCaptor.capture()); verify(mTabListFaviconProvider) - .getFaviconForUrlAsync(eq(mUrlString), eq(false), mFaviconCallbackCaptor.capture()); + .getFaviconForUrlAsync(eq(mUrl), eq(false), mFaviconCallbackCaptor.capture()); assertTrue(mMediator.overviewVisible()); verify(mOverviewModeObserver).startedShowing(); verify(mOverviewModeObserver).finishedShowing(); @@ -199,7 +200,7 @@ .addTabModelFilterObserver(mTabModelObserverCaptor.capture()); verify(mTabModelSelector).addObserver(mTabModelSelectorObserverCaptor.capture()); verify(mTabListFaviconProvider) - .getFaviconForUrlAsync(eq(mUrlString), eq(false), mFaviconCallbackCaptor.capture()); + .getFaviconForUrlAsync(eq(mUrl), eq(false), mFaviconCallbackCaptor.capture()); assertTrue(mMediator.overviewVisible()); verify(mOverviewModeObserver).startedShowing(); verify(mOverviewModeObserver).finishedShowing(); @@ -228,7 +229,7 @@ .addTabModelFilterObserver(mTabModelObserverCaptor.capture()); verify(mTabModelSelector).addObserver(mTabModelSelectorObserverCaptor.capture()); verify(mTabListFaviconProvider) - .getFaviconForUrlAsync(eq(mUrlString), eq(false), mFaviconCallbackCaptor.capture()); + .getFaviconForUrlAsync(eq(mUrl), eq(false), mFaviconCallbackCaptor.capture()); assertEquals(mPropertyModel.get(TITLE), mTitle); mTabModelSelectorObserverCaptor.getValue().onTabModelSelected(
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/pseudotab/PseudoTabUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/pseudotab/PseudoTabUnitTest.java index 5c3a890..4c22b02 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/pseudotab/PseudoTabUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/pseudotab/PseudoTabUnitTest.java
@@ -32,6 +32,7 @@ import org.chromium.chrome.test.util.browser.Features; import org.chromium.chrome.test.util.browser.Features.DisableFeatures; import org.chromium.chrome.test.util.browser.Features.EnableFeatures; +import org.chromium.url.GURL; import org.chromium.url.JUnitTestGURLs; import java.util.ArrayList; @@ -250,11 +251,11 @@ @Test public void getUrl_real() { - String url = JUnitTestGURLs.EXAMPLE_URL; - doReturn(JUnitTestGURLs.getGURL(url)).when(mTab1).getUrl(); + GURL url = JUnitTestGURLs.getGURL(JUnitTestGURLs.EXAMPLE_URL); + doReturn(url).when(mTab1).getUrl(); PseudoTab tab = PseudoTab.fromTabId(TAB1_ID); - Assert.assertEquals("", tab.getUrl()); + Assert.assertEquals(GURL.emptyGURL(), tab.getUrl()); PseudoTab realTab = PseudoTab.fromTab(mTab1); Assert.assertNotEquals(tab, realTab); @@ -263,11 +264,11 @@ @Test public void getUrl_cache() { - String url = "url 1"; - TabAttributeCache.setUrlForTesting(TAB1_ID, url); + String url = JUnitTestGURLs.URL_1; + TabAttributeCache.setUrlForTesting(TAB1_ID, JUnitTestGURLs.getGURL(url)); PseudoTab tab = PseudoTab.fromTabId(TAB1_ID); - Assert.assertEquals(url, tab.getUrl()); + Assert.assertEquals(url, tab.getUrl().getSpec()); PseudoTab realTab = PseudoTab.fromTab(mTab1); Assert.assertNotEquals(tab, realTab); @@ -466,7 +467,7 @@ // Url was not set. Without the isInitialized() check, // pseudoTab.getUrl() would crash here with // UnsupportedOperationException - Assert.assertEquals("", pseudoTab.getUrl()); + Assert.assertEquals("", pseudoTab.getUrl().getSpec()); } @Test
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/pseudotab/TabAttributeCacheUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/pseudotab/TabAttributeCacheUnitTest.java index 600a0e9f..7f43c4e 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/pseudotab/TabAttributeCacheUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/pseudotab/TabAttributeCacheUnitTest.java
@@ -130,8 +130,8 @@ @Test public void updateUrl() { - String url = JUnitTestGURLs.EXAMPLE_URL; - doReturn(JUnitTestGURLs.getGURL(url)).when(mTab1).getUrl(); + GURL url = JUnitTestGURLs.getGURL(JUnitTestGURLs.EXAMPLE_URL); + doReturn(url).when(mTab1).getUrl(); Assert.assertNotEquals(url, TabAttributeCache.getUrl(TAB1_ID)); @@ -359,8 +359,8 @@ @Test public void onTabStateInitialized() { - String url1 = JUnitTestGURLs.EXAMPLE_URL; - doReturn(JUnitTestGURLs.getGURL(url1)).when(mTab1).getUrl(); + GURL url1 = JUnitTestGURLs.getGURL(JUnitTestGURLs.EXAMPLE_URL); + doReturn(url1).when(mTab1).getUrl(); String title1 = "title 1"; doReturn(title1).when(mTab1).getTitle(); int rootId1 = 1337; @@ -368,8 +368,8 @@ long timestamp1 = 123456; doReturn(timestamp1).when(mCriticalPersistedTabData1).getTimestampMillis(); - String url2 = JUnitTestGURLs.URL_2; - doReturn(JUnitTestGURLs.getGURL(url2)).when(mTab2).getUrl(); + GURL url2 = JUnitTestGURLs.getGURL(JUnitTestGURLs.URL_2); + doReturn(url2).when(mTab2).getUrl(); String title2 = "title 2"; doReturn(title2).when(mTab2).getTitle(); int rootId2 = 42;
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupUtilsUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupUtilsUnitTest.java index 1d05f8b..65bf7949 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupUtilsUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupUtilsUnitTest.java
@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.tasks.tab_management.TabUiUnitTestUtils; import org.chromium.chrome.test.util.browser.Features; import org.chromium.testing.local.LocalRobolectricTestRunner; +import org.chromium.url.GURL; import java.util.ArrayList; import java.util.Arrays; @@ -90,9 +91,9 @@ MockitoAnnotations.initMocks(this); - mTab1 = TabUiUnitTestUtils.prepareTab(TAB1_ID, TAB1_TITLE, ""); - mTab2 = TabUiUnitTestUtils.prepareTab(TAB2_ID, TAB2_TITLE, ""); - mTab3 = TabUiUnitTestUtils.prepareTab(TAB3_ID, TAB3_TITLE, ""); + mTab1 = TabUiUnitTestUtils.prepareTab(TAB1_ID, TAB1_TITLE, GURL.emptyGURL()); + mTab2 = TabUiUnitTestUtils.prepareTab(TAB2_ID, TAB2_TITLE, GURL.emptyGURL()); + mTab3 = TabUiUnitTestUtils.prepareTab(TAB3_ID, TAB3_TITLE, GURL.emptyGURL()); doReturn(mTabModelFilterProvider).when(mTabModelSelector).getTabModelFilterProvider(); doReturn(mTabGroupModelFilter).when(mTabModelFilterProvider).getCurrentTabModelFilter();
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java index 27383be..a8f8bd5 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java
@@ -64,6 +64,7 @@ import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.modelutil.PropertyModel; +import org.chromium.url.GURL; import org.chromium.url.JUnitTestGURLs; import java.util.ArrayList; @@ -1072,7 +1073,7 @@ } private TabImpl prepareTab(int id, String title) { - TabImpl tab = TabUiUnitTestUtils.prepareTab(id, title, ""); + TabImpl tab = TabUiUnitTestUtils.prepareTab(id, title, GURL.emptyGURL()); doReturn(true).when(tab).isIncognito(); return tab; }
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java index 21c3419..5c9116b 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
@@ -19,6 +19,7 @@ import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.ArgumentMatchers.anyObject; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.contains; import static org.mockito.ArgumentMatchers.eq; @@ -177,9 +178,9 @@ private static final String NEW_TITLE = "New title"; private static final String CUSTOMIZED_DIALOG_TITLE1 = "Cool Tabs"; private static final String TAB_GROUP_TITLES_FILE_NAME = "tab_group_titles"; - private static final String TAB1_URL = JUnitTestGURLs.URL_1; - private static final String TAB2_URL = JUnitTestGURLs.URL_2; - private static final String TAB3_URL = JUnitTestGURLs.URL_3; + private static final GURL TAB1_URL = JUnitTestGURLs.getGURL(JUnitTestGURLs.URL_1); + private static final GURL TAB2_URL = JUnitTestGURLs.getGURL(JUnitTestGURLs.URL_2); + private static final GURL TAB3_URL = JUnitTestGURLs.getGURL(JUnitTestGURLs.URL_3); private static final String NEW_URL = JUnitTestGURLs.EXAMPLE_URL; private static final int TAB1_ID = 456; private static final int TAB2_ID = 789; @@ -315,9 +316,9 @@ // Ensure native pointer is initialized doReturn(1L).when(mOptimizationGuideBridgeJniMock).init(); - mTab1Domain = JUnitTestGURLs.getGURL(TAB1_URL).getHost().replace("www.", ""); - mTab2Domain = JUnitTestGURLs.getGURL(TAB2_URL).getHost().replace("www.", ""); - mTab3Domain = JUnitTestGURLs.getGURL(TAB3_URL).getHost().replace("www.", ""); + mTab1Domain = TAB1_URL.getHost().replace("www.", ""); + mTab2Domain = TAB2_URL.getHost().replace("www.", ""); + mTab3Domain = TAB3_URL.getHost().replace("www.", ""); mNewDomain = JUnitTestGURLs.getGURL(NEW_URL).getHost().replace("www.", ""); CachedFeatureFlags.setForTesting(ChromeFeatureList.START_SURFACE_ANDROID, false); @@ -356,10 +357,10 @@ doReturn(2).when(mTabModel).getCount(); doNothing() .when(mTabListFaviconProvider) - .getFaviconForUrlAsync(anyString(), anyBoolean(), mCallbackCaptor.capture()); + .getFaviconForUrlAsync(anyObject(), anyBoolean(), mCallbackCaptor.capture()); doReturn(mFaviconDrawable) .when(mTabListFaviconProvider) - .getFaviconForUrlSync(anyString(), anyBoolean(), any(Bitmap.class)); + .getFaviconForUrlSync(anyObject(), anyBoolean(), any(Bitmap.class)); doReturn(mTab1).when(mTabModelSelector).getTabById(TAB1_ID); doReturn(mTab2).when(mTabModelSelector).getTabById(TAB2_ID); doReturn(tabs1).when(mTabGroupModelFilter).getRelatedTabList(TAB1_ID); @@ -379,13 +380,13 @@ doReturn(mSpanSizeLookup).when(mGridLayoutManager).getSpanSizeLookup(); doReturn(mTab1Domain) .when(mUrlUtilitiesJniMock) - .getDomainAndRegistry(eq(TAB1_URL), anyBoolean()); + .getDomainAndRegistry(eq(TAB1_URL.getSpec()), anyBoolean()); doReturn(mTab2Domain) .when(mUrlUtilitiesJniMock) - .getDomainAndRegistry(eq(TAB2_URL), anyBoolean()); + .getDomainAndRegistry(eq(TAB2_URL.getSpec()), anyBoolean()); doReturn(mTab3Domain) .when(mUrlUtilitiesJniMock) - .getDomainAndRegistry(eq(TAB3_URL), anyBoolean()); + .getDomainAndRegistry(eq(TAB3_URL.getSpec()), anyBoolean()); doNothing().when(mTemplateUrlService).addObserver(mTemplateUrlServiceObserver.capture()); doReturn(true).when(mTabListFaviconProvider).isInitialized(); @@ -1919,10 +1920,8 @@ PriceTrackingUtilities.TRACK_PRICES_ON_TABS, priceTrackingEnabled); Profile.setLastUsedProfileForTesting(mProfile); Map<GURL, Any> responses = new HashMap<>(); - GURL gurl1 = JUnitTestGURLs.getGURL(TAB1_URL); - GURL gurl2 = JUnitTestGURLs.getGURL(TAB2_URL); - responses.put(gurl1, ANY_BUYABLE_PRODUCT_INITIAL); - responses.put(gurl2, ANY_EMPTY); + responses.put(TAB1_URL, ANY_BUYABLE_PRODUCT_INITIAL); + responses.put(TAB2_URL, ANY_EMPTY); mockOptimizationGuideResponse(OptimizationGuideDecision.TRUE, responses); PersistedTabDataConfiguration.setUseTestConfig(true); initAndAssertAllProperties(mMediatorSpy); @@ -2436,7 +2435,7 @@ List<Tab> tabs = new ArrayList<>(Arrays.asList(mTab1, mTab2, tab3)); createTabGroup(tabs, TAB1_ID); mTabObserverCaptor.getValue().onFaviconUpdated(mTab1, mFaviconBitmap); - List<String> urls = new ArrayList<>(Arrays.asList(TAB1_URL, TAB2_URL, TAB3_URL)); + List<GURL> urls = new ArrayList<>(Arrays.asList(TAB1_URL, TAB2_URL, TAB3_URL)); verify(mTabListFaviconProvider).getComposedFaviconImageAsync(eq(urls), anyBoolean(), any()); mCallbackCaptor.getValue().onResult(mFaviconDrawable); assertThat(mModel.get(0).model.get(TabProperties.FAVICON), equalTo(mFaviconDrawable)); @@ -2444,11 +2443,12 @@ // Test a group of five. mModel.get(1).model.set(TabProperties.FAVICON, null); TabImpl tab4 = prepareTab(0, "tab 4", TAB2_URL); - TabImpl tab5 = prepareTab(1, "tab 5", "www.tab5.com"); + TabImpl tab5 = prepareTab(1, "tab 5", JUnitTestGURLs.getGURL(JUnitTestGURLs.EXAMPLE_URL)); tabs.addAll(Arrays.asList(tab4, tab5)); createTabGroup(tabs, TAB2_ID); mTabObserverCaptor.getValue().onFaviconUpdated(mTab2, mFaviconBitmap); urls = new ArrayList<>(Arrays.asList(TAB2_URL, TAB1_URL, TAB3_URL, TAB2_URL)); + verify(mTabListFaviconProvider).getComposedFaviconImageAsync(eq(urls), anyBoolean(), any()); mCallbackCaptor.getValue().onResult(mFaviconDrawable); assertThat(mModel.get(1).model.get(TabProperties.FAVICON), equalTo(mFaviconDrawable)); @@ -2704,7 +2704,7 @@ instanceOf(TabListMediator.TabActionListener.class)); } - private TabImpl prepareTab(int id, String title, String url) { + private TabImpl prepareTab(int id, String title, GURL url) { TabImpl tab = TabUiUnitTestUtils.prepareTab(id, title, url); when(tab.getView()).thenReturn(mock(View.class)); doReturn(true).when(tab).isIncognito();
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUnitTestUtils.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUnitTestUtils.java index 30844ef..2974cb4 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUnitTestUtils.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUnitTestUtils.java
@@ -53,17 +53,13 @@ doReturn(userDataHost).when(tab).getUserDataHost(); } - public static TabImpl prepareTab(int id, String title, String urlString) { + public static TabImpl prepareTab(int id, String title, GURL url) { CriticalPersistedTabData criticalPersistedTabData = mock(CriticalPersistedTabData.class); TabImpl tab = prepareTab(id, criticalPersistedTabData); doReturn(id).when(criticalPersistedTabData).getRootId(); doReturn(title).when(tab).getTitle(); - - // TODO(crbug/783819): don't mock GURL here. - GURL gurl = mock(GURL.class); - doReturn(urlString).when(gurl).getSpec(); - doReturn(gurl).when(tab).getOriginalUrl(); - doReturn(gurl).when(tab).getUrl(); + doReturn(url).when(tab).getOriginalUrl(); + doReturn(url).when(tab).getUrl(); return tab; }
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml index dab1346f..1ff1b64 100644 --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml
@@ -923,6 +923,21 @@ android:exported="false"> </service> + {% if channel in ['canary', 'default'] %} + <!-- Quick Action Search widget --> + <receiver + android:name="org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetProvider" + android:label="@string/quick_action_search_widget_title" + android:exported="true"> + <intent-filter> + <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> + </intent-filter> + <meta-data + android:name="android.appwidget.provider" + android:resource="@xml/quick_action_search_widget_info" /> + </receiver> + {% endif %} + <!-- Bookmarks widget --> <receiver android:name="com.google.android.apps.chrome.appwidget.bookmarks.BookmarkThumbnailWidgetProvider" android:label="@string/bookmark_widget_title"
diff --git a/chrome/android/java/res/xml/quick_action_search_widget_info.xml b/chrome/android/java/res/xml/quick_action_search_widget_info.xml new file mode 100644 index 0000000..ba5d5624 --- /dev/null +++ b/chrome/android/java/res/xml/quick_action_search_widget_info.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright 2021 The Chromium Authors. All rights reserved. + Use of this source code is governed by a BSD-style license that can be + found in the LICENSE file. --> + +<appwidget-provider + xmlns:android="http://schemas.android.com/apk/res/android" + android:widgetCategory="home_screen|searchbox" />
diff --git a/chrome/android/java/res_chromium_base/values/channel_constants.xml b/chrome/android/java/res_chromium_base/values/channel_constants.xml index b7b3bfc2..ea91529 100644 --- a/chrome/android/java/res_chromium_base/values/channel_constants.xml +++ b/chrome/android/java/res_chromium_base/values/channel_constants.xml
@@ -8,4 +8,5 @@ <string name="app_name" translatable="false">Chromium</string> <string name="bookmark_widget_title" translatable="false">Chromium bookmarks</string> <string name="search_widget_title" translatable="false">Chromium search</string> + <string name="quick_action_search_widget_title" translatable="false">Chromium quick action search</string> </resources>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java index fab0b23..510c842 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -70,6 +70,7 @@ import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; import org.chromium.chrome.browser.app.tabmodel.TabbedModeTabModelOrchestrator; import org.chromium.chrome.browser.bookmarks.BookmarkUtils; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.compositor.layouts.Layout; @@ -1369,8 +1370,8 @@ } else { launchIntent(loadUrlParams, externalAppId, true, intent); } - int shortcutSource = - intent.getIntExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.UNKNOWN); + int shortcutSource = intent.getIntExtra( + WebappConstants.EXTRA_SOURCE, ShortcutSource.UNKNOWN); LaunchMetrics.recordHomeScreenLaunchIntoTab(url, shortcutSource); break; case TabOpenType.BRING_TAB_TO_FRONT:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java index ef2f653..0bd3cf5 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
@@ -37,6 +37,7 @@ import org.chromium.base.annotations.NativeMethods; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.customtabs.CustomTabsConnection; import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler; @@ -1061,7 +1062,7 @@ */ private @TabOpenType int getTabOpenType(Intent intent) { if (IntentUtils.safeGetBooleanExtra( - intent, ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, false)) { + intent, WebappConstants.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, false)) { return TabOpenType.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB; } if (IntentUtils.safeGetBooleanExtra(intent, EXTRA_OPEN_NEW_INCOGNITO_TAB, false)) { @@ -1180,7 +1181,7 @@ if (intent == null || intent.getData() == null) return null; Uri data = intent.getData(); return TextUtils.equals(data.getScheme(), WebappActivity.WEBAPP_SCHEME) - ? IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_URL) + ? IntentUtils.safeGetStringExtra(intent, WebappConstants.EXTRA_URL) : null; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ServiceTabLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/ServiceTabLauncher.java index 304d927..589e6b5c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ServiceTabLauncher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ServiceTabLauncher.java
@@ -16,6 +16,7 @@ import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.browserservices.BrowserServicesMetrics; import org.chromium.chrome.browser.browserservices.TrustedWebActivityClient; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.notifications.WebPlatformNotificationMetrics; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabLaunchType; @@ -109,7 +110,7 @@ if (doesBrowserBackWebApk) { Intent intent = WebApkNavigationClient.createLaunchWebApkIntent( webApkPackageName, url, true /* forceNavigation */); - intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.NOTIFICATION); + intent.putExtra(WebappConstants.EXTRA_SOURCE, ShortcutSource.NOTIFICATION); ContextUtils.getApplicationContext().startActivity(intent); return; } @@ -167,9 +168,9 @@ Intent intent = storage.createWebappLaunchIntent(); // Replace the web app URL with the URL from the notification. This is within the // webapp's scope, so it is valid. - intent.putExtra(ShortcutHelper.EXTRA_URL, url); - intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.NOTIFICATION); - intent.putExtra(ShortcutHelper.EXTRA_FORCE_NAVIGATION, true); + intent.putExtra(WebappConstants.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_SOURCE, ShortcutSource.NOTIFICATION); + intent.putExtra(WebappConstants.EXTRA_FORCE_NAVIGATION, true); tabDelegate.createNewStandaloneFrame(intent); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java index d52fe53..9221692 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java
@@ -19,6 +19,7 @@ import org.chromium.chrome.browser.browserservices.intents.BitmapHelper; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.webapps.WebappActivity; import org.chromium.chrome.browser.webapps.WebappAuthenticator; import org.chromium.chrome.browser.webapps.WebappDataStorage; @@ -26,7 +27,6 @@ import org.chromium.chrome.browser.webapps.WebappLauncherActivity; import org.chromium.chrome.browser.webapps.WebappRegistry; import org.chromium.components.webapps.WebappsUtils; -import org.chromium.content_public.common.ScreenOrientationConstants; import java.util.HashMap; import java.util.Locale; @@ -39,42 +39,6 @@ * or open a web app. */ public class ShortcutHelper { - public static final String EXTRA_ICON = "org.chromium.chrome.browser.webapp_icon"; - public static final String EXTRA_ID = "org.chromium.chrome.browser.webapp_id"; - public static final String EXTRA_MAC = "org.chromium.chrome.browser.webapp_mac"; - // EXTRA_TITLE is present for backward compatibility reasons. - public static final String EXTRA_TITLE = "org.chromium.chrome.browser.webapp_title"; - public static final String EXTRA_NAME = "org.chromium.chrome.browser.webapp_name"; - public static final String EXTRA_SHORT_NAME = "org.chromium.chrome.browser.webapp_short_name"; - public static final String EXTRA_URL = "org.chromium.chrome.browser.webapp_url"; - public static final String EXTRA_SCOPE = "org.chromium.chrome.browser.webapp_scope"; - public static final String EXTRA_DISPLAY_MODE = - "org.chromium.chrome.browser.webapp_display_mode"; - public static final String EXTRA_ORIENTATION = ScreenOrientationConstants.EXTRA_ORIENTATION; - public static final String EXTRA_SOURCE = "org.chromium.chrome.browser.webapp_source"; - public static final String EXTRA_THEME_COLOR = "org.chromium.chrome.browser.theme_color"; - public static final String EXTRA_BACKGROUND_COLOR = - "org.chromium.chrome.browser.background_color"; - public static final String EXTRA_IS_ICON_GENERATED = - "org.chromium.chrome.browser.is_icon_generated"; - public static final String EXTRA_IS_ICON_ADAPTIVE = - "org.chromium.chrome.browser.webapp_icon_adaptive"; - public static final String EXTRA_VERSION = - "org.chromium.chrome.browser.webapp_shortcut_version"; - public static final String REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB = - "REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB"; - // Whether the webapp should navigate to the URL in {@link EXTRA_URL} if the webapp is already - // open. Applies to webapps and WebAPKs. Value contains "webapk" for backward compatibility. - public static final String EXTRA_FORCE_NAVIGATION = - "org.chromium.chrome.browser.webapk_force_navigation"; - - // When a new field is added to the intent, this version should be incremented so that it will - // be correctly populated into the WebappRegistry/WebappDataStorage. - public static final int WEBAPP_SHORTCUT_VERSION = 3; - - // This value is equal to kInvalidOrMissingColor in the C++ blink::Manifest struct. - public static final long MANIFEST_COLOR_INVALID_OR_MISSING = ((long) Integer.MAX_VALUE) + 1; - private static final String TAG = "ShortcutHelper"; // Holds splash images for web apps that are currently being installed. After installation is @@ -136,11 +100,12 @@ String encodedIcon = BitmapHelper.encodeBitmapAsString(icon); // TODO(http://crbug.com/1000046): Use action which does not require mac on O+ - Intent shortcutIntent = createWebappShortcutIntent(id, url, scopeUrl, name, - shortName, encodedIcon, WEBAPP_SHORTCUT_VERSION, displayMode, orientation, - themeColor, backgroundColor, iconUrl.isEmpty(), isIconAdaptive); - shortcutIntent.putExtra(EXTRA_MAC, getEncodedMac(url)); - shortcutIntent.putExtra(EXTRA_SOURCE, source); + Intent shortcutIntent = + createWebappShortcutIntent(id, url, scopeUrl, name, shortName, encodedIcon, + WebappConstants.WEBAPP_SHORTCUT_VERSION, displayMode, orientation, + themeColor, backgroundColor, iconUrl.isEmpty(), isIconAdaptive); + shortcutIntent.putExtra(WebappConstants.EXTRA_MAC, getEncodedMac(url)); + shortcutIntent.putExtra(WebappConstants.EXTRA_SOURCE, source); return shortcutIntent; } @Override @@ -246,19 +211,19 @@ Intent shortcutIntent = new Intent(); shortcutIntent.setPackage(ContextUtils.getApplicationContext().getPackageName()) .setAction(sDelegate.getFullscreenAction()) - .putExtra(EXTRA_ID, id) - .putExtra(EXTRA_URL, url) - .putExtra(EXTRA_SCOPE, scope) - .putExtra(EXTRA_NAME, name) - .putExtra(EXTRA_SHORT_NAME, shortName) - .putExtra(EXTRA_ICON, encodedIcon) - .putExtra(EXTRA_VERSION, version) - .putExtra(EXTRA_DISPLAY_MODE, displayMode) - .putExtra(EXTRA_ORIENTATION, orientation) - .putExtra(EXTRA_THEME_COLOR, themeColor) - .putExtra(EXTRA_BACKGROUND_COLOR, backgroundColor) - .putExtra(EXTRA_IS_ICON_GENERATED, isIconGenerated) - .putExtra(EXTRA_IS_ICON_ADAPTIVE, isIconAdaptive); + .putExtra(WebappConstants.EXTRA_ID, id) + .putExtra(WebappConstants.EXTRA_URL, url) + .putExtra(WebappConstants.EXTRA_SCOPE, scope) + .putExtra(WebappConstants.EXTRA_NAME, name) + .putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName) + .putExtra(WebappConstants.EXTRA_ICON, encodedIcon) + .putExtra(WebappConstants.EXTRA_VERSION, version) + .putExtra(WebappConstants.EXTRA_DISPLAY_MODE, displayMode) + .putExtra(WebappConstants.EXTRA_ORIENTATION, orientation) + .putExtra(WebappConstants.EXTRA_THEME_COLOR, themeColor) + .putExtra(WebappConstants.EXTRA_BACKGROUND_COLOR, backgroundColor) + .putExtra(WebappConstants.EXTRA_IS_ICON_GENERATED, isIconGenerated) + .putExtra(WebappConstants.EXTRA_IS_ICON_ADAPTIVE, isIconAdaptive); return shortcutIntent; } @@ -271,7 +236,8 @@ */ public static Intent createWebappShortcutIntentForTesting(String id, String url) { return createWebappShortcutIntent(id, url, getScopeFromUrl(url), null, null, null, - WEBAPP_SHORTCUT_VERSION, WebDisplayMode.STANDALONE, 0, 0, 0, false, false); + WebappConstants.WEBAPP_SHORTCUT_VERSION, WebDisplayMode.STANDALONE, 0, 0, 0, false, + false); } /** @@ -281,9 +247,9 @@ */ public static Intent createShortcutIntent(String url, String id, int source) { Intent shortcutIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - shortcutIntent.putExtra(REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); - shortcutIntent.putExtra(EXTRA_ID, id); - shortcutIntent.putExtra(EXTRA_SOURCE, source); + shortcutIntent.putExtra(WebappConstants.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); + shortcutIntent.putExtra(WebappConstants.EXTRA_ID, id); + shortcutIntent.putExtra(WebappConstants.EXTRA_SOURCE, source); shortcutIntent.setPackage(ContextUtils.getApplicationContext().getPackageName()); return shortcutIntent; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/metrics/TabbedActivityLaunchCauseMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/app/metrics/TabbedActivityLaunchCauseMetrics.java index b2f173f..316d968 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/metrics/TabbedActivityLaunchCauseMetrics.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/metrics/TabbedActivityLaunchCauseMetrics.java
@@ -11,7 +11,7 @@ import org.chromium.base.IntentUtils; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.ServiceTabLauncher; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.searchwidget.SearchActivity; import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider; import org.chromium.chrome.browser.tab.Tab; @@ -45,13 +45,13 @@ if (ShortcutSource.BOOKMARK_NAVIGATOR_WIDGET == IntentUtils.safeGetIntExtra( - launchIntent, ShortcutHelper.EXTRA_SOURCE, ShortcutSource.UNKNOWN)) { + launchIntent, WebappConstants.EXTRA_SOURCE, ShortcutSource.UNKNOWN)) { return LaunchCause.HOME_SCREEN_WIDGET; } if (ShortcutSource.ADD_TO_HOMESCREEN_SHORTCUT == IntentUtils.safeGetIntExtra( - launchIntent, ShortcutHelper.EXTRA_SOURCE, ShortcutSource.UNKNOWN)) { + launchIntent, WebappConstants.EXTRA_SOURCE, ShortcutSource.UNKNOWN)) { return LaunchCause.HOME_SCREEN_SHORTCUT; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetProxy.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetProxy.java index 1405a98d..143c217c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetProxy.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetProxy.java
@@ -9,7 +9,7 @@ import android.content.Intent; import android.util.Log; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.components.webapps.ShortcutSource; @@ -26,8 +26,8 @@ } else { Intent view = new Intent(intent); view.setClass(context, ChromeLauncherActivity.class); - view.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.BOOKMARK_NAVIGATOR_WIDGET); - view.putExtra(ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); + view.putExtra(WebappConstants.EXTRA_SOURCE, ShortcutSource.BOOKMARK_NAVIGATOR_WIDGET); + view.putExtra(WebappConstants.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); startActivity(context, view); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java index 4e4ba2f..47c2ea39 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -69,6 +69,7 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; import org.chromium.chrome.browser.query_tiles.QueryTileUtils; +import org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetProvider; import org.chromium.chrome.browser.rlz.RevenueStats; import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider; import org.chromium.chrome.browser.share.clipboard.ClipboardImageFileProvider; @@ -88,6 +89,8 @@ import org.chromium.components.minidump_uploader.CrashFileManager; import org.chromium.components.signin.AccountManagerFacadeImpl; import org.chromium.components.signin.AccountManagerFacadeProvider; +import org.chromium.components.version_info.Channel; +import org.chromium.components.version_info.VersionConstants; import org.chromium.components.viz.common.VizSwitches; import org.chromium.components.viz.common.display.DeJellyUtils; import org.chromium.components.webapps.AppBannerManager; @@ -243,6 +246,12 @@ }); SearchWidgetProvider.initialize(); + + if (VersionConstants.CHANNEL == Channel.CANARY + || VersionConstants.CHANNEL == Channel.DEFAULT) { + QuickActionSearchWidgetProvider.initialize(); + } + HistoryDeletionBridge.getInstance().addObserver(new ContentCaptureHistoryDeletionObserver( () -> PlatformContentCaptureController.getInstance())); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java index 756836b..0c3b786 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
@@ -17,7 +17,7 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.IntentHandler; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; @@ -184,8 +184,8 @@ } if (IntentUtils.safeGetBooleanExtra( - intent, IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, false) - || IntentUtils.safeHasExtra(intent, ShortcutHelper.EXTRA_SOURCE) + intent, IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, false) + || IntentUtils.safeHasExtra(intent, WebappConstants.EXTRA_SOURCE) || isIntentFromChrome(context, intent) || (IntentHandler.getUrlFromIntent(intent) == null)) { Log.i(TAG, "Not handling with Instant Apps (other)");
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java index f3806bb..ff2d91d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java
@@ -15,11 +15,11 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.task.AsyncTask; import org.chromium.chrome.browser.browserservices.intents.WebApkDistributor; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.webapps.WebApkUkmRecorder; import org.chromium.chrome.browser.webapps.WebappDataStorage; -import org.chromium.chrome.browser.webapps.WebappIntentUtils; import org.chromium.chrome.browser.webapps.WebappRegistry; import org.chromium.components.browser_ui.util.ConversionUtils;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/DIR_METADATA b/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/DIR_METADATA new file mode 100644 index 0000000..55d46d6 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/DIR_METADATA
@@ -0,0 +1,5 @@ +monorail { + component: "UI>Browser>Mobile>SearchWidget" +} +team_email: "clank-app-team@google.com" +os: ANDROID \ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/OWNERS new file mode 100644 index 0000000..f4418aa --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/OWNERS
@@ -0,0 +1,3 @@ +ender@google.com +fgorski@chromium.org +wylieb@chromium.org \ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider.java new file mode 100644 index 0000000..e84ec2d --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider.java
@@ -0,0 +1,44 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.quickactionsearchwidget; + +import android.appwidget.AppWidgetProvider; +import android.content.ComponentName; +import android.content.Context; +import android.content.pm.PackageManager; + +import org.chromium.base.ContextUtils; +import org.chromium.chrome.browser.flags.ChromeFeatureList; + +/** + * Widget that provides an entry point for users to quickly perform actions in Chrome. + */ +public class QuickActionSearchWidgetProvider extends AppWidgetProvider { + /** + * This function initializes the QuickActionSearchWidgetProvider component. + * Namely, this function enables the component for users who have the + * QUICK_ACTION_SEARCH_WIDGET flag enabled. + * + * Note that due to b/189087746, the widget cannot be disabled be default, + * as a result, we must enable/disable the widget programmatically here. + * + * This function is called exactly once after native libraries are initialized. + */ + public static void initialize() { + boolean shouldEnableQuickActionSearchWidget = + ChromeFeatureList.isEnabled(ChromeFeatureList.QUICK_ACTION_SEARCH_WIDGET); + + int componentEnabledState = shouldEnableQuickActionSearchWidget + ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED + : PackageManager.COMPONENT_ENABLED_STATE_DISABLED; + + Context context = ContextUtils.getApplicationContext(); + ComponentName componentName = + new ComponentName(context, QuickActionSearchWidgetProvider.class); + + context.getPackageManager().setComponentEnabledSetting( + componentName, componentEnabledState, PackageManager.DONT_KILL_APP); + } +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java index ce5b3ec..5feffbc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java
@@ -9,6 +9,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.Resources; +import android.text.TextUtils; import org.chromium.base.ContextUtils; import org.chromium.base.Log; @@ -69,11 +70,11 @@ * * @param oneTimeCode The one time code from SMS * @param origin The origin from the SMS - * @param remoteOs The OS name where the remote request comes from + * @param clientName The client name where the remote request comes from * @param smsFetcherMessageHandlerAndroid The native handler */ @CalledByNative - private static void showNotification(String oneTimeCode, String origin, String remoteOs, + private static void showNotification(String oneTimeCode, String origin, String clientName, long smsFetcherMessageHandlerAndroid) { sOrigin = origin; sSmsFetcherMessageHandlerAndroid = smsFetcherMessageHandlerAndroid; @@ -89,9 +90,9 @@ .setAction(NOTIFICATION_ACTION_CANCEL), PendingIntent.FLAG_UPDATE_CURRENT); Resources resources = context.getResources(); - String notificationTitle = remoteOs.equals("") + String notificationTitle = TextUtils.isEmpty(clientName) ? resources.getString(R.string.sms_fetcher_notification_title_unknown_device) - : resources.getString(R.string.sms_fetcher_notification_title, remoteOs); + : resources.getString(R.string.sms_fetcher_notification_title, clientName); String notificationText = resources.getString(R.string.sms_fetcher_notification_text, oneTimeCode, origin); SharingNotificationUtil.showNotification(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivityLifecycleUmaTracker.java index 6069561..ab77e79a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivityLifecycleUmaTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivityLifecycleUmaTracker.java
@@ -20,6 +20,7 @@ import org.chromium.base.supplier.Supplier; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; import org.chromium.chrome.browser.browserservices.intents.WebApkExtras; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.chrome.browser.browserservices.ui.splashscreen.SplashController; import org.chromium.chrome.browser.dependency_injection.ActivityScope; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java index 0df92ff..478cb88 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java
@@ -15,6 +15,7 @@ import org.chromium.base.task.AsyncTask; import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.chrome.browser.metrics.WebApkUma; /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProviderFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProviderFactory.java index 3110058..13b92b0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProviderFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProviderFactory.java
@@ -40,8 +40,10 @@ import org.chromium.chrome.browser.browserservices.intents.WebApkExtras.ShortcutItem; import org.chromium.chrome.browser.browserservices.intents.WebApkShareTarget; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.browserservices.intents.WebappExtras; import org.chromium.chrome.browser.browserservices.intents.WebappIcon; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.components.webapk.lib.common.WebApkMetaDataKeys; import org.chromium.components.webapps.ShortcutSource; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -91,10 +93,10 @@ } // Force navigation if the extra is not specified to avoid breaking deep linking for old - // WebAPKs which don't specify the {@link ShortcutHelper#EXTRA_FORCE_NAVIGATION} intent + // WebAPKs which don't specify the {@link WebappConstants#EXTRA_FORCE_NAVIGATION} intent // extra. boolean forceNavigation = IntentUtils.safeGetBooleanExtra( - intent, ShortcutHelper.EXTRA_FORCE_NAVIGATION, true); + intent, WebappConstants.EXTRA_FORCE_NAVIGATION, true); ShareData shareData = null; @@ -261,10 +263,10 @@ int orientation = orientationFromString( IntentUtils.safeGetString(bundle, WebApkMetaDataKeys.ORIENTATION)); long themeColor = WebApkMetaDataUtils.getLongFromMetaData(bundle, - WebApkMetaDataKeys.THEME_COLOR, ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING); + WebApkMetaDataKeys.THEME_COLOR, WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING); long backgroundColor = WebApkMetaDataUtils.getLongFromMetaData(bundle, WebApkMetaDataKeys.BACKGROUND_COLOR, - ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING); + WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING); // Fetch the default background color from the WebAPK's resources. Fetching the default // background color from the WebAPK is important for consistency when: @@ -432,7 +434,7 @@ private static int computeSource(Intent intent, ShareData shareData) { int source = IntentUtils.safeGetIntExtra( - intent, ShortcutHelper.EXTRA_SOURCE, ShortcutSource.UNKNOWN); + intent, WebappConstants.EXTRA_SOURCE, ShortcutSource.UNKNOWN); if (source >= ShortcutSource.COUNT) { return ShortcutSource.UNKNOWN; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java index a9c25863..a96ea1e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java
@@ -19,6 +19,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.app.metrics.LaunchCauseMetrics; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.chrome.browser.customtabs.BaseCustomTabActivity; /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java index 12947b2..e81a142 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.browserservices.intents.BitmapHelper; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.components.webapk.lib.common.WebApkConstants; import org.chromium.components.webapps.ShortcutSource; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -226,9 +227,9 @@ mPreferences.getInt(KEY_DISPLAY_MODE, WebDisplayMode.STANDALONE), mPreferences.getInt(KEY_ORIENTATION, ScreenOrientationLockType.DEFAULT), mPreferences.getLong( - KEY_THEME_COLOR, ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING), + KEY_THEME_COLOR, WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING), mPreferences.getLong( - KEY_BACKGROUND_COLOR, ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING), + KEY_BACKGROUND_COLOR, WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING), mPreferences.getBoolean(KEY_IS_ICON_GENERATED, false), mPreferences.getBoolean(KEY_IS_ICON_ADAPTIVE, false)); } @@ -261,12 +262,12 @@ } // For all other fields, assume that if the version key is present and equal to - // ShortcutHelper.WEBAPP_SHORTCUT_VERSION, then all fields are present and do not need to be - // updated. All fields except for the last used time, scope, and URL are either set or + // WebappConstants.WEBAPP_SHORTCUT_VERSION, then all fields are present and do not need to + // be updated. All fields except for the last used time, scope, and URL are either set or // cleared together. if (mPreferences.getInt(KEY_VERSION, VERSION_INVALID) - != ShortcutHelper.WEBAPP_SHORTCUT_VERSION) { - editor.putInt(KEY_VERSION, ShortcutHelper.WEBAPP_SHORTCUT_VERSION); + != WebappConstants.WEBAPP_SHORTCUT_VERSION) { + editor.putInt(KEY_VERSION, WebappConstants.WEBAPP_SHORTCUT_VERSION); if (info.isForWebApk()) { editor.putString(KEY_WEBAPK_PACKAGE_NAME, info.webApkPackageName());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappInfo.java index 2d30a61c4..6de58685 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappInfo.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappInfo.java
@@ -10,15 +10,16 @@ import androidx.annotation.Nullable; import androidx.browser.trusted.sharing.ShareData; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; import org.chromium.chrome.browser.browserservices.intents.WebApkDistributor; import org.chromium.chrome.browser.browserservices.intents.WebApkExtras; import org.chromium.chrome.browser.browserservices.intents.WebApkExtras.ShortcutItem; import org.chromium.chrome.browser.browserservices.intents.WebApkShareTarget; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.browserservices.intents.WebappExtras; import org.chromium.chrome.browser.browserservices.intents.WebappIcon; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.components.webapps.ShortcutSource; import java.util.List; @@ -100,11 +101,11 @@ /** * Returns the toolbar color if it is valid, and - * ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING otherwise. + * WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING otherwise. */ public long toolbarColor() { return hasValidToolbarColor() ? mProvider.getColorProvider().getToolbarColor() - : ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING; + : WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING; } /** @@ -117,7 +118,7 @@ /** * Background color is actually a 32 bit unsigned integer which encodes a color * in ARGB format. Return value is a long because we also need to encode the - * error state of ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING. + * error state of WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING. */ public long backgroundColor() { return WebappIntentUtils.colorFromIntegerColor(getWebappExtras().backgroundColor);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProviderFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProviderFactory.java index 1a709e1b..4b5d3692 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProviderFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProviderFactory.java
@@ -13,8 +13,10 @@ import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.browserservices.intents.WebappExtras; import org.chromium.chrome.browser.browserservices.intents.WebappIcon; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.components.webapps.ShortcutSource; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.webapk.lib.common.splash.SplashLayout; @@ -27,7 +29,7 @@ private static int sourceFromIntent(Intent intent) { int source = IntentUtils.safeGetIntExtra( - intent, ShortcutHelper.EXTRA_SOURCE, ShortcutSource.UNKNOWN); + intent, WebappConstants.EXTRA_SOURCE, ShortcutSource.UNKNOWN); if (source >= ShortcutSource.COUNT) { source = ShortcutSource.UNKNOWN; } @@ -38,17 +40,17 @@ // The reference to title has been kept for reasons of backward compatibility. For intents // and shortcuts which were created before we utilized the concept of name and shortName, // we set the name and shortName to be the title. - String title = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_TITLE); + String title = IntentUtils.safeGetStringExtra(intent, WebappConstants.EXTRA_TITLE); return title == null ? "" : title; } private static String nameFromIntent(Intent intent) { - String name = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_NAME); + String name = IntentUtils.safeGetStringExtra(intent, WebappConstants.EXTRA_NAME); return name == null ? titleFromIntent(intent) : name; } private static String shortNameFromIntent(Intent intent) { - String shortName = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_SHORT_NAME); + String shortName = IntentUtils.safeGetStringExtra(intent, WebappConstants.EXTRA_SHORT_NAME); return shortName == null ? titleFromIntent(intent) : shortName; } @@ -58,40 +60,40 @@ */ public static BrowserServicesIntentDataProvider create(Intent intent) { String id = WebappIntentUtils.getIdForHomescreenShortcut(intent); - String url = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_URL); + String url = IntentUtils.safeGetStringExtra(intent, WebappConstants.EXTRA_URL); if (id == null || url == null) { Log.e(TAG, "Incomplete data provided: " + id + ", " + url); return null; } - long themeColor = IntentUtils.safeGetLongExtra(intent, ShortcutHelper.EXTRA_THEME_COLOR, - ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING); + long themeColor = IntentUtils.safeGetLongExtra(intent, WebappConstants.EXTRA_THEME_COLOR, + WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING); boolean hasValidToolbarColor = WebappIntentUtils.isLongColorValid(themeColor); int toolbarColor = hasValidToolbarColor ? (int) themeColor : WebappIntentDataProvider.getDefaultToolbarColor(); - String icon = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_ICON); + String icon = IntentUtils.safeGetStringExtra(intent, WebappConstants.EXTRA_ICON); - String scope = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_SCOPE); + String scope = IntentUtils.safeGetStringExtra(intent, WebappConstants.EXTRA_SCOPE); if (TextUtils.isEmpty(scope)) { scope = ShortcutHelper.getScopeFromUrl(url); } @WebDisplayMode int displayMode = IntentUtils.safeGetIntExtra( - intent, ShortcutHelper.EXTRA_DISPLAY_MODE, WebDisplayMode.STANDALONE); + intent, WebappConstants.EXTRA_DISPLAY_MODE, WebDisplayMode.STANDALONE); int orientation = IntentUtils.safeGetIntExtra( - intent, ShortcutHelper.EXTRA_ORIENTATION, ScreenOrientationLockType.DEFAULT); + intent, WebappConstants.EXTRA_ORIENTATION, ScreenOrientationLockType.DEFAULT); int source = sourceFromIntent(intent); Integer backgroundColor = WebappIntentUtils.colorFromLongColor( - IntentUtils.safeGetLongExtra(intent, ShortcutHelper.EXTRA_BACKGROUND_COLOR, - ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING)); + IntentUtils.safeGetLongExtra(intent, WebappConstants.EXTRA_BACKGROUND_COLOR, + WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING)); boolean isIconGenerated = IntentUtils.safeGetBooleanExtra( - intent, ShortcutHelper.EXTRA_IS_ICON_GENERATED, false); + intent, WebappConstants.EXTRA_IS_ICON_GENERATED, false); boolean isIconAdaptive = IntentUtils.safeGetBooleanExtra( - intent, ShortcutHelper.EXTRA_IS_ICON_ADAPTIVE, false); + intent, WebappConstants.EXTRA_IS_ICON_ADAPTIVE, false); boolean forceNavigation = IntentUtils.safeGetBooleanExtra( - intent, ShortcutHelper.EXTRA_FORCE_NAVIGATION, false); + intent, WebappConstants.EXTRA_FORCE_NAVIGATION, false); String name = nameFromIntent(intent); String shortName = shortNameFromIntent(intent);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java index 235afb57..b6f3d36 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
@@ -30,9 +30,10 @@ import org.chromium.base.Log; import org.chromium.chrome.R; import org.chromium.chrome.browser.IntentHandler; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.WarmupManager; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.chrome.browser.customtabs.BaseCustomTabActivity; import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.firstrun.FirstRunFlowSequencer; @@ -226,7 +227,7 @@ return true; } - String webappMac = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_MAC); + String webappMac = IntentUtils.safeGetStringExtra(intent, WebappConstants.EXTRA_MAC); return (isValidMacForUrl(launchData.url, webappMac) || wasIntentFromChrome(intent)); } @@ -270,17 +271,17 @@ /** Extracts start URL from source intent and launches URL in Chrome tab. */ private static void launchInTab(Activity launchingActivity, Intent sourceIntent) { Context appContext = ContextUtils.getApplicationContext(); - String webappUrl = IntentUtils.safeGetStringExtra(sourceIntent, ShortcutHelper.EXTRA_URL); + String webappUrl = IntentUtils.safeGetStringExtra(sourceIntent, WebappConstants.EXTRA_URL); int webappSource = IntentUtils.safeGetIntExtra( - sourceIntent, ShortcutHelper.EXTRA_SOURCE, ShortcutSource.UNKNOWN); + sourceIntent, WebappConstants.EXTRA_SOURCE, ShortcutSource.UNKNOWN); if (TextUtils.isEmpty(webappUrl)) return; Intent launchIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(webappUrl)); launchIntent.setClassName( appContext.getPackageName(), ChromeLauncherActivity.class.getName()); - launchIntent.putExtra(ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); - launchIntent.putExtra(ShortcutHelper.EXTRA_SOURCE, webappSource); + launchIntent.putExtra(WebappConstants.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); + launchIntent.putExtra(WebappConstants.EXTRA_SOURCE, webappSource); launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NEW_DOCUMENT); Log.e(TAG, "Shortcut (%s) opened in Chrome.", webappUrl);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTypeTestUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTypeTestUtils.java index 878c5a8..c619600 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTypeTestUtils.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTypeTestUtils.java
@@ -7,9 +7,9 @@ import android.content.Intent; import android.support.test.InstrumentationRegistry; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.TrustedWebActivityTestUtil; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.webapps.WebApkActivityTestRule; import org.chromium.chrome.browser.webapps.WebappActivityTestRule; @@ -58,7 +58,7 @@ private static void launchWebapp(WebappActivityTestRule activityTestRule, String url) { Intent launchIntent = activityTestRule.createIntent(); - launchIntent.putExtra(ShortcutHelper.EXTRA_URL, url); + launchIntent.putExtra(WebappConstants.EXTRA_URL, url); activityTestRule.startWebappActivity(launchIntent); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTaskDescriptionHelperTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTaskDescriptionHelperTest.java index ae4ecbe..05901e9 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTaskDescriptionHelperTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTaskDescriptionHelperTest.java
@@ -26,8 +26,8 @@ import org.chromium.base.test.util.MinAndroidSdkLevel; import org.chromium.base.test.util.Restriction; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.webapps.WebappActivity; @@ -81,7 +81,7 @@ final int intentThemeColor = Color.GREEN; Intent launchIntent = mWebappActivityTestRule.createIntent(); - launchIntent.putExtra(ShortcutHelper.EXTRA_THEME_COLOR, (long) intentThemeColor); + launchIntent.putExtra(WebappConstants.EXTRA_THEME_COLOR, (long) intentThemeColor); WebappActivity webappActivity = launchWebappOnPageWithRedThemeColor(launchIntent); assertEquals(Color.RED, fetchTaskDescriptionColor(webappActivity)); @@ -100,7 +100,7 @@ mTestServer.getURL("/chrome/test/data/android/simple.html"); Intent launchIntent = mWebappActivityTestRule.createIntent(); - launchIntent.putExtra(ShortcutHelper.EXTRA_THEME_COLOR, (long) intentThemeColor); + launchIntent.putExtra(WebappConstants.EXTRA_THEME_COLOR, (long) intentThemeColor); WebappActivity webappActivity = launchWebappOnPageWithRedThemeColor(launchIntent); assertEquals(Color.RED, fetchTaskDescriptionColor(webappActivity)); @@ -146,7 +146,7 @@ mTestServer.getURL("/chrome/test/data/android/simple.html"); Intent launchIntent = mWebappActivityTestRule.createIntent(); - launchIntent.putExtra(ShortcutHelper.EXTRA_THEME_COLOR, (long) intentThemeColor); + launchIntent.putExtra(WebappConstants.EXTRA_THEME_COLOR, (long) intentThemeColor); WebappActivity webappActivity = launchWebappOnPageWithRedThemeColor(launchIntent); assertEquals(Color.RED, fetchTaskDescriptionColor(webappActivity)); @@ -167,8 +167,8 @@ final String intentShortName = "Intent Short Name"; Intent launchIntent = mWebappActivityTestRule.createIntent(); - launchIntent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, intentShortName); - launchIntent.removeExtra(ShortcutHelper.EXTRA_NAME); + launchIntent.putExtra(WebappConstants.EXTRA_SHORT_NAME, intentShortName); + launchIntent.removeExtra(WebappConstants.EXTRA_NAME); WebappActivity webappActivity = launchWebappAndWaitTillPageLoaded(launchIntent, url); waitForTitle(webappActivity.getActivityTab(), pageTitle); @@ -186,8 +186,8 @@ final String pageTitle = "Activity test page"; Intent launchIntent = mWebappActivityTestRule.createIntent(); - launchIntent.removeExtra(ShortcutHelper.EXTRA_NAME); - launchIntent.removeExtra(ShortcutHelper.EXTRA_SHORT_NAME); + launchIntent.removeExtra(WebappConstants.EXTRA_NAME); + launchIntent.removeExtra(WebappConstants.EXTRA_SHORT_NAME); WebappActivity webappActivity = launchWebappAndWaitTillPageLoaded(launchIntent, url); waitForTitle(webappActivity.getActivityTab(), pageTitle); @@ -195,7 +195,7 @@ } private WebappActivity launchWebappAndWaitTillPageLoaded(Intent launchIntent, String url) { - launchIntent.putExtra(ShortcutHelper.EXTRA_URL, url); + launchIntent.putExtra(WebappConstants.EXTRA_URL, url); mWebappActivityTestRule.startWebappActivity(launchIntent); return mWebappActivityTestRule.getActivity(); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/WebappDisplayCutoutTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/WebappDisplayCutoutTestRule.java index 75dc1d8..68059708 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/WebappDisplayCutoutTestRule.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/WebappDisplayCutoutTestRule.java
@@ -16,8 +16,8 @@ import org.chromium.base.test.util.Criteria; import org.chromium.base.test.util.CriteriaHelper; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.webapps.WebappActivity; import java.lang.annotation.ElementType; @@ -72,11 +72,11 @@ Intent intent = new Intent(InstrumentationRegistry.getTargetContext(), WebappActivity.class); intent.setData(Uri.parse(WebappActivity.WEBAPP_SCHEME + "://" + WEBAPP_ID)); - intent.putExtra(ShortcutHelper.EXTRA_ID, WEBAPP_ID); - intent.putExtra(ShortcutHelper.EXTRA_URL, getTestURL()); - intent.putExtra(ShortcutHelper.EXTRA_NAME, WEBAPP_NAME); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, WEBAPP_SHORT_NAME); - intent.putExtra(ShortcutHelper.EXTRA_DISPLAY_MODE, displayMode); + intent.putExtra(WebappConstants.EXTRA_ID, WEBAPP_ID); + intent.putExtra(WebappConstants.EXTRA_URL, getTestURL()); + intent.putExtra(WebappConstants.EXTRA_NAME, WEBAPP_NAME); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, WEBAPP_SHORT_NAME); + intent.putExtra(WebappConstants.EXTRA_DISPLAY_MODE, displayMode); launchActivity(intent);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java index 4c372fbd..66c2df0 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java
@@ -26,7 +26,7 @@ import org.chromium.base.IntentUtils; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.chrome.browser.IntentHandler; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; @@ -112,7 +112,7 @@ @SmallTest public void testInstantAppsDisabled_launchFromShortcut() { Intent i = createViewIntent(); - i.putExtra(ShortcutHelper.EXTRA_SOURCE, 1); + i.putExtra(WebappConstants.EXTRA_SOURCE, 1); Assert.assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenCurrentPageVerifierTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenCurrentPageVerifierTest.java index 0a59ae1..3a3abb95 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenCurrentPageVerifierTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenCurrentPageVerifierTest.java
@@ -20,7 +20,7 @@ import org.chromium.base.CommandLine; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.browserservices.ui.controller.CurrentPageVerifier.VerificationStatus; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.test.MockCertVerifierRuleAndroid; @@ -54,7 +54,7 @@ private void launchWebapp(String url) { Intent launchIntent = mActivityTestRule.createIntent(); - launchIntent.putExtra(ShortcutHelper.EXTRA_URL, url); + launchIntent.putExtra(WebappConstants.EXTRA_URL, url); mActivityTestRule.startWebappActivity(launchIntent); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenTest.java index ea848e8..e4d0103 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenTest.java
@@ -33,6 +33,7 @@ import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.banners.AppMenuVerbiage; import org.chromium.chrome.browser.browserservices.intents.BitmapHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModel; @@ -204,7 +205,7 @@ Assert.assertEquals(WEBAPP_TITLE, mShortcutHelperDelegate.mRequestedShortcutTitle); Intent launchIntent = mShortcutHelperDelegate.mRequestedShortcutIntent; - Assert.assertEquals(WEBAPP_HTML, launchIntent.getStringExtra(ShortcutHelper.EXTRA_URL)); + Assert.assertEquals(WEBAPP_HTML, launchIntent.getStringExtra(WebappConstants.EXTRA_URL)); Assert.assertEquals(WEBAPP_ACTION_NAME, launchIntent.getAction()); Assert.assertEquals(mActivity.getPackageName(), launchIntent.getPackage()); @@ -216,7 +217,7 @@ Intent newLaunchIntent = mShortcutHelperDelegate.mRequestedShortcutIntent; Assert.assertEquals( - SECOND_WEBAPP_HTML, newLaunchIntent.getStringExtra(ShortcutHelper.EXTRA_URL)); + SECOND_WEBAPP_HTML, newLaunchIntent.getStringExtra(WebappConstants.EXTRA_URL)); Assert.assertEquals(WEBAPP_ACTION_NAME, newLaunchIntent.getAction()); Assert.assertEquals(mActivity.getPackageName(), newLaunchIntent.getPackage());
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTestRule.java index d58a6a2..0db34f6 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTestRule.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTestRule.java
@@ -13,8 +13,8 @@ import org.chromium.base.test.util.Criteria; import org.chromium.base.test.util.CriteriaHelper; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.test.ChromeActivityTestRule; import org.chromium.chrome.test.util.ChromeTabUtils; import org.chromium.webapk.lib.common.WebApkConstants; @@ -64,7 +64,7 @@ Intent intent = new Intent(InstrumentationRegistry.getTargetContext(), WebappActivity.class); intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, "org.chromium.webapk.test"); - intent.putExtra(ShortcutHelper.EXTRA_URL, startUrl); + intent.putExtra(WebappConstants.EXTRA_URL, startUrl); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); return startWebApkActivity(intent, startUrl); @@ -90,8 +90,8 @@ Intent intent = new Intent(InstrumentationRegistry.getTargetContext(), WebappActivity.class); intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, webApkInfo.webApkPackageName()); - intent.putExtra(ShortcutHelper.EXTRA_ID, webApkInfo.id()); - intent.putExtra(ShortcutHelper.EXTRA_URL, webApkInfo.url()); + intent.putExtra(WebappConstants.EXTRA_ID, webApkInfo.id()); + intent.putExtra(WebappConstants.EXTRA_URL, webApkInfo.url()); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NEW_DOCUMENT); return intent; }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappActionsNotificationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappActionsNotificationTest.java index 7e0d7eaf..f5ef9e3d5 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappActionsNotificationTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappActionsNotificationTest.java
@@ -31,7 +31,7 @@ import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.MinAndroidSdkLevel; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.notifications.NotificationConstants; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; @@ -53,7 +53,7 @@ @Before public void startWebapp() { mActivityTestRule.startWebappActivity(mActivityTestRule.createIntent().putExtra( - ShortcutHelper.EXTRA_URL, mActivityTestRule.getTestServer().getURL(WEB_APP_PATH))); + WebappConstants.EXTRA_URL, mActivityTestRule.getTestServer().getURL(WEB_APP_PATH))); } @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappActivityTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappActivityTestRule.java index b69fc117..5c1dcfc 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappActivityTestRule.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappActivityTestRule.java
@@ -23,8 +23,8 @@ import org.chromium.base.test.util.CriteriaHelper; import org.chromium.base.test.util.UrlUtils; import org.chromium.cc.input.BrowserControlsState; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.browserservices.ui.splashscreen.SplashController; import org.chromium.chrome.browser.customtabs.CustomTabsTestUtils; import org.chromium.chrome.browser.tab.TabBrowserControlsConstraintsHelper; @@ -92,10 +92,10 @@ new Intent(InstrumentationRegistry.getTargetContext(), WebappActivity.class); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse(WebappActivity.WEBAPP_SCHEME + "://" + WEBAPP_ID)); - intent.putExtra(ShortcutHelper.EXTRA_ID, WEBAPP_ID); - intent.putExtra(ShortcutHelper.EXTRA_URL, "about:blank"); - intent.putExtra(ShortcutHelper.EXTRA_NAME, WEBAPP_NAME); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, WEBAPP_SHORT_NAME); + intent.putExtra(WebappConstants.EXTRA_ID, WEBAPP_ID); + intent.putExtra(WebappConstants.EXTRA_URL, "about:blank"); + intent.putExtra(WebappConstants.EXTRA_NAME, WEBAPP_NAME); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, WEBAPP_SHORT_NAME); return intent; } @@ -153,7 +153,7 @@ * Starts up the WebappActivity with a specific Intent and sets up the test observer. */ public final void startWebappActivity(Intent intent) { - String startUrl = intent.getStringExtra(ShortcutHelper.EXTRA_URL); + String startUrl = intent.getStringExtra(WebappConstants.EXTRA_URL); launchActivity(intent); @@ -216,7 +216,7 @@ public final ViewGroup startWebappActivityAndWaitForSplashScreen(Intent intent) { // Reset the url to one that takes more time to load. // This is to make sure splash screen won't disappear during test. - intent.putExtra(ShortcutHelper.EXTRA_URL, getTestServer().getURL("/slow?2")); + intent.putExtra(WebappConstants.EXTRA_URL, getTestServer().getURL("/slow?2")); launchActivity(intent); InstrumentationRegistry.getInstrumentation().waitForIdleSync(); CriteriaHelper.pollInstrumentationThread(() -> {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappDisplayModeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappDisplayModeTest.java index 507d892..ac6a5a2 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappDisplayModeTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappDisplayModeTest.java
@@ -22,8 +22,8 @@ import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Restriction; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.omnibox.UrlBar; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; @@ -126,9 +126,9 @@ mActivityTestRule.getTestServer(), action); mActivityTestRule.startWebappActivity( mActivityTestRule.createIntent() - .putExtra(ShortcutHelper.EXTRA_URL, url) - .putExtra(ShortcutHelper.EXTRA_DISPLAY_MODE, displayMode) - .putExtra(ShortcutHelper.EXTRA_THEME_COLOR, (long) Color.CYAN)); + .putExtra(WebappConstants.EXTRA_URL, url) + .putExtra(WebappConstants.EXTRA_DISPLAY_MODE, displayMode) + .putExtra(WebappConstants.EXTRA_THEME_COLOR, (long) Color.CYAN)); return mActivityTestRule.getActivity(); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java index bac09182..1a0ce2b 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java
@@ -31,6 +31,7 @@ import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; @@ -80,11 +81,11 @@ // Needed for security reasons. If the MAC is excluded, the URL of the webapp is opened // in a browser window, instead. String mac = ShortcutHelper.getEncodedMac(url); - intent.putExtra(ShortcutHelper.EXTRA_MAC, mac); + intent.putExtra(WebappConstants.EXTRA_MAC, mac); } - intent.putExtra(ShortcutHelper.EXTRA_ICON, icon); - intent.putExtra(ShortcutHelper.EXTRA_NAME, title); + intent.putExtra(WebappConstants.EXTRA_ICON, icon); + intent.putExtra(WebappConstants.EXTRA_NAME, title); return intent; }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java index b4d58ac..a7db5e5 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java
@@ -42,9 +42,9 @@ import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeTabbedActivity; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.firstrun.FirstRunStatus; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.tab.Tab; @@ -126,7 +126,7 @@ public void testRegularLinkOffOriginThemeColor() throws Exception { WebappActivity activity = runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent().putExtra( - ShortcutHelper.EXTRA_THEME_COLOR, (long) Color.CYAN)); + WebappConstants.EXTRA_THEME_COLOR, (long) Color.CYAN)); assertEquals( BrowserControlsState.HIDDEN, WebappActivityTestRule.getToolbarShowState(activity)); @@ -148,12 +148,13 @@ @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE) public void testRegularLinkOffOriginTwa() throws Exception { Intent launchIntent = mActivityTestRule.createIntent().putExtra( - ShortcutHelper.EXTRA_THEME_COLOR, (long) Color.CYAN); + WebappConstants.EXTRA_THEME_COLOR, (long) Color.CYAN); mActivityTestRule.addTwaExtrasToIntent(launchIntent); String url = WebappTestPage.getServiceWorkerUrl(mActivityTestRule.getTestServer()); CommandLine.getInstance().appendSwitchWithValue( ChromeSwitches.DISABLE_DIGITAL_ASSET_LINK_VERIFICATION, url); - mActivityTestRule.startWebappActivity(launchIntent.putExtra(ShortcutHelper.EXTRA_URL, url)); + mActivityTestRule.startWebappActivity( + launchIntent.putExtra(WebappConstants.EXTRA_URL, url)); WebappActivity activity = mActivityTestRule.getActivity(); assertEquals( BrowserControlsState.HIDDEN, WebappActivityTestRule.getToolbarShowState(activity)); @@ -175,7 +176,7 @@ @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE) public void testFormSubmitOffOrigin() throws Exception { Intent launchIntent = mActivityTestRule.createIntent().putExtra( - ShortcutHelper.EXTRA_THEME_COLOR, (long) Color.CYAN); + WebappConstants.EXTRA_THEME_COLOR, (long) Color.CYAN); mActivityTestRule.addTwaExtrasToIntent(launchIntent); WebappActivity activity = runWebappActivityAndWaitForIdleWithUrl(launchIntent, mActivityTestRule.getTestServer().getURL("/chrome/test/data/android/form.html")); @@ -282,7 +283,7 @@ public void testOpenInChromeFromCustomMenuTabbedChrome() { WebappActivity activity = runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent().putExtra( - ShortcutHelper.EXTRA_DISPLAY_MODE, WebDisplayMode.MINIMAL_UI)); + WebappConstants.EXTRA_DISPLAY_MODE, WebDisplayMode.MINIMAL_UI)); TestThreadUtils.runOnUiThreadBlocking(() -> { activity.getComponent().resolveNavigationController().openCurrentUrlInBrowser(true); @@ -303,8 +304,8 @@ public void testCanNavigateAfterReparentingToTabbedChrome() throws Exception { runWebappActivityAndWaitForIdle( mActivityTestRule.createIntent() - .putExtra(ShortcutHelper.EXTRA_DISPLAY_MODE, WebDisplayMode.MINIMAL_UI) - .putExtra(ShortcutHelper.EXTRA_THEME_COLOR, (long) Color.CYAN)); + .putExtra(WebappConstants.EXTRA_DISPLAY_MODE, WebDisplayMode.MINIMAL_UI) + .putExtra(WebappConstants.EXTRA_THEME_COLOR, (long) Color.CYAN)); PostTask.postTask(UiThreadTaskTraits.DEFAULT, () -> { mActivityTestRule.getActivity() @@ -400,7 +401,7 @@ } private WebappActivity runWebappActivityAndWaitForIdleWithUrl(Intent intent, String url) { - mActivityTestRule.startWebappActivity(intent.putExtra(ShortcutHelper.EXTRA_URL, url)); + mActivityTestRule.startWebappActivity(intent.putExtra(WebappConstants.EXTRA_URL, url)); return mActivityTestRule.getActivity(); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenBackgroundColorTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenBackgroundColorTest.java index 28fe217..1f6f28fa3 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenBackgroundColorTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenBackgroundColorTest.java
@@ -17,7 +17,7 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; @@ -38,7 +38,7 @@ mActivityTestRule .createIntent() // This is setting Color.GREEN with 50% opacity. - .putExtra(ShortcutHelper.EXTRA_BACKGROUND_COLOR, 0x8000FF00L)); + .putExtra(WebappConstants.EXTRA_BACKGROUND_COLOR, 0x8000FF00L)); ColorDrawable background = (ColorDrawable) splashScreen.getBackground();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenHomescreenIconTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenHomescreenIconTest.java index 78b7c53..78b898b 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenHomescreenIconTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenHomescreenIconTest.java
@@ -19,7 +19,7 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; @@ -38,7 +38,7 @@ public void setUp() { mSplashScreen = mActivityTestRule.startWebappActivityAndWaitForSplashScreen( mActivityTestRule.createIntent().putExtra( - ShortcutHelper.EXTRA_ICON, WebappActivityTestRule.TEST_ICON)); + WebappConstants.EXTRA_ICON, WebappActivityTestRule.TEST_ICON)); } @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenIconTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenIconTest.java index 355d016..d7b8b61 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenIconTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenIconTest.java
@@ -19,7 +19,7 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; @@ -41,7 +41,7 @@ .updateSplashScreenImage(WebappActivityTestRule.TEST_SPLASH_ICON); mSplashScreen = mActivityTestRule.startWebappActivityAndWaitForSplashScreen( mActivityTestRule.createIntent().putExtra( - ShortcutHelper.EXTRA_ICON, WebappActivityTestRule.TEST_ICON)); + WebappConstants.EXTRA_ICON, WebappActivityTestRule.TEST_ICON)); } @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenTest.java index 75b48c694..e28ad53 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenTest.java
@@ -29,8 +29,8 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Restriction; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.intents.BitmapHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabTestUtils; @@ -219,7 +219,7 @@ ViewGroup splashScreen = mActivityTestRule.startWebappActivityAndWaitForSplashScreen( mActivityTestRule.createIntent().putExtra( - ShortcutHelper.EXTRA_IS_ICON_GENERATED, true)); + WebappConstants.EXTRA_IS_ICON_GENERATED, true)); Assert.assertTrue(mActivityTestRule.isSplashScreenVisible()); // There's no icon displayed.
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java index 6be440e..d2e72ed 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java
@@ -18,7 +18,7 @@ import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.MinAndroidSdkLevel; import org.chromium.base.test.util.Restriction; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.browser.ThemeTestUtils; @@ -46,7 +46,7 @@ // This is Color.Magenta with 50% opacity. final int intentThemeColor = Color.argb(0x80, 0xFF, 0, 0xFF); Intent intent = mActivityTestRule.createIntent().putExtra( - ShortcutHelper.EXTRA_THEME_COLOR, (long) intentThemeColor); + WebappConstants.EXTRA_THEME_COLOR, (long) intentThemeColor); mActivityTestRule.startWebappActivity(intent); final int expectedThemeColor = Color.MAGENTA; @@ -66,8 +66,8 @@ "/chrome/test/data/android/theme_color_test.html"); Intent intent = mActivityTestRule.createIntent() - .putExtra(ShortcutHelper.EXTRA_URL, pageWithThemeColorUrl) - .putExtra(ShortcutHelper.EXTRA_THEME_COLOR, (long) intentThemeColor); + .putExtra(WebappConstants.EXTRA_URL, pageWithThemeColorUrl) + .putExtra(WebappConstants.EXTRA_THEME_COLOR, (long) intentThemeColor); mActivityTestRule.startWebappActivity(intent); ThemeTestUtils.waitForThemeColor(mActivityTestRule.getActivity(), pageThemeColor);
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/ui/controller/webapps/WebappDisclosureControllerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/ui/controller/webapps/WebappDisclosureControllerTest.java index 7cd81e1..a42a8d6 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/ui/controller/webapps/WebappDisclosureControllerTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/ui/controller/webapps/WebappDisclosureControllerTest.java
@@ -33,6 +33,7 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.Feature; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.chrome.browser.browserservices.ui.TrustedWebActivityModel; import org.chromium.chrome.browser.browserservices.ui.controller.CurrentPageVerifier; import org.chromium.chrome.browser.browserservices.ui.controller.CurrentPageVerifier.VerificationState; @@ -40,7 +41,6 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.webapps.WebappDataStorage; import org.chromium.chrome.browser.webapps.WebappDeferredStartupWithStorageHandler; -import org.chromium.chrome.browser.webapps.WebappIntentUtils; import org.chromium.chrome.browser.webapps.WebappRegistry; import org.chromium.chrome.test.util.browser.webapps.WebApkIntentDataProviderBuilder; import org.chromium.components.webapk.lib.common.WebApkConstants;
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java index a0d1ced..8bb0b164 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java
@@ -32,6 +32,7 @@ import org.chromium.chrome.browser.browserservices.intents.WebApkExtras; import org.chromium.chrome.browser.browserservices.intents.WebApkShareTarget; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.components.webapk.lib.common.WebApkMetaDataKeys; import org.chromium.components.webapps.ShortcutSource; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -208,9 +209,9 @@ Intent intent = new Intent(); intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, WEBAPK_PACKAGE_NAME); - intent.putExtra(ShortcutHelper.EXTRA_FORCE_NAVIGATION, true); - intent.putExtra(ShortcutHelper.EXTRA_URL, START_URL); - intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.NOTIFICATION); + intent.putExtra(WebappConstants.EXTRA_FORCE_NAVIGATION, true); + intent.putExtra(WebappConstants.EXTRA_URL, START_URL); + intent.putExtra(WebappConstants.EXTRA_SOURCE, ShortcutSource.NOTIFICATION); intent.putExtra(WebApkConstants.EXTRA_SPLASH_PROVIDED_BY_WEBAPK, true); WebappInfo info = createWebApkInfo(intent); @@ -399,7 +400,7 @@ /** * Prior to SHELL_APK_VERSION 2, WebAPKs did not specify - * {@link ShortcutHelper#EXTRA_FORCE_NAVIGATION} in the intent. Test that + * {@link WebappConstants#EXTRA_FORCE_NAVIGATION} in the intent. Test that * {@link WebApkInfo#shouldForceNavigation()} defaults to true when the intent extra is not * specified. */ @@ -429,7 +430,7 @@ WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */); Intent intent = WebApkTestHelper.createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL); - intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.COUNT + 1); + intent.putExtra(WebappConstants.EXTRA_SOURCE, ShortcutSource.COUNT + 1); WebappInfo info = createWebApkInfo(intent); Assert.assertEquals(ShortcutSource.UNKNOWN, info.source()); @@ -499,7 +500,7 @@ WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */); Intent intent = WebApkTestHelper.createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL); - intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.EXTERNAL_INTENT); + intent.putExtra(WebappConstants.EXTRA_SOURCE, ShortcutSource.EXTERNAL_INTENT); intent.putExtra( Browser.EXTRA_APPLICATION_ID, RuntimeEnvironment.application.getPackageName()); @@ -519,7 +520,7 @@ WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */); Intent intent = WebApkTestHelper.createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL); - intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.EXTERNAL_INTENT); + intent.putExtra(WebappConstants.EXTRA_SOURCE, ShortcutSource.EXTERNAL_INTENT); intent.putExtra(Browser.EXTRA_APPLICATION_ID, "com.google.android.talk"); WebappInfo info = createWebApkInfo(intent); @@ -548,7 +549,7 @@ ArrayList<Uri> uris = new ArrayList<>(); uris.add(Uri.parse("mock-uri-3")); intent.putExtra(Intent.EXTRA_STREAM, uris); - intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.WEBAPK_SHARE_TARGET); + intent.putExtra(WebappConstants.EXTRA_SOURCE, ShortcutSource.WEBAPK_SHARE_TARGET); WebappInfo info = createWebApkInfo(intent); Assert.assertEquals(ShortcutSource.WEBAPK_SHARE_TARGET_FILE, info.source()); @@ -575,7 +576,7 @@ UNBOUND_WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */); intent = new Intent(); intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, UNBOUND_WEBAPK_PACKAGE_NAME); - intent.putExtra(ShortcutHelper.EXTRA_URL, START_URL); + intent.putExtra(WebappConstants.EXTRA_URL, START_URL); info = createWebApkInfo(intent); Assert.assertEquals(WebApkDistributor.OTHER, info.distributor()); } @@ -689,12 +690,12 @@ Bundle bundle = new Bundle(); bundle.putString(WebApkMetaDataKeys.START_URL, START_URL); bundle.putString(WebApkMetaDataKeys.BACKGROUND_COLOR, - ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING + "L"); + WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING + "L"); WebApkTestHelper.registerWebApkWithMetaData(WEBAPK_PACKAGE_NAME, bundle, null); Intent intent = new Intent(); intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, WEBAPK_PACKAGE_NAME); - intent.putExtra(ShortcutHelper.EXTRA_URL, START_URL); + intent.putExtra(WebappConstants.EXTRA_URL, START_URL); WebappInfo info = createWebApkInfo(intent); Assert.assertEquals(SplashLayout.getDefaultBackgroundColor(RuntimeEnvironment.application), @@ -713,7 +714,7 @@ Bundle bundle = new Bundle(); bundle.putString(WebApkMetaDataKeys.START_URL, START_URL); bundle.putString(WebApkMetaDataKeys.BACKGROUND_COLOR, - ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING + "L"); + WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING + "L"); bundle.putInt( WebApkMetaDataKeys.DEFAULT_BACKGROUND_COLOR_ID, defaultBackgroundColorResourceId); WebApkTestHelper.registerWebApkWithMetaData(WEBAPK_PACKAGE_NAME, bundle, null); @@ -725,7 +726,7 @@ Intent intent = new Intent(); intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, WEBAPK_PACKAGE_NAME); - intent.putExtra(ShortcutHelper.EXTRA_URL, START_URL); + intent.putExtra(WebappConstants.EXTRA_URL, START_URL); WebappInfo info = createWebApkInfo(intent); Assert.assertEquals(
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java index 28ded53..694c749 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java
@@ -48,7 +48,9 @@ import org.chromium.chrome.browser.browserservices.intents.WebApkExtras; import org.chromium.chrome.browser.browserservices.intents.WebApkShareTarget; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.browserservices.intents.WebappIcon; +import org.chromium.chrome.browser.browserservices.intents.WebappIntentUtils; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.embedder_support.util.ShadowUrlUtilities; @@ -424,7 +426,7 @@ // Use the intent version of {@link WebApkInfo#create()} in order to test default values // set by the intent version of {@link WebApkInfo#create()}. Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_URL, ""); + intent.putExtra(WebappConstants.EXTRA_URL, ""); intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, packageName); BrowserServicesIntentDataProvider intentDataProvider = WebApkIntentDataProviderFactory.create(intent); @@ -1108,11 +1110,11 @@ assertNotEquals(oldDefaultBackgroundColor, splashLayoutDefaultBackgroundColor); ManifestData androidManifestData = defaultManifestData(); - androidManifestData.backgroundColor = ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING; + androidManifestData.backgroundColor = WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING; androidManifestData.defaultBackgroundColor = oldDefaultBackgroundColor; ManifestData fetchedManifestData = defaultManifestData(); - fetchedManifestData.backgroundColor = ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING; + fetchedManifestData.backgroundColor = WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING; fetchedManifestData.defaultBackgroundColor = splashLayoutDefaultBackgroundColor; assertFalse(checkUpdateNeededForFetchedManifest(androidManifestData, fetchedManifestData));
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java index d707b3d..57038993 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java
@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.browserservices.intents.BitmapHelper; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.test.util.browser.webapps.WebApkIntentDataProviderBuilder; import java.util.concurrent.TimeUnit; @@ -198,7 +199,7 @@ final boolean isIconGenerated = false; final boolean isIconAdaptive = false; Intent shortcutIntent = ShortcutHelper.createWebappShortcutIntent(id, url, scope, name, - shortName, encodedIcon, ShortcutHelper.WEBAPP_SHORTCUT_VERSION, displayMode, + shortName, encodedIcon, WebappConstants.WEBAPP_SHORTCUT_VERSION, displayMode, orientation, themeColor, backgroundColor, isIconGenerated, isIconAdaptive); BrowserServicesIntentDataProvider intentDataProvider = WebappIntentDataProviderFactory.create(shortcutIntent); @@ -213,7 +214,7 @@ assertEquals(shortName, mSharedPreferences.getString(WebappDataStorage.KEY_SHORT_NAME, null)); assertEquals(encodedIcon, mSharedPreferences.getString(WebappDataStorage.KEY_ICON, null)); - assertEquals(ShortcutHelper.WEBAPP_SHORTCUT_VERSION, + assertEquals(WebappConstants.WEBAPP_SHORTCUT_VERSION, mSharedPreferences.getInt(WebappDataStorage.KEY_VERSION, 0)); assertEquals(orientation, mSharedPreferences.getInt(WebappDataStorage.KEY_ORIENTATION, 0)); assertEquals(themeColor, mSharedPreferences.getLong(WebappDataStorage.KEY_THEME_COLOR, 0)); @@ -262,7 +263,7 @@ assertEquals(shortName, mSharedPreferences.getString(WebappDataStorage.KEY_SHORT_NAME, null)); assertEquals(encodedIcon, mSharedPreferences.getString(WebappDataStorage.KEY_ICON, null)); - assertEquals(ShortcutHelper.WEBAPP_SHORTCUT_VERSION, + assertEquals(WebappConstants.WEBAPP_SHORTCUT_VERSION, mSharedPreferences.getInt(WebappDataStorage.KEY_VERSION, 0)); assertEquals(orientation, mSharedPreferences.getInt(WebappDataStorage.KEY_ORIENTATION, 0)); assertEquals(themeColor, mSharedPreferences.getLong(WebappDataStorage.KEY_THEME_COLOR, 0));
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java index 46238df..76fd594 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java
@@ -15,6 +15,7 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.test.util.browser.webapps.WebappTestHelper; import org.chromium.components.webapps.ShortcutSource; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -33,8 +34,8 @@ String url = "about:blank"; Intent intent = WebappTestHelper.createMinimalWebappIntent(id, url); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); WebappInfo info = createWebappInfo(intent); Assert.assertNotNull(info); } @@ -47,8 +48,8 @@ String url = "http://google.com"; Intent intent = WebappTestHelper.createMinimalWebappIntent(id, url); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); WebappInfo info = createWebappInfo(intent); Assert.assertNotNull(info); } @@ -61,10 +62,10 @@ String bustedUrl = "http://money.cnn.com/?category=Latest News"; Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_URL, bustedUrl); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_URL, bustedUrl); WebappInfo info = createWebappInfo(intent); Assert.assertNotNull(info); @@ -75,7 +76,7 @@ String title = "webapp title"; Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_TITLE, title); + intent.putExtra(WebappConstants.EXTRA_TITLE, title); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(title, info.name()); @@ -87,7 +88,7 @@ String shortName = "name"; Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); WebappInfo info = createWebappInfo(intent); Assert.assertEquals("", info.name()); @@ -100,8 +101,8 @@ String shortName = "name"; Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_TITLE, title); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_TITLE, title); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(title, info.name()); @@ -114,8 +115,8 @@ String shortName = "name"; Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(name, info.name()); @@ -128,11 +129,11 @@ String shortName = "name"; Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_DISPLAY_MODE, WebDisplayMode.FULLSCREEN); - intent.putExtra(ShortcutHelper.EXTRA_ORIENTATION, ScreenOrientationLockType.DEFAULT); - intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.UNKNOWN); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_DISPLAY_MODE, WebDisplayMode.FULLSCREEN); + intent.putExtra(WebappConstants.EXTRA_ORIENTATION, ScreenOrientationLockType.DEFAULT); + intent.putExtra(WebappConstants.EXTRA_SOURCE, ShortcutSource.UNKNOWN); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(WebDisplayMode.FULLSCREEN, info.displayMode()); Assert.assertEquals(ScreenOrientationLockType.DEFAULT, info.orientation()); @@ -147,10 +148,10 @@ long backgroundColor = Color.argb(0xff, 0, 0, 0xff); Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_THEME_COLOR, toolbarColor); - intent.putExtra(ShortcutHelper.EXTRA_BACKGROUND_COLOR, backgroundColor); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_THEME_COLOR, toolbarColor); + intent.putExtra(WebappConstants.EXTRA_BACKGROUND_COLOR, backgroundColor); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(toolbarColor, info.toolbarColor()); Assert.assertEquals(backgroundColor, info.backgroundColor()); @@ -162,12 +163,12 @@ String shortName = "name"; Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); WebappInfo info = createWebappInfo(intent); - Assert.assertEquals(ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING, info.toolbarColor()); + Assert.assertEquals(WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING, info.toolbarColor()); Assert.assertEquals( - ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING, info.backgroundColor()); + WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING, info.backgroundColor()); } @Test @@ -176,8 +177,8 @@ long backgroundColor = Color.argb(0xff, 0, 0, 0xff); Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_THEME_COLOR, toolbarColor); - intent.putExtra(ShortcutHelper.EXTRA_BACKGROUND_COLOR, backgroundColor); + intent.putExtra(WebappConstants.EXTRA_THEME_COLOR, toolbarColor); + intent.putExtra(WebappConstants.EXTRA_BACKGROUND_COLOR, backgroundColor); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(toolbarColor, info.toolbarColor()); @@ -188,7 +189,7 @@ public void testScopeIntentCreation() { String scope = "https://www.foo.com"; Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_SCOPE, scope); + intent.putExtra(WebappConstants.EXTRA_SCOPE, scope); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(scope, info.scopeUrl()); } @@ -197,7 +198,7 @@ public void testIntentScopeFallback() { String url = "https://www.foo.com/homepage.html"; Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_URL, url); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(ShortcutHelper.getScopeFromUrl(url), info.scopeUrl()); } @@ -205,7 +206,7 @@ @Test public void testIntentDisplayMode() { Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_DISPLAY_MODE, WebDisplayMode.MINIMAL_UI); + intent.putExtra(WebappConstants.EXTRA_DISPLAY_MODE, WebDisplayMode.MINIMAL_UI); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(WebDisplayMode.MINIMAL_UI, info.displayMode()); } @@ -213,7 +214,7 @@ @Test public void testIntentOrientation() { Intent intent = createIntentWithUrlAndId(); - intent.putExtra(ShortcutHelper.EXTRA_ORIENTATION, ScreenOrientationLockType.LANDSCAPE); + intent.putExtra(WebappConstants.EXTRA_ORIENTATION, ScreenOrientationLockType.LANDSCAPE); WebappInfo info = createWebappInfo(intent); Assert.assertEquals(ScreenOrientationLockType.LANDSCAPE, info.orientation()); } @@ -228,10 +229,10 @@ // Default value. { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_URL, url); Assert.assertFalse(name, createWebappInfo(intent).isIconGenerated()); } @@ -239,11 +240,11 @@ // Set to true. { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); - intent.putExtra(ShortcutHelper.EXTRA_IS_ICON_GENERATED, true); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_IS_ICON_GENERATED, true); Assert.assertTrue(name, createWebappInfo(intent).isIconGenerated()); } @@ -251,11 +252,11 @@ // Set to false. { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); - intent.putExtra(ShortcutHelper.EXTRA_IS_ICON_GENERATED, false); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_IS_ICON_GENERATED, false); Assert.assertFalse(name, createWebappInfo(intent).isIconGenerated()); } @@ -263,11 +264,11 @@ // Set to something else than a boolean. { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); - intent.putExtra(ShortcutHelper.EXTRA_IS_ICON_GENERATED, "true"); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_IS_ICON_GENERATED, "true"); Assert.assertFalse(name, createWebappInfo(intent).isIconGenerated()); } @@ -283,10 +284,10 @@ // Default value. { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_URL, url); Assert.assertFalse(name, createWebappInfo(intent).isIconAdaptive()); } @@ -294,11 +295,11 @@ // Set to true. { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); - intent.putExtra(ShortcutHelper.EXTRA_IS_ICON_ADAPTIVE, true); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_IS_ICON_ADAPTIVE, true); Assert.assertTrue(name, createWebappInfo(intent).isIconAdaptive()); } @@ -306,11 +307,11 @@ // Set to false. { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); - intent.putExtra(ShortcutHelper.EXTRA_IS_ICON_ADAPTIVE, false); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_IS_ICON_ADAPTIVE, false); Assert.assertFalse(name, createWebappInfo(intent).isIconAdaptive()); } @@ -318,11 +319,11 @@ // Set to something else than a boolean. { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_NAME, name); - intent.putExtra(ShortcutHelper.EXTRA_SHORT_NAME, shortName); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); - intent.putExtra(ShortcutHelper.EXTRA_IS_ICON_ADAPTIVE, "true"); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_NAME, name); + intent.putExtra(WebappConstants.EXTRA_SHORT_NAME, shortName); + intent.putExtra(WebappConstants.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_IS_ICON_ADAPTIVE, "true"); Assert.assertFalse(name, createWebappInfo(intent).isIconAdaptive()); } @@ -334,7 +335,7 @@ /** * Test that {@link WebappInfo#shouldForceNavigation()} defaults to false when the - * {@link ShortcutHelper#EXTRA_FORCE_NAVIGATION} intent extra is not specified. + * {@link WebappConstants#EXTRA_FORCE_NAVIGATION} intent extra is not specified. */ @Test public void testForceNavigationNotSpecified() { @@ -348,8 +349,8 @@ */ private Intent createIntentWithUrlAndId() { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, "web app id"); - intent.putExtra(ShortcutHelper.EXTRA_URL, "about:blank"); + intent.putExtra(WebappConstants.EXTRA_ID, "web app id"); + intent.putExtra(WebappConstants.EXTRA_URL, "about:blank"); return intent; } }
diff --git a/chrome/android/profiles/newest.txt b/chrome/android/profiles/newest.txt index 5a7770c..03426de 100644 --- a/chrome/android/profiles/newest.txt +++ b/chrome/android/profiles/newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-93.0.4542.0_rc-r1-merged.afdo.bz2 +chromeos-chrome-amd64-93.0.4543.0_rc-r1-merged.afdo.bz2
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 0305bab..02bf7af 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -293,8 +293,10 @@ <part file="profiles_strings.grdp" /> <!-- Web app intent picker strings --> - <if expr="is_win or is_macosx or is_linux"> + <if expr="not is_android"> <part file="protocol_handler_intent_picker_strings.grdp" /> + </if> + <if expr="is_win or is_macosx or is_linux"> <part file="url_handler_intent_picker_strings.grdp" /> </if>
diff --git a/chrome/app/resources/chromium_strings_af.xtb b/chrome/app/resources/chromium_strings_af.xtb index 000e64ff..0d1de90 100644 --- a/chrome/app/resources/chromium_strings_af.xtb +++ b/chrome/app/resources/chromium_strings_af.xtb
@@ -141,7 +141,7 @@ <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation> <translation id="5479196819031988440">Chromium OS kan nie hierdie bladsy oopmaak nie.</translation> <translation id="5480860683791598150">Chromium het toegang tot jou ligging nodig om jou ligging met hierdie werf te deel</translation> -<translation id="5481338274774984070">Chromium beveel aan dat jy nie hierdie lêer aflaai of oomaak nie.</translation> +<translation id="5481338274774984070">Chromium beveel aan dat jy nie hierdie lêer aflaai of oopmaak nie.</translation> <translation id="549669000822060376">Wag terwyl Chromium die jongste stelselopdaterings installeer.</translation> <translation id="5496810170689441661">Chromium probeer tans om wagwoorde te wysig. Tik jou Windows-wagwoord in om dit toe te laat.</translation> <translation id="5527463683072221100">Maak PDF's in Chromium oop</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb index e0faab8..c1be96cc 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Kan nie aan die instaanbediener koppel nie.</translation> <translation id="1405779994569073824">Omgeval.</translation> <translation id="1406500794671479665">Verifieer tans …</translation> +<translation id="1407069428457324124">Donkertema</translation> <translation id="1407135791313364759">Maak alles oop</translation> <translation id="140723521119632973">Sellulêre aktivering</translation> <translation id="1407489512183974736">Middel gesnoei</translation> @@ -5674,6 +5675,7 @@ <translation id="729583233778673644">Laat AES- en RC4-enkripsie toe. As jy hierdie opsie gebruik, verhoog dit jou risiko aangesien die RC4-syfers onveilig is.</translation> <translation id="729761647156315797">Kies jou taal en sleutelbord</translation> <translation id="7297726121602187087">Donkergroen</translation> +<translation id="7298195798382681320">Aanbevole</translation> <translation id="7299337219131431707">Aktiveer Gasblaai</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Hierdie program kan verhoed dat Chrome behoorlik werk.}other{Hierdie programme kan verhoed dat Chrome behoorlik werk.}}</translation> <translation id="7303281435234579599">Oeps! Kon nie demonstrasiemodus opstel nie.</translation> @@ -7271,6 +7273,7 @@ <translation id="9026852570893462412">Hierdie proses kan 'n paar minute neem. Laai tans die virtuele masjien af.</translation> <translation id="9027459031423301635">Maak skakel in nuwe oortjie oop</translation> <translation id="9030515284705930323">Jou organisasie het nie Google Play Winkel vir jou rekening geaktiveer nie. Kontak jou administrateur vir meer inligting.</translation> +<translation id="9030754204056345429">Vinniger</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> word nie meer gesteun nie</translation> <translation id="9031549947500880805">Rugsteun in Google Drive. Laai jou data maklik terug of wissel enige tyd jou toestel. Jou rugsteun sluit programdata in.</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 73be0b691..69dd259 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -360,6 +360,7 @@ <translation id="1403222014593521787">ከተኪው ጋር መገናኘት አልተቻለም</translation> <translation id="1405779994569073824">ተበላሽቷል።</translation> <translation id="1406500794671479665">በማረጋገጥ ላይ...</translation> +<translation id="1407069428457324124">ጠቆር ያለ ገጽታ</translation> <translation id="1407135791313364759">ሁሉንም ክፈት</translation> <translation id="140723521119632973">ተንቀሳቃሽ ማግበሪያ</translation> <translation id="1407489512183974736">እስከ መሃከል የተከረከመ</translation> @@ -5664,6 +5665,7 @@ <translation id="729583233778673644">የAES እና የRC4 ምሥጠራን ይፍቀዱ። የRC4 ምሥጠራዎች ለደህንነት አስተማማኝ ስላልሆኑ ይህን አማራጭ መጠቀም የእርስዎን አደጋ ይጨምራል።</translation> <translation id="729761647156315797">የእርስዎን ቋንቋ እና የቁልፍ ሰሌዳ ይምረጡ</translation> <translation id="7297726121602187087">ጠቆር ያለ አረንጓዴ</translation> +<translation id="7298195798382681320">የተመከሩ</translation> <translation id="7299337219131431707">የእንግዳ አሰሳን ያንቁ</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{ይህ መተግበሪያ Chrome በአግባቡ እንዳይሠራ ሊከላከል ይችላል።}one{እነዚህ መተግበሪያዎች Chrome በአግባቡ እንዳይሠራ ሊከላከሉ ይችላሉ።}other{እነዚህ መተግበሪያዎች Chrome በአግባቡ እንዳይሠራ ሊከላከሉ ይችላሉ።}}</translation> <translation id="7303281435234579599">ውይ! የቅንጭብ ማሳያ ሁነታን በማቀናበር ላይ ሳለ የሆነ ነገር ተሳስቷል።</translation> @@ -7268,6 +7270,7 @@ <translation id="9026852570893462412">ይህ ሂደት ጥቂት ደቂቃዎችን ሊወስድ ይችላል። ምናባዊ ማሽኑን በማውረድ ላይ።</translation> <translation id="9027459031423301635">አገናኙን በአዲስ &ትር ክፈት</translation> <translation id="9030515284705930323">የእርስዎ ድርጅት Google Play መደብርን ለመለያዎ አላነቃም። ተጨማሪ መረጃን ለማግኘት አስተዳዳሪዎን ያነጋግሩ።</translation> +<translation id="9030754204056345429">በጣም ፈጣን</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> ከእንግዲህ አይደገፍም</translation> <translation id="9031549947500880805">ምትኬ ወደ Google Drive ያስቀምጡ። በማንኛውም ጊዜ ውሂብዎን በቀላሉ ወደነበሩበት ይመልሱ ወይም መሣሪያን ይቀይሩ። የእርስዎ ምትኬ የመተግበሪያ ውሂብን ያካትታል።</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index c4e163e..40537771 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -363,6 +363,7 @@ <translation id="1403222014593521787">تعذّر الاتصال بالخادم الوكيل.</translation> <translation id="1405779994569073824">علامة التبويب تعطَّلت.</translation> <translation id="1406500794671479665">جارٍ التحقق...</translation> +<translation id="1407069428457324124">المظهر الداكن</translation> <translation id="1407135791313364759">فتح الكل</translation> <translation id="140723521119632973">تفعيل شبكة الجوّال</translation> <translation id="1407489512183974736">اقتصاص الوسط</translation> @@ -5655,6 +5656,7 @@ <translation id="729583233778673644">السماح بتشفير AES وRC4: يؤدي استخدام هذا الخيار إلى زيادة المخاطر، لأن رموز RC4 غير آمنة.</translation> <translation id="729761647156315797">اختيار اللغة ولوحة المفاتيح</translation> <translation id="7297726121602187087">أخضر داكن</translation> +<translation id="7298195798382681320">موصى بها</translation> <translation id="7299337219131431707">تفعيل ميزة "تصفح الضيف"</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{قد يمنع هذا التطبيق تشغيل Chrome بشكلٍ صحيح.}zero{قد تمنع هذه التطبيقات تشغيل Chrome بشكلٍ صحيح.}two{قد يمنع هذان التطبيقان تشغيل Chrome بشكلٍ صحيح.}few{قد تمنع هذه التطبيقات تشغيل Chrome بشكلٍ صحيح.}many{قد تمنع هذه التطبيقات تشغيل Chrome بشكلٍ صحيح.}other{قد تمنع هذه التطبيقات تشغيل Chrome بشكلٍ صحيح.}}</translation> <translation id="7303281435234579599">عفوًا، لقد حدث خطأ أثناء إعداد الوضع التجريبي.</translation> @@ -7254,6 +7256,7 @@ <translation id="9026852570893462412">قد تستغرق هذه العملية بضع دقائق. جارٍ تنزيل الآلة الافتراضية.</translation> <translation id="9027459031423301635">فتح الرابط في &علامة تبويب جديدة</translation> <translation id="9030515284705930323">لم تمكّن مؤسستك متجر Google Play لحسابك. اتصل بالمشرف للحصول على مزيد من المعلومات.</translation> +<translation id="9030754204056345429">أسرع</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">لم يَعُد "<ph name="PLUGIN_NAME" />" متوافقًا.</translation> <translation id="9031549947500880805">يمكنك الاحتفاظ بنسخة احتياطية في Google Drive. ويمكنك استعادة بياناتك أو تبديل جهازك بسهولة وفي أي وقت. وتتضمّن نسختك الاحتياطية بيانات التطبيق.</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index 9664bd3a..59bea50 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">প্ৰ’ক্সীটোৰ সৈতে সংযোগ কৰিবলৈ সক্ষম নহ'ল</translation> <translation id="1405779994569073824">ক্ৰেশ্ব হ’ল।</translation> <translation id="1406500794671479665">সত্যাপন কৰি থকা হৈছে…</translation> +<translation id="1407069428457324124">গাঢ় ৰঙৰ থীম</translation> <translation id="1407135791313364759">সকলো খোলক</translation> <translation id="140723521119632973">চেলুলাৰ সক্ৰিয়কৰণ</translation> <translation id="1407489512183974736">সোঁমাজত ক্ৰপ কৰা</translation> @@ -5652,6 +5653,7 @@ <translation id="729583233778673644">AES আৰু RC4 এনক্ৰিপশ্বনৰ অনুমতি দিয়ক। RC4 চাইফাৰসমূহ অসুৰক্ষিত হোৱাৰ বাবে এই বিকল্পটো ব্যৱহাৰ কৰা কার্যয়ে আপোনাৰ বিপদৰ সম্ভাৱনা বৃদ্ধি কৰে।</translation> <translation id="729761647156315797">আপোনাৰ ভাষা আৰু কীব’ৰ্ড বাছনি কৰক</translation> <translation id="7297726121602187087">গাঢ় সেউজীয়া</translation> +<translation id="7298195798382681320">চুপাৰিছ কৰা</translation> <translation id="7299337219131431707">অতিথিয়ে ব্ৰাউজ কৰাৰ সুবিধাটো সক্ষম কৰক</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{এই এপ্লিকেশ্বনটোৱে Chromeক সঠিকভাৱে কাম কৰাৰ পৰা বাধা প্ৰদান কৰিব পাৰে৷}one{এই এপ্লিকেশ্বনসমূহে Chromeক সঠিকভাৱে কাম কৰাৰ পৰা বাধা প্ৰদান কৰিব পাৰে৷}other{এই এপ্লিকেশ্বনসমূহে Chromeক সঠিকভাৱে কাম কৰাৰ পৰা বাধা প্ৰদান কৰিব পাৰে৷}}</translation> <translation id="7303281435234579599">ওঁহ! ডেম’ ম’ড ছেট কৰোঁতে কিবা এটা ভুল হৈছে।</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index 7c76a1f4..3902a8217 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -357,6 +357,7 @@ <translation id="1403222014593521787">Proksiyə qoşulmaq olmur</translation> <translation id="1405779994569073824">Xəta baş verdi.</translation> <translation id="1406500794671479665">Təsdiqlənir...</translation> +<translation id="1407069428457324124">Tünd tema</translation> <translation id="1407135791313364759">Hamısını açın</translation> <translation id="140723521119632973">Mobil Aktivasiya</translation> <translation id="1407489512183974736">Mərkəzi Kəsimli</translation> @@ -5651,6 +5652,7 @@ <translation id="729583233778673644">AES və RC4 şifrələmələrinə icazə verin. RC4 şifrələri təhlükəli olduğu üçün bu seçimdən istifadə etmək riski artırır.</translation> <translation id="729761647156315797">Dil və klaviatura seçin</translation> <translation id="7297726121602187087">Tünd-yaşıl</translation> +<translation id="7298195798382681320">Tövsiyə olunur</translation> <translation id="7299337219131431707">Qonaq brauzinqini aktiv edin</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Bu tətbiq Chrome'un düzgün işləməsinə mane olaq bilər.}other{Bu tətbiqlər Chrome'un düzgün işləməsinə mane ola bilər.}}</translation> <translation id="7303281435234579599">Ups! Demo rejimi quraşdırılarkən xəta baş verdi.</translation> @@ -7245,6 +7247,7 @@ <translation id="9026852570893462412">Bir az səbr edin; virtual maşın endirilir.</translation> <translation id="9027459031423301635">Linki yeni paneldə açın</translation> <translation id="9030515284705930323">Təşkilatınız Google Play Mağazanı hesabınız üçün aktiv etməyib. Əlavə məlumat üçün administratorla əlaqə saxlayın.</translation> +<translation id="9030754204056345429">Sürətli</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> artıq dəstəklənmir</translation> <translation id="9031549947500880805">Google Diskə yedəkləyin. İstənilən vaxt datanızı asanlıqla bərpa edin və ya cihazı dəyişin. Yedəkləmənizə tətbiq datası daxildir.</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb index 73bc1ea2..e35fd3d 100644 --- a/chrome/app/resources/generated_resources_be.xtb +++ b/chrome/app/resources/generated_resources_be.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">Не ўдалося падключыцца да проксі-сервера</translation> <translation id="1405779994569073824">Збой.</translation> <translation id="1406500794671479665">Ідзе спраўджанне...</translation> +<translation id="1407069428457324124">Цёмная тэма</translation> <translation id="1407135791313364759">Адкрыць усе</translation> <translation id="140723521119632973">Актывацыя SIM-карты ў мабільнай сетцы</translation> <translation id="1407489512183974736">Адцэнтравана і абрэзана</translation> @@ -5654,6 +5655,7 @@ <translation id="729583233778673644">Дазволіць шыфраванне з дапамогай алгарытмаў AES і RC4. Выкарыстоўваць гэты параметр небяспечна з-за ненадзейнасці шыфраў RC4.</translation> <translation id="729761647156315797">Выберыце мову і клавіятуру</translation> <translation id="7297726121602187087">Цёмна-зялёны</translation> +<translation id="7298195798382681320">Рэкамендавана</translation> <translation id="7299337219131431707">Уключыць гасцявы прагляд</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Гэта праграма можа перашкодзіць правільнай рабоце Chrome.}one{Гэтыя праграмы могуць перашкодзіць правільнай рабоце Chrome.}few{Гэтыя праграмы могуць перашкодзіць правільнай рабоце Chrome.}many{Гэтыя праграмы могуць перашкодзіць правільнай рабоце Chrome.}other{Гэтыя праграмы могуць перашкодзіць правільнай рабоце Chrome.}}</translation> <translation id="7303281435234579599">Памылка! Падчас наладжвання дэманстрацыйнага рэжыму нешта пайшло не так.</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index 0f34777..9237f874 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Не може да се установи връзка с прокси сървъра</translation> <translation id="1405779994569073824">Възникна срив.</translation> <translation id="1406500794671479665">Потвърждава се...</translation> +<translation id="1407069428457324124">Тъмна тема</translation> <translation id="1407135791313364759">Отваряне на всички</translation> <translation id="140723521119632973">Активиране на мобилна мрежа</translation> <translation id="1407489512183974736">Центриране с подрязване</translation> @@ -5671,6 +5672,7 @@ <translation id="729583233778673644">Разрешаване на AES и RC4 шифроване. Използването на тази опция увеличава риска, тъй като шифрите RC4 са несигурни.</translation> <translation id="729761647156315797">Избиране на език и клавиатура</translation> <translation id="7297726121602187087">Тъмнозелено</translation> +<translation id="7298195798382681320">Препоръчително</translation> <translation id="7299337219131431707">Активиране на сърфирането като гост</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Възможно е това приложение да пречи на Chrome да работи правилно.}other{Възможно е тези приложения да пречат на Chrome да работи правилно.}}</translation> <translation id="7303281435234579599">Ами сега! Нещо се обърка при настройването на демонстрационния режим.</translation> @@ -7269,6 +7271,7 @@ <translation id="9026852570893462412">Това може да отнеме няколко минути. Виртуалната машина се изтегля.</translation> <translation id="9027459031423301635">Отваряне на връзката в нов &раздел</translation> <translation id="9030515284705930323">Организацията ви не е активирала Google Play Магазин за профила ви. Свържете се с администратора си за повече информация.</translation> +<translation id="9030754204056345429">По-бърза</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Приставката „<ph name="PLUGIN_NAME" />“ вече не се поддържа</translation> <translation id="9031549947500880805">Създаване на резервно копие в Google Диск. По всяко време можете лесно да възстановите данните на устройството си или да го замените с друго. Резервното ви копие включва данните от приложенията.</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index d1a43b4..d68f269 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">প্রক্সিতে কানেক্ট করা যাচ্ছে না</translation> <translation id="1405779994569073824">ক্র্যাশ করেছে।</translation> <translation id="1406500794671479665">যাচাই করা হচ্ছে...</translation> +<translation id="1407069428457324124">ডার্ক থিম</translation> <translation id="1407135791313364759">সব খুলুন</translation> <translation id="140723521119632973">সেলুলার চালু করা</translation> <translation id="1407489512183974736">মাঝ খান থেকে ক্রপ করা</translation> @@ -5665,6 +5666,7 @@ <translation id="729583233778673644">AES এবং RC4 এনক্রিপশন অনুমতি দিন। এই বিকল্পটির ব্যবহার ঝুঁকি বাড়ায় কারণ RC4 সাইফারটি নিরাপদ নয়।</translation> <translation id="729761647156315797">আপনার ভাষা ও কীবোর্ড বেছে নিন</translation> <translation id="7297726121602187087">গাঢ় সবুজ</translation> +<translation id="7298195798382681320">প্রস্তাবিত</translation> <translation id="7299337219131431707">গেস্ট ব্রাউজিং চালু করুন</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{এই অ্যাপ্লিকেশনটি Chrome-কে সঠিকভাবে কাজ করতে বাধা দিতে পারে।}one{এই অ্যাপ্লিকেশনগুলি Chrome-কে সঠিকভাবে কাজ করতে বাধা দিতে পারে।}other{এই অ্যাপ্লিকেশনগুলি Chrome-কে সঠিকভাবে কাজ করতে বাধা দিতে পারে।}}</translation> <translation id="7303281435234579599">ডেমো মোড সেট-আপ করার সময় কোনও সমস্যা হয়েছে।</translation> @@ -7258,6 +7260,7 @@ <translation id="9026852570893462412">এতে কয়েক মিনিট সময় লাগতে পারে। ভার্চুয়াল মেশিন ডাউনলোড হচ্ছে।</translation> <translation id="9027459031423301635">নতুন ট্যাবে লিঙ্ক খুলুন</translation> <translation id="9030515284705930323">আপনার প্রতিষ্ঠান আপনার অ্যাকাউন্টের জন্য Google Play স্টোর চালু করেনি। আরও তথ্যের জন্য আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation> +<translation id="9030754204056345429">আরও দ্রুত</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> আর কাজ করে না</translation> <translation id="9031549947500880805">Google Drive-এ ব্যাক-আপ নিন। যেকোনও সময় সহজেই ডেটা রিস্টোর করুন অথবা অন্য ডিভাইস ব্যবহার করুন। আপনার ব্যাক-আপে অ্যাপ ডেটা থাকে।</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index a3ecc46..2043038 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -363,6 +363,7 @@ <translation id="1403222014593521787">Nije se moguće povezati s proksi serverom</translation> <translation id="1405779994569073824">Došlo je do pada kartice.</translation> <translation id="1406500794671479665">Potvrđivanje...</translation> +<translation id="1407069428457324124">Tamna tema</translation> <translation id="1407135791313364759">Otvori sve</translation> <translation id="140723521119632973">Aktiviranje mobilne mreže</translation> <translation id="1407489512183974736">Sredina s izrezanim rubovima</translation> @@ -5671,6 +5672,7 @@ <translation id="729583233778673644">Dozvoli AES i RC4 šifriranje. Korištenjem ove opcije povećavate rizik, jer su RC4 šifre nesigurne.</translation> <translation id="729761647156315797">Odaberite jezik i tastaturu</translation> <translation id="7297726121602187087">Tamnozelena</translation> +<translation id="7298195798382681320">Preporučeno</translation> <translation id="7299337219131431707">Omogući pretraživanje za goste</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Ova aplikacija bi mogla spriječiti da Chrome ispravno funkcionira.}one{Ove aplikacije bi mogle spriječiti da Chrome ispravno funkcionira.}few{Ove aplikacije bi mogle spriječiti da Chrome ispravno funkcionira.}other{Ove aplikacije bi mogle spriječiti da Chrome ispravno funkcionira.}}</translation> <translation id="7303281435234579599">Ups! Došlo je do problema prilikom postavljanja načina rada za demonstraciju.</translation> @@ -7271,6 +7273,7 @@ <translation id="9026852570893462412">Ovo može potrajati nekoliko minuta. Preuzima se virtualni računar.</translation> <translation id="9027459031423301635">Otvori link u novoj kar&tici</translation> <translation id="9030515284705930323">Vaša organizacija nije omogućila Trgovinu Google Play za vaš račun. Više informacija zatražite od administratora.</translation> +<translation id="9030754204056345429">Brže</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Dodatak <ph name="PLUGIN_NAME" /> više nije podržan</translation> <translation id="9031549947500880805">Izradite sigurnosne kopije na Google disku. Jednostavno u svakom trenutku vratite svoje podatke ili promijenite uređaj. Vaša sigurnosna kopija obuhvata podatke o aplikacijama.</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 0227220..cbfe3cb 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">No s'ha pogut connectar amb el servidor intermediari</translation> <translation id="1405779994569073824">S'ha produït un error.</translation> <translation id="1406500794671479665">S'està verificant...</translation> +<translation id="1407069428457324124">Tema fosc</translation> <translation id="1407135791313364759">Obre-les totes</translation> <translation id="140723521119632973">Activació d'una xarxa mòbil</translation> <translation id="1407489512183974736">Retallat al centre</translation> @@ -5658,6 +5659,7 @@ <translation id="729583233778673644">Permet l'encriptació AES i RC4. L'ús d'aquesta opció augmenta el risc, ja que els xifratges RC4 no són segurs.</translation> <translation id="729761647156315797">Tria l'idioma i el teclat</translation> <translation id="7297726121602187087">Verd fosc</translation> +<translation id="7298195798382681320">Recomanada</translation> <translation id="7299337219131431707">Activa la navegació com a convidat</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Aquesta aplicació pot impedir que Chrome funcioni correctament.}other{Aquestes aplicacions poden impedir que Chrome funcioni correctament.}}</translation> <translation id="7303281435234579599">S'ha produït un error en configurar el mode de demostració.</translation> @@ -7257,6 +7259,7 @@ <translation id="9026852570893462412">Aquest procés pot tardar uns quants minuts. S'està baixant la màquina virtual.</translation> <translation id="9027459031423301635">Obre l'enllaç en una pes&tanya nova</translation> <translation id="9030515284705930323">La teva organització no t'ha activat Google Play Store al compte. Contacta amb l'administrador per obtenir més informació.</translation> +<translation id="9030754204056345429">Més ràpida</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Ja no s'admet <ph name="PLUGIN_NAME" /></translation> <translation id="9031549947500880805">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.</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index f28a4875d..fef3e40 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">K proxy se nelze připojit</translation> <translation id="1405779994569073824">Selhalo.</translation> <translation id="1406500794671479665">Ověřování...</translation> +<translation id="1407069428457324124">Tmavý motiv</translation> <translation id="1407135791313364759">Otevřít vše</translation> <translation id="140723521119632973">Aktivace mobilní sítě</translation> <translation id="1407489512183974736">Ořezat na střed</translation> @@ -5656,6 +5657,7 @@ <translation id="729583233778673644">Povolit šifrování AES a RC4. Použití této možnosti zvyšuje riziko, protože šifry RC4 nejsou bezpečné.</translation> <translation id="729761647156315797">Výběr jazyka a klávesnice</translation> <translation id="7297726121602187087">Tmavě zelená</translation> +<translation id="7298195798382681320">Doporučeno</translation> <translation id="7299337219131431707">Povolit prohlížení v roli hosta</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Tato aplikace by Chromu mohla bránit ve správném fungování.}few{Tyto aplikace by Chromu mohly bránit ve správném fungování.}many{Tyto aplikace by Chromu mohly bránit ve správném fungování.}other{Tyto aplikace by Chromu mohly bránit ve správném fungování.}}</translation> <translation id="7303281435234579599">Jejda! Při nastavování ukázkového režimu se něco pokazilo.</translation> @@ -7254,6 +7256,7 @@ <translation id="9026852570893462412">Tento proces může trvat několik minut. Probíhá stahování virtuálního počítače.</translation> <translation id="9027459031423301635">Otevří&t odkaz v nové kartě</translation> <translation id="9030515284705930323">Vaše organizace pro váš účet Obchod Google Play nepovolila. Další informace získáte u svého administrátora.</translation> +<translation id="9030754204056345429">Rychlejší</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Plugin <ph name="PLUGIN_NAME" /> už není podporován</translation> <translation id="9031549947500880805">Zálohování na Disk Google. Snadno obnovte svá data nebo kdykoliv přejděte na jiné zařízení. Záloha zahrnuje data aplikací.</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 8e83ac8..7f7f4d7 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">Der kunne ikke oprettes forbindelse til proxyserveren</translation> <translation id="1405779994569073824">Gået ned.</translation> <translation id="1406500794671479665">Bekræfter...</translation> +<translation id="1407069428457324124">Mørkt tema</translation> <translation id="1407135791313364759">Åbn alle</translation> <translation id="140723521119632973">Aktivering af mobildata</translation> <translation id="1407489512183974736">Centrér, beskær</translation> @@ -5674,6 +5675,7 @@ <translation id="729583233778673644">Tillad AES- og RC4-kryptering. Du løber en større risiko, hvis du vælger denne mulighed, da RC4-krypteringsalgoritmerne er usikre.</translation> <translation id="729761647156315797">Vælg dit sprog og tastatur</translation> <translation id="7297726121602187087">Mørkegrøn</translation> +<translation id="7298195798382681320">Anbefalet</translation> <translation id="7299337219131431707">Aktivér gæstesession</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Denne app kan forhindre Chrome i at fungere korrekt.}one{Denne app kan forhindre Chrome i at fungere korrekt.}other{Disse apps kan forhindre Chrome i at fungere korrekt.}}</translation> <translation id="7303281435234579599">Ups! Noget gik galt under konfigurationen af demotilstand.</translation> @@ -7273,6 +7275,7 @@ <translation id="9026852570893462412">Denne proces kan tage et par minutter. Den virtuelle maskine downloades.</translation> <translation id="9027459031423301635">Åbn link på ny &fane</translation> <translation id="9030515284705930323">Din organisation har ikke aktiveret Google Play Butik for din konto. Kontakt din administrator for at få yderligere oplysninger.</translation> +<translation id="9030754204056345429">Hurtigere</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">"<ph name="PLUGIN_NAME" />" understøttes ikke længere</translation> <translation id="9031549947500880805">Sikkerhedskopiér i Google Drev. Gendan nemt dine data, eller skift enhed når som helst. Din backup omfatter appdata.</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index ee12a99..145fb80 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">Verbindung zum Proxy kann nicht hergestellt werden</translation> <translation id="1405779994569073824">Abgestürzt.</translation> <translation id="1406500794671479665">Überprüfung wird durchgeführt...</translation> +<translation id="1407069428457324124">Dunkles Design</translation> <translation id="1407135791313364759">Alle öffnen</translation> <translation id="140723521119632973">Mobilfunkaktivierung</translation> <translation id="1407489512183974736">Zugeschnitten zentrieren</translation> @@ -5644,6 +5645,7 @@ <translation id="729583233778673644">AES- und RC4-Verschlüsselung erlauben. Mit dieser Option ist ein höheres Risiko verbunden, da RC4-Verschlüsselungen nicht sicher sind.</translation> <translation id="729761647156315797">Sprache und Tastatur wählen</translation> <translation id="7297726121602187087">Dunkelgrün</translation> +<translation id="7298195798382681320">Empfohlen</translation> <translation id="7299337219131431707">Gastmodus aktivieren</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Diese Anwendung könnte verhindern, dass Chrome wie vorgesehen funktioniert.}other{Diese Anwendungen könnten verhindern, dass Chrome wie vorgesehen funktioniert.}}</translation> <translation id="7303281435234579599">Beim Einrichten des Demomodus ist ein Fehler aufgetreten.</translation> @@ -7238,6 +7240,7 @@ <translation id="9026852570893462412">Der Vorgang kann einige Minuten dauern. Virtuelle Maschine wird heruntergeladen.</translation> <translation id="9027459031423301635">Link in neuem Tab öffnen</translation> <translation id="9030515284705930323">Ihre Organisation hat den Google Play Store für Ihr Konto nicht aktiviert. Weitere Informationen erhalten Sie von Ihrem Administrator.</translation> +<translation id="9030754204056345429">Schneller</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> wird nicht mehr unterstützt</translation> <translation id="9031549947500880805">In Google Drive sichern. Sie können Ihre Daten jederzeit wiederherstellen – auch auf einem anderen Gerät. In Ihrer Sicherung sind auch App-Daten enthalten.</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 3821c3e8..5a39d679 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Δεν είναι δυνατή η σύνδεση στον διακομιστή μεσολάβησης.</translation> <translation id="1405779994569073824">Παρουσιάστηκε σφάλμα.</translation> <translation id="1406500794671479665">Επαλήθευση…</translation> +<translation id="1407069428457324124">Σκούρο θέμα</translation> <translation id="1407135791313364759">Άνοιγμα όλων</translation> <translation id="140723521119632973">Ενεργοποίηση δικτύου κινητής τηλεφωνίας</translation> <translation id="1407489512183974736">Περικοπή στο κέντρο</translation> @@ -5674,6 +5675,7 @@ <translation id="729583233778673644">Να επιτρέπεται η κρυπτογράφηση AES και RC4. Η χρήση αυτής της επιλογής αυξάνει τον κίνδυνο, επειδή η κρυπτογράφηση RC4 δεν είναι ασφαλής.</translation> <translation id="729761647156315797">Επιλέξτε γλώσσα και πληκτρολόγιο</translation> <translation id="7297726121602187087">Σκούρο πράσινο</translation> +<translation id="7298195798382681320">Προτεινόμενες</translation> <translation id="7299337219131431707">Ενεργοποίηση περιήγησης Επισκέπτη</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Αυτή η εφαρμογή μπορεί να εμποδίσει τη σωστή λειτουργία του Chrome.}other{Αυτές οι εφαρμογές μπορεί να εμποδίσουν τη σωστή λειτουργία του Chrome.}}</translation> <translation id="7303281435234579599">Δυστυχώς, παρουσιάστηκε κάποιο πρόβλημα κατά τη ρύθμιση της λειτουργίας επίδειξης.</translation> @@ -7270,6 +7272,7 @@ <translation id="9026852570893462412">Αυτή η διαδικασία μπορεί να διαρκέσει μερικά λεπτά. Λήψη του εικονικού μηχανήματος.</translation> <translation id="9027459031423301635">Άνοιγμα Συνδέσμου σε Νέα Καρτέ&λα</translation> <translation id="9030515284705930323">Ο οργανισμός σας δεν έχει ενεργοποιήσει το Google Play Store για τον λογαριασμό σας. Για περισσότερες πληροφορίες, επικοινωνήστε με τον διαχειριστή σας.</translation> +<translation id="9030754204056345429">Γρήγορη</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Η προσθήκη <ph name="PLUGIN_NAME" /> δεν υποστηρίζεται πλέον</translation> <translation id="9031549947500880805">Δημιουργία αντιγράφων ασφαλείας στο Google Drive. Επαναφέρετε τα δεδομένα σας ή αλλάξτε συσκευή ανά πάσα στιγμή με ευκολία. Το αντίγραφο ασφαλείας συμπεριλαμβάνει τα δεδομένα εφαρμογών.</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index f53fa94..b41b8b2 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Unable to connect to the proxy</translation> <translation id="1405779994569073824">Crashed.</translation> <translation id="1406500794671479665">Verifying...</translation> +<translation id="1407069428457324124">Dark theme</translation> <translation id="1407135791313364759">Open all</translation> <translation id="140723521119632973">Mobile activation</translation> <translation id="1407489512183974736">Centre Cropped</translation> @@ -5673,6 +5674,7 @@ <translation id="729583233778673644">Allow AES and RC4 encryption. Using this option increases your risk, as the RC4 ciphers are insecure.</translation> <translation id="729761647156315797">Choose your language & keyboard</translation> <translation id="7297726121602187087">Dark green</translation> +<translation id="7298195798382681320">Recommended</translation> <translation id="7299337219131431707">Enable Guest browsing</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{This application could prevent Chrome from working properly.}other{These applications could prevent Chrome from working properly.}}</translation> <translation id="7303281435234579599">Oops! Something went wrong while setting up demo mode.</translation> @@ -7271,6 +7273,7 @@ <translation id="9026852570893462412">This process may take a few minutes. Downloading the virtual machine.</translation> <translation id="9027459031423301635">Open Link in New &Tab</translation> <translation id="9030515284705930323">Your organisation has not enabled Google Play Store for your account. Contact your administrator for more information.</translation> +<translation id="9030754204056345429">Faster</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> is no longer supported</translation> <translation id="9031549947500880805">Back up to Google Drive. Easily restore your data or switch device at any time. Your backup includes app data.</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index dc1b67e..0b656d5 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">No se pudo establecer conexión con el proxy.</translation> <translation id="1405779994569073824">Falló</translation> <translation id="1406500794671479665">Verificando...</translation> +<translation id="1407069428457324124">Tema oscuro</translation> <translation id="1407135791313364759">Abrir todas</translation> <translation id="140723521119632973">Activación del teléfono celular</translation> <translation id="1407489512183974736">Centrar imagen recortada</translation> @@ -2067,7 +2068,7 @@ <translation id="3254715652085014625">Abre Chrome en tu teléfono Android, ve a "Configuración > Contraseñas > Usa el teléfono como llave de seguridad" y sigue las instrucciones.</translation> <translation id="3255355328033513170">Se borrarán todos los datos que almacenó <ph name="SITE_GROUP_NAME" /> y los sitios secundarios. También se borrarán las cookies. Saldrás de estos sitios, incluidas las pestañas abiertas.</translation> <translation id="3259723213051400722">Vuelve a intentarlo.</translation> -<translation id="3261268979727295785">En el caso de niños más grandes, puedes agregar los Controles parentales una vez que finalices con la configuración. En la app de Explorar, encontrarás información sobre estos controles.</translation> +<translation id="3261268979727295785">En el caso de niños más grandes, puedes agregar los controles parentales una vez que finalices con la configuración. En la app de Explorar, encontrarás información sobre estos controles.</translation> <translation id="3264544094376351444">Fuente Sans-serif</translation> <translation id="3264582393905923483">Contexto</translation> <translation id="3265459715026181080">Cerrar ventana</translation> @@ -2285,7 +2286,7 @@ <translation id="3487007233252413104">función anónima</translation> <translation id="348780365869651045">Esperando a AppCache...</translation> <translation id="3490695139702884919">Descargando… <ph name="PERCENT" />%</translation> -<translation id="3491669675709357988">La cuenta de tu hijo no está configurada para los Controles parentales de Family Link; podrás agregarlos cuando completes la configuración. En la app de Explorar, encontrarás información sobre estos controles.</translation> +<translation id="3491669675709357988">La cuenta de tu hijo no está configurada para los controles parentales de Family Link; podrás agregarlos cuando completes la configuración. En la app de Explorar, encontrarás información sobre estos controles.</translation> <translation id="3491678231052507920">Por lo general los sitios utilizan los datos y dispositivos de realidad virtual para otorgarte acceso a las sesiones de RV.</translation> <translation id="3493486281776271508">Se requiere una conexión a Internet</translation> <translation id="3493881266323043047">Validez</translation> @@ -2540,7 +2541,7 @@ <translation id="3765246971671567135">No se pudo leer la política del modo de demostración sin conexión.</translation> <translation id="3766811143887729231"><ph name="REFRESH_RATE" /> Hz</translation> <translation id="377050016711188788">Helado</translation> -<translation id="3771290962915251154">Se inhabilitó esta configuración porque los Controles parentales están activados</translation> +<translation id="3771290962915251154">Se inhabilitó esta configuración porque los controles parentales están activados</translation> <translation id="3771294271822695279">Archivos de video</translation> <translation id="3772609330847318323">Actualizar la contraseña para <ph name="ORIGIN" /></translation> <translation id="3775432569830822555">Certificado del servidor SSL</translation> @@ -3035,7 +3036,7 @@ <translation id="4330191372652740264">Agua helada</translation> <translation id="4330387663455830245">Nunca traducir <ph name="LANGUAGE" /></translation> <translation id="4331809312908958774">Chrome OS</translation> -<translation id="4332976768901252016">Configura los Controles parentales</translation> +<translation id="4332976768901252016">Configura los controles parentales</translation> <translation id="4333854382783149454">PKCS N. º 1, SHA-1 con encriptación RSA</translation> <translation id="4336434711095810371">Borrar todos los datos</translation> <translation id="4340125850502689798">Nombre de usuario no válido</translation> @@ -4335,7 +4336,7 @@ <translation id="5804241973901381774">Permisos</translation> <translation id="5805697420284793859">Administrador de ventanas</translation> <translation id="5806773519584576205">0° (predeterminado)</translation> -<translation id="5810809306422959727">Esta cuenta no es apta para los Controles parentales</translation> +<translation id="5810809306422959727">Esta cuenta no es apta para los controles parentales</translation> <translation id="5812674658566766066">Expandir todo</translation> <translation id="5815645614496570556">Dirección X 400</translation> <translation id="5816434091619127343">Los cambios solicitados harán que la impresora no se pueda utilizar.</translation> @@ -5046,7 +5047,7 @@ <translation id="6602956230557165253">Utiliza las teclas de flecha hacia la izquierda y derecha para navegar.</translation> <translation id="6605847144724004692">Todavía no tiene una calificación de los usuarios.</translation> <translation id="6607831829715835317">Más herramientas</translation> -<translation id="6607890859198268021"><ph name="DOMAIN" /> ya administra <ph name="USER_EMAIL" />. Para usar los Controles parentales con otra Cuenta de Google, sal de tu cuenta después de finalizar la configuración y, luego, selecciona "Agregar persona" en la pantalla de acceso.</translation> +<translation id="6607890859198268021"><ph name="DOMAIN" /> ya administra <ph name="USER_EMAIL" />. Para usar los controles parentales con otra Cuenta de Google, sal de tu cuenta después de finalizar la configuración y, luego, selecciona "Agregar persona" en la pantalla de acceso.</translation> <translation id="6609478180749378879">Los datos de acceso se almacenarán en este dispositivo cuando salgas del modo Incógnito. Más tarde, podrás volver a acceder a este sitio web con tu dispositivo.</translation> <translation id="6611972847767394631">Encuentra tus pestañas aquí</translation> <translation id="6612358246767739896">Contenido protegido</translation> @@ -5654,6 +5655,7 @@ <translation id="729583233778673644">Permite la encriptación AES y RC4. Esta opción es riesgosa, ya que los cifrados RC4 son inseguros.</translation> <translation id="729761647156315797">Seleccionar tu idioma y teclado</translation> <translation id="7297726121602187087">Verde oscuro</translation> +<translation id="7298195798382681320">Recomendada</translation> <translation id="7299337219131431707">Habilitar navegación como invitado</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Es posible que esta app evite que Chrome funcione correctamente.}other{Es posible que estas apps eviten que Chrome funcione correctamente.}}</translation> <translation id="7303281435234579599">Hubo un error cuando se intentaba configurar el modo de demostración.</translation> @@ -6921,7 +6923,7 @@ <translation id="8683081248374354009">Restablecer grupo</translation> <translation id="8688672835843460752">Disponible</translation> <translation id="8690129572193755009">Permitir que los sitios soliciten permiso para procesar protocolos</translation> -<translation id="8695139659682234808">Agrega los Controles parentales cuando finalices la configuración</translation> +<translation id="8695139659682234808">Agrega los controles parentales cuando finalices la configuración</translation> <translation id="8695825812785969222">Abrir &ubicación...</translation> <translation id="8698269656364382265">Si quieres regresar a la pantalla anterior, desliza el dedo desde el lado izquierdo.</translation> <translation id="869884720829132584">Menú Aplicaciones</translation> @@ -7252,6 +7254,7 @@ <translation id="9026852570893462412">Este proceso puede demorar unos minutos. Se está descargando la máquina virtual.</translation> <translation id="9027459031423301635">Abrir vínculo en la pes&taña nueva</translation> <translation id="9030515284705930323">Tu organización no habilitó Google Play Store para tu cuenta. Comunícate con tu administrador para obtener más información.</translation> +<translation id="9030754204056345429">Más rápida</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Ya no se admite <ph name="PLUGIN_NAME" /></translation> <translation id="9031549947500880805">Crea una copia de seguridad en Google Drive. Restaura tus datos o cambia de dispositivo en cualquier momento con facilidad. Se incluyen datos de apps.</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index c14f09a..bd76a510 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">No se ha podido establecer conexión con el proxy</translation> <translation id="1405779994569073824">Error.</translation> <translation id="1406500794671479665">Verificando...</translation> +<translation id="1407069428457324124">Tema oscuro</translation> <translation id="1407135791313364759">Abrir todas</translation> <translation id="140723521119632973">Activación de datos móviles</translation> <translation id="1407489512183974736">Centrar imagen recortada</translation> @@ -5656,6 +5657,7 @@ <translation id="729583233778673644">Permite los cifrados AES y RC4. Esta opción aumenta el riesgo, ya que los algoritmos de cifrado de RC4 no son seguros.</translation> <translation id="729761647156315797">Selecciona el idioma y el teclado</translation> <translation id="7297726121602187087">Verde oscuro</translation> +<translation id="7298195798382681320">Recomendada</translation> <translation id="7299337219131431707">Habilitar navegación como invitado</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Esta aplicación puede impedir que Chrome funcione correctamente.}other{Estas aplicaciones pueden impedir que Chrome funcione correctamente.}}</translation> <translation id="7303281435234579599">¡Vaya! Se ha producido un error inesperado al configurar el modo de demostración.</translation> @@ -7254,6 +7256,7 @@ <translation id="9026852570893462412">Descargando la máquina virtual. Este proceso puede tardar unos minutos.</translation> <translation id="9027459031423301635">Abrir enlace en una &pestaña nueva</translation> <translation id="9030515284705930323">Tu organización no ha habilitado Google Play Store en tu cuenta. Ponte en contacto con el administrador para obtener más información.</translation> +<translation id="9030754204056345429">Más rápida</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> ya no está disponible</translation> <translation id="9031549947500880805">Crea copias de seguridad en Google Drive. Recupera tus datos de forma sencilla o cambia de dispositivo en cualquier momento. La copia de seguridad también incluye datos de las aplicaciones.</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 35100ae..a370dceec 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Puhverserveriga ei õnnestunud ühendust luua</translation> <translation id="1405779994569073824">Jooksis kokku.</translation> <translation id="1406500794671479665">Kinnitamine ...</translation> +<translation id="1407069428457324124">Tume teema</translation> <translation id="1407135791313364759">Ava kõik</translation> <translation id="140723521119632973">Mobiilsidevõrgu aktiveerimine</translation> <translation id="1407489512183974736">Keskel, kärbitud</translation> @@ -5663,6 +5664,7 @@ <translation id="729583233778673644">Lubatakse AES- ja RC4-krüpteerimine. Selle valiku kasutamine suurendab riski, kuna RC4-šifrid on ebaturvalised.</translation> <translation id="729761647156315797">Keele ja klaviatuuri valimine</translation> <translation id="7297726121602187087">Tumeroheline</translation> +<translation id="7298195798382681320">Soovitatud</translation> <translation id="7299337219131431707">Luba külalisena sirvimine</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Rakendus võib takistada Chrome'i õiget toimimist.}other{Need rakendused võivad takistada Chrome'i õiget toimimist.}}</translation> <translation id="7303281435234579599">Demorežiimi seadistamisel läks midagi valesti.</translation> @@ -7261,6 +7263,7 @@ <translation id="9026852570893462412">Protsess võib võtta mõne minuti. Virtuaalset masinat laaditakse alla.</translation> <translation id="9027459031423301635">Ava &link uuel vahelehel</translation> <translation id="9030515284705930323">Organisatsioon pole Google Play poodi teie kontol lubanud. Lisateabe saamiseks võtke ühendust oma administraatoriga.</translation> +<translation id="9030754204056345429">Kiirem</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Pistikprogrammi <ph name="PLUGIN_NAME" /> enam ei toetata</translation> <translation id="9031549947500880805">Andmete varundamine Google Drive'i. Teil on alati võimalik oma andmed hõlpsalt taastada või seadet vahetada. Teie varukoopia hõlmab rakenduste andmeid.</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index c306961..240f8d4 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -69,7 +69,7 @@ <translation id="1070705170564860382">Beste arakatzaile batean irekiko da <ph name="COUNTDOWN_SECONDS" /> segundo barru</translation> <translation id="1071917609930274619">Datuak zifratzea</translation> <translation id="1072700771426194907">USB bidezko gailu bat hauteman da</translation> -<translation id="107278043869924952">Erabili PIN kodea pasahitzaz gain</translation> +<translation id="107278043869924952">Erabili PINa pasahitzaz gain</translation> <translation id="1076176485976385390">Nabigatu orrietatik testu-kurtsorea erabilita</translation> <translation id="1076698951459398590">Gaitu gaia</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -279,7 +279,7 @@ <translation id="130491383855577612">Ordeztu dira Linux aplikazioak eta fitxategiak</translation> <translation id="1306390193749326011">Aurrerantzean ez dituzu ikusiko <ph name="MODULE_NAME" /> orri honetan</translation> <translation id="1306606229401759371">Aldatu ezarpenak</translation> -<translation id="1307165550267142340">Sortu da PIN kodea</translation> +<translation id="1307165550267142340">Sortu da PINa</translation> <translation id="1307431692088049276">Ez galdetu berriro</translation> <translation id="1307559529304613120">Sistemak ezin izan du biltegiratu gailu honi dagokion APIaren epe luzerako sarbide-tokena.</translation> <translation id="1313405956111467313">Proxy-konfigurazio automatikoa</translation> @@ -302,7 +302,7 @@ <translation id="1333965224356556482">Ez eman kokapena ikusteko baimena webguneei</translation> <translation id="133535873114485416">Sarrerako metodo hobetsia</translation> <translation id="1335929031622236846">Erregistratu gailua</translation> -<translation id="1336902454946927954">Segurtasun-giltza blokeatu egin da ez delako ezagutu hatz-marka. Desblokeatzeko, idatzi PIN kodea.</translation> +<translation id="1336902454946927954">Segurtasun-giltza blokeatu egin da ez delako ezagutu hatz-marka. Desblokeatzeko, idatzi PINa.</translation> <translation id="1337692097987160377">Partekatu fitxa hau</translation> <translation id="1338802252451106843"><ph name="ORIGIN" /> webguneak aplikazio hau ireki nahi du.</translation> <translation id="1338950911836659113">Ezabatzen…</translation> @@ -359,6 +359,7 @@ <translation id="1403222014593521787">Ezin da konektatu proxyra</translation> <translation id="1405779994569073824">Huts egin du.</translation> <translation id="1406500794671479665">Egiaztatzen…</translation> +<translation id="1407069428457324124">Gai iluna</translation> <translation id="1407135791313364759">Ireki guztiak</translation> <translation id="140723521119632973">Sare mugikorretarako SIM txartelak aktibatzea</translation> <translation id="1407489512183974736">Moztu erdialdea uzteko</translation> @@ -753,7 +754,7 @@ <translation id="1805738995123446102">Atzeko planoko fitxa bat mikrofonoa erabiltzen ari da</translation> <translation id="1805822111539868586">Ikuskatu ikuspegiak</translation> <translation id="1805888043020974594">Inprimatze-zerbitzaria</translation> -<translation id="1805967612549112634">Berretsi PIN kodea</translation> +<translation id="1805967612549112634">Berretsi PINa</translation> <translation id="1806335016774576568">Aldatu irekita dagoen beste aplikazio batera</translation> <translation id="1809483812148634490">Google Play-tik deskargatu dituzun aplikazioak ezabatu egingo dira Chromebook-etik. <ph name="LINE_BREAKS1" /> @@ -871,7 +872,7 @@ <translation id="1925124445985510535">Azken segurtasun-egiaztapenaren ordua: <ph name="TIME" /></translation> <translation id="1926339101652878330">Enpresa-gidalerroek arautzen dituzte ezarpen hauek. Informazio gehiago lortzeko, jarri administratzailearekin harremanetan.</translation> <translation id="1927632033341042996"><ph name="NEW_FINGER_NUMBER" />. hatza</translation> -<translation id="192817607445937251">Pantaila desblokeatzeko PIN kodea</translation> +<translation id="192817607445937251">Pantaila desblokeatzeko PINa</translation> <translation id="1928696683969751773">Eguneratzeak</translation> <translation id="1929186283613845153">Aztertzen ari gara fitxategi hau.</translation> <translation id="1929343511231420085">Serieko edozein ataka</translation> @@ -1137,14 +1138,14 @@ <translation id="2218515861914035131">Itsatsi testu arrunt gisa</translation> <translation id="2220409419896228519">Gehitu laster-markak gogoko dituzun Google-ren aplikazioetan</translation> <translation id="2220529011494928058">Eman arazo baten berri</translation> -<translation id="2220572644011485463">PIN kodea edo pasahitza</translation> +<translation id="2220572644011485463">PINa edo pasahitza</translation> <translation id="2221261048068091179"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" /></translation> <translation id="2224444042887712269">Ezarpen hau <ph name="OWNER_EMAIL" /> erabiltzailearena da.</translation> <translation id="222447520299472966">Arte-galeria kategoriako album bat gutxienez hautatu behar da</translation> <translation id="2224551243087462610">Editatu karpetaren izena</translation> <translation id="2225864335125757863">Aldatu honako pasahitz hauek ahal bezain laster kontua babestuta mantentzeko:</translation> <translation id="2226449515541314767">Webguneak MIDI gailuen kontrol osoa izateko blokeatuta dago.</translation> -<translation id="2226907662744526012">Desblokeatu automatikoki PIN kodea idazten denean</translation> +<translation id="2226907662744526012">Desblokeatu automatikoki PINa idazten denean</translation> <translation id="2227179592712503583">Kendu iradokizuna</translation> <translation id="2229161054156947610">Ordu bat baino gehiago geratzen da</translation> <translation id="222931766245975952">Fitxategia moztuta dago</translation> @@ -1234,7 +1235,7 @@ <translation id="2322318151094136999">Eskatu nire baimena webgune batek serieko atakak atzitu nahi dituenean (gomendatua)</translation> <translation id="2323018538045954000">Gordetako wifi-sareak</translation> <translation id="2325444234681128157">Gogoratu pasahitza</translation> -<translation id="2326188115274135041">Berretsi PIN kodea desblokeo automatikoa aktibatzeko</translation> +<translation id="2326188115274135041">Berretsi PINa desblokeo automatikoa aktibatzeko</translation> <translation id="2326931316514688470">&Kargatu berriro aplikazioa</translation> <translation id="2327492829706409234">Gaitu aplikazioa</translation> <translation id="2328561734797404498">Berrabiarazi gailua <ph name="APP_NAME" /> erabiltzeko.</translation> @@ -1301,14 +1302,14 @@ <translation id="2393136602862631930">Konfiguratu <ph name="APP_NAME" /> zure Chromebook-ean</translation> <translation id="2395616325548404795">Erregistratu da <ph name="DEVICE_TYPE" /> enpresak kudeatzeko, baina ez da bidali haren baliabideen eta kokapenaren gaineko informazioa. Eskuratu informazio hori gailuaren administrazio-kontsolatik eta idatz ezazu eskuz.</translation> <translation id="2396387085693598316">Administratzaileak "<ph name="EXTENSION_NAME" />" blokeatu du</translation> -<translation id="2396783860772170191">Idatzi lau digituko PIN kodea (0000-9999)</translation> +<translation id="2396783860772170191">Idatzi lau digituko PINa (0000-9999)</translation> <translation id="2398546389094871088">Gailuaren jatorrizko datuak berrezarrita ere ez dira kenduko eSIMaren profilak. Profilok eskuz kentzeko, joan <ph name="LINK_BEGIN" />Mugikorreko ezarpenak<ph name="LINK_END" /> atalera.</translation> <translation id="2399699884460174994">Jakinarazpenak aktibatuta daude</translation> <translation id="2399939490305346086">Segurtasun-giltzako saioa hasteko datuak</translation> <translation id="2400664245143453337">Berehala eguneratu behar da</translation> <translation id="2406153734066939945">Profil hau eta bertako datuak ezabatu nahi dituzu?</translation> <translation id="2408018932941436077">Txartela gordetzen</translation> -<translation id="2408955596600435184">Idatzi PIN kodea</translation> +<translation id="2408955596600435184">Idatzi PINa</translation> <translation id="241082044617551207">Plugin ezezaguna</translation> <translation id="2412593942846481727">Eguneratu egin daiteke</translation> <translation id="2412753904894530585">Kerberos</translation> @@ -1514,7 +1515,7 @@ <translation id="2635094637295383009">Twitter</translation> <translation id="2635276683026132559">Sinatzen</translation> <translation id="2636625531157955190">Chrome-k ezin du irudia atzitu.</translation> -<translation id="2637400434494156704">Okerreko PIN kodea. Saiakera bakarra geratzen zaizu.</translation> +<translation id="2637400434494156704">PINa okerra da. Saiakera bakarra geratzen zaizu.</translation> <translation id="2638662041295312666">Saioa hasteko irudia</translation> <translation id="2640549051766135490"><ph name="TITLE" /> (<ph name="DESC" />) albuma hautatu da</translation> <translation id="264083724974021997">Konektatu telefonora - Leihoa</translation> @@ -1909,7 +1910,7 @@ <translation id="3048917188684939573">Igorpenen eta gailuaren erregistroak</translation> <translation id="3051250416341590778">Pantailaren tamaina</translation> <translation id="3053013834507634016">Ziurtagiri-gakoaren erabilera</translation> -<translation id="3053273573829329829">Gaitu erabiltzailearen PIN kodea</translation> +<translation id="3053273573829329829">Gaitu erabiltzailearen PINa</translation> <translation id="3054766768827382232">Babesa desgaituz gero, gailu periferikoen errendimendua hobe daiteke, baina baliteke datu pertsonalak ikusgai geratzea gailuok baimenik gabe erabiltzen direnean.</translation> <translation id="3055590424724986000">Zuk aukeratutako hornitzaile batekin</translation> <translation id="3058498974290601450">Sinkronizazioa aktibatzeko, joan ezarpenetara</translation> @@ -2144,7 +2145,7 @@ <translation id="3336855445806447827">Ez dakit ziur</translation> <translation id="3337568642696914359">Ez eman protokoloak kudeatzeko baimena webguneei</translation> <translation id="3340620525920140773">Deskargatu da <ph name="FILE_NAME" />.</translation> -<translation id="3341699307020049241">Okerreko PIN kodea. <ph name="RETRIES" /> saiakera geratzen zaizkizu.</translation> +<translation id="3341699307020049241">PINa okerra da. <ph name="RETRIES" /> saiakera geratzen zaizkizu.</translation> <translation id="3341703758641437857">Eman fitxategien URLetan sartzeko baimena</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" luzapenak beste luzapen hau kendu nahi du.</translation> <translation id="3345135638360864351">Ezin izan zaio bidali <ph name="NAME" /> erabiltzaileari webgune hau atzitzeko eskaera. Saiatu berriro.</translation> @@ -2311,7 +2312,7 @@ <translation id="351152300840026870">Zabalera finkoko letra</translation> <translation id="3511528412952710609">Laburra</translation> <translation id="3514373592552233661">Sare bat baino gehiago badaude erabilgarri, hobetsitakoek izango dute lehentasuna</translation> -<translation id="3515983984924808886">Berrezarri nahi duzula berresteko, sakatu segurtasun-giltza. Ezabatu egingo da segurtasun-giltzan gordetako informazio guztia (PIN kodea barne).</translation> +<translation id="3515983984924808886">Berrezarri nahi duzula berresteko, sakatu segurtasun-giltza. Ezabatu egingo da segurtasun-giltzan gordetako informazio guztia (PINa barne).</translation> <translation id="3518985090088779359">Onartu eta jarraitu</translation> <translation id="3519564332031442870">Inprimatzeko backend zerbitzua</translation> <translation id="3519938335881974273">Gorde orria honela…</translation> @@ -2528,7 +2529,7 @@ <translation id="3753033997400164841">Gorde behin. Erabili edonon.</translation> <translation id="3755411799582650620"><ph name="PHONE_NAME" /> telefonoak <ph name="DEVICE_TYPE" /> ere desblokea dezake.</translation> <translation id="375636864092143889">Webgunea zure mikrofonoa erabiltzen ari da</translation> -<translation id="3756578970075173856">Ezarri PIN kodea</translation> +<translation id="3756578970075173856">Ezarri PINa</translation> <translation id="3757733214359997190">Ez da aurkitu webgunerik</translation> <translation id="375841316537350618">Proxyaren scripta deskargatzen…</translation> <translation id="3758842566811519622">Cookieak ezarri dira</translation> @@ -3105,7 +3106,7 @@ <translation id="4406883609789734330">Istanteko azpitituluak</translation> <translation id="4408599188496843485">&Laguntza</translation> <translation id="4409697491990005945">Marjinak</translation> -<translation id="4410545552906060960">Pasahitz baten ordez, erabili zenbaki bat (PIN kodea) gailua desblokeatzeko. PIN kodea geroago ezartzeko, joan Ezarpenak atalera.</translation> +<translation id="4410545552906060960">Pasahitz baten ordez, erabili zenbaki bat (PINa) gailua desblokeatzeko. PINa geroago ezartzeko, joan Ezarpenak atalera.</translation> <translation id="4411578466613447185">Kodearen sinatzailea</translation> <translation id="4412698727486357573">Laguntza-zentroa</translation> <translation id="4413088271097062326">Zer aplikazio erabili nahi duzu?</translation> @@ -3335,7 +3336,7 @@ <translation id="4646675363240786305">Atakak</translation> <translation id="4647090755847581616">&Itxi fitxa</translation> <translation id="4647283074445570750"><ph name="CURRENT_STEP" />/<ph name="TOTAL_STEPS" /> urratsa</translation> -<translation id="4647697156028544508">Idatzi "<ph name="DEVICE_NAME" />" gailuaren PIN kodea:</translation> +<translation id="4647697156028544508">Idatzi "<ph name="DEVICE_NAME" />" gailuko PINa:</translation> <translation id="4648491805942548247">Ez dago behar adina baimen</translation> <translation id="4650591383426000695">Deskonektatu telefonoa <ph name="DEVICE_TYPE" /> gailutik</translation> <translation id="4651484272688821107">Ezin izan da kargatu sareko osagaia demo moduko baliabideekin.</translation> @@ -3473,7 +3474,7 @@ <translation id="4827675678516992122">Ezin izan da konektatu</translation> <translation id="4827784381479890589">Ortografia-zuzentzaile hobetua Chrome arakatzailean (testua Google-ri bidaltzen zaio ortografia-iradokizunak jasotzeko)</translation> <translation id="482952334869563894"><ph name="VENDOR_ID" /> etxeko USB bidezko gailuak</translation> -<translation id="4829768588131278040">Konfiguratu PIN kodea</translation> +<translation id="4829768588131278040">Konfiguratu PINa</translation> <translation id="4830121310592638841">Eskatu zure baimena webguneren batek zure pantailetan leihoak ireki eta kokatu nahi dituenean</translation> <translation id="4830502475412647084">Sistema eragilearen eguneratzea instalatzen</translation> <translation id="4830573902900904548"><ph name="DEVICE_TYPE" /> gailuak ezin du konektatu Internetera <ph name="NETWORK_NAME" /> erabilita. Aukeratu beste sare bat. <ph name="LEARN_MORE_LINK_START" />Lortu informazio gehiago<ph name="LEARN_MORE_LINK_END" /></translation> @@ -3623,7 +3624,7 @@ <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> -<translation id="4986728572522335985">Segurtasun-giltzako datu guztiak ezabatuko dira, baita PIN kodea ere</translation> +<translation id="4986728572522335985">Segurtasun-giltzako datu guztiak ezabatuko dira, baita PINa ere</translation> <translation id="4988526792673242964">Orriak</translation> <translation id="49896407730300355">Biratu e&rlojuaren orratzen aurka</translation> <translation id="4989966318180235467">Ikuskatu &atzeko planoko orria</translation> @@ -3699,7 +3700,7 @@ <translation id="5074318175948309511">Orria berriro kargatu beharko da ezarpen berriek eragina izan dezaten.</translation> <translation id="5075910247684008552">Segurua ez den edukia modu lehenetsian blokeatzen da webgune seguruetan</translation> <translation id="5078638979202084724">Egin fitxa guztien laster-marka</translation> -<translation id="5078796286268621944">Okerreko PIN kodea</translation> +<translation id="5078796286268621944">Okerra da PINa</translation> <translation id="5079950360618752063">Erabili iradokitako pasahitza</translation> <translation id="508059534790499809">Freskatu Kerberos-eko zerbitzu-eskaera bat</translation> <translation id="5084230410268011727">Baimendu webguneei mugimenduaren eta argiaren sentsoreak erabiltzea</translation> @@ -3750,7 +3751,7 @@ <translation id="5136343472380336530">Egiaztatu bi gailuak desblokeatuta eta elkarrengandik hurbil daudela, eta Bluetooth-a aktibatuta daukatela. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation> <translation id="5137501176474113045">Ezabatu elementua</translation> <translation id="5139112070765735680">Bilatu "<ph name="QUERY_NAME" />" <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> erabilita</translation> -<translation id="5139823398361067371">Idatzi segurtasun-giltzaren PIN kodea. PIN kodea ez badakizu, segurtasun-giltza berrezarri egin beharko duzu.</translation> +<translation id="5139823398361067371">Idatzi segurtasun-giltzaren PINa. PINa ez badakizu, segurtasun-giltza berrezarri egin beharko duzu.</translation> <translation id="5139955368427980650">Ir&eki</translation> <translation id="5141421572306659464">Kontu nagusia</translation> <translation id="5142793792982256885">Ukipen-panelarekin gora/behera egiteko abiadura</translation> @@ -4159,7 +4160,7 @@ <translation id="5595485650161345191">Editatu helbidea</translation> <translation id="5596627076506792578">Aukera gehiago</translation> <translation id="5600706100022181951">Datu-konexioaren <ph name="UPDATE_SIZE_MB" /> MB erabilita deskargatuko da eguneratzea. Aurrera egin nahi duzu?</translation> -<translation id="5601503069213153581">PIN kodea</translation> +<translation id="5601503069213153581">PINa</translation> <translation id="5601823921345337195">Ezin da konektatu MIDI gailuetara</translation> <translation id="5602765853043467355">Ezabatu gailu honetako laster-markak, historia, pasahitzak eta beste</translation> <translation id="5605623530403479164">Beste bilatzaile batzuk</translation> @@ -4679,7 +4680,7 @@ <translation id="6196640612572343990">Blokeatu hirugarrenen cookieak</translation> <translation id="6196854373336333322"><ph name="EXTENSION_NAME" /> luzapenak zure proxy-ezarpenen kontrola hartu du; alegia, sarean egiten duzun edozer alda, honda edo zelata dezake. Aldaketa zergatik gertatu den ziur ez badakizu, baliteke aldaketa nahi ez izatea.</translation> <translation id="6198102561359457428">Amaitu saioa eta hasi berriro</translation> -<translation id="6198252989419008588">Aldatu PIN kodea</translation> +<translation id="6198252989419008588">Aldatu PINa</translation> <translation id="6202304368170870640">Gailua desblokeatzeko edo bertan saioa hasteko erabil dezakezu PINa.</translation> <translation id="6206311232642889873">Kop&iatu irudia</translation> <translation id="6207200176136643843">Berrezarri zoom-maila lehenetsia</translation> @@ -5059,7 +5060,7 @@ <translation id="661907246513853610">Webguneak zure kokapenaren jarraipena egin dezake</translation> <translation id="6619243162837544323">Sarearen egoera</translation> <translation id="6619801788773578757">Gehitu aplikazio espezializatu bat</translation> -<translation id="6619990499523117484">Berretsi PIN kodea</translation> +<translation id="6619990499523117484">Berretsi PINa</translation> <translation id="6621715389962683284">Ezin da konektatu sarera.</translation> <translation id="6622980291894852883">Jarraitu irudiak blokeatzen</translation> <translation id="6623589891453322342">fitxategi-kudeatzaileak</translation> @@ -5317,7 +5318,7 @@ <translation id="691106080621596509"><ph name="SITE_GROUP_NAME" /> webguneak, haren barneko webguneek eta hark instalatutako aplikazioak gorde dituzten datu eta cookie guztiak garbituko dira</translation> <translation id="6911324888870229398">Eten egin da sareko konexioa. Egiaztatu konektatuta zaudela edo probatu beste wifi-sare batekin.</translation> <translation id="6911734910326569517">Memoriaren erabilera</translation> -<translation id="6912007319859991306">Mugikorreko SIM txartelaren PIN kodea</translation> +<translation id="6912007319859991306">Mugikorreko SIMaren PINa</translation> <translation id="691289340230098384">Azpitituluen hobespenak</translation> <translation id="6914783257214138813">Esportatutako fitxategia ikus dezaketen guztiek ikusi ahal izango dituzte pasahitzak.</translation> <translation id="6916590542764765824">Kudeatu luzapenak</translation> @@ -5328,7 +5329,7 @@ <translation id="692114467174262153">Ezin izan da ireki <ph name="ALTERNATIVE_BROWSER_NAME" /></translation> <translation id="6922128026973287222">Aurreztu datuak eta arakatu bizkorrago Google-ren datu-aurrezlea erabilita. Informazio gehiago lortzeko, egin klik hemen.</translation> <translation id="6922570474772078053">Itzaltzen</translation> -<translation id="6922745772873733498">Inprimatzeko, idatzi PIN kodea</translation> +<translation id="6922745772873733498">Inprimatzeko, idatzi PINa</translation> <translation id="6922763095098248079">Zure erakundeak kudeatzen du gailua. Administratzaileek gailuko profil guztietako datuak atzi ditzakete.</translation> <translation id="6923132443355966645">Gora edo behera egitea / Sakatzea</translation> <translation id="6923633482430812883">Errore bat gertatu da fitxategiak partekatzeko sareko gailua muntatzean. Ziurtatu konektatu nahi duzun zerbitzariak SMBv2 edo bertsio berriagoak onartzen dituela.</translation> @@ -5584,7 +5585,7 @@ <translation id="7210499381659830293">Luzapen bidezko inprimagailuak</translation> <translation id="7211769023302873228">Esleipena berresteko eta irteteko, sakatu "<ph name="CURRENTKEY" />" berriro.</translation> <translation id="7211783048245131419">Oraindik ez da esleitu erabilerraztasun-etengailurik</translation> -<translation id="7212097698621322584">PIN kodea aldatzeko, idatzi unekoa lehendabizi. Ez badakizu PINa zein den, segurtasun-giltza berrezarri beharko duzu, eta beste PIN bat sortu.</translation> +<translation id="7212097698621322584">PINa aldatzeko, idatzi unekoa lehendabizi. Ez badakizu PINa zein den, segurtasun-giltza berrezarri beharko duzu, eta beste PIN bat sortu.</translation> <translation id="7213903639823314449">Helbide-barran egiten diren bilaketetarako erabiltzen den bilatzailea</translation> <translation id="7216595297012131718">Zure hobespenen arabera ordenatuko dira hizkuntzak</translation> <translation id="7219473482981809164">Deskarga daitezkeen profil bat baino gehiago aurkitu ditugu. Aurrera egin baino lehen, hautatu deskargatu nahi dituzunak.</translation> @@ -5628,7 +5629,7 @@ <translation id="725758059478686223">Inprimaketa-zerbitzua</translation> <translation id="7257666756905341374">Irakurri kopiatzen eta itsasten dituzun datuak</translation> <translation id="7258225044283673131">Aplikazioak ez du erantzuten. Ixteko, hautatu "Behartu ixtera".</translation> -<translation id="7258697411818564379">Gehitu da PIN kodea</translation> +<translation id="7258697411818564379">Gehitu da PINa</translation> <translation id="7262004276116528033">Saioa hasteko zerbitzuaren ostalaria <ph name="SAML_DOMAIN" /> da</translation> <translation id="7267044199012331848">Ezin izan da instalatu makina birtuala. Saiatu berriro edo jarri harremanetan administratzailearekin. Errore-kodea: <ph name="ERROR_CODE" />.</translation> <translation id="7267875682732693301">Jarraitu hatza jasotzen hatz-markaren zati guztiak gehitzeko</translation> @@ -5656,6 +5657,7 @@ <translation id="729583233778673644">Baimendu AES eta RC4 enkriptatzeak. Aukera honek arriskua areagotzen du, RC4 enkriptatze-kateak ez baitira seguruak.</translation> <translation id="729761647156315797">Aukeratu hizkuntza eta teklatua</translation> <translation id="7297726121602187087">Berde iluna</translation> +<translation id="7298195798382681320">Gomendatuak</translation> <translation id="7299337219131431707">Gaitu gonbidatuek arakatzeko aukera</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Baliteke aplikazio honek Chrome-ri behar bezala funtzionatzen ez uztea.}other{Baliteke aplikazio hauek Chrome-ri behar bezala funtzionatzen ez uztea.}}</translation> <translation id="7303281435234579599">Arazoren bat izan da demo modua konfiguratzean.</translation> @@ -5998,7 +6000,7 @@ <translation id="7665082356120621510">Gorde tamaina</translation> <translation id="7665369617277396874">Gehitu kontu bat</translation> <translation id="7668002322287525834">{NUM_WEEKS,plural, =1{Itzuli <ph name="DEVICE_TYPE" /> gailua {NUM_WEEKS} asteko epean}other{Itzuli <ph name="DEVICE_TYPE" /> gailua {NUM_WEEKS} asteko epean}}</translation> -<translation id="7669825497510425694">{NUM_ATTEMPTS,plural, =1{Okerreko PIN kodea. Saiakera bakarra geratzen zaizu.}other{Okerreko PIN kodea. # saiakera geratzen zaizkizu.}}</translation> +<translation id="7669825497510425694">{NUM_ATTEMPTS,plural, =1{PINa okerra da. Saiakera bakarra geratzen zaizu.}other{PINa okerra da. # saiakera geratzen zaizkizu.}}</translation> <translation id="7671130400130574146">Erabili sistemaren izenaren barra eta ertzak</translation> <translation id="767127784612208024">Ukitu berrezarri nahi duzula berresteko</translation> <translation id="767147716926917172">Diagnostikoak eta erabilera-datuak automatikoki bidaltzen dizkio Google-ri</translation> @@ -6676,7 +6678,7 @@ <translation id="8393700583063109961">Bidali mezua</translation> <translation id="8397825320644530257">Deskonektatu konektatutako telefonoa</translation> <translation id="8398877366907290961">Jarraitu, hala ere</translation> -<translation id="8401432541486058167">Eman txartel adimendunarekin lotutako PIN kodea.</translation> +<translation id="8401432541486058167">Eman txartel adimendunarekin lotutako PINa.</translation> <translation id="8404893580027489425"><ph name="DEVICE_TYPE" /> gailuaren eskuineko aldean dago hatz-marken sentsorea. Uki ezazu edozein hatzekin leuntasunez.</translation> <translation id="8405046151008197676">Irakurri azken eguneratzeari buruzko datu aipagarriak</translation> <translation id="8407199357649073301">Erregistro-maila:</translation> @@ -7252,6 +7254,7 @@ <translation id="9026852570893462412">Baliteke prozesuak minutu batzuk behar izatea. Makina birtuala deskargatzen.</translation> <translation id="9027459031423301635">Ireki esteka &fitxa berri batean</translation> <translation id="9030515284705930323">Zure erakundeak ez dizu gaitu kontuan Google Play Store erabiltzeko aukera. Informazio gehiago lortzeko, jarri administratzailearekin harremanetan.</translation> +<translation id="9030754204056345429">Bizkorragoa</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> ez da onartzen jada</translation> <translation id="9031549947500880805">Egin babeskopiak Google Drive-n. Leheneratu gailuaren datuak edo aldatu gailua edonoiz. Aplikazioetako datuak sartzen dira babeskopietan.</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index 0a4de9e..5eacbcc 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">امکان اتصال به پراکسی وجود ندارد</translation> <translation id="1405779994569073824">خراب.</translation> <translation id="1406500794671479665">در حال تأیید...</translation> +<translation id="1407069428457324124">طرح زمینه تیره</translation> <translation id="1407135791313364759">باز کردن همه</translation> <translation id="140723521119632973">فعالسازی شبکه داده تلفن همراه</translation> <translation id="1407489512183974736">برش خورده در مرکز</translation> @@ -5670,6 +5671,7 @@ <translation id="729583233778673644">مجاز کردن رمزگذاری AES و RC4. استفاده از این گزینه احتمال خطر را بالا میبرد، زیرا رمزهای RC4 امن نیست.</translation> <translation id="729761647156315797">انتخاب زبان و صفحهکلید</translation> <translation id="7297726121602187087">سبز تیره</translation> +<translation id="7298195798382681320">توصیه میشود</translation> <translation id="7299337219131431707">فعال کردن مرور بهعنوان مهمان</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{این برنامه میتواند مانع عملکرد درست Chrome شود.}one{این برنامهها میتوانند مانع عملکرد درست Chrome شوند.}other{این برنامهها میتوانند مانع عملکرد درست Chrome شوند.}}</translation> <translation id="7303281435234579599">وای! هنگام راهاندازی حالت نمایشی، مشکلی پیش آمد.</translation> @@ -7269,6 +7271,7 @@ <translation id="9026852570893462412">این فرایند ممکن است چند دقیقه طول بکشد. درحال بارگیری دستگاه مجازی.</translation> <translation id="9027459031423301635">باز کردن پیوند در &برگه جدید</translation> <translation id="9030515284705930323">سازمان شما فروشگاه Google Play را برای حسابتان فعال نکرده است. برای اطلاعات بیشتر با سرپرستتان تماس بگیرید.</translation> +<translation id="9030754204056345429">سریعتر</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> دیگر پشتیبانی نمیشود</translation> <translation id="9031549947500880805">در Google Drive پشتیبانگیری کنید. بهآسانی دادههای خود را بازیابی کنید یا هرزمان خواستید دستگاهتان را عوض کنید. نسخه پشتیبان شما حاوی دادههای برنامه است.</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index cbc84885..010e7d6 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Välityspalvelimeen ei saada yhteyttä</translation> <translation id="1405779994569073824">Kaatui</translation> <translation id="1406500794671479665">Vahvistetaan...</translation> +<translation id="1407069428457324124">Tumma teema</translation> <translation id="1407135791313364759">Avaa kaikki</translation> <translation id="140723521119632973">Mobiiliyhteyden aktivointi</translation> <translation id="1407489512183974736">Rajaa keskelle</translation> @@ -5669,6 +5670,7 @@ <translation id="729583233778673644">Salli AES- ja RC4-salaus. Tämä valinta lisää riskejä, koska RC4-salaustekniikat ovat suojaamattomia.</translation> <translation id="729761647156315797">Valitse näppäimistö ja kieli</translation> <translation id="7297726121602187087">Tummanvihreä</translation> +<translation id="7298195798382681320">Suositus</translation> <translation id="7299337219131431707">Ota vierailijaselaus käyttöön</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Tämä sovellus saattaa estää Chromea toimimasta oikein}other{Nämä sovellukset saattavat estää Chromea toimimasta oikein}}</translation> <translation id="7303281435234579599">Hups, jotain meni vikaan esittelytilan määrityksessä.</translation> @@ -7266,6 +7268,7 @@ <translation id="9026852570893462412">Tämä voi kestää muutaman minuutin. Ladataan virtuaalikonetta.</translation> <translation id="9027459031423301635">Avaa linkki uudessa &välilehdessä</translation> <translation id="9030515284705930323">Organisaatiosi ei ole sallinut tilillesi Google Play Kaupan käyttöä. Kysy lisätietoja järjestelmänvalvojaltasi.</translation> +<translation id="9030754204056345429">Nopeampi</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> ei ole enää tuettu</translation> <translation id="9031549947500880805">Varmuuskopioi Google Driveen. Palauta tietosi tai ota uusi laite käyttöön kätevästi milloin tahansa. Varmuuskopio sisältää sovellusdataa.</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index 40969af8..a49df98 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">Hindi makakonekta sa proxy</translation> <translation id="1405779994569073824">Nag-crash.</translation> <translation id="1406500794671479665">Bine-verify...</translation> +<translation id="1407069428457324124">Madilim na tema</translation> <translation id="1407135791313364759">Buksan lahat</translation> <translation id="140723521119632973">Pag-activate ng Cellular Network</translation> <translation id="1407489512183974736">Gitnang Naka-crop</translation> @@ -5674,6 +5675,7 @@ <translation id="729583233778673644">Payagan ang AES at RC4 encryption. Magiging mas mapanganib para sa iyo kapag ginamit ang opsyong ito, dahil hindi secure ang mga RC4 cipher.</translation> <translation id="729761647156315797">Piliin ang iyong wika at keyboard</translation> <translation id="7297726121602187087">Dark green</translation> +<translation id="7298195798382681320">Inirerekomenda</translation> <translation id="7299337219131431707">I-enable ang Pagba-browse ng bisita</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Maaaring hindi gumana nang maayos ang Chrome dahil sa application na ito.}one{Maaaring hindi gumana nang maayos ang Chrome dahil sa mga application na ito.}other{Maaaring hindi gumana nang maayos ang Chrome dahil sa mga application na ito.}}</translation> <translation id="7303281435234579599">Naku! Nagkaproblema habang sine-set up ang demo mode.</translation> @@ -7275,6 +7277,7 @@ <translation id="9026852570893462412">Maaaring abutin nang ilang minuto ang prosesong ito. Dina-download ang virtual machine.</translation> <translation id="9027459031423301635">Buksan ang Link sa Bagong &Tab</translation> <translation id="9030515284705930323">Hindi na-enable ng iyong organisasyon ang Google Play Store para sa iyong account. Makipag-ugnayan sa iyong administrator para sa higit pang impormasyon.</translation> +<translation id="9030754204056345429">Mas mabilis</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Hindi na sinusuportahan ang <ph name="PLUGIN_NAME" /></translation> <translation id="9031549947500880805">I-back up sa Google Drive. Walang hirap na i-restore ang iyong data o magpalit ng device anumang oras. Kasama sa iyong backup ang data ng app.</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb index 3318a33..7a544ed8 100644 --- a/chrome/app/resources/generated_resources_fr-CA.xtb +++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -360,6 +360,7 @@ <translation id="1403222014593521787">Échec de connexion au serveur mandataire</translation> <translation id="1405779994569073824">Planté.</translation> <translation id="1406500794671479665">Vérification en cours…</translation> +<translation id="1407069428457324124">Thème sombre</translation> <translation id="1407135791313364759">Tout ouvrir</translation> <translation id="140723521119632973">Activation cellulaire</translation> <translation id="1407489512183974736">Rogner et centrer</translation> @@ -5659,6 +5660,7 @@ <translation id="729583233778673644">Autoriser le chiffrement AES et RC4. L'utilisation de cette option augmente les risques, car les chiffrements RC4 ne sont pas sécurisés.</translation> <translation id="729761647156315797">Choisir votre langue et votre clavier</translation> <translation id="7297726121602187087">Vert foncé</translation> +<translation id="7298195798382681320">Recommandé</translation> <translation id="7299337219131431707">Activer la navigation en tant qu'invité</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Cette application peut empêcher Chrome de fonctionner correctement.}one{Cette application peut empêcher Chrome de fonctionner correctement.}other{Ces applications peuvent empêcher Chrome de fonctionner correctement.}}</translation> <translation id="7303281435234579599">Oups! Une erreur s'est produite lors de la configuration du mode démo.</translation> @@ -7257,6 +7259,7 @@ <translation id="9026852570893462412">Ce processus peut prendre quelques minutes. Téléchargement de la machine virtuelle en cours…</translation> <translation id="9027459031423301635">Ouvrir le lien dans un nouvel ongle&t</translation> <translation id="9030515284705930323">Votre entreprise n'a pas activé la boutique Google Play Store pour votre compte. Communiquez avec votre administrateur pour en savoir plus.</translation> +<translation id="9030754204056345429">Plus rapide</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Le plugiciel <ph name="PLUGIN_NAME" /> n'est plus pris en charge</translation> <translation id="9031549947500880805">Sauvegarder sur Google Disque. Restaurez facilement vos données ou changez d'appareil à tout moment. Votre sauvegarde inclut les données des applications.</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 7ae34219..189b042 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -360,6 +360,7 @@ <translation id="1403222014593521787">Impossible de se connecter au proxy</translation> <translation id="1405779994569073824">A planté.</translation> <translation id="1406500794671479665">Vérification en cours…</translation> +<translation id="1407069428457324124">Thème sombre</translation> <translation id="1407135791313364759">Tout ouvrir</translation> <translation id="140723521119632973">Activation mobile</translation> <translation id="1407489512183974736">Recadrer et centrer</translation> @@ -1215,6 +1216,7 @@ <translation id="2300383962156589922">Personnaliser et configurer <ph name="APP_NAME" /></translation> <translation id="2300578660547687840">Raccourcis clavier pour les mots clés de recherche</translation> <translation id="2301382460326681002">Le répertoire racine de l'extension est incorrect.</translation> +<translation id="2301402091755573488">Onglet partagé</translation> <translation id="23030561267973084">"<ph name="EXTENSION_NAME" />" a demandé des autorisations supplémentaires.</translation> <translation id="23055578400314116">Sélectionnez un nom d'utilisateur</translation> <translation id="2307462900900812319">Configurer le réseau</translation> @@ -1492,6 +1494,7 @@ <translation id="2612676031748830579">Numéro de carte</translation> <translation id="2613535083491958306"><ph name="ORIGIN" /> pourra modifier <ph name="FILENAME" /></translation> <translation id="2616366145935564096">Accéder aux données du site <ph name="WEBSITE_1" /> et les modifier</translation> +<translation id="2618274688675613222">Appuyez sur le bouton Suivant pour poursuivre la configuration ou sur le bouton Précédent pour modifier la sélection.</translation> <translation id="2618797463720777311">Configurer le Partage à proximité</translation> <translation id="2619761439309613843">Actualisation quotidienne</translation> <translation id="2620215283731032047">Impossible de télécharger <ph name="FILE_NAME" /> de manière sécurisée.</translation> @@ -2888,6 +2891,7 @@ <translation id="4120817667028078560">Chemin d'accès trop long.</translation> <translation id="4124823734405044952">Votre clé de sécurité a été réinitialisée</translation> <translation id="4124935795427217608">Licorne</translation> +<translation id="4126916490446791914">Recherche automatique activée</translation> <translation id="412730574613779332">Super-héros</translation> <translation id="4130199216115862831">Journal d'appareils</translation> <translation id="4130207949184424187">Cette extension a modifié la page qui s'affiche lorsque vous effectuez une recherche dans l'omnibox.</translation> @@ -3270,6 +3274,7 @@ Si votre enfant utilise un Chromebook à l'école et que vous souhaitez qu'il ait accès aux mêmes ressources à la maison pour faire ses devoirs, veuillez vous déconnecter du compte Family Link, puis vous connecter au compte scolaire depuis la page des comptes de Chrome OS. Remarque : le contrôle parental Family Link ne s'applique pas dans ce cas.<br><br> Si votre enfant n'utilise pas un Chromebook à l'école ou si vous préférez gérer son activité à la maison avec Family Link, veuillez cliquer sur le bouton "Suivant" ci-dessous pour ajouter un compte scolaire à ce profil.</translation> <translation id="4576541033847873020">Associer un appareil Bluetooth</translation> +<translation id="4576763597586015380">Pour continuer à enregistrer des mots de passe dans votre compte Google, confirmez votre identité</translation> <translation id="4579453506923101210">Supprimer le téléphone connecté</translation> <translation id="4579581181964204535">Impossible de caster <ph name="HOST_NAME" />.</translation> <translation id="4581774856936278355">Erreur lors de la restauration de Linux</translation> @@ -4991,6 +4996,7 @@ <translation id="6538098297809675636">Erreur lors de la détection du code</translation> <translation id="653920215766444089">Recherche du dispositif de pointage…</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Remarque<ph name="END_BOLD" /> : N'activez cette option que si vous êtes sûr de ce que vous faites ou si vous avez été invité à le faire. En effet, la collecte d'informations est susceptible de diminuer les performances.</translation> +<translation id="6540672086173674880">Google peut utiliser votre historique de navigation pour personnaliser la recherche et d'autres services Google. Vous pouvez modifier ce paramètre à tout moment sur myaccount.google.com/activitycontrols/search</translation> <translation id="6541638731489116978">L'accès à vos capteurs de mouvement est bloqué pour ce site.</translation> <translation id="6545665334409411530">Fréquence de répétition</translation> <translation id="6545864417968258051">Recherche Bluetooth</translation> @@ -5654,6 +5660,7 @@ <translation id="729583233778673644">Autorisez le chiffrement AES et RC4. L'activation de cette option est risquée, car les algorithmes de chiffrement RC4 ne sont pas sécurisés.</translation> <translation id="729761647156315797">Sélectionnez votre langue et votre clavier</translation> <translation id="7297726121602187087">Vert foncé</translation> +<translation id="7298195798382681320">Recommandé</translation> <translation id="7299337219131431707">Activer la navigation en tant qu'invité</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Cette application peut empêcher Chrome de fonctionner correctement.}one{Cette application peut empêcher Chrome de fonctionner correctement.}other{Ces applications peuvent empêcher Chrome de fonctionner correctement.}}</translation> <translation id="7303281435234579599">Petit problème… Une erreur s'est produite lors de la configuration du mode de démonstration.</translation> @@ -5876,6 +5883,7 @@ <translation id="754207240458482646">Ce réseau est synchronisé avec d'autres appareils associés à votre compte. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Activer les fonctionnalités de débogage sur cet appareil <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="7543525346216957623">Demande à tes parents</translation> +<translation id="7546012169463147344">La recherche automatique se focalisera automatiquement sur les différents éléments à l'écran et les parcourra. Lorsqu'un élément est sélectionné, appuyez sur la touche Sélectionner que vous avez désignée pour l'activer.</translation> <translation id="7547317915858803630">Avertissement : Vos paramètres <ph name="PRODUCT_NAME" /> sont enregistrés sur un lecteur réseau, ce qui peut entraîner des ralentissements, des plantages, voire la perte de données.</translation> <translation id="7548856833046333824">Limonade</translation> <translation id="7550830279652415241">favoris_<ph name="DATESTAMP" />.html</translation> @@ -6846,6 +6854,7 @@ <translation id="8621866727807194849">Un logiciel malveillant a été détecté sur votre ordinateur. Chrome va le supprimer, restaurer vos paramètres et désactiver les extensions. Ceci permettra à votre navigateur de fonctionner à nouveau normalement.</translation> <translation id="8621979332865976405">Partager l'intégralité de votre écran</translation> <translation id="8624354461147303341">Obtenir des remises</translation> +<translation id="8624944202475729958"><ph name="PROFILE_NAME" /> : <ph name="ERROR_DESCRIPTION" /></translation> <translation id="862542460444371744">&Extensions</translation> <translation id="8625663000550647058">Non autorisé à utiliser votre micro</translation> <translation id="8625916342247441948">Ne pas autoriser les sites à se connecter à des appareils HID</translation> @@ -6910,6 +6919,7 @@ <translation id="8677212948402625567">Tout réduire...</translation> <translation id="867767487203716855">Prochaine mise à jour</translation> <translation id="8677859815076891398">Aucun album. Créez-en un dans <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" />.</translation> +<translation id="8678538439778360739">Les données ont été chiffrées avec votre phrase secrète de synchronisation le <ph name="TIME" /> Cela ne s'applique pas aux modes de paiement ni aux adresses Google Pay.</translation> <translation id="8678582529642151449">Onglets non réduits</translation> <translation id="8678933587484842200">Comment souhaitez-vous que cette application soit lancée ?</translation> <translation id="8680251145628383637">Connectez-vous pour retrouver vos favoris, votre historique, vos mots de passe et d'autres paramètres sur tous vos appareils. De plus, vous serez automatiquement connecté à vos services Google.</translation> @@ -7250,6 +7260,7 @@ <translation id="9026852570893462412">Cette opération peut prendre quelques minutes. Téléchargement de la machine virtuelle…</translation> <translation id="9027459031423301635">Ouvrir le lien dans un nouvel ongle&t</translation> <translation id="9030515284705930323">Votre organisation n'a pas activé le Google Play Store pour votre compte. Contactez votre administrateur pour plus d'informations.</translation> +<translation id="9030754204056345429">Plus rapide</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Le plug-in <ph name="PLUGIN_NAME" /> n'est plus compatible</translation> <translation id="9031549947500880805">Sauvegarder dans Google Drive. Restaurez vos données ou changez d'appareil facilement et à tout moment. Les données des applications sont également sauvegardées.</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 02d4ba9..15205a2 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">Non se puido establecer conexión co proxy</translation> <translation id="1405779994569073824">Produciuse un fallo.</translation> <translation id="1406500794671479665">Verificando...</translation> +<translation id="1407069428457324124">Tema escuro</translation> <translation id="1407135791313364759">Abrir todo</translation> <translation id="140723521119632973">Activación móbil</translation> <translation id="1407489512183974736">Centrar fondo de pantalla recortado</translation> @@ -5655,6 +5656,7 @@ <translation id="729583233778673644">Permite os encriptados AES e RC4. Esta opción aumenta o risco, porque as cifraxes de RC4 non son seguras.</translation> <translation id="729761647156315797">Escolle un idioma e un teclado</translation> <translation id="7297726121602187087">Verde escuro</translation> +<translation id="7298195798382681320">Recomendada</translation> <translation id="7299337219131431707">Activar a navegación como invitado</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Esta aplicación podería impedir que Chrome funcione correctamente.}other{Estas aplicacións poderían impedir que Chrome funcione correctamente.}}</translation> <translation id="7303281435234579599">Produciuse un erro ao configurar o modo de demostración.</translation> @@ -7251,6 +7253,7 @@ <translation id="9026852570893462412">Este proceso pode tardar uns minutos. Descargando a máquina virtual.</translation> <translation id="9027459031423301635">Abrir ligazón nunha pes&tana nova</translation> <translation id="9030515284705930323">A organización non activou Google Play Store para a túa conta. Contacta co administrador para obter máis información.</translation> +<translation id="9030754204056345429">Máis rápida</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> xa non se admite</translation> <translation id="9031549947500880805">Facer copia de seguranza en Drive. Restaura os teus datos facilmente ou cambia de dispositivo en calquera momento. A túa copia de seguranza inclúe os datos das aplicacións.</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 25862bb0..fe87cd869 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -360,6 +360,7 @@ <translation id="1403222014593521787">પ્રૉક્સી સાથે કનેક્ટ કરી શકાયું નથી</translation> <translation id="1405779994569073824">ક્રૅશ થયું</translation> <translation id="1406500794671479665">ચકાસી રહ્યું છે...</translation> +<translation id="1407069428457324124">ઘેરી થીમ</translation> <translation id="1407135791313364759">બધું ખોલો</translation> <translation id="140723521119632973">સેલ્યુલર સક્રિયકરણ</translation> <translation id="1407489512183974736">મધ્યમાં કાપેલું</translation> @@ -1212,6 +1213,7 @@ <translation id="2300383962156589922"><ph name="APP_NAME" />ને કસ્ટમાઇઝ કરો અને નિયંત્રિત કરો</translation> <translation id="2300578660547687840">શોધ કીવર્ડ માટે કીબોર્ડ શૉર્ટકટ</translation> <translation id="2301382460326681002">એક્સ્ટેંશન રૂટ ડિરેક્ટરી અમાન્ય છે.</translation> +<translation id="2301402091755573488">શેર કરેલી ટૅબ</translation> <translation id="23030561267973084">"<ph name="EXTENSION_NAME" />" એ અતિરિક્ત પરવાનગીઓની વિનંતી કરી છે.</translation> <translation id="23055578400314116">વપરાશકર્તાનું નામ પસંદ કરો</translation> <translation id="2307462900900812319">નેટવર્ક ગોઠવો</translation> @@ -1489,6 +1491,7 @@ <translation id="2612676031748830579">કાર્ડ નંબર</translation> <translation id="2613535083491958306"><ph name="ORIGIN" /> <ph name="FILENAME" />માં ફેરફાર કરી શકશે</translation> <translation id="2616366145935564096"><ph name="WEBSITE_1" /> પર તમારો ડેટા વાંચો અને બદલો</translation> +<translation id="2618274688675613222">સેટઅપ ચાલુ રાખવા માટે, 'આગલું' બટન સક્રિય કરો અથવા "પસંદ કરો" સ્વિચની સોંપણી બદલવા માટે 'પાછલું' બટન સક્રિય કરો.</translation> <translation id="2618797463720777311">'નજીકના શેર'નું સેટઅપ કરો</translation> <translation id="2619761439309613843">દરરોજ રિફ્રેશ કરો</translation> <translation id="2620215283731032047"><ph name="FILE_NAME" /> સુરક્ષિતપણે ડાઉનલોડ કરી શકાતી નથી.</translation> @@ -2884,6 +2887,7 @@ <translation id="4120817667028078560">પાથ ખૂબ લાંબો છે</translation> <translation id="4124823734405044952">તમારો સુરક્ષા કોડ રીસેટ કરવામાં આવ્યો છે</translation> <translation id="4124935795427217608">યુનિકોર્ન - એક કાલ્પનિક પાંખવાળો ઘોડો</translation> +<translation id="4126916490446791914">ઑટો-સ્કૅનની સુવિધા ચાલુ કરી</translation> <translation id="412730574613779332">સ્પાંડેક્સ</translation> <translation id="4130199216115862831">ઉપકરણ લૉગ</translation> <translation id="4130207949184424187">જ્યારે તમે ઑમ્નિબૉક્સથી શોધ કરો છો ત્યારે જે પૃષ્ઠ દર્શાવવામાં આવે છે તે આ એક્સટેન્શને બદલ્યું છે.</translation> @@ -3266,6 +3270,7 @@ જો તમારું બાળક સ્કૂલમાં Chromebookનો ઉપયોગ કરતું હોય અને તમે તમારા બાળકને બધા જરૂરી સ્કૂલવર્કનો ઍક્સેસ મળતો હોવાની ખાતરી કરવા માટે ઘરે શાળા જેવો અનુભવ રચવા ઇચ્છતા હો, તો કૃપા કરીને આ Family Link એકાઉન્ટમાંથી સાઇન આઉટ કરીને Chrome OS એકાઉન્ટ પેજમાંથી સ્કૂલના એકાઉન્ટમાં સાઇન ઇન કરો (નોંધ: Family Linkના માતાપિતા યોગ્ય નિયંત્રણો લાગુ થશે નહીં).<br><br> જો તમારું બાળક સ્કૂલમાં Chromebookનો ઉપયોગ કરતું ન હોય અથવા તમે ઘરે Family Linkનો ઉપયોગ કરીને બાળકના એકાઉન્ટને મેનેજ કરવા ઇચ્છતા હો, તો આ પ્રોફાઇલમાં સ્કૂલનું એકાઉન્ટ ઉમેરવા માટે કૃપા કરીને નીચે આપેલા આગળ બટન પર ક્લિક કરો.</translation> <translation id="4576541033847873020">Bluetooth ડિવાઇસની જોડી કરો</translation> +<translation id="4576763597586015380">તમારા Google એકાઉન્ટમાં પાસવર્ડ સાચવવાનું ચાલુ રાખવા માટે, આ તમે જ હોવાની ચકાસણી કરો</translation> <translation id="4579453506923101210">કનેક્ટ કરેલા ફોનથી છૂટા પડો</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> કાસ્ટ કરવામાં અસમર્થ.</translation> <translation id="4581774856936278355">Linuxની પુનઃસ્થાપના કરતી વખતે ભૂલ આવી</translation> @@ -4986,6 +4991,7 @@ <translation id="6538098297809675636">કોડની ભાળ મેળવવામાં ભૂલ આવી</translation> <translation id="653920215766444089">પૉઇન્ટિંગ ડિવાઇસ શોધી રહ્યાં છીએ</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" /> નોંધ: <ph name="END_BOLD" /> જો તમે શું કરી રહ્યાં છો તે તમે જાણતા હો અથવા જો તમને તેવું કરવા માટે કહેવામાં આવ્યું હોય તો જ ચાલુ કરો, કારણ કે ડેટાનો સંગ્રહ પ્રદર્શન પર અસર કરી શકે છે.</translation> +<translation id="6540672086173674880">Search અને Googleની અન્ય સેવાઓને મનપસંદ બનાવવા માટે, Google તમારા બ્રાઉઝિંગ ઇતિહાસનો ઉપયોગ કરી શકે છે. તમે આને કોઈપણ સમયે myaccount.google.com/activitycontrols/search પર બદલી શકો છો</translation> <translation id="6541638731489116978">આ સાઇટને તમારા મોશન સેન્સરને ઍક્સેસ કરવાથી બ્લૉક કરવામાં આવી છે.</translation> <translation id="6545665334409411530">પુનરાવર્તન રેટ</translation> <translation id="6545864417968258051">બ્લૂટૂથ સ્કૅનિંગ</translation> @@ -5649,6 +5655,7 @@ <translation id="729583233778673644">AES અને RC4 એન્ક્રિપ્શનની મંજૂરી આપો. આનાથી વિકલ્પનો ઉપયોગ કરવાનું તમારું જોખમ વધે છે, કારણ કે RC4 સાઇફર અસુરક્ષિત હોય છે.</translation> <translation id="729761647156315797">તમારી ભાષા અને કીબોર્ડ પસંદ કરો</translation> <translation id="7297726121602187087">ઘેરો લીલો</translation> +<translation id="7298195798382681320">ભલામણ કરેલ</translation> <translation id="7299337219131431707">અતિથિ બ્રાઉઝિંગ ચાલુ કરો</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{આ ઍપ્લિકેશન Chromeને યોગ્ય રીતે કાર્ય કરવાથી અટકાવી શકે છે.}one{આ ઍપ્લિકેશનો Chromeને યોગ્ય રીતે કાર્ય કરવાથી અટકાવી શકે છે.}other{આ ઍપ્લિકેશનો Chromeને યોગ્ય રીતે કાર્ય કરવાથી અટકાવી શકે છે.}}</translation> <translation id="7303281435234579599">અરેરે! ડેમો મોડ સેટઅપ કરતી વખતે કંઈક ખોટું થયું હતું.</translation> @@ -5871,6 +5878,7 @@ <translation id="754207240458482646">તમારા એકાઉન્ટ પરના અન્ય ડિવાઇસ સાથે સિંક કરેલું. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation> <translation id="7543104066686362383">આ <ph name="IDS_SHORT_PRODUCT_NAME" /> ડિવાઇસ પર ડિબગીંગ સુવિધાઓ ચાલુ કરો</translation> <translation id="7543525346216957623">તમારા માતા-પિતાને કહો</translation> +<translation id="7546012169463147344">ઑટો-સ્કૅનની સુવિધા સ્ક્રીન પરની બધી આઇટમ પર ઑટોમૅટિક રીતે વારાફરતી જશે અને તેના પર ફોકસ કરશે. જ્યારે કોઈ આઇટમ ફોકસ કરવામાં આવી હોય, ત્યારે તેને સક્રિય કરવા માટે તમે હમણાં જ જે "પસંદ કરો" કીની સોંપણી કરી, તેને દબાવો.</translation> <translation id="7547317915858803630">ચેતવણી: <ph name="PRODUCT_NAME" /> સેટિંગ્સ નેટવર્ક ડ્રાઇવ પર સ્ટોર કરી છે. આનું પરિણામ ધીમી ગતિ, ક્રેશેસ અથવા ડેટાનું નુકસાન પણ હોઈ શકે છે.</translation> <translation id="7548856833046333824">લેમોનેડ</translation> <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation> @@ -6835,6 +6843,7 @@ <translation id="8621866727807194849">તમારા કમ્પ્યુટરમાં નુકસાનકારક સૉફ્ટવેર છે. Chrome તે કાઢી નાખે છે, તમારી સેટિંગ પાછી મેળવે છે અને એક્સ્ટેંશન બંધ કરે છે. તેને કારણે તમારું બ્રાઉઝર ફરી સામાન્ય રીતે કામ કરતું થઈ જશે.</translation> <translation id="8621979332865976405">તમારી સંપૂર્ણ સ્ક્રીન શેર કરો</translation> <translation id="8624354461147303341">છૂટ મેળવો</translation> +<translation id="8624944202475729958"><ph name="PROFILE_NAME" />: <ph name="ERROR_DESCRIPTION" /></translation> <translation id="862542460444371744">&એક્સ્ટેન્શન્સ</translation> <translation id="8625663000550647058">તમારા માઇક્રોફોનનો ઉપયોગ કરવાની મંજૂરી નથી</translation> <translation id="8625916342247441948">સાઇટને HID ડિવાઇસ સાથે કનેક્ટ કરવાની મંજૂરી આપશો નહીં</translation> @@ -6898,6 +6907,7 @@ <translation id="8677212948402625567">બધાને સંકુચિત કરો...</translation> <translation id="867767487203716855">આગલી અપડેટ</translation> <translation id="8677859815076891398">કોઈ આલ્બમ નથી. <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" />માં કોઈ આલ્બમ બનાવો.</translation> +<translation id="8678538439778360739"><ph name="TIME" /> વાગ્યે તમારા સિંક પાસફ્રેઝ વડે ડેટા એન્ક્રિપ્ટ કરવામાં આવ્યો હતો. આમાં Google Payની ચુકવણી પદ્ધતિઓ અને ઍડ્રેસનો સમાવેશ હોતો નથી.</translation> <translation id="8678582529642151449">ટૅબ સંકોચાતી નથી</translation> <translation id="8678933587484842200">તમે આ ઍપ્લિકેશન કેવી રીતે લૉન્ચ કરવાનું પસંદ કરશો?</translation> <translation id="8680251145628383637">તમારા તમામ ડિવાઇસ પર તમારા બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને અન્ય સેટિંગ મેળવવા માટે સાઇન ઇન કરો. તમે તમારી Google સેવાઓ પર ઑટોમૅટિક રીતે સાઇન ઇન પણ થશો.</translation> @@ -7237,6 +7247,7 @@ <translation id="9026852570893462412">આ પ્રક્રિયામાં થોડો સમય લાગી શકે છે. વર્ચ્યુઅલ મશીન ડાઉનલોડ કરી રહ્યાં છીએ.</translation> <translation id="9027459031423301635">લિંક નવા &ટૅબમાં ખોલો</translation> <translation id="9030515284705930323">તમારા એકાઉન્ટ માટે તમારી સંસ્થાએ Google Play સ્ટોર ચાલુ કરેલ નથી. વધુ માહિતી માટે તમારા એડમિનનો સંપર્ક કરો.</translation> +<translation id="9030754204056345429">વધુ ઝડપી</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" />ને હવે સપોર્ટ કરવામાં આવતું નથી</translation> <translation id="9031549947500880805">Google ડ્રાઇવ પર બૅકઅપ લો. તમારો ડેટા સરળતાથી પાછો મેળવો અથવા ડિવાઇસને કોઈપણ સમયે સ્વિચ કરો. તમારા બૅકઅપમાં ઍપનો ડેટા શામેલ છે.</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 548d3b0..f5b4750 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">प्रॉक्सी सर्वर से कनेक्ट नहीं किया जा सका</translation> <translation id="1405779994569073824">बंद हो गया.</translation> <translation id="1406500794671479665">सत्यापन हो रहा है...</translation> +<translation id="1407069428457324124">गहरे रंग वाली थीम</translation> <translation id="1407135791313364759">सभी बुकमार्क खोलें</translation> <translation id="140723521119632973">सेल्युलर एक्टिवेशन</translation> <translation id="1407489512183974736">मध्य में काटा गया</translation> @@ -5672,6 +5673,7 @@ <translation id="729583233778673644">AES और RC4 सुरक्षा करने के तरीकों की मंज़ूरी दें. इस विकल्प का इस्तेमाल करने से आपका खतरा बढ़ जाता है, क्योंकि RC4 सिफ़र असुरक्षित होते हैं.</translation> <translation id="729761647156315797">अपनी भाषा और कीबोर्ड चुनें</translation> <translation id="7297726121602187087">गहरा हरा</translation> +<translation id="7298195798382681320">सुझाए गए</translation> <translation id="7299337219131431707">मेहमान के तौर पर ब्राउज़िंग चालू करें</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{यह ऐप्लिकेशन Chrome को ठीक से काम करने से रोक सकता है.}one{ये ऐप्लिकेशन Chrome को ठीक से काम करने से रोक सकते हैं.}other{ये ऐप्लिकेशन Chrome को ठीक से काम करने से रोक सकते हैं.}}</translation> <translation id="7303281435234579599">ओह! डेमो मोड सेट अप करते समय कोई गड़बड़ी हुई.</translation> @@ -7270,6 +7272,7 @@ <translation id="9026852570893462412">इस प्रोसेस में कुछ मिनट लग सकते हैं. वर्चुअल मशीन को डाउनलोड किया जा रहा है.</translation> <translation id="9027459031423301635">नए &टैब में लिंक खोलें</translation> <translation id="9030515284705930323">आपके संगठन ने आपके खाते के लिए Google Play स्टोर को सक्षम नहीं किया है. ज़्यादा जानकारी के लिए अपने व्यवस्थापक से संपर्क करें.</translation> +<translation id="9030754204056345429">ज़्यादा तेज़</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> अब काम नहीं करता</translation> <translation id="9031549947500880805">'Google डिस्क' में बैक अप लें. अपना डेटा आसानी से वापस लाएं या किसी भी समय डिवाइस बदलें. आपके बैक अप में ऐप्लिकेशन डेटा शामिल होता है.</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index 2670950..756b3e47 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -360,6 +360,7 @@ <translation id="1403222014593521787">Povezivanje s proxyjem nije moguće</translation> <translation id="1405779994569073824">Srušilo se.</translation> <translation id="1406500794671479665">Potvrda u tijeku...</translation> +<translation id="1407069428457324124">Tamna tema</translation> <translation id="1407135791313364759">Otvori sve</translation> <translation id="140723521119632973">Mobilna aktivacija</translation> <translation id="1407489512183974736">Centriraj obrezano</translation> @@ -5659,6 +5660,7 @@ <translation id="729583233778673644">Dopuštanje AES i RC4 šifriranja. Upotreba te opcije izlaže vas većoj opasnosti jer RC4 šifre nisu sigurne.</translation> <translation id="729761647156315797">Odaberite jezik i tipkovnicu</translation> <translation id="7297726121602187087">Tamnozelena</translation> +<translation id="7298195798382681320">Preporučeno</translation> <translation id="7299337219131431707">Omogući gostujuće pregledavanje</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Ova bi aplikacija mogla spriječiti Chrome da pravilno funkcionira.}one{Ova bi aplikacija (ili više njih) mogla spriječiti Chrome da pravilno funkcionira.}few{Ove bi aplikacije mogle spriječiti Chrome da pravilno funkcionira.}other{Ove bi aplikacije mogle spriječiti Chrome da pravilno funkcionira.}}</translation> <translation id="7303281435234579599">Ups! Došlo je do pogreške pri postavljanju demo načina.</translation> @@ -7258,6 +7260,7 @@ <translation id="9026852570893462412">Taj postupak može potrajati nekoliko minuta. Preuzima se virtualno računalo.</translation> <translation id="9027459031423301635">Otvori vezu u novoj &kartici</translation> <translation id="9030515284705930323">Vaša organizacija nije omogućila Trgovinu Google Play za vaš račun. Više informacija zatražite od administratora.</translation> +<translation id="9030754204056345429">Brže</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Dodatak <ph name="PLUGIN_NAME" /> više nije podržan</translation> <translation id="9031549947500880805">Sigurnosno kopiranje na Google disku. Jednostavno vratite svoje podatke ili promijenite uređaj u bilo kojem trenutku. Sigurnosna kopija uključuje podatke aplikacija.</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index ec3af8b..cd25cf7 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">A proxyhoz való kapcsolódás sikertelen</translation> <translation id="1405779994569073824">Összeomlott.</translation> <translation id="1406500794671479665">Ellenőrzés...</translation> +<translation id="1407069428457324124">Sötét téma</translation> <translation id="1407135791313364759">Összes megnyitása</translation> <translation id="140723521119632973">Mobilhálózati aktiválás</translation> <translation id="1407489512183974736">Középre, levágva</translation> @@ -5672,6 +5673,7 @@ <translation id="729583233778673644">Az AES és RC4 titkosítás engedélyezése. A beállítás használata növeli a kockázatot, mivel az RC4-kódok nem biztonságosak.</translation> <translation id="729761647156315797">Nyelv és billentyűzet kiválasztása</translation> <translation id="7297726121602187087">Sötétzöld</translation> +<translation id="7298195798382681320">Ajánlott</translation> <translation id="7299337219131431707">Vendégként való böngészés engedélyezése</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Ez az alkalmazás megakadályozhatja a Chrome megfelelő működését.}other{Ezek az alkalmazások megakadályozhatják a Chrome megfelelő működését.}}</translation> <translation id="7303281435234579599">Hoppá! Valami nem sikerült a demó mód beállítása során.</translation> @@ -7269,6 +7271,7 @@ <translation id="9026852570893462412">Ez a folyamat néhány percet is igénybe vehet. A virtuális gép letöltése folyamatban van.</translation> <translation id="9027459031423301635">Link megnyitása új &lapon</translation> <translation id="9030515284705930323">Szervezete még nem engedélyezte a Google Play Áruház szolgáltatást a fiókjánál. További tájékoztatásért forduljon rendszergazdájához.</translation> +<translation id="9030754204056345429">Gyorsabb</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">A(z) <ph name="PLUGIN_NAME" /> érték már nem támogatott</translation> <translation id="9031549947500880805">Biztonsági mentés a Google Drive-ra. Bármikor könnyedén visszaállíthatja adatait vagy lecserélheti eszközét. A biztonsági másolat tartalmazza az alkalmazásadatokat.</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index e33be418..c2a66998 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Չհաջողվեց միանալ պրոքսիին</translation> <translation id="1405779994569073824">Չհաջողվեց բեռնել:</translation> <translation id="1406500794671479665">Հաստատում…</translation> +<translation id="1407069428457324124">Մուգ թեմա</translation> <translation id="1407135791313364759">Բացել բոլորը</translation> <translation id="140723521119632973">Բջջային ցանցի ակտիվացում</translation> <translation id="1407489512183974736">Եզրատել և կենտրոնաբերել</translation> @@ -5661,6 +5662,7 @@ <translation id="729583233778673644">Թույլատրել AES և RC4 գաղտնագրումը։ Այս տարբերակների օգտագործումը բարձրացնում է վտանգի աստիճանը, քանի որ RC4 գաղտնագրերն ապահով չեն։</translation> <translation id="729761647156315797">Ընտրեք լեզուն և ստեղնաշարը</translation> <translation id="7297726121602187087">Մուգ կանաչ</translation> +<translation id="7298195798382681320">Հանձնարարելի</translation> <translation id="7299337219131431707">Թույլատրել աշխատանքը հյուրի ռեժիմում</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Այս հավելվածը կարող է խոչընդոտել Chrome-ի աշխատանքը:}one{Այս հավելվածը կարող է խոչընդոտել Chrome-ի աշխատանքը:}other{Այս հավելվածները կարող են խոչընդոտել Chrome-ի աշխատանքը:}}</translation> <translation id="7303281435234579599">Չհաջողվեց կարգավորել դեմո ռեժիմը։</translation> @@ -7257,6 +7259,7 @@ <translation id="9026852570893462412">Այս գործընթացը կարող է տևել մի քանի րոպե: Վիրտուալ մեքենան ներբեռնվում է:</translation> <translation id="9027459031423301635">Բացել հղումը նոր &ներդիրով</translation> <translation id="9030515284705930323">Ձեր կազմակերպությունը Google Play Խանութը ձեր հաշվի համար չի միացրել: Լրացուցիչ տեղեկությունների համար կապվեք ձեր ադմինիստրատորի հետ:</translation> +<translation id="9030754204056345429">Շատ արագ</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" />-ն այլևս չի աջակցվում</translation> <translation id="9031549947500880805">Կրկնօրինակ Google Drive-ում։ Ցանկացած ժամանակ հեշտությամբ վերականգնեք ձեր տվյալները կամ տեղափոխեք մեկ այլ սարք։ Պահուստավորումը ներառում է հավելվածների տվյալները։</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index 9789a825..a86b5de 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Tidak dapat terhubung ke proxy</translation> <translation id="1405779994569073824">Error.</translation> <translation id="1406500794671479665">Memverifikasi...</translation> +<translation id="1407069428457324124">Tema gelap</translation> <translation id="1407135791313364759">Buka semua</translation> <translation id="140723521119632973">Aktivasi Seluler</translation> <translation id="1407489512183974736">Dipangkas di Tengah</translation> @@ -5673,6 +5674,7 @@ <translation id="729583233778673644">Izinkan enkripsi AES dan RC4. Penggunaan opsi ini akan meningkatkan risiko, karena cipher RC4 tidak aman.</translation> <translation id="729761647156315797">Pilih bahasa & keyboard</translation> <translation id="7297726121602187087">Hijau tua</translation> +<translation id="7298195798382681320">Direkomendasikan</translation> <translation id="7299337219131431707">Aktifkan penjelajahan Tamu</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Aplikasi ini dapat membuat Chrome tidak berfungsi dengan semestinya.}other{Aplikasi ini dapat membuat Chrome tidak berfungsi dengan semestinya.}}</translation> <translation id="7303281435234579599">Maaf, terjadi masalah saat menyiapkan mode demo.</translation> @@ -7271,6 +7273,7 @@ <translation id="9026852570893462412">Proses ini dapat memerlukan waktu beberapa menit. Mendownload mesin virtual.</translation> <translation id="9027459031423301635">Buka Tautan di &Tab Baru</translation> <translation id="9030515284705930323">Organisasi belum mengaktifkan Google Play Store untuk akun Anda. Hubungi administrator untuk informasi selengkapnya.</translation> +<translation id="9030754204056345429">Lebih cepat</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> tidak lagi didukung</translation> <translation id="9031549947500880805">Cadangkan ke Google Drive. Pulihkan data Anda atau beralih perangkat kapan saja dengan mudah. Cadangan Anda mencakup data aplikasi.</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index 8589887a..41d929d0 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">Ekki tókst að tengjast staðgengilsþjóninum</translation> <translation id="1405779994569073824">Hrundi.</translation> <translation id="1406500794671479665">Staðfestir…</translation> +<translation id="1407069428457324124">Dökkt þema</translation> <translation id="1407135791313364759">Opna alla</translation> <translation id="140723521119632973">Virkjun um farsímanet</translation> <translation id="1407489512183974736">Miðjuskorið</translation> @@ -5673,6 +5674,7 @@ <translation id="729583233778673644">Leyfa AES- og RC4-dulkóðun. Þessi valkostur felur í sér meiri áhættu, þar sem RC4-dulmálslyklar eru óöruggir.</translation> <translation id="729761647156315797">Veldu tungumál og lyklaborð</translation> <translation id="7297726121602187087">Dökkgrænn</translation> +<translation id="7298195798382681320">Ráðlagt</translation> <translation id="7299337219131431707">Virkja gestastillingu</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Þetta forrit gæti komið í veg fyrir að Chrome virki rétt.}one{Þessi forrit gætu komið í veg fyrir að Chrome virki rétt.}other{Þessi forrit gætu komið í veg fyrir að Chrome virki rétt.}}</translation> <translation id="7303281435234579599">Úbbs! Eitthvað fór úrskeiðis þegar prufustillingin var sett upp.</translation> @@ -7271,6 +7273,7 @@ <translation id="9026852570893462412">Þetta ferli gæti tekið nokkrar mínútur. Sækir sýndarvélina.</translation> <translation id="9027459031423301635">Opna &tengil í nýjum flipa</translation> <translation id="9030515284705930323">Fyrirtækið þitt hefur ekki virkjað Google Play Store fyrir reikninginn þinn. Hafðu samband við stjórnanda til að fá frekari upplýsingar.</translation> +<translation id="9030754204056345429">Hraðar</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> er ekki studdur lengur</translation> <translation id="9031549947500880805">Vista öryggisafrit á Google Drive. Endurheimtu gögnin þín eða skiptu um tæki hvenær sem er. Öryggisafritið inniheldur forritsgögn.</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index 6128290..0a00b5fc 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">Impossibile connettersi al proxy</translation> <translation id="1405779994569073824">Arresto anomalo.</translation> <translation id="1406500794671479665">Verifica in corso...</translation> +<translation id="1407069428457324124">Tema scuro</translation> <translation id="1407135791313364759">Apri tutte</translation> <translation id="140723521119632973">Attivazione della rete mobile</translation> <translation id="1407489512183974736">Ritagliato al centro</translation> @@ -5657,6 +5658,7 @@ <translation id="729583233778673644">Consenti la crittografia AES e RC4. Se scegli di utilizzare quest'opzione vai incontro a un rischio maggiore, in quanto le crittografie RC4 non sono sicure.</translation> <translation id="729761647156315797">Scegli la lingua e la tastiera</translation> <translation id="7297726121602187087">Verde scuro</translation> +<translation id="7298195798382681320">Consigliate</translation> <translation id="7299337219131431707">Attiva navigazione come ospite</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Questa applicazione potrebbe impedire il corretto funzionamento di Chrome.}other{Queste applicazioni potrebbero impedire il corretto funzionamento di Chrome.}}</translation> <translation id="7303281435234579599">Spiacenti. Si è verificato un problema durante la configurazione della modalità demo.</translation> @@ -7255,6 +7257,7 @@ <translation id="9026852570893462412">Questa procedura potrebbe richiedere alcuni minuti. Download della macchina virtuale in corso.</translation> <translation id="9027459031423301635">Apri link in un'altra &scheda</translation> <translation id="9030515284705930323">La tua organizzazione non ha attivato Google Play Store per il tuo account. Contatta l'amministratore per avere ulteriori informazioni.</translation> +<translation id="9030754204056345429">Più veloce</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> non è più supportato</translation> <translation id="9031549947500880805">Effettua il backup su Google Drive. Ripristina facilmente i tuoi dati o cambia dispositivo in qualsiasi momento. La copia di backup include i dati delle app.</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 833a1ad..d6bd218 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -363,6 +363,7 @@ <translation id="1403222014593521787">לא ניתן להתחבר לשרת ה-proxy</translation> <translation id="1405779994569073824">קריסה.</translation> <translation id="1406500794671479665">מאמת...</translation> +<translation id="1407069428457324124">עיצוב כהה</translation> <translation id="1407135791313364759">פתיחת כל הכרטיסיות</translation> <translation id="140723521119632973">הפעלה סלולרית</translation> <translation id="1407489512183974736">חיתוך במרכז</translation> @@ -5673,6 +5674,7 @@ <translation id="729583233778673644">התרה של הצפנת AES ו-RC4. שימוש באפשרות הזו מגדיל את הסיכון, כי הצפנות RC4 אינן מאובטחות.</translation> <translation id="729761647156315797">בחירת שפה ומקלדת</translation> <translation id="7297726121602187087">ירוק כהה</translation> +<translation id="7298195798382681320">מומלצים</translation> <translation id="7299337219131431707">הפעלה של גלישה כאורח</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{האפליקציה הזו עלולה למנוע מ-Chrome לפעול כמו שצריך.}two{האפליקציות האלה עלולות למנוע מ-Chrome לפעול כמו שצריך.}many{האפליקציות האלה עלולות למנוע מ-Chrome לפעול כמו שצריך.}other{האפליקציות האלה עלולות למנוע מ-Chrome לפעול כמו שצריך.}}</translation> <translation id="7303281435234579599">משהו השתבש במהלך הגדרת מצב ההדגמה.</translation> @@ -7274,6 +7276,7 @@ <translation id="9026852570893462412">הפעולה עשויה להימשך מספר דקות. מתבצעת הורדה של המכונה הווירטואלית.</translation> <translation id="9027459031423301635">פתיחת קישור בכרטיסייה &חדשה</translation> <translation id="9030515284705930323">הארגון שלך לא הפעיל את חנות Google Play בחשבון שלך. למידע נוסף, יש לפנות למנהל המערכת.</translation> +<translation id="9030754204056345429">מהיר יותר</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">אין יותר תמיכה בפלאגין <ph name="PLUGIN_NAME" /></translation> <translation id="9031549947500880805">גיבוי ב-Google Drive. ההגדרה הזו מאפשרת לאחזר נתונים בקלות או לעבור למכשיר אחר בכל שלב. הגיבוי כולל נתוני אפליקציות.</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index 96a5be7..dfaa041 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">プロキシに接続できませんでした</translation> <translation id="1405779994569073824">クラッシュしました。</translation> <translation id="1406500794671479665">確認中...</translation> +<translation id="1407069428457324124">ダークテーマ</translation> <translation id="1407135791313364759">すべて開く</translation> <translation id="140723521119632973">モバイル有効化</translation> <translation id="1407489512183974736">中央トリミング</translation> @@ -5657,6 +5658,7 @@ <translation id="729583233778673644">AES 暗号化と RC4 暗号化を許可します。なお RC4 暗号は安全でないため、このオプションを使用するとリスクが高まります。</translation> <translation id="729761647156315797">言語とキーボードの選択</translation> <translation id="7297726121602187087">暗い緑</translation> +<translation id="7298195798382681320">推奨</translation> <translation id="7299337219131431707">ゲストのブラウジングを許可する</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{このアプリケーションは、Chrome の正常な動作を妨げる可能性があります。}other{これらのアプリケーションは、Chrome の正常な動作を妨げる可能性があります。}}</translation> <translation id="7303281435234579599">デモモードの設定中にエラーが発生しました。</translation> @@ -7254,6 +7256,7 @@ <translation id="9026852570893462412">この処理には数分かかることがあります。仮想マシンをダウンロードします。</translation> <translation id="9027459031423301635">新しいタブで開く(&T)</translation> <translation id="9030515284705930323">組織の設定により、アカウントで Google Play ストアをご利用いただくことができません。詳しくは管理者にお尋ねください。</translation> +<translation id="9030754204056345429">速め</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">「<ph name="PLUGIN_NAME" />」のサポートは終了しました</translation> <translation id="9031549947500880805">Google ドライブにデータをバックアップします。これにより、いつでも簡単にデータを復元したりデバイスを切り替えたりできます。バックアップ内容にはアプリのデータが含まれます。</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 2fde1679..3afb386 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">პროქსი-სერვერთან დაკავშირება ვერ მოხერხდა</translation> <translation id="1405779994569073824">ავარიულად გათიშული.</translation> <translation id="1406500794671479665">გადამოწმება…</translation> +<translation id="1407069428457324124">მუქი თემა</translation> <translation id="1407135791313364759">ყველას გახსნა</translation> <translation id="140723521119632973">მობილური ქსელის გააქტიურება</translation> <translation id="1407489512183974736">ცენტრი ჩამოჭრილია</translation> @@ -5657,6 +5658,7 @@ <translation id="729583233778673644">AES და RC4 დაშიფვრის დაშვება. ამ ვარიანტის გამოყენება ზრდის საფრთხის წინაშე რისკს, ვინაიდან RC4 შიფრატორები დაუცველია.</translation> <translation id="729761647156315797">აირჩიეთ ენა და კლავიატურა</translation> <translation id="7297726121602187087">მუქი მწვანე</translation> +<translation id="7298195798382681320">რეკომენდირებულია</translation> <translation id="7299337219131431707">სტუმრის ძებნის ჩართვა</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{მითითებულ აპლიკაციას შეუძლია Chrome-ის გამართული მუშაობისთვის ხელის შეშლა.}other{მითითებულ აპლიკაციებს შეუძლია Chrome-ის გამართული მუშაობისთვის ხელის შეშლა.}}</translation> <translation id="7303281435234579599">სამწუხაროდ, დემო-რეჟიმის დაყენებისას წარმოიქმნა შეფერხება.</translation> @@ -7253,6 +7255,7 @@ <translation id="9026852570893462412">მიმდინარეობს ვირტუალური მოწყობილობის ჩამოტვირთვა, რასაც შეიძლება რამდენიმე წუთი დასჭირდეს.</translation> <translation id="9027459031423301635">ბმულის გახსნა ახალ ჩ&ანართზე</translation> <translation id="9030515284705930323">Google Play Store თქვენი ორგანიზაციის მიერ თქვენი ანგარიშისთვის ჩართული არ არის. დამატებითი ინფორმაციისთვის, დაუკავშირდით თქვენს ადმინისტრატორს.</translation> +<translation id="9030754204056345429">უფრო სწრაფი</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> აღარ არის მხარდაჭერილი</translation> <translation id="9031549947500880805">სარეზერვო კოპირება Google Drive-ში. მარტივად აღადგინეთ თქვენი მონაცემები, ან შეცვალეთ მოწყობილობები ნებისმიერ დროს. თქვენი სარეზერვო ასლი მოიცავს აპების მონაცემებს.</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index 827916de..757e6a8 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">Прокси-серверге қосылу мүмкін болмады.</translation> <translation id="1405779994569073824">Бұзылды.</translation> <translation id="1406500794671479665">Расталуда…</translation> +<translation id="1407069428457324124">Қараңғы тақырып</translation> <translation id="1407135791313364759">Барлығын ашу</translation> <translation id="140723521119632973">Ұялы байланысты іске қосу</translation> <translation id="1407489512183974736">Ортасы қиып алынған</translation> @@ -5653,6 +5654,7 @@ <translation id="729583233778673644">AES және RC4 шифрлауына рұқсат ету. RC4 шифрлары қауіпті болғандықтан, бұл параметрді пайдалану қауіпті арттырады.</translation> <translation id="729761647156315797">Тіл мен пернетақтаны таңдаңыз</translation> <translation id="7297726121602187087">Қою жасыл</translation> +<translation id="7298195798382681320">Ұсынылған</translation> <translation id="7299337219131431707">Қонақ шолуын қосу</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Бұл қолданба Chrome браузерінің дұрыс жұмыс істеуіне кедергі келтіруі мүмкін.}other{Бұл қолданбалар Chrome браузерінің дұрыс жұмыс істеуіне кедергі келтіруі мүмкін.}}</translation> <translation id="7303281435234579599">Қап! Демо режимін орнату кезінде бірдеңеден қате кетті.</translation> @@ -7249,6 +7251,7 @@ <translation id="9026852570893462412">Бұл процесс бірнеше минутқа созылуы мүмкін. Виртуалды құрылғы жүктелуде.</translation> <translation id="9027459031423301635">Сілтемені жаңа &қойындыда ашу</translation> <translation id="9030515284705930323">Ұйымыңыз есептік жазба үшін Google Play Store қызметін қоспаған. Қосымша ақпарат алу үшін әкімшіге хабарласыңыз.</translation> +<translation id="9030754204056345429">Жылдамырақ</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> плагиніне бұдан былай қолдау көрсетілмейді</translation> <translation id="9031549947500880805">Google Drive жадына сақтық көшірме жасау. Деректерді қалпына келтіруге немесе құрылғыны кез келген уақытта ауыстыруға болады. Сақтық көшірмеге қолданба туралы дерек кіреді.</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index 0d6cab3..5346c2f 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">មិនអាចភ្ជាប់ទៅប្រូកស៊ីបានទេ</translation> <translation id="1405779994569073824">បានគាំង។</translation> <translation id="1406500794671479665">កំពុងផ្ទៀងផ្ទាត់...</translation> +<translation id="1407069428457324124">រចនាប័ទ្មងងឹត</translation> <translation id="1407135791313364759">បើកទាំងអស់</translation> <translation id="140723521119632973">ការបើកដំណើរការបណ្ដាញចល័ត</translation> <translation id="1407489512183974736">ចំណុចកណ្តាលត្រូវបានច្រឹប</translation> @@ -5674,6 +5675,7 @@ <translation id="729583233778673644">អនុញ្ញាតការអិុនគ្រីប AES និង RC4 ។ ការប្រើប្រាស់ជម្រើសនេះបង្កើនហានិភ័យ ពីព្រោះប្រព័ន្ធកូដសម្ងាត់ RC4 មិនមានសុវត្ថិភាពនោះទេ។</translation> <translation id="729761647156315797">ជ្រើសភាសា និងក្តារចុចរបស់អ្នក</translation> <translation id="7297726121602187087">បៃតងចាស់</translation> +<translation id="7298195798382681320">បានណែនាំ</translation> <translation id="7299337219131431707">បើកដំណើរការការរុករករបៀបភ្ញៀវ</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{កម្មវិធីនេះអាចទប់ស្កាត់ Chrome មិនឱ្យដំណើរការជាប្រក្រតី។}other{កម្មវិធីទាំងនេះអាចទប់ស្កាត់ Chrome មិនឱ្យដំណើរការជាប្រក្រតី។}}</translation> <translation id="7303281435234579599">អូ៎! មានអ្វីមួយខុសប្រក្រតី ពេលកំពុងរៀបចំមុខងារសាកល្បង។</translation> @@ -7271,6 +7273,7 @@ <translation id="9026852570893462412">ដំណើរការនេះអាចចំណាយពេលពីរបីនាទី។ កំពុងទាញយកម៉ាស៊ីននិម្មិត។</translation> <translation id="9027459031423301635">បើកតំណនៅក្នុងផ្ទាំងថ្មី</translation> <translation id="9030515284705930323">ស្ថាប័នរបស់អ្នកមិនទាន់បើកដំណើរការហាង Google Play សម្រាប់គណនីរបស់អ្នកនៅឡើយទេ។ សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នកសម្រាប់ព័ត៌មានលម្អិត។</translation> +<translation id="9030754204056345429">លឿនជាង</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">មិនអាចប្រើ <ph name="PLUGIN_NAME" /> បានទៀតទេ</translation> <translation id="9031549947500880805">បម្រុងទុកទៅក្នុង Google ថាស។ ងាយស្រួលក្នុងការស្ដារទិន្នន័យរបស់អ្នក ឬប្ដូរឧបករណ៍បានគ្រប់ពេល។ ការបម្រុងទុករបស់អ្នករួមបញ្ចូលទាំងទិន្នន័យកម្មវិធី។</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index e751e0e6..a28e6382 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">ಪ್ರಾಕ್ಸಿಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation> <translation id="1405779994569073824">ಕ್ರ್ಯಾಶ್ ಆಗಿದೆ.</translation> <translation id="1406500794671479665">ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ...</translation> +<translation id="1407069428457324124">ಡಾರ್ಕ್ ಥೀಮ್</translation> <translation id="1407135791313364759">ಎಲ್ಲವನ್ನೂ ತೆರೆಯಿರಿ</translation> <translation id="140723521119632973">ಸೆಲ್ಯುಲರ್ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ</translation> <translation id="1407489512183974736">ಮಧ್ಯಕ್ಕೆ ಕತ್ತರಿಸಲಾಗಿರುವುದು</translation> @@ -5665,6 +5666,7 @@ <translation id="729583233778673644">AES ಮತ್ತು RC4 ಎನ್ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ಅನುಮತಿಸಿ . RC4 ಸೈಫರ್ಗಳು ಅಸುರಕ್ಷಿತವಾಗಿರುವುದರಿಂದ ಈ ಆಯ್ಕೆಯನ್ನು ಬಳಸುವುದು ನಿಮ್ಮ ಅಪಾಯವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.</translation> <translation id="729761647156315797">ನಿಮ್ಮ ಭಾಷೆ ಮತ್ತು ಕೀಬೋರ್ಡ್ ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="7297726121602187087">ಗಾಢ ಹಸಿರು</translation> +<translation id="7298195798382681320">ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ</translation> <translation id="7299337219131431707">ಅತಿಥಿ ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸು</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{ಈ ಅಪ್ಲಿಕೇಶನ್ Chrome ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದಂತೆ ತಡೆಯಬಹುದು.}one{ಈ ಅಪ್ಲಿಕೇಶನ್ಗಳು Chrome ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದಂತೆ ತಡೆಯಬಹುದು.}other{ಈ ಅಪ್ಲಿಕೇಶನ್ಗಳು Chrome ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದಂತೆ ತಡೆಯಬಹುದು.}}</translation> <translation id="7303281435234579599">ಓಹ್! ಡೆಮೊ ಮೋಡ್ ಸೆಟಪ್ ಮಾಡುವಾಗ ಏನೋ ದೋಷ ಸಂಭವಿಸಿದೆ.</translation> @@ -7258,6 +7260,7 @@ <translation id="9026852570893462412">ಈ ಪ್ರಕ್ರಿಯೆಯು ಕೆಲವು ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ.</translation> <translation id="9027459031423301635">ಹೊಸ &ಟ್ಯಾಬ್ನಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಿರಿ</translation> <translation id="9030515284705930323">ನಿಮ್ಮ ಸಂಸ್ಥೆ ನಿಮ್ಮ ಖಾತೆಗೆ Google Play ಸ್ಟೋರ್ ಸಕ್ರಿಯಗೊಳಿಸಿಲ್ಲ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation> +<translation id="9030754204056345429">ಇನ್ನಷ್ಟು ವೇಗವಾಗಿ</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> ಇನ್ನು ಮುಂದೆ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ</translation> <translation id="9031549947500880805">Google ಡ್ರೈವ್ನಲ್ಲಿ ಬ್ಯಾಕಪ್ ಮಾಡಿ. ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸುಲಭವಾಗಿ ಮರುಸ್ಥಾಪಿಸಿ ಅಥವಾ ಯಾವಾಗ ಬೇಕಾದರೂ ಸಾಧನವನ್ನು ಬದಲಾಯಿಸಿ. ನಿಮ್ಮ ಬ್ಯಾಕಪ್, ಆ್ಯಪ್ ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index 8f2be3d39..e302220 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">프록시에 연결할 수 없습니다.</translation> <translation id="1405779994569073824">비정상 종료됨</translation> <translation id="1406500794671479665">확인 중...</translation> +<translation id="1407069428457324124">어두운 테마</translation> <translation id="1407135791313364759">모두 열기</translation> <translation id="140723521119632973">모바일 활성화</translation> <translation id="1407489512183974736">가운데 부분 자르기</translation> @@ -5670,6 +5671,7 @@ <translation id="729583233778673644">AES 및 RC4 암호화를 허용합니다. RC4 암호화는 안전하지 않으므로 이 옵션을 사용하면 보안 위험도가 높아집니다.</translation> <translation id="729761647156315797">언어 및 키보드 선택</translation> <translation id="7297726121602187087">진한 녹색</translation> +<translation id="7298195798382681320">권장</translation> <translation id="7299337219131431707">게스트로 로그인 허용</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{이 애플리케이션으로 인해 Chrome이 제대로 작동하지 않을 수 있습니다.}other{이 애플리케이션으로 인해 Chrome이 제대로 작동하지 않을 수 있습니다.}}</translation> <translation id="7303281435234579599">데모 모드를 설정하는 동안 문제가 발생했습니다.</translation> @@ -7268,6 +7270,7 @@ <translation id="9026852570893462412">이 과정은 몇 분 정도 걸릴 수 있습니다. 가상 머신을 다운로드합니다.</translation> <translation id="9027459031423301635">새 탭에서 링크 열기(&T)</translation> <translation id="9030515284705930323">조직에서 내 계정이 Google Play 스토어를 사용하도록 설정하지 않았습니다. 자세한 정보는 관리자에게 문의하세요.</translation> +<translation id="9030754204056345429">조금 빠르게</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> 플러그인이 더 이상 지원되지 않습니다.</translation> <translation id="9031549947500880805">Google Drive에 백업합니다. 언제든지 간편하게 데이터를 복원하거나 다른 기기로 전환할 수 있습니다. 앱 데이터도 백업에 포함됩니다.</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index 72c3dc9..6907f9cf 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Проксиге туташкан жок</translation> <translation id="1405779994569073824">Бузулду.</translation> <translation id="1406500794671479665">Текшерүүдө…</translation> +<translation id="1407069428457324124">Караңгы тема</translation> <translation id="1407135791313364759">Баарын ачуу</translation> <translation id="140723521119632973">Мобилдик тармакты жандыруу</translation> <translation id="1407489512183974736">Ортосунан кесүү</translation> @@ -5673,6 +5674,7 @@ <translation id="729583233778673644">AES жана RC4 алгоритмдери боюнча шифрлөөгө уруксат берүү. RC4 шифрлери кооптуу болгондуктан, бул параметрди колдонуу коркунучту жогорулатат.</translation> <translation id="729761647156315797">Тил жана баскычтопту тандаңыз</translation> <translation id="7297726121602187087">Күңүрт жашыл</translation> +<translation id="7298195798382681320">Сунушталат</translation> <translation id="7299337219131431707">Конок катары серептөөнү иштетүү</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Бул колдонмо Chrome'дун талаптагыдай иштөөсүнө тоскоолдук кылышы мүмкүн.}other{Бул колдонмолор Chrome'дун талаптагыдай иштөөсүнө тоскоолдук кылышы мүмкүн.}}</translation> <translation id="7303281435234579599">Ой! Демо режимин жөндөөдө бир жерден ката кетти.</translation> @@ -7270,6 +7272,7 @@ <translation id="9026852570893462412">Бул бир нече мүнөткө созулушу мүмкүн. Виртуалдык машина жүктөлүп алынууда.</translation> <translation id="9027459031423301635">Шилтемени Жаңы &өтмөктө ачуу</translation> <translation id="9030515284705930323">Ишканаңыздагы аккаунтуңуз аркылуу Google Play Store'ду колдонуу мүмкүнчүлүгү жок. Көбүрөөк маалымат алуу үчүн администраторуңузга кайрылыңыз.</translation> +<translation id="9030754204056345429">Тезирээк</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> колдоого алынбай калды</translation> <translation id="9031549947500880805">Google Drive'га камдык көчүрмөлөрдү сактоо. Маалыматыңызды (ошондой эле колдонмолордогу) оңой эле калыбына келтирип, бир түзмөктөн экинчисине өткөрө аласыз. Камдык көчүрмөңүз колдонмонун маалыматын камтыйт.</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb index f066b1a9..51c20c0 100644 --- a/chrome/app/resources/generated_resources_lo.xtb +++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">ບໍ່ສາມາດເຊື່ອມຕໍ່ກັບພຣັອກຊີໄດ້</translation> <translation id="1405779994569073824">ຂັດຂ້ອງ.</translation> <translation id="1406500794671479665">ກໍາລັງກວດສອບ ...</translation> +<translation id="1407069428457324124">ຮູບແບບສີສັນມືດ</translation> <translation id="1407135791313364759">ເປີດທັງຫມົດ</translation> <translation id="140723521119632973">ການເປີດນຳໃຊ້ເຄືອຂ່າຍມືຖື</translation> <translation id="1407489512183974736">ຕັດໃຈກາງແລ້ວ</translation> @@ -5670,6 +5671,7 @@ <translation id="729583233778673644">ອະນຸຍາດການເຂົ້າລະຫັດ AES ແລະ RC4. ການໃຊ້ຕົວເລືອກນີ້ເພີ່ມຄວາມສ່ຽງຂອງທ່ານ ເພາະວ່າລະຫັດລັບ RC4 ບໍ່ປອດໄພ.</translation> <translation id="729761647156315797">ເລືອກພາສາ ແລະ ແປ້ນພິມຂອງທ່ານ</translation> <translation id="7297726121602187087">ສີຂຽວເຂັ້ມ</translation> +<translation id="7298195798382681320">ແນະນໍາໃຫ້</translation> <translation id="7299337219131431707">ເປີດໃຊ້ງານການທ່ອງເວັບແບບເປັນແຂກ</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{ແອັບພລິເຄຊັນນີ້ສາມາດຂັດຂວາງບໍ່ໃຫ້ Chrome ໃຊ້ໄດ້ຢ່າງຖືກຕ້ອງໄດ້.}other{ແອັບພລິເຄຊັນເຫຼົ່ານີ້ສາມາດຂັດຂວາງບໍ່ໃຫ້ Chrome ໃຊ້ໄດ້ຢ່າງຖືກຕ້ອງໄດ້.}}</translation> <translation id="7303281435234579599">ຂໍອະໄພ! ມີບາງຢ່າງຜິດພາດໃນຂະນະທີ່ການຕັ້ງຄ່າໂໝດສາທິດ.</translation> @@ -7266,6 +7268,7 @@ <translation id="9026852570893462412">ຂະບວນການອາດຈະໃຊ້ເວລາສອງສາມນາທີ. ກຳລັງດາວໂຫຼດເຄື່ອງຈຳລອງສະເໝືອນຈິງ.</translation> <translation id="9027459031423301635">ເປີດລິ້ງຢູ່ໃນແຖບໃໝ່</translation> <translation id="9030515284705930323">ອົງການຂອງທ່ານບໍ່ໄດ້ເປີດໃຊ້ Google Play Store ສຳລັບບັນຊີຂອງທ່ານ. ໃຫ້ຕິດຕໍ່ຫາຜູ້ເບິ່ງແຍງລະບົບສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.</translation> +<translation id="9030754204056345429">ໄວຂຶ້ນ</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">ບໍ່ຮອງຮັບ <ph name="PLUGIN_NAME" /> ອີກຕໍ່ໄປ</translation> <translation id="9031549947500880805">ສຳຮອງຂໍ້ມູນໄວ້ໃນ Google Drive ກູ້ຄືນຂໍ້ມູນຂອງທ່ານໄດ້ຢ່າງງ່າຍດາຍ ຫຼື ປ່ຽນອຸປະກອນໄດ້ທຸກເວລາ. ການສຳຮອງຂໍ້ມູນຂອງທ່ານຮວມເອົາຂໍ້ມູນແອັບ.</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 4ab0fc0..8abcb5e4 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -364,6 +364,7 @@ <translation id="1403222014593521787">Nepavyko prisijungti prie tarpinio serverio</translation> <translation id="1405779994569073824">Užstrigo.</translation> <translation id="1406500794671479665">Patvirtinama...</translation> +<translation id="1407069428457324124">Tamsioji tema</translation> <translation id="1407135791313364759">Atidaryti viską</translation> <translation id="140723521119632973">Mobiliojo ryšio aktyvinimas</translation> <translation id="1407489512183974736">Apkarpytas centre</translation> @@ -5677,6 +5678,7 @@ <translation id="729583233778673644">Leisti AES ir RC4 šifruotes. Naudojant šią parinktį padidėja rizika, nes RC4 šifrai nesaugūs.</translation> <translation id="729761647156315797">Kalbos ir klaviatūros pasirinkimas</translation> <translation id="7297726121602187087">Tamsiai žalia</translation> +<translation id="7298195798382681320">Rekomenduojama</translation> <translation id="7299337219131431707">Įgalinti svečio naršymą</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Gali būti, kad ši programa neleidžia „Chrome“ tinkamai veikti.}one{Gali būti, kad šios programos neleidžia „Chrome“ tinkamai veikti.}few{Gali būti, kad šios programos neleidžia „Chrome“ tinkamai veikti.}many{Gali būti, kad šios programos neleidžia „Chrome“ tinkamai veikti.}other{Gali būti, kad šios programos neleidžia „Chrome“ tinkamai veikti.}}</translation> <translation id="7303281435234579599">Oi, nustatant demonstracinį režimą įvyko klaida.</translation> @@ -7278,6 +7280,7 @@ <translation id="9026852570893462412">Šis procesas gali užtrukti kelias minutes. Atsisiunčiamas virtualus įrenginys.</translation> <translation id="9027459031423301635">Atidaryti nuorodą naujame &skirtuke</translation> <translation id="9030515284705930323">Organizacija jūsų paskyroje neįgalino „Google Play“ parduotuvės. Jei reikia daugiau informacijos, susisiekite su administratoriumi.</translation> +<translation id="9030754204056345429">Greitesnis</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">„<ph name="PLUGIN_NAME" />“ nebepalaikomas</translation> <translation id="9031549947500880805">Sukurkite atsarginę kopiją „Google“ diske. Lengvai atkurkite duomenis arba perjunkite įrenginį bet kuriuo metu. Į atsarginę kopiją įtraukiami programų duomenys.</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index 014dc8c0..e4664a8 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Nevar izveidot savienojumu ar starpniekserveri</translation> <translation id="1405779994569073824">Avarējusi.</translation> <translation id="1406500794671479665">Notiek verificēšana...</translation> +<translation id="1407069428457324124">Tumšais motīvs</translation> <translation id="1407135791313364759">Atvērt visas</translation> <translation id="140723521119632973">Mobilā tīkla aktivizācija</translation> <translation id="1407489512183974736">Apgriezt un centrēt</translation> @@ -5656,6 +5657,7 @@ <translation id="729583233778673644">Atļaut AES un RC4 šifrēšanu. Ja izmantosiet šo opciju, palielināsies risks, jo RC4 šifri nav droši.</translation> <translation id="729761647156315797">Valodas un tastatūras izvēlēšanās</translation> <translation id="7297726121602187087">Tumši zaļa</translation> +<translation id="7298195798382681320">Ieteicams</translation> <translation id="7299337219131431707">Iespējot viesa režīmu</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Tālāk norādītā lietojumprogramma, iespējams, izraisa pārlūka Chrome nepareizu darbību.}zero{Tālāk norādītās lietojumprogrammas, iespējams, izraisa pārlūka Chrome nepareizu darbību.}one{Tālāk norādītās lietojumprogrammas, iespējams, izraisa pārlūka Chrome nepareizu darbību.}other{Tālāk norādītās lietojumprogrammas, iespējams, izraisa pārlūka Chrome nepareizu darbību.}}</translation> <translation id="7303281435234579599">Hmm... Iestatot demonstrācijas režīmu, radās problēma.</translation> @@ -7255,6 +7257,7 @@ <translation id="9026852570893462412">Šis process var ilgt dažas minūtes. Notiek virtuālās mašīnas lejupielāde.</translation> <translation id="9027459031423301635">Atvēr&t saiti jaunā cilnē</translation> <translation id="9030515284705930323">Jūsu organizācija nav iespējojusi Google Play veikalu jūsu kontam. Sazinieties ar administratoru, lai saņemtu plašāku informāciju.</translation> +<translation id="9030754204056345429">Ātrāks</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Spraudnis <ph name="PLUGIN_NAME" /> vairs netiek atbalstīts</translation> <translation id="9031549947500880805">Datu dublēšana Google diskā. Varēsiet jebkurā laikā ērti atjaunot savus datus vai mainīt ierīci. Dublējumā ir ietverti arī lietotņu dati.</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index d77e7d2..95f8eb5 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">Не може да се поврзе со прокси-серверот</translation> <translation id="1405779994569073824">Падна.</translation> <translation id="1406500794671479665">Се проверува…</translation> +<translation id="1407069428457324124">Темна тема</translation> <translation id="1407135791313364759">Отвори ги сите</translation> <translation id="140723521119632973">Активирање мобилна мрежа</translation> <translation id="1407489512183974736">Центарот е исечен</translation> @@ -5674,6 +5675,7 @@ <translation id="729583233778673644">Дозволете AES и RC4-шифрирање. Ако ја користите опцијава, ви се зголемува ризикот бидејќи RC4-шифрите се небезбедни.</translation> <translation id="729761647156315797">Изберете ги јазикот и тастатурата</translation> <translation id="7297726121602187087">Темнозелена</translation> +<translation id="7298195798382681320">Препорачано</translation> <translation id="7299337219131431707">Овозможи прелистување за гостин</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Апликацијава може да го спречи Chrome да работи правилно.}one{Апликацииве може да го спречат Chrome да работи правилно.}other{Апликацииве може да го спречат Chrome да работи правилно.}}</translation> <translation id="7303281435234579599">Упс! Нешто тргна наопаку при поставување на демо-режимот.</translation> @@ -7275,6 +7277,7 @@ <translation id="9026852570893462412">Овој процес можеби ќе потрае неколку минути. Се презема виртуелната машина.</translation> <translation id="9027459031423301635">Отвори ја врската во нова &картичка</translation> <translation id="9030515284705930323">Организацијата не ја овозможила Google Play Store за вашата сметка. Контактирајте со администраторот за повеќе информации.</translation> +<translation id="9030754204056345429">Побрзо</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> веќе не се поддржува</translation> <translation id="9031549947500880805">Направете бекап на Google Drive. Лесно враќајте ги податоците или менувајте ги уредите во секое време. Бекапот опфаќа податоци од апликациите.</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index 610b955..ccd3f82 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -207,7 +207,7 @@ <translation id="1218015446623563536">Linux ഇല്ലാതാക്കുക</translation> <translation id="1218839827383191197"><ph name="BEGIN_PARAGRAPH1" />ഈ ഉപകരണം ഏത് ലൊക്കേഷനിലാണെന്ന് അറിയാൻ, Google-ന്റെ ലൊക്കേഷൻ സേവനം വൈഫൈയും മൊബൈൽ നെറ്റ്വർക്കുകളും സെൻസറുകളും പോലുള്ള ഉറവിടങ്ങൾ ഉപയോഗിക്കുന്നു.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ഈ ഉപകരണത്തിലെ പ്രധാന ലൊക്കേഷൻ ക്രമീകരണം ഓഫാക്കി, നിങ്ങൾക്ക് ലൊക്കേഷൻ ഓഫാക്കാം. ലൊക്കേഷന് വേണ്ടിയുള്ള വൈഫൈ, മൊബൈൽ നെറ്റ്വർക്കുകൾ, സെൻസറുകൾ എന്നിവയുടെ ഉപയോഗവും ലൊക്കേഷൻ ക്രമീകരണത്തിൽ ഓഫാക്കാനാവും.<ph name="END_PARAGRAPH2" /></translation> -<translation id="122082903575839559">സര്ട്ടിഫിക്കറ്റ് സിഗ്നേച്ചര് അല്ഗോരിതം</translation> +<translation id="122082903575839559">സര്ട്ടിഫിക്കറ്റ് സിഗ്നേച്ചര് ആൽഗരിതം</translation> <translation id="1221024147024329929">RSA എന്ക്രിപ്ഷനോടുകൂടിയ PKCS #1 MD2</translation> <translation id="1221825588892235038">തിരഞ്ഞെടുത്തവ മാത്രം</translation> <translation id="1223484782328004593"><ph name="APP_NAME" />-ന് ലൈസൻസ് ആവശ്യമാണ്</translation> @@ -361,6 +361,7 @@ <translation id="1403222014593521787">പ്രോക്സി സെർവറിലേക്ക് കണക്റ്റ് ചെയ്യാനാകുന്നില്ല</translation> <translation id="1405779994569073824">ക്രാഷായി.</translation> <translation id="1406500794671479665">സ്ഥിരീകരിക്കുന്നു...</translation> +<translation id="1407069428457324124">ഡാർക്ക് തീം</translation> <translation id="1407135791313364759">എല്ലാം തുറക്കുക</translation> <translation id="140723521119632973">സെല്ലുലാൽ നെറ്റ്വർക്ക് സജീവമാക്കൽ</translation> <translation id="1407489512183974736">മധ്യഭാഗത്ത് മുറിക്കുക</translation> @@ -615,7 +616,7 @@ <translation id="1660763353352708040">പവർ അഡാപ്റ്റർ പ്രശ്നം</translation> <translation id="1661156625580498328">AES എൻക്രിപ്ഷൻ നടപ്പിലാക്കുക (നിർദേശിച്ചത്).</translation> <translation id="16620462294541761">ക്ഷമിക്കണം, നിങ്ങളുടെ രഹസ്യവാക്ക് പരിശോധിച്ചുറപ്പിക്കാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക.</translation> -<translation id="166278006618318542">സബ്ജക്റ്റ് പൊതു കീ അല്ഗോരിതം</translation> +<translation id="166278006618318542">സബ്ജക്റ്റ് പൊതു കീ ആൽഗരിതം</translation> <translation id="1666232093776384142">പെരിഫറലുകൾക്കുള്ള ഡാറ്റാ ആക്സസ് പരിരക്ഷ പ്രവർത്തനരഹിതമാക്കുക</translation> <translation id="1668435968811469751">നേരിട്ട് എൻറോൾ ചെയ്യുക</translation> <translation id="1668979692599483141">നിർദ്ദേശങ്ങളെക്കുറിച്ച് അറിയുക</translation> @@ -1213,6 +1214,7 @@ <translation id="2300383962156589922"><ph name="APP_NAME" /> ഇഷ്ടാനുസൃതമാക്കുകയും നിയന്ത്രിക്കുകയും ചെയ്യുക</translation> <translation id="2300578660547687840">തിരയൽ കീവേഡുകൾക്കുള്ള കീബോഡ് കുറുക്കുവഴികള്</translation> <translation id="2301382460326681002">വിപുലീകരണ റൂട്ട് ഡയറക്റ്ററി അസാധുവാണ്.</translation> +<translation id="2301402091755573488">പങ്കിട്ട ടാബ്</translation> <translation id="23030561267973084">"<ph name="EXTENSION_NAME" />" കൂടുതൽ അനുമതികൾ അഭ്യർത്ഥിച്ചു.</translation> <translation id="23055578400314116">ഒരു ഉപയോക്തൃനാമം തിരഞ്ഞെടുക്കുക</translation> <translation id="2307462900900812319">നെറ്റ്വർക്ക് കോൺഫിഗർ ചെയ്യുക</translation> @@ -1490,6 +1492,7 @@ <translation id="2612676031748830579">കാർഡ് നമ്പർ</translation> <translation id="2613535083491958306"><ph name="ORIGIN" /> എന്നതിന് <ph name="FILENAME" /> എഡിറ്റ് ചെയ്യാനാകും</translation> <translation id="2616366145935564096"><ph name="WEBSITE_1" /> എന്നതിലെ നിങ്ങളുടെ ഡാറ്റ വായിക്കുക, മാറ്റുക</translation> +<translation id="2618274688675613222">സജ്ജീകരിക്കുന്നത് തുടരാൻ 'അടുത്തത്' ബട്ടണോ സ്വിച്ച് അസൈൻ ചെയ്യലുമായി ബന്ധപ്പെട്ട "തിരഞ്ഞെടുക്കുക" മാറ്റാൻ 'മുമ്പത്തേത്' ബട്ടണോ സജീവമാക്കുക.</translation> <translation id="2618797463720777311">സമീപമുള്ള പങ്കിടൽ സജ്ജീകരിക്കുക</translation> <translation id="2619761439309613843">ദിവസവുമുള്ള പുതുക്കൽ</translation> <translation id="2620215283731032047"><ph name="FILE_NAME" /> സുരക്ഷിതമായി ഡൗൺലോഡ് ചെയ്യാനാവില്ല.</translation> @@ -2884,6 +2887,7 @@ <translation id="4120817667028078560">പാത ദൈർഘ്യമേറിയതാണ്</translation> <translation id="4124823734405044952">നിങ്ങളുടെ സുരക്ഷാ കീ പുനഃസജ്ജീകരിച്ചു</translation> <translation id="4124935795427217608">യൂണികോൺ</translation> +<translation id="4126916490446791914">സ്വയമേവയുള്ള സ്കാൻ പ്രവർത്തനക്ഷമമാക്കി</translation> <translation id="412730574613779332">സ്പാൻഡെക്സ്</translation> <translation id="4130199216115862831">ഉപകരണ ലോഗ്</translation> <translation id="4130207949184424187">നിങ്ങൾ ഓമ്നിബോക്സിൽ നിന്ന് തിരയുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation> @@ -3266,6 +3270,7 @@ നിങ്ങളുടെ കുട്ടി സ്കൂളിൽ Chromebook ഉപയോഗിക്കുകയും സ്കൂളിലെ അതേ അനുഭവം വീട്ടിൽ നൽകണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുകയും ചെയ്യുന്നുണ്ടെങ്കിൽ, ആവശ്യമായ സ്കൂൾ വർക്കിലേക്കുള്ള ആക്സസ് കുട്ടിക്കുണ്ടെന്ന് ഉറപ്പ് വരുത്താൻ ഈ Family Link അക്കൗണ്ടിൽ നിന്നും സൈൻ ഔട്ട് ചെയ്ത ശേഷം Chrome OS അക്കൗണ്ടുകളുടെ പേജിൽ നിന്നും സ്കൂൾ അക്കൗണ്ടിലേക്ക് സൈൻ ഇൻ ചെയ്യുക (ശ്രദ്ധിക്കുക: Family Link-ന്റെ രക്ഷാകർതൃ നിയന്ത്രണങ്ങൾ ബാധകമല്ല).<br><br> നിങ്ങളുടെ കുട്ടി സ്കൂളിൽ Chromebook ഉപയോഗിക്കുന്നില്ലെങ്കിലോ കുട്ടിയുടെ സ്കൂൾ അനുഭവം Family Link ഉപയോഗിച്ച് വീട്ടിലിരുന്ന് മാനേജ് ചെയ്യാനാണ് നിങ്ങൾ ആഗ്രഹിക്കുന്നതെങ്കിലോ, ഈ പ്രൊഫൈലിലേക്ക് സ്കൂൾ അക്കൗണ്ട് ചേർക്കാൻ ചുവടെയുള്ള 'അടുത്തത്' ബട്ടൺ ക്ലിക്ക് ചെയ്യുക.</translation> <translation id="4576541033847873020">Bluetooth ഉപകരണം ജോടിയാക്കുക</translation> +<translation id="4576763597586015380">നിങ്ങളുടെ Google അക്കൗണ്ടിൽ പാസ്വേഡുകൾ സംരക്ഷിക്കുന്നത് തുടരാൻ, ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക</translation> <translation id="4579453506923101210">കണക്റ്റ് ചെയ്ത ഫോൺ മറക്കുക</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> കാസ്റ്റ് ചെയ്യാനാവുന്നില്ല.</translation> <translation id="4581774856936278355">Linux പുനഃസ്ഥാപിക്കുന്നതിൽ പിശക്</translation> @@ -4986,6 +4991,7 @@ <translation id="6538098297809675636">കോഡ് കണ്ടെത്തുന്നതിൽ പിശക്</translation> <translation id="653920215766444089">പോയിന്റ് ചെയ്യുന്ന ഉപകരണം തിരയുന്നു</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />ശ്രദ്ധിക്കുക:<ph name="END_BOLD" /> ഡാറ്റയുടെ ശേഖരം പ്രകടനത്തെ കുറയ്ക്കുമെന്നതിനാൽ, ചെയ്യുന്നതെന്താണെന്ന് നിങ്ങൾക്ക് അറിയാമെങ്കിലോ അങ്ങനെ ചെയ്യാൻ നിങ്ങൾ ആവശ്യപ്പെട്ടാലോ മാത്രമേ പ്രവർത്തനക്ഷമമാക്കൂ.</translation> +<translation id="6540672086173674880">Search-ഉം മറ്റ് Google സേവനങ്ങളും വ്യക്തിപരമാക്കാൻ Google നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ഉപയോഗിച്ചേക്കാം. നിങ്ങൾക്ക് ഇത് myaccount.google.com/activitycontrols/search -ൽ ഏതുസമയത്തും മാറ്റാം.</translation> <translation id="6541638731489116978">നിങ്ങളുടെ ചലന സെൻസറുകൾ ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് ഈ സൈറ്റിനെ ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു.</translation> <translation id="6545665334409411530">ആവർത്തന നിരക്ക്</translation> <translation id="6545864417968258051">Bluetooth സ്കാനിംഗ്</translation> @@ -5649,6 +5655,7 @@ <translation id="729583233778673644">AES,RC4 എൻക്രിപ്ഷനുകൾ അനുവദിക്കുക. RC4 രഹസ്യലിപി സുരക്ഷിതമല്ലാത്തതിനാൽ ഈ ഓപ്ഷൻ അനുവദിക്കുന്നത് അപകടസാധ്യത വർദ്ധിപ്പിക്കുന്നു.</translation> <translation id="729761647156315797">നിങ്ങളുടെ ഭാഷയും കീബോർഡും തിരഞ്ഞെടുക്കുക</translation> <translation id="7297726121602187087">ഇരുണ്ട പച്ച</translation> +<translation id="7298195798382681320">ശുപാർശചെയ്യുന്നത്</translation> <translation id="7299337219131431707">അതിഥി ബ്രൗസിംഗ് പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{ശരിയായി പ്രവർത്തിക്കുന്നതിൽ നിന്ന് Chrome-നെ ഈ ആപ്പ് തടഞ്ഞേക്കാം.}other{ശരിയായി പ്രവർത്തിക്കുന്നതിൽ നിന്ന് Chrome-നെ ഈ ആപ്പുകൾ തടഞ്ഞേക്കാം.}}</translation> <translation id="7303281435234579599">ക്ഷമിക്കണം! ഡെമോ മോഡ് സജ്ജീകരിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.</translation> @@ -5871,6 +5878,7 @@ <translation id="754207240458482646">നിങ്ങളുടെ അക്കൗണ്ടിലെ മറ്റ് ഉപകരണങ്ങളുമായി സമന്വയിപ്പിച്ചു. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation> <translation id="7543104066686362383">ഈ <ph name="IDS_SHORT_PRODUCT_NAME" /> ഉപകരണത്തിലെ ഡീബഗ് ചെയ്യൽ ഫീച്ചറുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നു</translation> <translation id="7543525346216957623">നിങ്ങളുടെ രക്ഷിതാവിനോട് ആവശ്യപ്പെടുക</translation> +<translation id="7546012169463147344">സ്വയമേവയുള്ള സ്കാൻ, സ്ക്രീനിലെ ഓരോ ഇനത്തിലൂടെയും സ്വയമേവ കടന്നുപോയി അവയിൽ ഫോക്കസ് ചെയ്യുന്നു. ഒരിനം ഫോക്കസ് ചെയ്തിരിക്കുമ്പോൾ, അത് സജീവമാക്കാൻ നിങ്ങൾ അസൈൻ ചെയ്തിരിക്കുന്ന "തിരഞ്ഞെടുക്കുക" കീ അമർത്തുക.</translation> <translation id="7547317915858803630">മുന്നറിയിപ്പ്: നിങ്ങളുടെ <ph name="PRODUCT_NAME" /> ക്രമീകരണങ്ങൾ ഒരു നെറ്റ്വർക്ക് ഡ്രൈവിൽ സംഭരിച്ചിരിക്കുന്നു. ഇതിന്റെ ഫലം മന്ദഗതിയിലുള്ള പ്രവർത്തനങ്ങൾ, ക്രാഷുകൾ അല്ലെങ്കിൽ ഡാറ്റ നഷ്ടപ്പെടുന്നത് പോലുമാകാം.</translation> <translation id="7548856833046333824">ലെമണേഡ്</translation> <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation> @@ -6840,6 +6848,7 @@ <translation id="8621866727807194849">നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ദോഷകരമായ സോഫ്റ്റ്വെയറുണ്ട്. Chrome, അത് നീക്കം ചെയ്യുകയും ക്രമീകരണം പുനഃസ്ഥാപിക്കുകയും വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കുകയും ചെയ്യുന്നു. നിങ്ങളുടെ ബ്രൗസറിനെ ഇത് വീണ്ടും സാധാരണ പ്രവർത്തന രീതിയിലാക്കും.</translation> <translation id="8621979332865976405">നിങ്ങളുടെ സ്ക്രീൻ പൂർണ്ണമായും പങ്കിടുക</translation> <translation id="8624354461147303341">ഡിസ്കൗണ്ടുകൾ നേടുക</translation> +<translation id="8624944202475729958"><ph name="PROFILE_NAME" />: <ph name="ERROR_DESCRIPTION" /></translation> <translation id="862542460444371744">&വിപുലീകരണങ്ങള്</translation> <translation id="8625663000550647058">നിങ്ങളുടെ മൈക്രോഫോൺ ഉപയോഗിക്കാൻ അനുവാദമില്ല</translation> <translation id="8625916342247441948">HID ഉപകരണങ്ങളിലേക്ക് കണക്റ്റ് ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation> @@ -6903,6 +6912,7 @@ <translation id="8677212948402625567">എല്ലാം ചുരുക്കുക</translation> <translation id="867767487203716855">അടുത്ത അപ്ഡേറ്റ്</translation> <translation id="8677859815076891398">ആൽബങ്ങളൊന്നുമില്ല. <ph name="LINK_BEGIN" />Google Photos-ൽ<ph name="LINK_END" /> ആൽബം സൃഷ്ടിക്കുക.</translation> +<translation id="8678538439778360739">നിങ്ങളുടെ സമന്വയിപ്പിക്കൽ പാസ്ഫ്രെയ്സ് ഉപയോഗിച്ച് <ph name="TIME" />-ന് ഡാറ്റ എൻക്രിപ്റ്റ് ചെയ്തു. ഇതിൽ Google Pay-യിൽ നിന്നുള്ള പേയ്മെന്റ് രീതികളും വിലാസങ്ങളും ഉൾപ്പെടുന്നില്ല.</translation> <translation id="8678582529642151449">ടാബുകൾ ഉള്ളിലേക്ക് ചുരുക്കില്ല</translation> <translation id="8678933587484842200">ഈ ആപ്പ് എങ്ങനെ ലോഞ്ച് ചെയ്യാനാണ് നിങ്ങൾ ആഗ്രഹിക്കുന്നത്?</translation> <translation id="8680251145628383637">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്മാർക്കുകൾ, ചരിത്രം, പാസ്വേഡുകൾ, മറ്റ് ക്രമീകരണം എന്നിവ ലഭിക്കാൻ സൈൻ ഇൻ ചെയ്യുക. നിങ്ങളുടെ Google സേവനങ്ങളിലേക്ക് സ്വയമേവ നിങ്ങൾ സൈൻ ഇൻ ആകുന്നതുമാണ്.</translation> @@ -7240,6 +7250,7 @@ <translation id="9026852570893462412">ഈ പ്രക്രിയയ്ക്ക് കുറച്ച് സമയമെടുത്തേക്കാം. വെർച്വൽ മെഷീൻ ഡൗൺലോഡ് ചെയ്യുന്നു.</translation> <translation id="9027459031423301635">പുതിയ &ടാബിൽ ലിങ്ക് തുറക്കുക</translation> <translation id="9030515284705930323">നിങ്ങളുടെ അക്കൗണ്ടിന് വേണ്ടി ഓർഗനൈസേഷൻ, Google Play സ്റ്റോർ പ്രവർത്തനക്ഷമമാക്കിയിട്ടില്ല. കൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.</translation> +<translation id="9030754204056345429">കൂടുതൽ വേഗതയുള്ളത്</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> എന്നതിന് ഇപ്പോൾ പിന്തുണയില്ല</translation> <translation id="9031549947500880805">Google ഡ്രൈവിലേക്ക് ബാക്കപ്പെടുക്കുക. ഏത് സമയത്തും ഡാറ്റ എളുപ്പത്തിൽ പുനഃസ്ഥാപിക്കുകയോ ഉപകരണം മാറുകയോ ചെയ്യുക. നിങ്ങളുടെ ബാക്കപ്പിൽ ആപ്പ് ഡാറ്റയും ഉൾപ്പെടുന്നു.</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index 3314145..8d572a99 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Проксид холбогдож чадсангүй</translation> <translation id="1405779994569073824">Эвдэрсэн.</translation> <translation id="1406500794671479665">Шалгаж байна...</translation> +<translation id="1407069428457324124">Бараан загвар</translation> <translation id="1407135791313364759">Бүгдийг нээ</translation> <translation id="140723521119632973">Үүрэн сүлжээний идэвхжүүлэлт</translation> <translation id="1407489512183974736">Төвийг хайчилсан</translation> @@ -5668,6 +5669,7 @@ <translation id="729583233778673644">AES болон RC4 шифрлэлтийг зөвшөөрнө үү. RC4 цифр нь аюултай учир энэхүү сонголтыг ашигласнаар таны эрсдэлийг нэмэгдүүлнэ.</translation> <translation id="729761647156315797">Хэл, гараа сонгоно уу</translation> <translation id="7297726121602187087">Бараан ногоон</translation> +<translation id="7298195798382681320">Санал болгосон</translation> <translation id="7299337219131431707">Зочин хөтөчийг идэвхжүүлэх</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Энэ апп Chrome-г хэвийн ажиллахад саад болж байж болзошгүй.}other{Эдгээр апп Chrome-г хэвийн ажиллахад саад болж байж болзошгүй.}}</translation> <translation id="7303281435234579599">Уучлаарай, демо горимыг тохируулах явцад алдаа гарлаа.</translation> @@ -7261,6 +7263,7 @@ <translation id="9026852570893462412">Энэ үйл явцад хэдэн минут шаардлагатай. Виртуал машиныг татаж байна.</translation> <translation id="9027459031423301635">Холбоосыг шинэ цонхонд нээ</translation> <translation id="9030515284705930323">Танай байгууллага Google Play Дэлгүүрийг таны бүртгэлд идэвхжүүлээгүй байна. Дэлгэрэнгүй мэдээлэл авахын тулд админтайгаа холбогдоно уу.</translation> +<translation id="9030754204056345429">Илүү хурдан</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" />-г цаашид дэмжихээ больсон</translation> <translation id="9031549947500880805">Google Драйвд хуулбарлана уу. Өгөгдлөө амархан сэргээх эсвэл хүссэн үедээ төхөөрөмж хооронд сэлгэнэ үү. Таны нөөцлөлтөд аппын өгөгдөл багтана.</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 49d92181..ff57c88c 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">प्रॉक्सीशी कनेक्ट करू शकत नाही</translation> <translation id="1405779994569073824">क्रॅश झाले</translation> <translation id="1406500794671479665">सत्यापित करत आहे...</translation> +<translation id="1407069428457324124">गडद थीम</translation> <translation id="1407135791313364759">सर्व उघडा</translation> <translation id="140723521119632973">सेल्युलर अॅक्टिव्हेशन</translation> <translation id="1407489512183974736">मध्यभागी क्रॉप केला</translation> @@ -5668,6 +5669,7 @@ <translation id="729583233778673644">AES आणि RC4 एंक्रिप्शनला अनुमती द्या. हा पर्याय वापरल्याने तुमचा धोका वाढतो, कारण RC4 सायफर असुरक्षित आहेत.</translation> <translation id="729761647156315797">तुमची भाषा आणि कीबोर्ड निवडा</translation> <translation id="7297726121602187087">गडद हिरवा</translation> +<translation id="7298195798382681320">शिफारस केलेले</translation> <translation id="7299337219131431707">अतिथी ब्राउझिंग सुरू करा</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{हे अॅप्लिकेशन Chrome ला योग्यरीत्या कार्य करण्यापासून रोखू शकते.}other{हे अॅप्लिकेशन Chrome ला योग्यरीत्या कार्य करण्यापासून रोखू शकते.}}</translation> <translation id="7303281435234579599">अरेरे! डेमो मोड सेट करताना काहीतरी चूक झाली.</translation> @@ -7263,6 +7265,7 @@ <translation id="9026852570893462412">या प्रक्रियेला काही मिनिटे लागू शकतात. व्हर्च्युअल मशीन डाउनलोड करत आहे.</translation> <translation id="9027459031423301635">नवीन &टॅब मध्ये लिंक उघडा</translation> <translation id="9030515284705930323">तुमच्या संस्थेने तुमच्या खात्यासाठी Google Play स्टोअर सक्षम केले नाही. अधिक माहितीसाठी तुमच्या ॲडमिनिस्ट्रेटरशी संपर्क साधा.</translation> +<translation id="9030754204056345429">अधिक जलद</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> ला यापुढे सपोर्ट असणार नाही</translation> <translation id="9031549947500880805">Google Drive वर बॅकअप घ्या. कधीही तुमचा डेटा सहजपणे रिस्टोअर करा किंवा डिव्हाइस स्विच करा. तुमच्या बॅकअपमध्ये अॅप डेटा समाविष्ट असतो.</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 9b3ecc09..921bb0f 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Tidak dapat menyambung kepada proksi</translation> <translation id="1405779994569073824">Ranap.</translation> <translation id="1406500794671479665">Mengesahkan...</translation> +<translation id="1407069428457324124">Tema gelap</translation> <translation id="1407135791313364759">Buka semua</translation> <translation id="140723521119632973">Pengaktifan Selular</translation> <translation id="1407489512183974736">Tengah Dipotong</translation> @@ -5673,6 +5674,7 @@ <translation id="729583233778673644">Benarkan penyulitan AES dan RC4. Penggunaan pilihan ini akan meningkatkan risiko anda, kerana sifer RC4 tidak selamat.</translation> <translation id="729761647156315797">Pilih bahasa & papan kekunci anda</translation> <translation id="7297726121602187087">Hijau gelap</translation> +<translation id="7298195798382681320">Disyorkan</translation> <translation id="7299337219131431707">Dayakan penyemakan imbas tetamu</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Aplikasi ini boleh menghalang Chrome daripada berfungsi dengan betul.}other{Aplikasi ini boleh menghalang Chrome daripada berfungsi dengan betul.}}</translation> <translation id="7303281435234579599">Op! Kesilapan telah berlaku semasa menyediakan mod tunjuk cara.</translation> @@ -7272,6 +7274,7 @@ <translation id="9026852570893462412">Proses ini mungkin mengambil masa beberapa minit. Memuat turun mesin maya.</translation> <translation id="9027459031423301635">Buka Pautan dalam Tab &Baharu</translation> <translation id="9030515284705930323">Organisasi anda belum mendayakan Gedung Google Play untuk akaun anda. Hubungi pentadbir anda untuk mendapatkan maklumat lanjut.</translation> +<translation id="9030754204056345429">Lebih laju</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> tidak disokong lagi</translation> <translation id="9031549947500880805">Sandarkan pada Google Drive. Pulihkan data atau tukar peranti anda dengan mudah pada bila-bila masa. Sandaran anda merangkumi data apl.</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index 2880a66f..6362d2c 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">ဤပရောက်စီသို့ ချိတ်ဆက်၍မရပါ</translation> <translation id="1405779994569073824">ရပ်တန့်သွားသည်။</translation> <translation id="1406500794671479665">စိစစ်နေ...</translation> +<translation id="1407069428457324124">မှောင်သည့်အပြင်အဆင်</translation> <translation id="1407135791313364759">အားလုံး ဖွင့်ရန်</translation> <translation id="140723521119632973">ဆယ်လူလာ စတင်ခြင်း</translation> <translation id="1407489512183974736">အလယ်ဖြတ်ထား</translation> @@ -5669,6 +5670,7 @@ <translation id="729583233778673644">AES နှင့် RC4 အသွင်ဝှက်ခြင်းကို ခွင့်ပြုရန်။ RC4 အသွင်ဝှက်ခြင်းသည် လုံခြုံမှုမရှိသည့်အတွက် အန္တရာယ်ပိုရှိစေနိုင်ပါသည်။</translation> <translation id="729761647156315797">ဘာသာစကားနှင့် ကီးဘုတ်ကို ရွေးချယ်ပါ</translation> <translation id="7297726121602187087">အစိမ်းရင့်</translation> +<translation id="7298195798382681320">အကြံပြုထား</translation> <translation id="7299337219131431707">ဧည့်သည်ဘရောက်လုပ်ရန် ဖွင့်မည်</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Chrome ကောင်းမွန်စွာ အလုပ်မလုပ်နိုင်စေရန် ဤအပလီကေးရှင်းက တားဆီးထားနိုင်ပါသည်။}other{Chrome ကောင်းမွန်စွာ အလုပ်မလုပ်နိုင်စေရန် ဤအပလီကေးရှင်းများက တားဆီးထားနိုင်ပါသည်။}}</translation> <translation id="7303281435234579599">ဝမ်းနည်းပါသည်။ သရုပ်ပြမုဒ်ကို စနစ်ထည့်သွင်းရာတွင် တစ်စုံတစ်ခု မှားယွင်းသွားသည်။</translation> @@ -7266,6 +7268,7 @@ <translation id="9026852570893462412">ဤလုပ်ဆောင်ချက်သည် မိနစ်အနည်းငယ်ကြာနိုင်ပါသည်။ ပကတိအသွင်စက်ကို ဒေါင်းလုဒ်လုပ်နေသည်။</translation> <translation id="9027459031423301635">လင့်ကို တဘ် & အသစ်ထဲမှာ ဖွင့်ရန်</translation> <translation id="9030515284705930323">သင့်အဖွဲ့အစည်းသည် သင့်အကောင့်အတွက် Google Play Store ကို ဖွင့်မပေးရသေးပါ။ နောက်ထပ်အချက်အလက်များအတွက် သင့်စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation> +<translation id="9030754204056345429">မြန်မြန်</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> ကို မပံ့ပိုးတော့ပါ</translation> <translation id="9031549947500880805">Google Drive သို့ မိတ္တူကူးရန်။ သင်၏ ဒေတာများကို အလွယ်တကူ ပြန်ယူပါ သို့မဟုတ် စက်ပစ္စည်းကို အချိန်မရွေး ပြောင်းပါ။ သင်၏ မိတ္တူတွင် အက်ပ်ဒေတာများ ပါဝင်သည်။</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index a8fe809..bb719b53 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -356,6 +356,7 @@ <translation id="1403222014593521787">प्रोक्सीमा कनेक्ट गर्न सकिएन</translation> <translation id="1405779994569073824">क्र्यास भयो।</translation> <translation id="1406500794671479665">रुजू गर्दै...</translation> +<translation id="1407069428457324124">अँध्यारो थिम</translation> <translation id="1407135791313364759">सबै खोल्नुहोस्</translation> <translation id="140723521119632973">सेलुलर सक्रिय गर्ने कार्य</translation> <translation id="1407489512183974736">केन्द्रलाई काटियो</translation> @@ -5632,6 +5633,7 @@ <translation id="729583233778673644">AES र RC4 इन्क्रिप्सनलाई अनुमति दिनुहोस्। RC4 साइफरहरू असुरक्षित हुने हुनाले यो विकल्पको प्रयोग गर्नुले तपाईंको जोखिममा वृद्धि हुन्छ।</translation> <translation id="729761647156315797">आफ्नो भाषा र किबोर्ड छनौट गर्नुहोस्</translation> <translation id="7297726121602187087">गाढा हरियो</translation> +<translation id="7298195798382681320">सिफारिस गरिएको</translation> <translation id="7299337219131431707">पाहुना ब्राउजिङ सक्षम गर्नुहोस्</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{यो एपले Chrome लाई राम्ररी काम गर्नबाट रोक्न सक्छ।}other{यी अनुप्रयोगले Chrome लाई राम्ररी काम गर्नबाट रोक्न सक्छन्।}}</translation> <translation id="7303281435234579599">हत्तेरिका! डेमो मोड सेटअप गर्ने क्रममा केही चिज गडबड भयो।</translation> @@ -7222,6 +7224,7 @@ <translation id="9026852570893462412">यो प्रक्रियामा केही मिनेट लाग्न सक्छ। भर्चुअल मेसिन डाउनलोड गर्दै।</translation> <translation id="9027459031423301635">लिङ्कलाई नयाँ &ट्याबमा खोल्नुहोस्</translation> <translation id="9030515284705930323">तपाईँको संगठनले तपाईँको खाताको लागि Google Play स्टोरलाई सक्रिय गरेको छैन। थप जानकारीका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।</translation> +<translation id="9030754204056345429">अझ छिटो</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> अब उप्रान्त प्रयोग गर्न मिल्दैन</translation> <translation id="9031549947500880805">Google ड्राइभमा ब्याकअप गर्नुहोस् जुनसुकै बेला सजिलैसँग आफ्नो डेटा पुनर्स्थापना गर्नुहोस् वा यन्त्र बदल्नुहोस्। तपाईंको ब्याकअपमा एपको डेटा समावेश हुन्छ।</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index 89c75e0..e9c55e3 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">Kan geen verbinding maken met de proxy</translation> <translation id="1405779994569073824">Gecrasht</translation> <translation id="1406500794671479665">Verifiëren...</translation> +<translation id="1407069428457324124">Donker thema</translation> <translation id="1407135791313364759">Alles openen</translation> <translation id="140723521119632973">Mobiele activering</translation> <translation id="1407489512183974736">Midden bijsnijden</translation> @@ -5654,6 +5655,7 @@ <translation id="729583233778673644">AES- en RC4-versleuteling toestaan. Als je deze optie gebruikt, loop je meer risico, aangezien RC4-codering onbeveiligd is.</translation> <translation id="729761647156315797">Kies je taal en toetsenbord</translation> <translation id="7297726121602187087">Donkergroen</translation> +<translation id="7298195798382681320">Aanbevolen</translation> <translation id="7299337219131431707">Gebruiken als gast toestaan</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Deze app kan ervoor zorgen dat Chrome niet goed functioneert.}other{Deze apps kunnen ervoor zorgen dat Chrome niet goed functioneert.}}</translation> <translation id="7303281435234579599">Er is een probleem opgetreden bij het instellen van de demomodus.</translation> @@ -7251,6 +7253,7 @@ <translation id="9026852570893462412">Dit proces kan enkele minuten duren. De virtuele machine wordt gedownload.</translation> <translation id="9027459031423301635">Link openen op nieuw &tabblad</translation> <translation id="9030515284705930323">Je organisatie heeft de Google Play Store niet aangezet voor jouw account. Neem contact op met je beheerder voor meer informatie.</translation> +<translation id="9030754204056345429">Sneller</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> wordt niet meer ondersteund</translation> <translation id="9031549947500880805">Maak een back-up op Google Drive. Zet je gegevens eenvoudig terug of schakel wanneer je wilt tussen apparaten. De back-up bevat app-gegevens.</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index dee8b7f2..52e380e 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Kunne ikke koble til proxy-tjeneren</translation> <translation id="1405779994569073824">Kræsjet.</translation> <translation id="1406500794671479665">Bekrefter …</translation> +<translation id="1407069428457324124">Mørkt tema</translation> <translation id="1407135791313364759">Åpne alle</translation> <translation id="140723521119632973">Aktivering med mobiltelefon</translation> <translation id="1407489512183974736">Midstill og beskjær</translation> @@ -5664,6 +5665,7 @@ <translation id="729583233778673644">Tillat AES- og RC4-kryptering. Hvis du bruker dette alternativet, øker risikoen, ettersom RC4-chiffere ikke er sikre.</translation> <translation id="729761647156315797">Velg språket og tastaturet ditt</translation> <translation id="7297726121602187087">Mørk grønn</translation> +<translation id="7298195798382681320">Anbefalt</translation> <translation id="7299337219131431707">Slå på gjestesurfing</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Dette programmet kan hindre at Chrome fungerer skikkelig.}other{Disse programmene kan hindre at Chrome fungerer skikkelig.}}</translation> <translation id="7303281435234579599">Beklager, noe gikk galt under konfigurering av demomodus.</translation> @@ -7261,6 +7263,7 @@ <translation id="9026852570893462412">Denne prosessen kan ta noen minutter. Laster ned den virtuelle maskinen.</translation> <translation id="9027459031423301635">Åpne link i ny &fane</translation> <translation id="9030515284705930323">Organisasjonen din har ikke slått på Google Play-butikken for kontoen din. Kontakt administratoren din for å få mer informasjon.</translation> +<translation id="9030754204056345429">Raskere</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> støttes ikke lenger</translation> <translation id="9031549947500880805">Sikkerhetskopiér til Google Disk. Gjenopprett dataene dine enkelt eller bytt enhet når som helst. Sikkerhetskopien din inkluderer appdata.</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index d6f82e6..7e88ae0 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -360,6 +360,7 @@ <translation id="1403222014593521787">ପ୍ରକ୍ସି ସହିତ ସଂଯୋଗ କରିବାକୁ ଅକ୍ଷମ</translation> <translation id="1405779994569073824">କ୍ରାସ୍ ହୋଇଯାଇଛି।</translation> <translation id="1406500794671479665">ଯାଞ୍ଚ ହେଉଛି...</translation> +<translation id="1407069428457324124">ଗାଢ଼ ଥିମ୍</translation> <translation id="1407135791313364759">ସବୁ ଖୋଲନ୍ତୁ</translation> <translation id="140723521119632973">ସେଲ୍ୟୁଲାର୍ ସକ୍ରିୟକରଣ</translation> <translation id="1407489512183974736">କେନ୍ଦ୍ରସ୍ଥଳରେ କ୍ରପ୍ କରାଗଲା</translation> @@ -1421,7 +1422,7 @@ <translation id="252502352004572774">Chrome କ୍ଷତିକାରକ ସଫ୍ଟୱେର୍ ପାଇଁ ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରକୁ ଯାଞ୍ଚ କରୁଛି...</translation> <translation id="2526277209479171883">ଇନ୍ଷ୍ଟଲ୍ କରନ୍ତୁ ଏବଂ ଜାରି ରଖନ୍ତୁ</translation> <translation id="2526590354069164005">ଡେସ୍କଟପ୍</translation> -<translation id="2526619973349913024">କୌଣସି ଅପ୍ଡେଟ୍ ଅଛି କି ନାହିଁ ଯାଞ୍ଚ କରନ୍ତୁ</translation> +<translation id="2526619973349913024">ଅପଡେଟ୍ ପାଇଁ ଯାଞ୍ଚ କରନ୍ତୁ</translation> <translation id="2527167509808613699">ଯେକୌଣସି ପ୍ରକାରର ସଂଯୋଜନା</translation> <translation id="2530166226437958497">ଟ୍ରବୁଲସୁଟିଂ</translation> <translation id="2532589005999780174">ଉଚ୍ଚ କଣ୍ଟ୍ରାଷ୍ଟ ମୋଡ୍</translation> @@ -5649,6 +5650,7 @@ <translation id="729583233778673644">AES ଓ RC4 ଏନ୍କ୍ରିପ୍ସନ୍ ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ। RC4 ସଂକେତାକ୍ଷରଗୁଡ଼ିକ ଅସୁରକ୍ଷିତ ଥିବାରୁ ଏହି ବିକଳ୍ପର ବ୍ୟବହାର ଆପଣଙ୍କର ବିପଦ ବଢ଼ାଇଥାଏ।</translation> <translation id="729761647156315797">ନିଜର ଭାଷା ଓ କୀବୋର୍ଡ ବାଛନ୍ତୁ</translation> <translation id="7297726121602187087">ଗାଢ଼ ସବୁଜ</translation> +<translation id="7298195798382681320">ସୁପାରିଶ୍ କରାଯାଇଛି</translation> <translation id="7299337219131431707">ଗେଷ୍ଟ ବ୍ରାଉଜିଂ ସକ୍ଷମ କରନ୍ତୁ</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{ଏହି ଆପ୍ଲିକେସନ୍ Chromeକୁ ଠିକ୍ ଭାବରେ କାର୍ଯ୍ୟ କରିବାରୁ ବାଧା ଦେଇପାରେ।}other{ଏହି ଆପ୍ଲିକେସନ୍ Chromeକୁ ଠିକ୍ ଭାବରେ କାର୍ଯ୍ୟ କରିବାରୁ ବାଧା ଦେଇପାରେ।}}</translation> <translation id="7303281435234579599">ଓହୋଃ! ଡେମୋ ମୋଡ୍ ସେଟ୍ କରିବା ସମୟରେ କିଛି ତ୍ରୁଟି ହୋଇଛି</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index d77d6cc..572225f 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">ਪ੍ਰੌਕਸੀ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ</translation> <translation id="1405779994569073824">ਕ੍ਰੈਸ਼ ਹੋਈ।</translation> <translation id="1406500794671479665">ਪ੍ਰਮਾਣਿਤ ਕਰ ਰਿਹਾ ਹੈ...</translation> +<translation id="1407069428457324124">ਗੂੜ੍ਹਾ ਥੀਮ</translation> <translation id="1407135791313364759">ਸਾਰੇ ਖੋਲ੍ਹੋ</translation> <translation id="140723521119632973">ਸੈਲਿਊਲਰ ਕਿਰਿਆਸ਼ੀਲਤਾ</translation> <translation id="1407489512183974736">ਸੈਂਟਰ ਕੱਟਿਆ</translation> @@ -1230,6 +1231,7 @@ <translation id="2300383962156589922"><ph name="APP_NAME" /> ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰਕੇ ਕੰਟਰੋਲ ਕਰੋ</translation> <translation id="2300578660547687840">ਖੋਜ ਪ੍ਰਮੁੱਖ-ਸ਼ਬਦਾਂ ਲਈ ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟ</translation> <translation id="2301382460326681002">ਐਕਸਟੈਂਸ਼ਨ ਰੂਟ ਡਾਇਰੈਕਟਰੀ ਅਵੈਧ ਹੈ।</translation> +<translation id="2301402091755573488">ਸਾਂਝਾ ਕੀਤਾ ਟੈਬ</translation> <translation id="23030561267973084">"<ph name="EXTENSION_NAME" />" ਨੇ ਵਾਧੂ ਅਨੁਮਤੀਆਂ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ।</translation> <translation id="23055578400314116">ਕੋਈ ਵਰਤੋਂਕਾਰ ਨਾਮ ਚੁਣੋ</translation> <translation id="2307462900900812319">ਨੈੱਟਵਰਕ ਸੰਰੂਪਿਤ ਕਰੋ</translation> @@ -1507,6 +1509,7 @@ <translation id="2612676031748830579">ਕਾਰਡ ਨੰਬਰ</translation> <translation id="2613535083491958306"><ph name="ORIGIN" />, <ph name="FILENAME" /> ਦਾ ਸੰਪਾਦਨ ਕਰ ਸਕੇਗੀ</translation> <translation id="2616366145935564096">ਆਪਣਾ ਡਾਟਾ <ph name="WEBSITE_1" /> ਤੇ ਪੜ੍ਹੋ ਅਤੇ ਬਦਲੋ</translation> +<translation id="2618274688675613222">ਸੈੱਟਅੱਪ ਨੂੰ ਜਾਰੀ ਰੱਖਣ ਲਈ 'ਅੱਗੇ' ਬਟਨ ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ ਜਾਂ ਅਸਾਈਨਮੈਂਟ ਸਵਿੱਚ "ਚੋਣ" ਨੂੰ ਬਦਲਣ ਲਈ ਪਿੱਛੇ ਬਟਨ ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ।</translation> <translation id="2618797463720777311">'ਨਜ਼ਦੀਕੀ ਸਾਂਝ' ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ</translation> <translation id="2619761439309613843">ਰੋਜ਼ਾਨਾ ਰਿਫ੍ਰੈਸ਼ ਕਰੋ</translation> <translation id="2620215283731032047"><ph name="FILE_NAME" /> ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।</translation> @@ -2901,6 +2904,7 @@ <translation id="4120817667028078560">ਪਾਥ ਬਹੁਤ ਲੰਮਾ ਹੈ</translation> <translation id="4124823734405044952">ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਰੀਸੈੱਟ ਕਰ ਦਿੱਤੀ ਗਈ ਹੈ</translation> <translation id="4124935795427217608">ਇੱਕ ਸਿੰਗ ਵਾਲਾ ਘੋੜਾ</translation> +<translation id="4126916490446791914">ਸਵੈਚਲਿਤ-ਸਕੈਨ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਗਿਆ</translation> <translation id="412730574613779332">Spandex</translation> <translation id="4130199216115862831">ਡੀਵਾਈਸ ਲੌਗ</translation> <translation id="4130207949184424187">ਇਹ ਐਕਸਟੈਂਸ਼ਨ ਬਦਲਿਆ ਗਿਆ ਹੈ ਕਿ ਕਿਹੜਾ ਪੰਨਾ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ Omnibox ਤੋਂ ਖੋਜ ਕਰਦੇ ਹੋ।</translation> @@ -3284,6 +3288,7 @@ ਜੇ ਤੁਹਾਡਾ ਬੱਚਾ ਸਕੂਲ ਵਿੱਚ Chromebook ਵਰਤਦਾ ਹੈ ਅਤੇ ਤੁਸੀਂ ਘਰ ਬੈਠੇ ਸਕੂਲੀ ਅਨੁਭਵ ਨੂੰ ਪ੍ਰਤਿਬਿੰਬਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਕਿ ਇਹ ਪੱਕਾ ਕੀਤਾ ਜਾ ਸਕੇ ਕਿ ਤੁਹਾਡੇ ਬੱਚੇ ਕੋਲ ਸਕੂਲ ਦੇ ਸਾਰੇ ਜ਼ਰੂਰੀ ਕੰਮਾਂ ਤੱਕ ਪਹੁੰਚ ਹੈ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਇਸ Family Link ਖਾਤੇ ਵਿੱਚੋਂ ਸਾਈਨ-ਆਊਟ ਕਰਕੇ 'Chrome OS ਖਾਤੇ' ਪੰਨੇ ਤੋਂ ਸਕੂਲੀ ਖਾਤੇ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰੋ (ਨੋਟ-ਕਰੋ: Family Link ਸੰਬੰਧੀ ਮਾਪਿਆਂ ਦੇ ਕੰਟਰੋਲ ਲਾਗੂ ਨਹੀਂ ਹੋਣਗੇ)।<br><br> ਜੇ ਤੁਹਾਡਾ ਬੱਚਾ ਸਕੂਲ ਵਿੱਚ Chromebook ਨਹੀਂ ਵਰਤਦਾ ਜਾਂ ਜੇ ਤੁਸੀਂ ਘਰ ਬੈਠੇ Family Link ਵਰਤ ਕੇ ਆਪਣੇ ਬੱਚੇ ਦੇ ਅਨੁਭਵ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਸਕੂਲੀ ਖਾਤਾ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ 'ਅੱਗੇ ਜਾਓ' ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।</translation> <translation id="4576541033847873020">ਬਲੂਟੁੱਥ ਡੀਵਾਈਸ ਨੂੰ ਜੋੜਾਬੱਧ ਕਰੋ</translation> +<translation id="4576763597586015380">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰਨੇ ਜਾਰੀ ਰੱਖਣ ਲਈ, ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਇਹ ਤੁਸੀਂ ਹੀ ਹੋ</translation> <translation id="4579453506923101210">ਕਨੈਕਟ ਕੀਤੇ ਫ਼ੋਨ ਨੂੰ ਭੁੱਲ ਜਾਓ</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> ਨੂੰ ਕਾਸਟ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ।</translation> <translation id="4581774856936278355">Linux ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰਨ ਵੇਲੇ ਗੜਬੜ ਹੋਈ</translation> @@ -5002,6 +5007,7 @@ <translation id="6538098297809675636">ਕੋਡ ਦਾ ਪਤਾ ਲਗਾਉਣ ਵੇਲੇ ਗੜਬੜ ਹੋ ਗਈ</translation> <translation id="653920215766444089">ਪੁਆਇੰਟਰ ਵਾਲਾ ਡੀਵਾਈਸ ਖੋਜਿਆ ਜਾ ਰਿਹਾ ਹੈ</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />ਨੋਟ:<ph name="END_BOLD" /> ਸਿਰਫ਼ ਤਾਂ ਹੀ ਚਾਲੂ ਕਰੋ ਜੇਕਰ ਤੁਹਾਨੂੰ ਪਤਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕੀ ਕਰ ਰਹੇੇ ਹੋ ਜਾਂ ਜੇਕਰ ਤੁਹਾਨੂੰ ਅਜਿਹਾ ਕਰਨ ਲਈ ਕਿਹਾ ਗਿਆ ਹੈ, ਕਿਉਂਕਿ ਡਾਟਾ ਦਾ ਇਕੱਤਰੀਕਰਨ ਕਾਰਗੁਜ਼ਾਰੀ ਘਟਾ ਸਕਦਾ ਹੈ।</translation> +<translation id="6540672086173674880">Google ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਦੀ ਵਰਤੋਂ Search ਅਤੇ ਹੋਰ Google ਸੇਵਾਵਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ ਕਰ ਸਕਦਾ ਹੈ। ਤੁਸੀਂ ਇਸ ਨੂੰ ਕਿਸੇ ਵੇਲੇ ਵੀ myaccount.google.com/activitycontrols/search 'ਤੇ ਬਦਲ ਸਕਦੇ ਹੋ</translation> <translation id="6541638731489116978">ਇਸ ਸਾਈਟ ਨੂੰ ਤੁਹਾਡੇ ਗਤੀਸ਼ੀਲਤਾ ਸੈਂਸਰਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਤੋਂ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ।</translation> <translation id="6545665334409411530">ਦੁਹਰਾਉਣ ਦੀ ਦਰ</translation> <translation id="6545864417968258051">ਬਲੂਟੁੱਥ ਸਕੈਨਿੰਗ</translation> @@ -5665,6 +5671,7 @@ <translation id="729583233778673644">AES ਅਤੇ RC4 ਇਨਕ੍ਰਿਪਸ਼ਨ ਕਰਨ ਦਿਓ। ਇਸ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਨਾ, RC4 ciphers ਦੇ ਅਸੁਰੱਖਿਅਤ ਹੋਣ ਕਰਕੇ ਤੁਹਾਡੇ ਜੋਖਮ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।</translation> <translation id="729761647156315797">ਆਪਣੀ ਭਾਸ਼ਾ ਅਤੇ ਕੀ-ਬੋਰਡ ਚੁਣੋ</translation> <translation id="7297726121602187087">ਗੂੜ੍ਹਾ ਹਰਾ</translation> +<translation id="7298195798382681320">ਸਿਫ਼ਾਰਿਸ਼ ਕੀਤਾ</translation> <translation id="7299337219131431707">ਮਹਿਮਾਨ ਬ੍ਰਾਊਜ਼ਿੰਗ ਨੂੰ ਚਾਲੂ ਕਰੋ</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{ਇਹ ਐਪਲੀਕੇਸ਼ਨ Chrome ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਤੋਂ ਰੋਕ ਸਕਦੀ ਹੈ।}one{ਇਹ ਐਪਲੀਕੇਸ਼ਨ Chrome ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਤੋਂ ਰੋਕ ਸਕਦੀ ਹੈ।}other{ਇਹ ਐਪਲੀਕੇਸ਼ਨਾਂਂ Chrome ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਤੋਂ ਰੋਕ ਸਕਦੀਆਂ ਹਨ।}}</translation> <translation id="7303281435234579599">ਓਹੋ! ਡੈਮੋ ਮੋਡ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਦੌਰਾਨ ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ।</translation> @@ -5887,6 +5894,7 @@ <translation id="754207240458482646">ਤੁਹਾਡੇ ਖਾਤੇ 'ਤੇ ਹੋਰ ਡੀਵਾਈਸਾਂ ਨਾਲ ਸਮਕਾਲੀਕਰਨ ਕੀਤਾ ਗਿਆ। <ph name="LINK_BEGIN" />ਹੋਰ ਜਾਣੋ<ph name="LINK_END" /></translation> <translation id="7543104066686362383">ਇਸ <ph name="IDS_SHORT_PRODUCT_NAME" /> ਡੀਵਾਈਸ 'ਤੇ ਡੀਬੱਗਿੰਗ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਚਾਲੂ ਕਰੋ</translation> <translation id="7543525346216957623">ਆਪਣੇ ਮਾਤਾ-ਪਿਤਾ ਨੂੰ ਪੁੱਛੋ</translation> +<translation id="7546012169463147344">ਸਵੈਚਲਿਤ-ਸਕੈਨ ਵਿਸ਼ੇਸ਼ਤਾ ਦੇ ਨਾਲ, ਸਕ੍ਰੀਨ 'ਤੇ ਆਈਟਮਾਂ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਫੋਕਸ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ। ਜਦੋਂ ਕਿਸੇ ਆਈਟਮ 'ਤੇ ਫ਼ੋਕਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਉਸ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਵੱਲੋਂ ਉਸੇ ਵੇਲੇ ਨਿਰਧਾਰਿਤ ਕੀਤੀ ਗਈ "ਚੁਣੋ" ਕੁੰਜੀ ਨੂੰ ਦਬਾਓ।</translation> <translation id="7547317915858803630">ਚਿਤਾਵਨੀ: ਤੁਹਾਡੀਆਂ <ph name="PRODUCT_NAME" /> ਸੈਟਿੰਗਾਂ ਇੱਕ ਨੈੱਟਵਰਕ ਡਰਾਈਵ 'ਤੇ ਸਟੋਰ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਇਸਦੇ ਸਿੱਟੇ ਵਜੋਂ ਹੌਲੀ ਹੋਣਾ, ਕ੍ਰੈਸ਼ ਜਾਂ ਡਾਟਾ ਨਸ਼ਟ ਹੋ ਸਕਦਾ ਹੈ।</translation> <translation id="7548856833046333824">Lemonade</translation> <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation> @@ -6855,6 +6863,7 @@ <translation id="8621866727807194849">ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਹੈ। Chrome ਇਸਨੂੰ ਹਟਾ ਰਿਹਾ ਹੈ, ਤੁਹਾਡੀਆਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਬੰਦ ਕਰ ਰਿਹਾ ਹੈ। ਇੰਝ ਕਰਨ ਨਾਲ ਤੁਹਾਡਾ ਬ੍ਰਾਊਜ਼ਰ ਦੁਬਾਰਾ ਆਮ ਵਾਂਗ ਕੰਮ ਕਰਨ ਲੱਗੇਗਾ।</translation> <translation id="8621979332865976405">ਆਪਣੀ ਪੂਰੀ ਸਕ੍ਰੀਨ ਸਾਂਝੀ ਕਰੋ</translation> <translation id="8624354461147303341">ਛੋਟਾਂ ਪ੍ਰਾਪਤ ਕਰੋ</translation> +<translation id="8624944202475729958"><ph name="PROFILE_NAME" />: <ph name="ERROR_DESCRIPTION" /></translation> <translation id="862542460444371744">&ਐਕਸਟੈਂਸ਼ਨਾਂ</translation> <translation id="8625663000550647058">ਤੁਹਾਡੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ</translation> <translation id="8625916342247441948">ਸਾਈਟਾਂ ਨੂੰ HID ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਾ ਦਿਓ</translation> @@ -6918,6 +6927,7 @@ <translation id="8677212948402625567">ਸਭ ਸਮੇਟੋ</translation> <translation id="867767487203716855">ਅਗਲਾ ਅੱਪਡੇਟ</translation> <translation id="8677859815076891398">ਕੋਈ ਐਲਬਮ ਨਹੀਂ ਹੈ। <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" /> ਵਿੱਚ ਐਲਬਮ ਬਣਾਓ।</translation> +<translation id="8678538439778360739"><ph name="TIME" /> ਵਜੇ ਡਾਟਾ ਤੁਹਾਡੇ ਸਮਕਾਲੀਕਰਨ ਪਾਸਫਰੇਜ਼ ਨਾਲ ਇਨਕ੍ਰਿਪਟ ਕੀਤਾ ਗਿਆ ਸੀ। ਇਸ ਵਿੱਚ Google Pay ਦੀਆਂ ਭੁਗਤਾਨ ਵਿਧੀਆਂ ਅਤੇ ਪਤੇ ਸ਼ਾਮਲ ਨਹੀਂ ਹਨ।</translation> <translation id="8678582529642151449">ਟੈਬਾਂ ਨਹੀਂ ਸੁੰਗੜਨਗੀਆਂ</translation> <translation id="8678933587484842200">ਤੁਸੀਂ ਇਸ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਕਿਵੇਂ ਲਾਂਚ ਕਰਨਾ ਚਾਹੋਗੇ?</translation> <translation id="8680251145628383637">ਆਪਣੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਆਪਣੇ ਬੁੱਕਮਾਰਕ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ। ਤੁਸੀਂ ਆਪਣੀਆਂ Google ਸੇਵਾਵਾਂ 'ਤੇ ਵੀ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਸਾਈਨ-ਇਨ ਹੋ ਜਾਵੋਗੇ।</translation> @@ -7257,6 +7267,7 @@ <translation id="9026852570893462412">ਇਸ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਕੁਝ ਮਿੰਟ ਲੱਗ ਸਕਦੇ ਹਨ। ਆਭਾਸੀ ਮਸ਼ੀਨ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।</translation> <translation id="9027459031423301635">ਨਵੀਂ &ਟੈਬ ਵਿੱਚ ਲਿੰਕ ਖੋਲ੍ਹੋ</translation> <translation id="9030515284705930323">ਤੁਹਾਡੇ ਸੰਗਠਨ ਨੇ ਤੁਹਾਡੇ ਖਾਤੇ ਲਈ 'Google Play ਸਟੋਰ' ਨੂੰ ਚਾਲੂ ਨਹੀਂ ਕੀਤਾ ਹੋਇਆ ਹੈ। ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।</translation> +<translation id="9030754204056345429">ਵਧੇਰੇ ਤੇਜ਼</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ</translation> <translation id="9031549947500880805">'Google ਡਰਾਈਵ' ਵਿੱਚ ਬੈਕਅੱਪ ਲਓ। ਕਿਸੇ ਵੇਲੇ ਵੀ ਅਸਾਨੀ ਨਾਲ ਆਪਣਾ ਡਾਟਾ ਮੁੜ-ਬਹਾਲ ਕਰੋ ਜਾਂ ਡੀਵਾਈਸਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰੋ। ਤੁਹਾਡੇ ਬੈਕਅੱਪ ਵਿੱਚ ਐਪ ਡਾਟਾ ਸ਼ਾਮਲ ਹੈ।</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index ce1c777..75b52f5 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Nie udało się nawiązać połączenia z serwerem proxy</translation> <translation id="1405779994569073824">Awaria</translation> <translation id="1406500794671479665">Weryfikuję...</translation> +<translation id="1407069428457324124">Ciemny motyw</translation> <translation id="1407135791313364759">Otwórz wszystkie</translation> <translation id="140723521119632973">Aktywowanie sieci komórkowej</translation> <translation id="1407489512183974736">Wyśrodkuj i przytnij</translation> @@ -5651,6 +5652,7 @@ <translation id="729583233778673644">Zezwala na szyfrowanie AES i RC4. Używanie tej opcji jest ryzykowne, ponieważ szyfrowanie RC4 nie zapewnia bezpieczeństwa.</translation> <translation id="729761647156315797">Wybierz język i klawiaturę</translation> <translation id="7297726121602187087">Ciemnozielony</translation> +<translation id="7298195798382681320">Zalecane</translation> <translation id="7299337219131431707">Zezwalaj na logowanie jako gość</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Ta aplikacja może uniemożliwiać prawidłowe działanie Chrome.}few{Te aplikacje mogą uniemożliwiać prawidłowe działanie Chrome.}many{Te aplikacje mogą uniemożliwiać prawidłowe działanie Chrome.}other{Te aplikacje mogą uniemożliwiać prawidłowe działanie Chrome.}}</translation> <translation id="7303281435234579599">Ups! Podczas konfigurowania trybu demonstracyjnego coś poszło nie tak.</translation> @@ -7251,6 +7253,7 @@ <translation id="9026852570893462412">Może to potrwać kilka minut. Pobieram maszynę wirtualną.</translation> <translation id="9027459031423301635">Otwórz link w nowej &karcie</translation> <translation id="9030515284705930323">Twoja organizacja nie włączyła Sklepu Google Play dla Twojego konta. Aby uzyskać więcej informacji, skontaktuj się z administratorem.</translation> +<translation id="9030754204056345429">Szybciej</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Wtyczka <ph name="PLUGIN_NAME" /> nie jest już obsługiwana.</translation> <translation id="9031549947500880805">Twórz kopie zapasowe na Dysku Google. W dowolnej chwili możesz w prosty sposób przywrócić dane lub używać ich na innym urządzeniu. Kopia zapasowa zawiera dane aplikacji.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index e3fbf5a..500aaea0 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">Não foi possível se conectar ao proxy</translation> <translation id="1405779994569073824">Falha.</translation> <translation id="1406500794671479665">Verificando...</translation> +<translation id="1407069428457324124">Tema escuro</translation> <translation id="1407135791313364759">Abrir todas</translation> <translation id="140723521119632973">Ativação da rede celular</translation> <translation id="1407489512183974736">Cortar para centralizar</translation> @@ -5676,6 +5677,7 @@ <translation id="729583233778673644">Permitir a codificação AES e RC4. O uso dessa opção é mais arriscado, porque as criptografias RC4 não são seguras.</translation> <translation id="729761647156315797">Escolher idioma e teclado</translation> <translation id="7297726121602187087">Verde-escuro</translation> +<translation id="7298195798382681320">Recomendada</translation> <translation id="7299337219131431707">Ativar a navegação como visitante</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Este aplicativo pode impedir que o Chrome funcione adequadamente.}one{Este aplicativo pode impedir que o Chrome funcione adequadamente.}other{Estes aplicativos podem impedir que o Chrome funcione adequadamente.}}</translation> <translation id="7303281435234579599">Algo deu errado ao configurar o modo de demonstração.</translation> @@ -7275,6 +7277,7 @@ <translation id="9026852570893462412">O processo pode levar alguns minutos. Fazendo o download da máquina virtual.</translation> <translation id="9027459031423301635">Abrir link em uma nova &guia</translation> <translation id="9030515284705930323">Sua organização não ativou a Google Play Store para sua conta. Entre em contato com seu administrador para receber mais informações.</translation> +<translation id="9030754204056345429">Mais rápida</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">O plug-in <ph name="PLUGIN_NAME" /> não é mais compatível</translation> <translation id="9031549947500880805">Fazer backup no Google Drive Restaure seus dados ou troque de dispositivo a qualquer momento com facilidade. Seu backup inclui dados do app.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index 84058878..fa36249 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">Não é possível estabelecer ligação ao proxy</translation> <translation id="1405779994569073824">Falhou.</translation> <translation id="1406500794671479665">A confirmar...</translation> +<translation id="1407069428457324124">Tema escuro</translation> <translation id="1407135791313364759">Abrir tudo</translation> <translation id="140723521119632973">Ativação de rede móvel</translation> <translation id="1407489512183974736">Cortado no centro</translation> @@ -5659,6 +5660,7 @@ <translation id="729583233778673644">Permitir a encriptação AES e RC4. A utilização desta opção aumenta o seu risco, uma vez que as cifras RC4 são inseguras.</translation> <translation id="729761647156315797">Escolher o idioma e o teclado</translation> <translation id="7297726121602187087">Verde escuro</translation> +<translation id="7298195798382681320">Recomendado</translation> <translation id="7299337219131431707">Ativar Navegação como convidado</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Esta aplicação pode impedir o funcionamento correto do Chrome.}other{Estas aplicações podem impedir o funcionamento correto do Chrome.}}</translation> <translation id="7303281435234579599">Ups! Ocorreu um erro ao configurar o modo de demonstração.</translation> @@ -7257,6 +7259,7 @@ <translation id="9026852570893462412">Este processo pode demorar alguns minutos. A transferir a máquina virtual…</translation> <translation id="9027459031423301635">Abrir Link num Novo &Separador</translation> <translation id="9030515284705930323">A sua entidade não ativou a Google Play Store para a sua conta. Contacte o gestor para obter mais informações.</translation> +<translation id="9030754204056345429">Mais rápida</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">O <ph name="PLUGIN_NAME" /> já não é suportado</translation> <translation id="9031549947500880805">Faça uma cópia no Google Drive. Restaure facilmente os seus dados ou troque de dispositivo em qualquer altura. A cópia de segurança inclui os dados de apps.</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index fc7da91..f7de406 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -360,6 +360,7 @@ <translation id="1403222014593521787">Nu se poate conecta la proxy</translation> <translation id="1405779994569073824">S-a blocat.</translation> <translation id="1406500794671479665">Se verifică...</translation> +<translation id="1407069428457324124">Temă întunecată</translation> <translation id="1407135791313364759">Deschideți-le pe toate</translation> <translation id="140723521119632973">Activare celulară</translation> <translation id="1407489512183974736">Pe centru, decupat</translation> @@ -5658,6 +5659,7 @@ <translation id="729583233778673644">Permite criptarea AES și RC4. Folosirea acestei opțiuni îți mărește riscul, deoarece suitele de codificare RC4 sunt nesecurizate.</translation> <translation id="729761647156315797">Alege limba și tastatura</translation> <translation id="7297726121602187087">Verde închis</translation> +<translation id="7298195798382681320">Recomandate</translation> <translation id="7299337219131431707">Activați navigarea ca invitat</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Această aplicație poate împiedica funcționarea corectă a browserului Chrome.}few{Aceste aplicații pot împiedica funcționarea corectă a browserului Chrome.}other{Aceste aplicații pot împiedica funcționarea corectă a browserului Chrome.}}</translation> <translation id="7303281435234579599">Hopa! A apărut o eroare la configurarea modului demo.</translation> @@ -7256,6 +7258,7 @@ <translation id="9026852570893462412">Poate dura câteva minute. Se descarcă mașina virtuală.</translation> <translation id="9027459031423301635">Deschide linkul într-o filă &nouă</translation> <translation id="9030515284705930323">Organizația nu a activat Magazinul Google Play pentru contul tău. Contactează administratorul pentru mai multe informații.</translation> +<translation id="9030754204056345429">Mai rapidă</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> nu mai este acceptat</translation> <translation id="9031549947500880805">Fă backup în Google Drive. Restabilește datele sau schimbă dispozitivul cu ușurință, în orice moment. Backupul include datele aplicațiilor.</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index cc91d01..90b40719 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">Не удалось подключиться к прокси-серверу.</translation> <translation id="1405779994569073824">Произошел сбой</translation> <translation id="1406500794671479665">Проверка…</translation> +<translation id="1407069428457324124">Тёмная тема</translation> <translation id="1407135791313364759">Открыть все</translation> <translation id="140723521119632973">Активация мобильной сети</translation> <translation id="1407489512183974736">Кадрировать и выровнять по центру</translation> @@ -5658,6 +5659,7 @@ <translation id="729583233778673644">Разрешить шифрование по алгоритмам AES и RC4. Использовать этот параметр небезопасно, так как потоковый шифр RC4 ненадежен.</translation> <translation id="729761647156315797">Выберите язык и клавиатуру</translation> <translation id="7297726121602187087">Темно-зеленый</translation> +<translation id="7298195798382681320">Рекомендованные</translation> <translation id="7299337219131431707">Разрешить просмотр в гостевом режиме</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Это приложение может помешать работе Google Chrome.}one{Эти приложения могут помешать работе Google Chrome.}few{Эти приложения могут помешать работе Google Chrome.}many{Эти приложения могут помешать работе Google Chrome.}other{Эти приложения могут помешать работе Google Chrome.}}</translation> <translation id="7303281435234579599">Не удалось настроить демонстрационный режим.</translation> @@ -7258,6 +7260,7 @@ <translation id="9026852570893462412">Подождите несколько минут. Скачивание виртуальной машины…</translation> <translation id="9027459031423301635">Открыть ссылку в новой вкладке</translation> <translation id="9030515284705930323">Приложение Google Play отключено для вашего аккаунта. За дополнительными сведениями обратитесь к администратору.</translation> +<translation id="9030754204056345429">Быстрая</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Плагин "<ph name="PLUGIN_NAME" />" больше не поддерживается.</translation> <translation id="9031549947500880805">Сохранение резервных копий на Google Диске. Позволяет в любой момент восстанавливать данные (в том числе из приложений) или переносить их с одного устройства на другое.</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb index cf579f7..573f443 100644 --- a/chrome/app/resources/generated_resources_si.xtb +++ b/chrome/app/resources/generated_resources_si.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">ප්රොක්සි වෙත සබැඳීමට නොහැකිය</translation> <translation id="1405779994569073824">බිඳ වැටුණා.</translation> <translation id="1406500794671479665">තහවුරු කෙරෙමින්...</translation> +<translation id="1407069428457324124">අඳුරු තේමාව</translation> <translation id="1407135791313364759">සියල්ල විවෘත කරන්න</translation> <translation id="140723521119632973">සෙලියුලර් ක්රියාත්මක කිරීම</translation> <translation id="1407489512183974736">මධ්යස්ථානය ක්රොප් කරන ලදි</translation> @@ -5660,6 +5661,7 @@ <translation id="729583233778673644">AES සහ RC4 සංකේතනයට ඉඩ දෙන්න. RC4 කේතාංක ආරක්ෂිත නොවන නිසා, මෙම විකල්පය භාවිතය ඔබගේ අවදානම වැඩි කරයි.</translation> <translation id="729761647156315797">ඔබේ භාෂාව සහ යතුරු පුවරුව තෝරාගන්න</translation> <translation id="7297726121602187087">තද කොළ</translation> +<translation id="7298195798382681320">නිර්දේශිතයි</translation> <translation id="7299337219131431707">ආරාධිත පිරික්සීම සබල කරන්න</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{මෙම යෙදුම Chrome නිසියාකාරව වැඩ කිරීම වැළැක්විය හැකිය.}one{මෙම යෙදුම් Chrome නිසියාකාරව වැඩ කිරීම වැළැක්විය හැකිය.}other{මෙම යෙදුම් Chrome නිසියාකාරව වැඩ කිරීම වැළැක්විය හැකිය.}}</translation> <translation id="7303281435234579599">අපොයි! ආදර්ශන ප්රකාරය සැකසීමේදී යම් දෙයක් වැරදිණි.</translation> @@ -7256,6 +7258,7 @@ <translation id="9026852570893462412">මෙම ක්රියාවලියට විනාඩි කිහිපයක් ගත විය හැක. අතථ්ය යන්ත්රය බාගනිමින්.</translation> <translation id="9027459031423301635">සබැඳිය නව පටිත්තක විවෘත &කරන්න</translation> <translation id="9030515284705930323">ඔබගේ සංවිධානය ඔබගේ ගිණුම සඳහා Google Play Store සබල කර නැත. වැඩිදුර තොරතුරු සඳහා ඔබගේ පරිපාලක අමතන්න.</translation> +<translation id="9030754204056345429">වඩාත් වේගවත්</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> තවදුරටත් සහාය නොදක්වයි</translation> <translation id="9031549947500880805">Google Drive වෙත උපස්ථ කරන්න. ඕනෑම වේලාවක ඔබගේ දත්ත පහසුවෙන් ප්රතිසාධන කරන්න හෝ උපාංග අතර මාරු වන්න. ඔබගේ උපස්ථයට යෙදුම් දත්ත අන්තර්ගතයි.</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index d5a6dbf..d5091f3 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">K proxy serveru sa nepodarilo pripojiť</translation> <translation id="1405779994569073824">Karta zlyhala.</translation> <translation id="1406500794671479665">Prebieha overovanie...</translation> +<translation id="1407069428457324124">Tmavý motív</translation> <translation id="1407135791313364759">Otvoriť všetko</translation> <translation id="140723521119632973">Aktivácia mobilnej siete</translation> <translation id="1407489512183974736">Orezať na stred</translation> @@ -5659,6 +5660,7 @@ <translation id="729583233778673644">Povoľte šifrovania AES a RC4. Šifry RC4 sú nezabezpečené, takže použitím tejto možnosti zvýšite riziko.</translation> <translation id="729761647156315797">Výber jazyka a klávesnice</translation> <translation id="7297726121602187087">Tmavozelená</translation> +<translation id="7298195798382681320">Odporúčané</translation> <translation id="7299337219131431707">Povoliť hosťovské prehliadanie</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Táto aplikácia môže brániť Chromu v správnom fungovaní.}few{Tieto aplikácie môžu brániť Chromu v správnom fungovaní.}many{Tieto aplikácie môžu brániť Chromu v správnom fungovaní.}other{Tieto aplikácie môžu brániť Chromu v správnom fungovaní.}}</translation> <translation id="7303281435234579599">Ojoj! Pri nastavovaní režimu ukážky sa vyskytol problém.</translation> @@ -7258,6 +7260,7 @@ <translation id="9026852570893462412">Tento proces môže trvať niekoľko minút. Sťahuje sa virtuálny počítač.</translation> <translation id="9027459031423301635">Otvoriť odkaz na novej &karte</translation> <translation id="9030515284705930323">Vaša organizácia nepovoľuje vo vašom účte Obchod Google Play. Ak chcete získať ďalšie informácie, kontaktujte svojho správcu.</translation> +<translation id="9030754204056345429">Rýchlejšia</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Doplnok <ph name="PLUGIN_NAME" /> už nie je podporovaný</translation> <translation id="9031549947500880805">Zálohovanie na Disk Google. Jednoducho kedykoľvek obnovte svoje údaje alebo prejdite na iné zariadenie. Záloha obsahuje dáta aplikácií.</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 05c1613d..b4f82e5e 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -364,6 +364,7 @@ <translation id="1403222014593521787">Povezave z omrežjem proxy ni mogoče vzpostaviti</translation> <translation id="1405779994569073824">Zrušitev.</translation> <translation id="1406500794671479665">Preverjanje ...</translation> +<translation id="1407069428457324124">Temna tema</translation> <translation id="1407135791313364759">Odpri vse</translation> <translation id="140723521119632973">Aktiviranje mobilnega omrežja</translation> <translation id="1407489512183974736">Na sredino in obrezano</translation> @@ -5678,6 +5679,7 @@ <translation id="729583233778673644">Dovoli šifriranje AES in RC4. Če uporabite to možnosti, je tveganje večje, saj šifriranje RC4 ni varno.</translation> <translation id="729761647156315797">Izbira jezika in tipkovnice</translation> <translation id="7297726121602187087">Temno zelena</translation> +<translation id="7298195798382681320">Priporočeni</translation> <translation id="7299337219131431707">Omogoči brskanje za goste</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Ta aplikacija bi lahko Chromu preprečila normalno delovanje.}one{Te aplikacije bi lahko Chromu preprečile normalno delovanje.}two{Te aplikacije bi lahko Chromu preprečile normalno delovanje.}few{Te aplikacije bi lahko Chromu preprečile normalno delovanje.}other{Te aplikacije bi lahko Chromu preprečile normalno delovanje.}}</translation> <translation id="7303281435234579599">Ojoj. Pri nastavljanju predstavitvenega načina je prišlo do napake.</translation> @@ -7279,6 +7281,7 @@ <translation id="9026852570893462412">To lahko traja nekaj minut. Prenašanje navideznega računalnika.</translation> <translation id="9027459031423301635">Povezavo odpri v novem &zavihku</translation> <translation id="9030515284705930323">Organizacija za vaš račun ni omogočila Trgovine Google Play. Če želite več informacij, se obrnite na skrbnika.</translation> +<translation id="9030754204056345429">Hitrejša</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Vtičnik <ph name="PLUGIN_NAME" /> ni več podprt.</translation> <translation id="9031549947500880805">Varnostno kopiranje v Google Drive. Kadar koli lahko preprosto obnovite podatke v napravi ali zamenjate napravo z drugo. Varnostne kopije vključujejo podatke aplikacij.</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index 26b3a39..2f938de 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">Nuk mund të lidhet me përfaqësuesin</translation> <translation id="1405779994569073824">U ndërpre aksidentalisht.</translation> <translation id="1406500794671479665">Po verifikon...</translation> +<translation id="1407069428457324124">Tema e errët</translation> <translation id="1407135791313364759">Hapi të gjitha</translation> <translation id="140723521119632973">Aktivizimi celular</translation> <translation id="1407489512183974736">Prerë në qendër</translation> @@ -5654,6 +5655,7 @@ <translation id="729583233778673644">Lejo enkriptimin AES dhe RC4. Përdorimi i këtij opsioni rrit rrezikun për ty, pasi shifrat RC4 nuk janë të sigurta.</translation> <translation id="729761647156315797">Zgjidh gjuhën dhe tastierën</translation> <translation id="7297726121602187087">E gjelbër e errët</translation> +<translation id="7298195798382681320">I rekomanduar</translation> <translation id="7299337219131431707">Aktivizo shfletimin "vizitor"</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Ky aplikacion mund të pengojë që Chrome të funksionojë siç duhet.}other{Këto aplikacione mund të pengojnë që Chrome të funksionojë siç duhet}}</translation> <translation id="7303281435234579599">Mos! Ndodhi një gabim gjatë konfigurimit të modalitetit të demonstrimit.</translation> @@ -7249,6 +7251,7 @@ <translation id="9026852570893462412">Procesi mund të zgjasë disa minuta. Po shkarkohet pajisja virtuale.</translation> <translation id="9027459031423301635">Hape lidhjen në një &skedë të re</translation> <translation id="9030515284705930323">Organizata jote nuk e ka aktivizuar Dyqanin e Google Play për llogarinë tënde. Kontakto me administratorin për më shumë informacione.</translation> +<translation id="9030754204056345429">Më shpejt</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> nuk mbështetet më</translation> <translation id="9031549947500880805">Rezervo në "Diskun e Google". Restauro të dhënat e tua ose ndërro me lehtësi pajisjen në çdo kohë. Rezervimi yt përfshin të dhënat e aplikacioneve.</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index 32777ec..d610b07f 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Povezivanje sa proksijem nije uspelo</translation> <translation id="1405779994569073824">Kartica je otkazala.</translation> <translation id="1406500794671479665">Verifikovanje...</translation> +<translation id="1407069428457324124">Tamna tema</translation> <translation id="1407135791313364759">Otvori sve</translation> <translation id="140723521119632973">Mobilna aktivacija</translation> <translation id="1407489512183974736">Opseci centralno</translation> @@ -5654,6 +5655,7 @@ <translation id="729583233778673644">Dozvoljava AES i RC4 šifrovanje. Korišćenje ove opcije vas izlaže većem riziku jer su RC4 šifre nebezbedne.</translation> <translation id="729761647156315797">Izaberite jezik i tastaturu</translation> <translation id="7297726121602187087">Tamnozelena</translation> +<translation id="7298195798382681320">Preporučeno</translation> <translation id="7299337219131431707">Omogući režim gosta</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Ova aplikacija bi mogla da ometa pravilno funkcionisanje Chrome-a.}one{Ove aplikacije bi mogle da ometaju pravilno funkcionisanje Chrome-a.}few{Ove aplikacije bi mogle da ometaju pravilno funkcionisanje Chrome-a.}other{Ove aplikacije bi mogle da ometaju pravilno funkcionisanje Chrome-a.}}</translation> <translation id="7303281435234579599">Ups! Došlo je do problema pri podešavanju režima demonstracije.</translation> @@ -7253,6 +7255,7 @@ <translation id="9026852570893462412">Ovo može da potraje par minuta. Preuzima se virtuelna mašina.</translation> <translation id="9027459031423301635">Otvori link u novoj &kartici</translation> <translation id="9030515284705930323">Organizacija nije omogućila Google Play prodavnicu za nalog. Kontaktirajte administratora za više informacija.</translation> +<translation id="9030754204056345429">Brže</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Dodatna komponenta <ph name="PLUGIN_NAME" /> više nije podržana.</translation> <translation id="9031549947500880805">Pravite rezervne kopije na Google disku. Lako vratite podatke ili pređite na drugi uređaj u bilo kom trenutku. Rezervna kopija obuhvata podatke aplikacija.</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 207566b4..ca51e71 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Повезивање са проксијем није успело</translation> <translation id="1405779994569073824">Картица је отказала.</translation> <translation id="1406500794671479665">Верификовање...</translation> +<translation id="1407069428457324124">Тамна тема</translation> <translation id="1407135791313364759">Отвори све</translation> <translation id="140723521119632973">Мобилна активација</translation> <translation id="1407489512183974736">Опсеци централно</translation> @@ -5654,6 +5655,7 @@ <translation id="729583233778673644">Дозвољава AES и RC4 шифровање. Коришћење ове опције вас излаже већем ризику јер су RC4 шифре небезбедне.</translation> <translation id="729761647156315797">Изаберите језик и тастатуру</translation> <translation id="7297726121602187087">Тамнозелена</translation> +<translation id="7298195798382681320">Препоручено</translation> <translation id="7299337219131431707">Омогући режим госта</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Ова апликација би могла да омета правилно функционисање Chrome-а.}one{Ове апликације би могле да ометају правилно функционисање Chrome-а.}few{Ове апликације би могле да ометају правилно функционисање Chrome-а.}other{Ове апликације би могле да ометају правилно функционисање Chrome-а.}}</translation> <translation id="7303281435234579599">Упс! Дошло је до проблема при подешавању режима демонстрације.</translation> @@ -7253,6 +7255,7 @@ <translation id="9026852570893462412">Ово може да потраје пар минута. Преузима се виртуелна машина.</translation> <translation id="9027459031423301635">Отвори линк у новој &картици</translation> <translation id="9030515284705930323">Организација није омогућила Google Play продавницу за налог. Контактирајте администратора за више информација.</translation> +<translation id="9030754204056345429">Брже</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Додатна компонента <ph name="PLUGIN_NAME" /> више није подржана.</translation> <translation id="9031549947500880805">Правите резервне копије на Google диску. Лако вратите податке или пређите на други уређај у било ком тренутку. Резервна копија обухвата податке апликација.</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index d33f161..1758ef5 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Det gick inte att ansluta till proxyservern</translation> <translation id="1405779994569073824">Har kraschat.</translation> <translation id="1406500794671479665">Verifierar …</translation> +<translation id="1407069428457324124">Mörkt tema</translation> <translation id="1407135791313364759">Öppna alla</translation> <translation id="140723521119632973">Aktivering av mobilnätverk</translation> <translation id="1407489512183974736">Centrera och beskär</translation> @@ -5673,6 +5674,7 @@ <translation id="729583233778673644">Tillåt AES- och RC4-kryptering. Det här alternativet är mer riskabelt eftersom RC4-chiffer är osäkra.</translation> <translation id="729761647156315797">Välj språk och tangentbord</translation> <translation id="7297726121602187087">Mörkgrön</translation> +<translation id="7298195798382681320">Rekommenderas</translation> <translation id="7299337219131431707">Aktivera gästsurfning</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Den här appen kan göra så att Chrome inte fungerar korrekt.}other{De här apparna kan göra så att Chrome inte fungerar korrekt.}}</translation> <translation id="7303281435234579599">Något gick fel med konfigureringen av demoläget.</translation> @@ -7271,6 +7273,7 @@ <translation id="9026852570893462412">Detta kan ta några minuter. Den virtuella maskinen laddas ned.</translation> <translation id="9027459031423301635">Öppna länk i ny &flik</translation> <translation id="9030515284705930323">Organisationen har inte aktiverat Google Play Butik för ditt konto. Kontakta administratören om du vill veta mer.</translation> +<translation id="9030754204056345429">Snabbare</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> stöds inte längre</translation> <translation id="9031549947500880805">Säkerhetskopiera på Google Drive. Återställ data eller byt enkelt enhet när du vill. Säkerhetskopian innehåller appdata.</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index cf5208f..838058ca 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Imeshindwa kuunganisha kwenye seva mbadala</translation> <translation id="1405779994569073824">Kimeacha kufanya kazi.</translation> <translation id="1406500794671479665">Inathibitisha...</translation> +<translation id="1407069428457324124">Mandhari meusi</translation> <translation id="1407135791313364759">Fungua zote</translation> <translation id="140723521119632973">Kuwasha Mtandao wa Simu</translation> <translation id="1407489512183974736">Imepogolewa Katikati</translation> @@ -5667,6 +5668,7 @@ <translation id="729583233778673644">Ruhusu usimbaji wa AES na RC4. Kutumia chaguo hili huongeza uwezekano wa hatari, kwa kuwa misimbo ya RC45 si salama.</translation> <translation id="729761647156315797">Chagua lugha na kibodi yako</translation> <translation id="7297726121602187087">Kijani kilichokolea</translation> +<translation id="7298195798382681320">Zinazopendekezwa</translation> <translation id="7299337219131431707">Washa kuvinjari kwa Mgeni</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Huenda programu hii ikazuia Chrome isifanye kazi inavyostahili.}other{Huenda programu hizi zikazuia Chrome isifanye kazi inavyostahili.}}</translation> <translation id="7303281435234579599">Lo! Hitilafu imetokea wakati wa kuweka hali ya onyesho.</translation> @@ -7267,6 +7269,7 @@ <translation id="9026852570893462412">Huenda mchakato huu ukachukua dakika kadhaa. Inapakua kompyuta iliyo mbali.</translation> <translation id="9027459031423301635">Fungua Kiungo katika Kichupo &Kipya</translation> <translation id="9030515284705930323">Shirika lako halijaruhusu Duka la Google Play kwa akaunti yako. Wasiliana na msimamizi wako kwa maelezo zaidi.</translation> +<translation id="9030754204056345429">Haraka sana</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> haiwezi kutumika tena</translation> <translation id="9031549947500880805">Hifadhi nakala kwenye Hifadhi ya Google. Rejesha data au ubadilishe kifaa unachotumia kwa urahisi wakati wowote. Nakala unayohifadhi huwa na data ya programu.</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 04300d0..d100f01 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">ப்ராக்ஸியுடன் இணைக்க முடியவில்லை</translation> <translation id="1405779994569073824">சிதைந்துவிட்டது.</translation> <translation id="1406500794671479665">சரிபார்க்கிறது...</translation> +<translation id="1407069428457324124">டார்க் தீம்</translation> <translation id="1407135791313364759">எல்லாவற்றையும் திற</translation> <translation id="140723521119632973">செல்லுலார் செயல்படுத்தல்</translation> <translation id="1407489512183974736">மையமாக வெட்டப்பட்டது</translation> @@ -1229,6 +1230,7 @@ <translation id="2300383962156589922"><ph name="APP_NAME" />ஐத் தனிப்பயனாக்கி, கட்டுப்படுத்தும்</translation> <translation id="2300578660547687840">தேடல் சொற்களுக்கான கீபோர்டு ஷார்ட்கட்கள்</translation> <translation id="2301382460326681002">நீட்டிப்பு மூல கோப்பகம் செல்லாதது.</translation> +<translation id="2301402091755573488">பகிரப்பட்ட தாவல்</translation> <translation id="23030561267973084">"<ph name="EXTENSION_NAME" />" ஆனது கூடுதல் அனுமதிகளைக் கோரியுள்ளது.</translation> <translation id="23055578400314116">பயனர்பெயரைத் தேர்ந்தெடுக்கவும்</translation> <translation id="2307462900900812319">நெட்வொர்க்கை உள்ளமை</translation> @@ -1506,6 +1508,7 @@ <translation id="2612676031748830579">கார்டு எண்</translation> <translation id="2613535083491958306"><ph name="ORIGIN" /> டொமைனால் <ph name="FILENAME" /> ஃபைலில் மாற்றங்களைச் செய்ய முடியும்</translation> <translation id="2616366145935564096"><ph name="WEBSITE_1" /> இல் உங்கள் உங்கள் தரவைப் படித்தல் மற்றும் திருத்துதல்</translation> +<translation id="2618274688675613222">அமைவைத் தொடர 'அடுத்து' பட்டனையோ, "தேர்ந்தெடு" ஸ்விட்ச் ஒதுக்கீட்டை மாற்ற 'முந்தையது' பட்டனையோ இயக்கவும்.</translation> <translation id="2618797463720777311">‘அருகிலுள்ளவற்றுடன் பகிர்தல்’ அம்சத்தை அமைத்திடுங்கள்</translation> <translation id="2619761439309613843">தினசரிப் புதுப்பிப்பு</translation> <translation id="2620215283731032047"><ph name="FILE_NAME" /> என்ற கோப்பைப் பாதுகாப்பாகப் பதிவிறக்க முடியாது.</translation> @@ -2901,6 +2904,7 @@ <translation id="4120817667028078560">பாதை மிக நீளம்</translation> <translation id="4124823734405044952">உங்கள் பாதுகாப்பு விசை மீட்டமைக்கப்பட்டது</translation> <translation id="4124935795427217608">கொம்புக் குதிரை</translation> +<translation id="4126916490446791914">தானியங்கு ஸ்கேன் இயக்கப்பட்டது</translation> <translation id="412730574613779332">ஸ்பான்டெக்ஸ்</translation> <translation id="4130199216115862831">சாதனப் பதிவு</translation> <translation id="4130207949184424187">ஆம்னிபாக்ஸிலிருந்து தேடும்போது காண்பிக்கப்படும் பக்கத்தை இந்த நீட்டிப்பு மாற்றியுள்ளது.</translation> @@ -3284,6 +3288,7 @@ பள்ளியில் உங்கள் பிள்ளை Chromebookகைப் பயன்படுத்தினாலும், தேவையான அனைத்துப் பள்ளிப் பாடங்களையும் பிள்ளை அணுகுவதை உறுதிசெய்யும் வகையில் நீங்கள் வீட்டிலேயே பள்ளி அனுபவத்தை வழங்க விரும்பினாலும் இந்த Family Link கணக்கிலிருந்து வெளியேறி, Chrome OS கணக்குகள் பக்கத்தில் உள்ள பள்ளிக் கணக்கில் உள்நுழையவும் (கவனத்திற்கு: Family Linkகின் பெற்றோர் கட்டுப்பாடுகள் பொருந்தாது).<br><br> பள்ளியில் உங்கள் பிள்ளை Chromebookகைப் பயன்படுத்தவில்லை என்றாலோ Family Linkகைப் பயன்படுத்தி வீட்டிலேயே பிள்ளையின் பள்ளி அனுபவத்தை நிர்வகிக்க விரும்பினாலோ இந்தச் சுயவிவரத்தில் பள்ளிக் கணக்கைச் சேர்க்க, கீழேயுள்ள அடுத்து என்ற பட்டனைக் கிளிக் செய்யவும்.</translation> <translation id="4576541033847873020">புளூடூத் சாதனத்தை இணை</translation> +<translation id="4576763597586015380">Google கணக்கில் கடவுச்சொற்களைச் சேமிப்பதைத் தொடர, நீங்கள்தான் உள்நுழைகிறீர்கள் என்பதை உறுதிப்படுத்துங்கள்</translation> <translation id="4579453506923101210">இணைக்கப்பட்டுள்ள மொபைலை மறந்திடு</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" />ஐ அலைபரப்ப முடியவில்லை.</translation> <translation id="4581774856936278355">Linuxசை மீட்டமைக்கும் பொழுது பிழை நேர்ந்தது</translation> @@ -5003,6 +5008,7 @@ <translation id="6538098297809675636">குறியீட்டைக் கண்டறிவதில் பிழை ஏற்பட்டது</translation> <translation id="653920215766444089">சுட்டிச் சாதனத்தைத் தேடுகிறது</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />குறிப்பு:<ph name="END_BOLD" /> தரவைச் சேகரிப்பது செயல்திறனைக் குறைக்கும் என்பதால், நீங்கள் தெரிந்துதான் செய்கிறீர்கள் என்றால் அல்லது அவ்வாறு செய்ய வேண்டுமெனக் கேட்டுக்கொள்ளப்பட்டிருந்தால் மட்டும் இயக்கவும்.</translation> +<translation id="6540672086173674880">Search மற்றும் பிற Google சேவைகளைப் பிரத்தியேகமாக்க உங்கள் உலாவல் விவரங்களை Google பயன்படுத்தக்கூடும். myaccount.google.com/activitycontrols/search தளத்திற்குச் சென்று எப்போது வேண்டுமானாலும் இதை மாற்றலாம்</translation> <translation id="6541638731489116978">இந்தத் தளம் உங்கள் மோஷன் சென்சார்களை அணுகுவது தடுக்கப்பட்டுள்ளது.</translation> <translation id="6545665334409411530">மீண்டும் இயக்குவதன் வீதம்</translation> <translation id="6545864417968258051">புளூடூத் ஸ்கேனிங்</translation> @@ -5666,6 +5672,7 @@ <translation id="729583233778673644">AES மற்றும் RC4 என்க்ரிப்ஷனை அனுமதிக்கும். RC4 சைஃபர்கள் பாதுகாப்பற்றது என்பதால், இந்த விருப்பத்தைப் பயன்படுத்துவது, உங்கள் அபாயத்தை அதிகரிக்கும்.</translation> <translation id="729761647156315797">மொழி & கீபோர்டைத் தேர்ந்தெடுக்கவும்</translation> <translation id="7297726121602187087">அடர் பச்சை</translation> +<translation id="7298195798382681320">பரிந்துரைத்தவை</translation> <translation id="7299337219131431707">கெஸ்ட் உலாவலை இயக்கு</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Chrome சரியாக இயங்குவதிலிருந்து இந்த ஆப்ஸ் தடுக்கக்கூடும்.}other{Chrome சரியாக இயங்குவதிலிருந்து இந்த ஆப்ஸ் தடுக்கக்கூடும்.}}</translation> <translation id="7303281435234579599">அச்சச்சோ! டெமோ பயன்முறையை அமைக்கும்போது ஏதோ தவறாகிவிட்டது.</translation> @@ -5888,6 +5895,7 @@ <translation id="754207240458482646">உங்கள் கணக்கிலுள்ள பிற சாதனங்களுடன் ஒத்திசைக்கப்பட்டுள்ளது. <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation> <translation id="7543104066686362383">இந்த <ph name="IDS_SHORT_PRODUCT_NAME" /> சாதனத்தில் பிழைத் திருத்த அம்சங்களை இயக்கும்</translation> <translation id="7543525346216957623">உங்கள் பெற்றோரிடம் கேட்கவும்</translation> +<translation id="7546012169463147344">தானியங்கு ஸ்கேன், திரையில் உள்ளவற்றை ஹைலைட் செய்து மையப்படுத்தும். திரையில் இருப்பது மையப்படுத்தப்பட்டதும் அதை இயக்குவதற்கு ஒதுக்கிய "தேர்ந்தெடு" பட்டனை அழுத்தவும்.</translation> <translation id="7547317915858803630">எச்சரிக்கை: உங்கள் <ph name="PRODUCT_NAME" /> அமைப்புகள் நெட்வொர்க் டிரைவில் சேமிக்கப்பட்டுள்ளன. இதனால் வேகம் குறைதல், சிதைவுகள் அல்லது தரவு இழப்பு கூட ஏற்படலாம்.</translation> <translation id="7548856833046333824">லெமனேட்</translation> <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation> @@ -6858,6 +6866,7 @@ <translation id="8621866727807194849">உங்கள் கம்ப்யூட்டரில் தீங்கிழைக்கும் மென்பொருள் உள்ளது. Chrome அதை அகற்றி, உங்கள் அமைப்புகளை மீட்டமைத்து, நீட்டிப்புகளை முடக்குகிறது. இதனால் உங்கள் உலாவி மீண்டும் வழக்கம் போல இயங்கும்.</translation> <translation id="8621979332865976405">முழுத்திரையையும் பகிருங்கள்</translation> <translation id="8624354461147303341">தள்ளுபடிகளைக் கண்டறி</translation> +<translation id="8624944202475729958"><ph name="PROFILE_NAME" />: <ph name="ERROR_DESCRIPTION" /></translation> <translation id="862542460444371744">&நீட்சிகள்</translation> <translation id="8625663000550647058">உங்கள் மைக்ரோஃபோனைப் பயன்படுத்த அனுமதி இல்லாத தளங்கள்</translation> <translation id="8625916342247441948">HID சாதனங்களுடன் இணைவதற்குத் தளங்களை அனுமதிக்காதே</translation> @@ -6921,6 +6930,7 @@ <translation id="8677212948402625567">அனைத்தையும் சுருக்கு...</translation> <translation id="867767487203716855">அடுத்த புதுப்பிப்பு</translation> <translation id="8677859815076891398">ஆல்பங்கள் எதுவுமில்லை. <ph name="LINK_BEGIN" />Google Photos<ph name="LINK_END" />ஸில் ஓர் ஆல்பத்தை உருவாக்குங்கள்.</translation> +<translation id="8678538439778360739"><ph name="TIME" /> அன்று உங்கள் ஒத்திசைவுக் கடவுச்சொற்றொடர் மூலம் தரவு என்க்ரிப்ட் செய்யப்பட்டது. இதில் Google Payயிலுள்ள பேமெண்ட் முறைகளும் முகவரிகளும் சேர்க்கப்படவில்லை.</translation> <translation id="8678582529642151449">தாவல்களைச் சுருக்காது</translation> <translation id="8678933587484842200">இந்த ஆப்ஸை எப்படித் துவக்க விரும்புகிறீர்கள்?</translation> <translation id="8680251145628383637">உள்நுழைந்து, உங்கள் சாதனங்கள் எல்லாவற்றிலும் உள்ள புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பிற அமைப்புகளைப் பெறவும். உங்கள் Google சேவைகளிலும் தானாகவே உள்நுழைவீர்கள்.</translation> @@ -7259,6 +7269,7 @@ <translation id="9026852570893462412">இதற்குச் சில நிமிடங்கள் ஆகலாம். விர்ச்சுவல் மெஷினைப் பதிவிறக்குகிறது.</translation> <translation id="9027459031423301635">இணைப்பைப் புதிய &தாவலில் திற</translation> <translation id="9030515284705930323">உங்கள் கணக்கிற்கு Google Play ஸ்டோர் அணுகலை உங்கள் நிறுவனம் இயக்கவில்லை. மேலும் தகவலுக்கு, உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation> +<translation id="9030754204056345429">அதிவேகம்</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> ஆதரிக்கப்படவில்லை</translation> <translation id="9031549947500880805">Google Driveவிற்குக் காப்புப் பிரதி எடுக்கவும். எப்போது வேண்டுமானாலும் உங்கள் தரவை எளிதாக மீட்டெடுக்கலாம் அல்லது சாதனத்தை மாற்றலாம். ஆப்ஸ் தரவும் உங்கள் காப்புப் பிரதியில் அடங்கும்.</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 2b854cec..d42aea53 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">ప్రాక్సీకి కనెక్ట్ చేయలేకపోతున్నాము</translation> <translation id="1405779994569073824">క్రాష్ అయింది.</translation> <translation id="1406500794671479665">ధృవీకరిస్తోంది...</translation> +<translation id="1407069428457324124">ముదురు రూపం</translation> <translation id="1407135791313364759">అన్నీ తెరువు</translation> <translation id="140723521119632973">సెల్యులార్ యాక్టివేషన్</translation> <translation id="1407489512183974736">మధ్యకు కత్తిరించు</translation> @@ -5664,6 +5665,7 @@ <translation id="729583233778673644">AES మరియు RC4 ఎన్క్రిప్షన్ను అనుమతించండి. ఈ ఎంపికను ఉపయోగించడం వలన RC4 సైఫర్లు అసురక్షితమైనవి కాబట్టి మీకు హాని పెరుగుతుంది.</translation> <translation id="729761647156315797">మీ భాష & కీబోర్డ్ను ఎంచుకోండి</translation> <translation id="7297726121602187087">ముదురు ఆకుపచ్చ రంగు</translation> +<translation id="7298195798382681320">సిఫార్సు చేయబడినవి</translation> <translation id="7299337219131431707">అతిథి బ్రౌజింగ్ను ప్రారంభించు</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Chrome సరిగ్గా పని చేయకుండా ఈ అప్లికేషన్ నివారించవచ్చు.}other{Chrome సరిగ్గా పని చేయకుండా ఈ అప్లికేషన్లు నివారించవచ్చు.}}</translation> <translation id="7303281435234579599">అయ్యో! డెమో మోడ్ని సెటప్ చేస్తున్నప్పుడు ఏదో తప్పు జరిగింది.</translation> @@ -7253,6 +7255,7 @@ <translation id="9026852570893462412">ఈ ప్రాసెస్కు కొన్ని నిమిషాలు పట్టవచ్చు. మర్చువల్ మెషీన్ డౌన్లోడ్ అవుతోంది.</translation> <translation id="9027459031423301635">లింక్ను క్రొత్త &టాబ్లో తెరువు</translation> <translation id="9030515284705930323">మీ సంస్థ మీ ఖాతా కోసం Google Play స్టోర్ను ప్రారంభించలేదు. మరింత సమాచారం కోసం మీ నిర్వాహకులను సంప్రదించండి.</translation> +<translation id="9030754204056345429">చాలా వేగంగా</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" />కు ఇకపై సపోర్ట్ లేదు</translation> <translation id="9031549947500880805">Google డిస్క్లో బ్యాకప్ చేయండి. సులభంగా మీ డేటాను పునరుద్ధరించండి లేదా ఎప్పుడైనా పరికరాన్ని స్విచ్ చేయండి. మీ బ్యాకప్లో యాప్ డేటా కూడా ఉంటుంది.</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index e65b041..37aa955a 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">เชื่อมต่อพร็อกซีไม่ได้</translation> <translation id="1405779994569073824">ขัดข้อง</translation> <translation id="1406500794671479665">กำลังยืนยันความถูกต้อง...</translation> +<translation id="1407069428457324124">ธีมมืด</translation> <translation id="1407135791313364759">เปิดทั้งหมด</translation> <translation id="140723521119632973">การเปิดใช้งานเครือข่ายมือถือ</translation> <translation id="1407489512183974736">ครอบตัดที่กึ่งกลาง</translation> @@ -5657,6 +5658,7 @@ <translation id="729583233778673644">อนุญาตการเข้ารหัส AES และ RC4 การใช้ตัวเลือกนี้เป็นการเพิ่มความเสี่ยงเนื่องจากการเข้ารหัส RC4 นั้นไม่ปลอดภัย</translation> <translation id="729761647156315797">เลือกภาษาและแป้นพิมพ์</translation> <translation id="7297726121602187087">สีเขียวเข้ม</translation> +<translation id="7298195798382681320">แนะนำ</translation> <translation id="7299337219131431707">เปิดใช้งานการท่องเว็บในโหมดผู้มาเยือน</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{แอปพลิเคชันนี้อาจทำให้ Chrome ทำงานไม่ถูกต้อง}other{แอปพลิเคชันเหล่านี้อาจทำให้ Chrome ทำงานไม่ถูกต้อง}}</translation> <translation id="7303281435234579599">อ๊ะ! เกิดข้อผิดพลาดขณะตั้งค่าโหมดสาธิต</translation> @@ -7254,6 +7256,7 @@ <translation id="9026852570893462412">ขั้นตอนนี้อาจใช้เวลาสักครู่ กำลังดาวน์โหลดเครื่องเสมือน</translation> <translation id="9027459031423301635">เปิดลิงก์ในแ&ท็บใหม่</translation> <translation id="9030515284705930323">องค์กรของคุณยังไม่ได้เปิดใช้ Google Play Store สำหรับบัญชีของคุณ โปรดสอบถามข้อมูลเพิ่มเติมจากผู้ดูแลระบบ</translation> +<translation id="9030754204056345429">เร็วขึ้น</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">ระบบไม่รองรับ <ph name="PLUGIN_NAME" /> อีกต่อไป</translation> <translation id="9031549947500880805">สำรองข้อมูลไปที่ Google ไดรฟ์ กู้คืนข้อมูลหรือเปลี่ยนอุปกรณ์ได้ง่ายๆ ทุกเมื่อ ข้อมูลสำรองจะมีข้อมูลแอปอยู่ด้วย</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index 58a6e30..6481295 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">Proxy'ye bağlanılamıyor</translation> <translation id="1405779994569073824">Yüklenemedi.</translation> <translation id="1406500794671479665">Doğrulanıyor...</translation> +<translation id="1407069428457324124">Koyu tema</translation> <translation id="1407135791313364759">Tümünü aç</translation> <translation id="140723521119632973">Hücresel Etkinleştirme</translation> <translation id="1407489512183974736">Ortala ve Kırp</translation> @@ -5656,6 +5657,7 @@ <translation id="729583233778673644">AES ve RC4 şifrelemesine izin ver. RC4 şifreleri güvenli olmadığından bu seçeneğin kullanılması, riskinizi artırır.</translation> <translation id="729761647156315797">Dilinizi ve klavyenizi seçin</translation> <translation id="7297726121602187087">Koyu yeşil</translation> +<translation id="7298195798382681320">Önerilenler</translation> <translation id="7299337219131431707">Misafir olarak göz atmayı etkinleştir</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Bu uygulama Chrome'un düzgün çalışmasını engelleyebilir.}other{Bu uygulamalar Chrome'un düzgün çalışmasını engelleyebilir.}}</translation> <translation id="7303281435234579599">Hay aksi! Demo modu kurulurken bir hata oluştu.</translation> @@ -7252,6 +7254,7 @@ <translation id="9026852570893462412">Bu işlem birkaç dakika sürebilir. Sanal makine indiriliyor.</translation> <translation id="9027459031423301635">Bağlantıyı Yeni &Sekmede Aç</translation> <translation id="9030515284705930323">Kuruluşunuz, hesabınız için Google Play Store'u etkinleştirmedi. Daha fazla bilgi için yöneticinize başvurun.</translation> +<translation id="9030754204056345429">Daha hızlı</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">"<ph name="PLUGIN_NAME" />" artık desteklenmiyor</translation> <translation id="9031549947500880805">Google Drive'a yedekle. Verilerinizi istediğiniz zaman kolayca geri yükleyin veya cihazlar arasında geçiş yapın. Yedeklemeniz, uygulama verilerini içerir.</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 5499354..ba2ed04 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -364,6 +364,7 @@ <translation id="1403222014593521787">Не вдається підключитися до проксі</translation> <translation id="1405779994569073824">Аварійно завершено роботу.</translation> <translation id="1406500794671479665">Перевірка...</translation> +<translation id="1407069428457324124">Темна тема</translation> <translation id="1407135791313364759">Відкрити все</translation> <translation id="140723521119632973">Активація мобільної мережі</translation> <translation id="1407489512183974736">Обрізати по центру</translation> @@ -5676,6 +5677,7 @@ <translation id="729583233778673644">Дозволяє шифрування AES і RC4. Використання цієї опції підвищує ризик, оскільки шифри RC4 ненадійні.</translation> <translation id="729761647156315797">Виберіть мову та клавіатуру</translation> <translation id="7297726121602187087">Темно-зелений</translation> +<translation id="7298195798382681320">Рекомендоване</translation> <translation id="7299337219131431707">Увімкнути гостьовий режим</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Цей додаток може перешкоджати нормальній роботі Chrome.}one{Ці додатки можуть перешкоджати нормальній роботі Chrome.}few{Ці додатки можуть перешкоджати нормальній роботі Chrome.}many{Ці додатки можуть перешкоджати нормальній роботі Chrome.}other{Ці додатки можуть перешкоджати нормальній роботі Chrome.}}</translation> <translation id="7303281435234579599">На жаль, сталася помилка. Не вдалося налаштувати демо-режим.</translation> @@ -7277,6 +7279,7 @@ <translation id="9026852570893462412">Це може тривати кілька хвилин. Завантажується віртуальна машина.</translation> <translation id="9027459031423301635">Відкрити посилання в новій &вкладці</translation> <translation id="9030515284705930323">У вашій організації не ввімкнено магазин Google Play для вашого облікового запису. Зв’яжіться з адміністратором, щоб дізнатися більше.</translation> +<translation id="9030754204056345429">швидше</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">Плагін <ph name="PLUGIN_NAME" /> більше не підтримується</translation> <translation id="9031549947500880805">Створювати резервні копії на Google Диску. Легко відновлюйте дані чи переносьте їх на інші пристрої. Резервні копії містять дані додатків.</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index 1ac6889..a6f5d5b 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">پراکسی سے منسلک ہونے سے قاصر</translation> <translation id="1405779994569073824">کریش ہو گیا</translation> <translation id="1406500794671479665">توثیق ہو رہی ہے…</translation> +<translation id="1407069428457324124">گہری تھیم</translation> <translation id="1407135791313364759">سبھی کو کھولیں</translation> <translation id="140723521119632973">سیلولر فعالیت</translation> <translation id="1407489512183974736">بیچ سے تراش دیا گیا</translation> @@ -5648,6 +5649,7 @@ <translation id="729583233778673644">AES اور RC4 مرموز کاری کی اجازت دیں۔ اس اختیار کے استعمال سے آپ کا خطرہ بڑھ جاتا ہے، کیوں کہ RC4 سائفرز غیر محفوظ ہیں۔</translation> <translation id="729761647156315797">اپنی زبان اور کی بورڈ منتخب کریں</translation> <translation id="7297726121602187087">گہرا سبز</translation> +<translation id="7298195798382681320">تجویز کردہ</translation> <translation id="7299337219131431707">مہمان براؤزنگ فعال کریں</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{یہ ایپلیکیشن Chrome کو ٹھیک طریقے سے کام کرنے سے روک سکتی ہے۔}other{یہ ایپلیکیشنز Chrome کو ٹھیک طریقے سے کام کرنے سے روک سکتی ہیں۔}}</translation> <translation id="7303281435234579599">افوہ! ڈیمو موڈ کو سیٹ کرتے وقت کچھ غلط ہوگیا۔</translation> @@ -7240,6 +7242,7 @@ <translation id="9026852570893462412">اس کارروائی میں کچھ منٹ لگ سکتے ہيں۔ ورچوئل مشین ڈاؤن لوڈ ہو رہی ہے۔</translation> <translation id="9027459031423301635">لنک کو نئے &ٹیب میں کھولیں</translation> <translation id="9030515284705930323">آپ کی تنظیم نے آپ کے اکاؤنٹ کیلئے Google Play اسٹور کو فعال نہیں کیا ہے۔ مزید معلومات کیلئے اپنے منتظم سے رابطہ کریں۔</translation> +<translation id="9030754204056345429">تیز تر</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> مزید تعارون یافتہ نہیں ہے</translation> <translation id="9031549947500880805">Google Drive میں بیک اپ لیں۔ آسانی سے اپنا ڈیٹا بحال کریں یا کسی بھی وقت آلہ کو سوئچ کریں۔ آپ کے بیک اپ میں ایپ کا ڈیٹا شامل ہے۔</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index 9b3f474e..49aa642 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">Proksi-serverga ulanib boʻlmadi</translation> <translation id="1405779994569073824">Ishdan chiqdi.</translation> <translation id="1406500794671479665">Tekshirilmoqda...</translation> +<translation id="1407069428457324124">Tungi mavzu</translation> <translation id="1407135791313364759">Barchasini ochish</translation> <translation id="140723521119632973">Mobil tarmoqni faollashtirish</translation> <translation id="1407489512183974736">Qirqish va o‘rtaga tekislash</translation> @@ -5661,6 +5662,7 @@ <translation id="729583233778673644">AES va RC4 shifrlash usullaridan foydalanishga ruxsat berish. RC4 shifrlari himoyasizroq, shuning uchun bu usulni tanlash xavfliroq bo‘lishi mumkin.</translation> <translation id="729761647156315797">Til va klaviaturani tanlang</translation> <translation id="7297726121602187087">Toʻq yashil</translation> +<translation id="7298195798382681320">Tavsiya etiladi</translation> <translation id="7299337219131431707">Mehmon rejimida ko‘rishga ruxsat berish</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Bu ilova Chrome brauzerining ishlashiga xalaqit berishi mumkin.}other{Bu ilovalar Chrome brauzerining ishlashiga xalaqit berishi mumkin.}}</translation> <translation id="7303281435234579599">Demo rejimni sozlashda notanish xatolik yuz berdi.</translation> @@ -7257,6 +7259,7 @@ <translation id="9026852570893462412">Bu jarayon bir necha daqiqa olishi mumkin. Virtual mashina yuklab olinmoqda.</translation> <translation id="9027459031423301635">&Havolani yangi ichki oynada ochish</translation> <translation id="9030515284705930323">Hisobingizda Google Play Market ta’minoti tashkilotingiz tomonidan yoqilmagan. Batafsil axborot uchun administratoringiz bilan bog‘laning.</translation> +<translation id="9030754204056345429">Tezroq</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> endi ishlamaydi</translation> <translation id="9031549947500880805">Google Drive omboriga zaxiralash. Maʼlumotlaringizni osongina tiklang yoki qurilmani istalgan vaqt almashtiring. Zaxira ichida ilova maʼlumotlari ham bor.</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index a79914d..bc19b01 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">Không thể kết nối với proxy này</translation> <translation id="1405779994569073824">Đã bị lỗi.</translation> <translation id="1406500794671479665">Đang xác minh...</translation> +<translation id="1407069428457324124">Giao diện tối</translation> <translation id="1407135791313364759">Mở tất cả</translation> <translation id="140723521119632973">Kích hoạt mạng di động</translation> <translation id="1407489512183974736">Cắt giữa</translation> @@ -5673,6 +5674,7 @@ <translation id="729583233778673644">Cho phép mã hóa AES và RC4. Việc sử dụng tùy chọn này sẽ làm gia tăng rủi ro vì các thuật toán mã hóa RC4 là không an toàn.</translation> <translation id="729761647156315797">Chọn ngôn ngữ và bàn phím của bạn</translation> <translation id="7297726121602187087">Xanh lục đậm</translation> +<translation id="7298195798382681320">Được đề xuất</translation> <translation id="7299337219131431707">Bật duyệt với tư cách khách</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Ứng dụng này có thể khiến Chrome hoạt động không bình thường.}other{Những ứng dụng này có thể khiến Chrome hoạt động không bình thường.}}</translation> <translation id="7303281435234579599">Rất tiếc! Đã có sự cố khi thiết lập chế độ minh họa.</translation> @@ -7271,6 +7273,7 @@ <translation id="9026852570893462412">Quá trình này có thể mất vài phút. Đang tải xuống máy ảo.</translation> <translation id="9027459031423301635">Mở Liên kết trong &Tab Mới</translation> <translation id="9030515284705930323">Tổ chức chưa bật Cửa hàng Google Play cho tài khoản của bạn. Hãy liên hệ với quản trị viên để biết thêm thông tin.</translation> +<translation id="9030754204056345429">Nhanh hơn</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> không được hỗ trợ nữa</translation> <translation id="9031549947500880805">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 cứ lúc nào. Nội dung sao lưu của bạn bao gồm các dữ liệu ứng dụng.</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index 3513d1b3..f4a81de 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">无法连接到代理</translation> <translation id="1405779994569073824">已崩溃。</translation> <translation id="1406500794671479665">正在验证...</translation> +<translation id="1407069428457324124">深色主题</translation> <translation id="1407135791313364759">全部打开</translation> <translation id="140723521119632973">移动网络激活</translation> <translation id="1407489512183974736">居中并裁剪</translation> @@ -5647,6 +5648,7 @@ <translation id="729583233778673644">允许使用 AES 和 RC4 加密。选中此选项会令您面临更大的风险,因为 RC4 加密不安全。</translation> <translation id="729761647156315797">选择语言和键盘</translation> <translation id="7297726121602187087">深绿色</translation> +<translation id="7298195798382681320">推荐</translation> <translation id="7299337219131431707">启用访客浏览</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{这款应用可能会致使 Chrome 无法正常运行。}other{这些应用可能会致使 Chrome 无法正常运行。}}</translation> <translation id="7303281435234579599">糟糕!设置演示模式时出了点问题。</translation> @@ -7241,6 +7243,7 @@ <translation id="9026852570893462412">此过程可能需要几分钟的时间。正在下载虚拟机。</translation> <translation id="9027459031423301635">在新标签页中打开链接(&T)</translation> <translation id="9030515284705930323">贵单位还没有为您的帐号启用 Google Play 商店。如需更多信息,请与管理员联系。</translation> +<translation id="9030754204056345429">较快</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269"><ph name="PLUGIN_NAME" /> 已不再受支持</translation> <translation id="9031549947500880805">备份到 Google 云端硬盘。您随时可以轻松地恢复数据或更换设备。您的备份内容包含应用数据。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index 66624d5..bc1fa78 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -361,6 +361,7 @@ <translation id="1403222014593521787">無法連線至 Proxy</translation> <translation id="1405779994569073824">已當機。</translation> <translation id="1406500794671479665">驗證中…</translation> +<translation id="1407069428457324124">深色主題背景</translation> <translation id="1407135791313364759">全部開啟</translation> <translation id="140723521119632973">啟用流動網絡</translation> <translation id="1407489512183974736">置中並剪裁</translation> @@ -5672,6 +5673,7 @@ <translation id="729583233778673644">強制使用 AES 和 RC4 加密。由於 RC4 加密不安全,因此使用此選項會提高風險。</translation> <translation id="729761647156315797">選擇語言和鍵盤</translation> <translation id="7297726121602187087">深綠色</translation> +<translation id="7298195798382681320">建議</translation> <translation id="7299337219131431707">啟用訪客瀏覽</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{此應用程式可能會令 Chrome 無法正常運作。}other{這些應用程式可能會令 Chrome 無法正常運作。}}</translation> <translation id="7303281435234579599">糟糕!設定示範模式時發生問題。</translation> @@ -7269,6 +7271,7 @@ <translation id="9026852570893462412">此程序可能需時幾分鐘。正在下載虛擬機器。</translation> <translation id="9027459031423301635">在新分頁中開啟連結(T)</translation> <translation id="9030515284705930323">您的機構並未為您的帳戶啟用「Google Play 商店」。請聯絡您的管理員,以取得更多資料。</translation> +<translation id="9030754204056345429">較快</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">已不再支援「<ph name="PLUGIN_NAME" />」</translation> <translation id="9031549947500880805">備份至「Google 雲端硬碟」。您可隨時輕鬆還原資料或轉用其他裝置。備份包含應用程式資料。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index b57bc594..699d775 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -359,6 +359,7 @@ <translation id="1403222014593521787">無法連線至 Proxy</translation> <translation id="1405779994569073824">已停止運作。</translation> <translation id="1406500794671479665">驗證中...</translation> +<translation id="1407069428457324124">深色主題</translation> <translation id="1407135791313364759">全部開啟</translation> <translation id="140723521119632973">啟用行動網路</translation> <translation id="1407489512183974736">置中並剪裁</translation> @@ -5656,6 +5657,7 @@ <translation id="729583233778673644">允許執行 AES 和 RC4 加密。由於 RC4 加密不安全,使用這個加密選項會提高風險。</translation> <translation id="729761647156315797">選擇語言和鍵盤</translation> <translation id="7297726121602187087">深綠色</translation> +<translation id="7298195798382681320">建議採用</translation> <translation id="7299337219131431707">啟用訪客瀏覽</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{這個應用程式可能會造成 Chrome 無法正常運作。}other{這些應用程式可能會造成 Chrome 無法正常運作。}}</translation> <translation id="7303281435234579599">糟糕!設定示範模式時出了點狀況。</translation> @@ -7254,6 +7256,7 @@ <translation id="9026852570893462412">正在下載虛擬機器,過程可能需要幾分鐘。</translation> <translation id="9027459031423301635">在新分頁中開啟連結(T)</translation> <translation id="9030515284705930323">貴機構尚未為您的帳戶啟用 Google Play 商店。如需瞭解詳情,請與您的管理員聯絡。</translation> +<translation id="9030754204056345429">較快</translation> <translation id="9030785788945687215">Gmail</translation> <translation id="9030855135435061269">已不再支援「<ph name="PLUGIN_NAME" />」</translation> <translation id="9031549947500880805">使用 Google 雲端硬碟備份你的資料。你隨時可以輕鬆還原資料或切換裝置。備份項目包含應用程式資料。</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index 086a40b8..5ba245c 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -362,6 +362,7 @@ <translation id="1403222014593521787">Ayikwazi ukuxhuma kummeleli</translation> <translation id="1405779994569073824">Iphahlazekile.</translation> <translation id="1406500794671479665">Iyaqinisekisa...</translation> +<translation id="1407069428457324124">Itimu emnyama</translation> <translation id="1407135791313364759">Vula konke</translation> <translation id="140723521119632973">Ukusetshenziswa kweselula</translation> <translation id="1407489512183974736">Imaphakathi lisikiwe</translation> @@ -5674,6 +5675,7 @@ <translation id="729583233778673644">Vumela ukubethelwa kwe-AES ne-RC4. Ukusebenzisa le nketho kukhulisa ubucayi bakho, njengoba ama-chipers e-RC4 awaphephile.</translation> <translation id="729761647156315797">Khetha ulwimi lakho nekhibhodi</translation> <translation id="7297726121602187087">Okuluhlaza kakhulu</translation> +<translation id="7298195798382681320">Kunconyiwe</translation> <translation id="7299337219131431707">Nika amandla ukudlulisa amehlo kwesihambeli</translation> <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Lolu hlelo lokusebenza luvikela i-Chrome ukuthi isebenze kahle.}one{Lezi zinhlelo zokusebenza zingavimbela i-Chrome ukuthi isebenze kahle.}other{Lezi zinhlelo zokusebenza zingavimbela i-Chrome ukuthi isebenze kahle.}}</translation> <translation id="7303281435234579599">Eshu! Okuthile akuhambanga kahle ngenkathi isetha imodi yedemo.</translation> @@ -7272,6 +7274,7 @@ <translation id="9026852570893462412">Le nqubo ingathatha amaminithi ambalwa. Ilanda umshini obonakalayo.</translation> <translation id="9027459031423301635">Vula isixhumanisi kuthebhu entsha</translation> <translation id="9030515284705930323">Inhlangano yakho ayizange inike amandla i-Google Play Isitolo se-akhawunti yakho. Xhumana nomlawuli wakho ukuze uthole olunye ulwazi.</translation> +<translation id="9030754204056345429">Sheshasheshayo</translation> <translation id="9030785788945687215">I-Gmail</translation> <translation id="9030855135435061269">I-<ph name="PLUGIN_NAME" /> ayisasekelwa</translation> <translation id="9031549947500880805">Yenza isipele ku-Google Drayivu. Buyisa kalula idatha yakho noma shintsha idivayisi noma kunini. Isipele sakho sihlanganisa nedatha yohlelo lokusebenza.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_af.xtb b/chrome/app/resources/google_chrome_strings_af.xtb index 1db13ab..4c6fd0df 100644 --- a/chrome/app/resources/google_chrome_strings_af.xtb +++ b/chrome/app/resources/google_chrome_strings_af.xtb
@@ -275,7 +275,7 @@ <translation id="7890208801193284374">As jy 'n rekenaar deel, kan vriende en familie apart blaai en Chrome opstel nes hulle dit wil hê.</translation> <translation id="7896673875602241923">Iemand het voorheen op hierdie rekenaar as <ph name="ACCOUNT_EMAIL_LAST" /> by Chrome aangemeld. Skep asseblief 'n nuwe Chrome-gebruiker om jou inligting apart te hou.</translation> <translation id="7930071585467473040">Google Chrome probeer tans om wagwoorde te kopieer.</translation> -<translation id="7951988079884443914">Chrome beveel aan dat jy nie hierdie lêer aflaai of oomaak nie.</translation> +<translation id="7951988079884443914">Chrome beveel aan dat jy nie hierdie lêer aflaai of oopmaak nie.</translation> <translation id="7962410387636238736">Hierdie rekenaar sal nie meer Google Chrome-opdaterings ontvang nie omdat Windows XP en Windows Vista nie meer gesteun word nie</translation> <translation id="79947657522496226">Chrome-bedryfstelsel word moontlik gemaak deur bykomende <ph name="BEGIN_LINK_CROS_OSS" />oopbronsagteware<ph name="END_LINK_CROS_OSS" /> soos die geval ook is met <ph name="BEGIN_LINK_LINUX_OSS" />Linux-ontwikkelingomgewing<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="8008534537613507642">Herinstalleer Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb index 4bc1b839..8a15a1fd 100644 --- a/chrome/app/resources/google_chrome_strings_es-419.xtb +++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -2,7 +2,7 @@ <!DOCTYPE translationbundle> <translationbundle lang="es-419"> <translation id="1001534784610492198">El instalador está dañado o no es válido. Descargue Google Chrome nuevamente.</translation> -<translation id="102763973188675173">Personaliza y controla Google Chrome. Hay una actualización disponible.</translation> +<translation id="102763973188675173">Personalizar y controlar Google Chrome. Hay una actualización disponible.</translation> <translation id="1051826050538111504">Tu computadora tiene software dañino. Chrome puede quitarlo, inhabilitar las extensiones y restablecer la configuración para que el navegador vuelva a funcionar correctamente.</translation> <translation id="1065672644894730302">No se pueden leer tus preferencias. Es posible que algunas funciones no estén disponibles y que no se guarden los cambios realizados a las preferencias.</translation> <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> usaba Chrome anteriormente</translation> @@ -128,7 +128,7 @@ <translation id="3873044882194371212">Abrir vínculo en una ventana de navegación de incó&gnito de Chrome</translation> <translation id="3889417619312448367">Desinstalar Google Chrome</translation> <translation id="4050175100176540509">La última versión proporciona importantes mejoras de seguridad y nuevas funciones.</translation> -<translation id="4053720452172726777">Personaliza y controla Google Chrome</translation> +<translation id="4053720452172726777">Personalizar y controlar Google Chrome</translation> <translation id="4110895483821904099">Configura tu nuevo perfil de Chrome</translation> <translation id="4147555960264124640">Estás por acceder con una cuenta administrada, lo que significa que proporcionarás al administrador el control sobre tu perfil de Google Chrome. Tus datos de Google Chrome, como las aplicaciones, los favoritos, el historial, las contraseñas y otros parámetros de configuración quedarán vinculados a <ph name="USER_NAME" /> de forma permanente. Podrás eliminar estos datos a través del Panel de control de Cuentas de Google, pero no podrás asociarlos a otra cuenta. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">El instalador no pudo descomprimir el archivo. Descargue Google Chrome nuevamente.</translation> @@ -189,7 +189,7 @@ configuración del Sistema operativo Chrome<ph name="LINK_END" /></translation> <translation id="565744775970812598">Chrome bloqueó <ph name="FILE_NAME" /> porque es posible que sea un archivo peligroso.</translation> <translation id="5678190148303298925">{COUNT,plural, =0{Tu administrador solicita que reinicies Chrome para aplicar esta actualización}=1{Tu administrador solicita que reinicies Chrome para aplicar esta actualización. No se volverá a abrir la ventana de incógnito.}other{Tu administrador solicita que reinicies Chrome para aplicar esta actualización. No se volverán a abrir las # ventanas de incógnito.}}</translation> -<translation id="5686916850681061684">Personaliza y controla Google Chrome. Una alerta necesita tu atención. Haz clic para ver los detalles.</translation> +<translation id="5686916850681061684">Personalizar y controlar Google Chrome. Una alerta necesita tu atención: haz clic para ver los detalles.</translation> <translation id="5690427481109656848">Google LLC</translation> <translation id="5715063361988620182">{SECONDS,plural, =1{Google Chrome se reiniciará en 1 segundo}other{Google Chrome se reiniciará en # segundos}}</translation> <translation id="573759479754913123">Acerca de Chrome OS</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 080d89f..07c27d26 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -1949,9 +1949,9 @@ "//chrome/browser/ui/webui/bluetooth_internals:mojo_bindings", "//chrome/browser/ui/webui/download_shelf:mojo_bindings", "//chrome/browser/ui/webui/downloads:mojo_bindings", + "//chrome/browser/ui/webui/history_clusters:mojo_bindings", "//chrome/browser/ui/webui/internals/user_education:mojo_bindings", "//chrome/browser/ui/webui/internals/web_app:mojo_bindings", - "//chrome/browser/ui/webui/memories:mojo_bindings", "//chrome/browser/ui/webui/new_tab_page:mojo_bindings", "//chrome/browser/ui/webui/new_tab_page_third_party:mojo_bindings", "//chrome/browser/ui/webui/omnibox:mojo_bindings",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index b413718..3811eaf2 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -10,9 +10,9 @@ #include <set> #include <utility> +#include "ash/constants/ash_features.h" #include "ash/public/cpp/app_list/app_list_features.h" #include "ash/public/cpp/app_list/app_list_switches.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/keyboard/keyboard_switches.h" #include "base/base_switches.h" #include "base/bind.h"
diff --git a/chrome/browser/android/browserservices/intents/BUILD.gn b/chrome/browser/android/browserservices/intents/BUILD.gn index d13d0d5..d5fcf9a1 100644 --- a/chrome/browser/android/browserservices/intents/BUILD.gn +++ b/chrome/browser/android/browserservices/intents/BUILD.gn
@@ -13,16 +13,33 @@ "java/src/org/chromium/chrome/browser/browserservices/intents/WebApkExtras.java", "java/src/org/chromium/chrome/browser/browserservices/intents/WebApkShareTarget.java", "java/src/org/chromium/chrome/browser/browserservices/intents/WebDisplayMode.java", + "java/src/org/chromium/chrome/browser/browserservices/intents/WebappConstants.java", "java/src/org/chromium/chrome/browser/browserservices/intents/WebappExtras.java", "java/src/org/chromium/chrome/browser/browserservices/intents/WebappIcon.java", + "java/src/org/chromium/chrome/browser/browserservices/intents/WebappIntentUtils.java", ] deps = [ "//base:base_java", + "//chrome/android/webapk/libs/common:common_java", "//chrome/browser/flags:java", "//components/webapps/browser/android:java", + "//content/public/android:content_main_dex_java", "//services/device/public/mojom:mojom_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_browser_browser_java", ] srcjar_deps = [ "//chrome/browser/android/webapk:enums_srcjar" ] } + +android_library("junit") { + # Skip platform checks since Robolectric depends on requires_android targets. + bypass_platform_checks = true + testonly = true + sources = [ "java/src/org/chromium/chrome/browser/browserservices/intents/WebappIntentUtilsTest.java" ] + deps = [ + ":java", + "//base:base_junit_test_support", + "//third_party/android_deps:robolectric_all_java", + "//third_party/junit", + ] +}
diff --git a/chrome/browser/android/browserservices/intents/DEPS b/chrome/browser/android/browserservices/intents/DEPS new file mode 100644 index 0000000..cbcd8c8e --- /dev/null +++ b/chrome/browser/android/browserservices/intents/DEPS
@@ -0,0 +1,4 @@ +include_rules = [ + "+chrome/android/webapk/libs/common", + "+content/public/android/java/src/org/chromium/content_public", +]
diff --git a/chrome/browser/android/browserservices/intents/java/src/org/chromium/chrome/browser/browserservices/intents/WebappConstants.java b/chrome/browser/android/browserservices/intents/java/src/org/chromium/chrome/browser/browserservices/intents/WebappConstants.java new file mode 100644 index 0000000..4843681 --- /dev/null +++ b/chrome/browser/android/browserservices/intents/java/src/org/chromium/chrome/browser/browserservices/intents/WebappConstants.java
@@ -0,0 +1,52 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.browserservices.intents; + +import org.chromium.content_public.common.ScreenOrientationConstants; + +/** + * This class contains constants related to adding shortcuts to the Android Home + * screen. These shortcuts are used to either open a page in the main browser + * or open a web app. + */ +public class WebappConstants { + public static final String EXTRA_ICON = "org.chromium.chrome.browser.webapp_icon"; + public static final String EXTRA_ID = "org.chromium.chrome.browser.webapp_id"; + public static final String EXTRA_MAC = "org.chromium.chrome.browser.webapp_mac"; + // EXTRA_TITLE is present for backward compatibility reasons. + public static final String EXTRA_TITLE = "org.chromium.chrome.browser.webapp_title"; + public static final String EXTRA_NAME = "org.chromium.chrome.browser.webapp_name"; + public static final String EXTRA_SHORT_NAME = "org.chromium.chrome.browser.webapp_short_name"; + public static final String EXTRA_URL = "org.chromium.chrome.browser.webapp_url"; + public static final String EXTRA_SCOPE = "org.chromium.chrome.browser.webapp_scope"; + public static final String EXTRA_DISPLAY_MODE = + "org.chromium.chrome.browser.webapp_display_mode"; + public static final String EXTRA_ORIENTATION = ScreenOrientationConstants.EXTRA_ORIENTATION; + public static final String EXTRA_SOURCE = "org.chromium.chrome.browser.webapp_source"; + public static final String EXTRA_THEME_COLOR = "org.chromium.chrome.browser.theme_color"; + public static final String EXTRA_BACKGROUND_COLOR = + "org.chromium.chrome.browser.background_color"; + public static final String EXTRA_IS_ICON_GENERATED = + "org.chromium.chrome.browser.is_icon_generated"; + public static final String EXTRA_IS_ICON_ADAPTIVE = + "org.chromium.chrome.browser.webapp_icon_adaptive"; + public static final String EXTRA_VERSION = + "org.chromium.chrome.browser.webapp_shortcut_version"; + public static final String REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB = + "REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB"; + // Whether the webapp should navigate to the URL in {@link EXTRA_URL} if the webapp is already + // open. Applies to webapps and WebAPKs. Value contains "webapk" for backward compatibility. + public static final String EXTRA_FORCE_NAVIGATION = + "org.chromium.chrome.browser.webapk_force_navigation"; + + // When a new field is added to the intent, this version should be incremented so that it will + // be correctly populated into the WebappRegistry/WebappDataStorage. + public static final int WEBAPP_SHORTCUT_VERSION = 3; + + // This value is equal to kInvalidOrMissingColor in the C++ blink::Manifest struct. + public static final long MANIFEST_COLOR_INVALID_OR_MISSING = ((long) Integer.MAX_VALUE) + 1; + + private WebappConstants() {} +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentUtils.java b/chrome/browser/android/browserservices/intents/java/src/org/chromium/chrome/browser/browserservices/intents/WebappIntentUtils.java similarity index 77% rename from chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentUtils.java rename to chrome/browser/android/browserservices/intents/java/src/org/chromium/chrome/browser/browserservices/intents/WebappIntentUtils.java index f2b08c3..82b893a9 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentUtils.java +++ b/chrome/browser/android/browserservices/intents/java/src/org/chromium/chrome/browser/browserservices/intents/WebappIntentUtils.java
@@ -2,14 +2,13 @@ // 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.webapps; +package org.chromium.chrome.browser.browserservices.intents; import android.content.Intent; import android.os.Bundle; import android.provider.Browser; import org.chromium.base.IntentUtils; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.webapk.lib.common.WebApkConstants; import java.util.HashSet; @@ -22,22 +21,22 @@ * PWA homescreen shortcut intent extras. Used for copying intent extras for * {@link WebappActivity} launch intent. */ - private static final String[] WEBAPP_INTENT_EXTRAS = new String[] {ShortcutHelper.EXTRA_ID, - ShortcutHelper.EXTRA_URL, ShortcutHelper.EXTRA_FORCE_NAVIGATION, - ShortcutHelper.EXTRA_SOURCE, ShortcutHelper.EXTRA_SCOPE, ShortcutHelper.EXTRA_ICON, - ShortcutHelper.EXTRA_VERSION, ShortcutHelper.EXTRA_NAME, - ShortcutHelper.EXTRA_SHORT_NAME, ShortcutHelper.EXTRA_DISPLAY_MODE, - ShortcutHelper.EXTRA_ORIENTATION, ShortcutHelper.EXTRA_THEME_COLOR, - ShortcutHelper.EXTRA_BACKGROUND_COLOR, ShortcutHelper.EXTRA_IS_ICON_GENERATED, - ShortcutHelper.EXTRA_IS_ICON_ADAPTIVE}; + private static final String[] WEBAPP_INTENT_EXTRAS = new String[] {WebappConstants.EXTRA_ID, + WebappConstants.EXTRA_URL, WebappConstants.EXTRA_FORCE_NAVIGATION, + WebappConstants.EXTRA_SOURCE, WebappConstants.EXTRA_SCOPE, WebappConstants.EXTRA_ICON, + WebappConstants.EXTRA_VERSION, WebappConstants.EXTRA_NAME, + WebappConstants.EXTRA_SHORT_NAME, WebappConstants.EXTRA_DISPLAY_MODE, + WebappConstants.EXTRA_ORIENTATION, WebappConstants.EXTRA_THEME_COLOR, + WebappConstants.EXTRA_BACKGROUND_COLOR, WebappConstants.EXTRA_IS_ICON_GENERATED, + WebappConstants.EXTRA_IS_ICON_ADAPTIVE}; /** * WebAPK intent extras. Used for copying intent extras for {@link WebappActivity} launch * intent. */ - private static final String[] WEBAPK_INTENT_EXTRAS = new String[] {ShortcutHelper.EXTRA_ID, - ShortcutHelper.EXTRA_URL, ShortcutHelper.EXTRA_FORCE_NAVIGATION, - ShortcutHelper.EXTRA_SOURCE, WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, + private static final String[] WEBAPK_INTENT_EXTRAS = new String[] {WebappConstants.EXTRA_ID, + WebappConstants.EXTRA_URL, WebappConstants.EXTRA_FORCE_NAVIGATION, + WebappConstants.EXTRA_SOURCE, WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, WebApkConstants.EXTRA_SPLASH_PROVIDED_BY_WEBAPK, WebApkConstants.EXTRA_WEBAPK_LAUNCH_TIME, WebApkConstants.EXTRA_NEW_STYLE_SPLASH_SHOWN_TIME, @@ -48,22 +47,22 @@ /** * Converts color from signed Integer where an unspecified color is represented as null to * to unsigned long where an unspecified color is represented as - * {@link ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING}. + * {@link WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING}. */ public static long colorFromIntegerColor(Integer color) { if (color != null) { return color.intValue(); } - return ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING; + return WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING; } public static boolean isLongColorValid(long longColor) { - return (longColor != ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING); + return (longColor != WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING); } /** * Converts color from unsigned long where an unspecified color is represented as - * {@link ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING} to a signed Integer where an + * {@link WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING} to a signed Integer where an * unspecified color is represented as null. */ public static Integer colorFromLongColor(long longColor) { @@ -74,7 +73,7 @@ * Extracts id from homescreen shortcut intent. */ public static String getIdForHomescreenShortcut(Intent intent) { - return IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_ID); + return IntentUtils.safeGetStringExtra(intent, WebappConstants.EXTRA_ID); } /**
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappIntentUtilsTest.java b/chrome/browser/android/browserservices/intents/java/src/org/chromium/chrome/browser/browserservices/intents/WebappIntentUtilsTest.java similarity index 72% rename from chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappIntentUtilsTest.java rename to chrome/browser/android/browserservices/intents/java/src/org/chromium/chrome/browser/browserservices/intents/WebappIntentUtilsTest.java index 2ad6ccb..cae480e 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappIntentUtilsTest.java +++ b/chrome/browser/android/browserservices/intents/java/src/org/chromium/chrome/browser/browserservices/intents/WebappIntentUtilsTest.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.webapps; +package org.chromium.chrome.browser.browserservices.intents; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -16,7 +16,6 @@ import org.robolectric.annotation.Config; import org.chromium.base.test.BaseRobolectricTestRunner; -import org.chromium.chrome.browser.ShortcutHelper; import java.util.ArrayList; @@ -34,10 +33,10 @@ public void testCopyWebappLaunchIntentExtrasMissingKeys() { Intent toIntent = new Intent(); WebappIntentUtils.copyWebappLaunchIntentExtras(new Intent(), toIntent); - assertFalse(toIntent.hasExtra(ShortcutHelper.EXTRA_NAME)); - assertFalse(toIntent.hasExtra(ShortcutHelper.EXTRA_IS_ICON_ADAPTIVE)); - assertFalse(toIntent.hasExtra(ShortcutHelper.EXTRA_DISPLAY_MODE)); - assertFalse(toIntent.hasExtra(ShortcutHelper.EXTRA_BACKGROUND_COLOR)); + assertFalse(toIntent.hasExtra(WebappConstants.EXTRA_NAME)); + assertFalse(toIntent.hasExtra(WebappConstants.EXTRA_IS_ICON_ADAPTIVE)); + assertFalse(toIntent.hasExtra(WebappConstants.EXTRA_DISPLAY_MODE)); + assertFalse(toIntent.hasExtra(WebappConstants.EXTRA_BACKGROUND_COLOR)); assertFalse(toIntent.hasExtra(Intent.EXTRA_STREAM)); } @@ -48,19 +47,20 @@ @Test public void testCopyWebappLaunchIntentExtras() { Intent fromIntent = new Intent(); - fromIntent.putExtra(ShortcutHelper.EXTRA_NAME, "name"); - fromIntent.putExtra(ShortcutHelper.EXTRA_IS_ICON_ADAPTIVE, false); - fromIntent.putExtra(ShortcutHelper.EXTRA_IS_ICON_GENERATED, true); - fromIntent.putExtra(ShortcutHelper.EXTRA_DISPLAY_MODE, 1); - fromIntent.putExtra(ShortcutHelper.EXTRA_BACKGROUND_COLOR, 1L); + fromIntent.putExtra(WebappConstants.EXTRA_NAME, "name"); + fromIntent.putExtra(WebappConstants.EXTRA_IS_ICON_ADAPTIVE, false); + fromIntent.putExtra(WebappConstants.EXTRA_IS_ICON_GENERATED, true); + fromIntent.putExtra(WebappConstants.EXTRA_DISPLAY_MODE, 1); + fromIntent.putExtra(WebappConstants.EXTRA_BACKGROUND_COLOR, 1L); Intent toIntent = new Intent(); WebappIntentUtils.copyWebappLaunchIntentExtras(fromIntent, toIntent); - assertEquals("name", toIntent.getStringExtra(ShortcutHelper.EXTRA_NAME)); - assertEquals(false, toIntent.getBooleanExtra(ShortcutHelper.EXTRA_IS_ICON_ADAPTIVE, true)); - assertEquals(true, toIntent.getBooleanExtra(ShortcutHelper.EXTRA_IS_ICON_GENERATED, false)); - assertEquals(1, toIntent.getIntExtra(ShortcutHelper.EXTRA_DISPLAY_MODE, 0)); - assertEquals(1L, toIntent.getLongExtra(ShortcutHelper.EXTRA_BACKGROUND_COLOR, 0L)); + assertEquals("name", toIntent.getStringExtra(WebappConstants.EXTRA_NAME)); + assertEquals(false, toIntent.getBooleanExtra(WebappConstants.EXTRA_IS_ICON_ADAPTIVE, true)); + assertEquals( + true, toIntent.getBooleanExtra(WebappConstants.EXTRA_IS_ICON_GENERATED, false)); + assertEquals(1, toIntent.getIntExtra(WebappConstants.EXTRA_DISPLAY_MODE, 0)); + assertEquals(1L, toIntent.getLongExtra(WebappConstants.EXTRA_BACKGROUND_COLOR, 0L)); } /** @@ -114,12 +114,12 @@ public void testCopyWebappLaunchIntentExtrasDoesNotModifyFromIntent() { final String notInAllowlistKey = "not_in_allowlist"; Intent fromIntent = new Intent(); - fromIntent.putExtra(ShortcutHelper.EXTRA_NAME, "name"); + fromIntent.putExtra(WebappConstants.EXTRA_NAME, "name"); fromIntent.putExtra(notInAllowlistKey, "random"); Intent toIntent = new Intent(); WebappIntentUtils.copyWebappLaunchIntentExtras(fromIntent, toIntent); - assertEquals("name", fromIntent.getStringExtra(ShortcutHelper.EXTRA_NAME)); + assertEquals("name", fromIntent.getStringExtra(WebappConstants.EXTRA_NAME)); assertEquals("random", fromIntent.getStringExtra(notInAllowlistKey)); - assertEquals("name", toIntent.getStringExtra(ShortcutHelper.EXTRA_NAME)); + assertEquals("name", toIntent.getStringExtra(WebappConstants.EXTRA_NAME)); } }
diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/favicon_helper.cc index ce6c271..49569362 100644 --- a/chrome/browser/android/favicon_helper.cc +++ b/chrome/browser/android/favicon_helper.cc
@@ -58,7 +58,7 @@ public: Job(FaviconHelper* favicon_helper, favicon::FaviconService* favicon_service, - std::vector<std::string> urls, + std::vector<GURL> urls, int desire_size_in_pixel, JobFinishedCallback job_finished_callback, favicon_base::FaviconResultsCallback result_callback); @@ -73,7 +73,7 @@ const favicon_base::FaviconRawBitmapResult& result); FaviconHelper* favicon_helper_; favicon::FaviconService* favicon_service_; - std::vector<std::string> urls_; + std::vector<GURL> urls_; int desire_size_in_pixel_; JobFinishedCallback job_finished_callback_; favicon_base::FaviconResultsCallback result_callback_; @@ -86,7 +86,7 @@ FaviconHelper::Job::Job(FaviconHelper* favicon_helper, favicon::FaviconService* favicon_service, - std::vector<std::string> urls, + std::vector<GURL> urls, int desire_size_in_pixel, JobFinishedCallback job_finished_callback, favicon_base::FaviconResultsCallback result_callback) @@ -113,7 +113,7 @@ weak_ptr_factory_.GetWeakPtr(), i); favicon_helper_->GetLocalFaviconImageForURLInternal( - favicon_service_, GURL(urls_.at(i)), desire_size_in_pixel_, + favicon_service_, urls_.at(i), desire_size_in_pixel_, std::move(callback)); } } @@ -180,8 +180,8 @@ ScopedJavaGlobalRef<jobject>(j_favicon_image_callback), desired_size_in_pixel); - std::vector<std::string> urls; - base::android::AppendJavaStringArrayToStringVector(env, j_urls, &urls); + std::vector<GURL> urls; + url::GURLAndroid::JavaGURLArrayToGURLVector(env, j_urls, &urls); GetComposedFaviconImageInternal(favicon_service, urls, static_cast<int>(j_desired_size_in_pixel), @@ -192,7 +192,7 @@ void FaviconHelper::GetComposedFaviconImageInternal( favicon::FaviconService* favicon_service, - std::vector<std::string> urls, + std::vector<GURL> urls, int desired_size_in_pixel, favicon_base::FaviconResultsCallback callback_runner) { DCHECK(favicon_service);
diff --git a/chrome/browser/android/favicon_helper.h b/chrome/browser/android/favicon_helper.h index cf3b992..63f3d0e 100644 --- a/chrome/browser/android/favicon_helper.h +++ b/chrome/browser/android/favicon_helper.h
@@ -48,7 +48,7 @@ favicon_base::FaviconRawBitmapCallback callback_runner); void GetComposedFaviconImageInternal( favicon::FaviconService* favicon_service, - std::vector<std::string> urls, + std::vector<GURL> urls, int desired_size_in_pixel, favicon_base::FaviconResultsCallback callback_runner); void OnJobFinished(int job_id);
diff --git a/chrome/browser/android/favicon_helper_unittest.cc b/chrome/browser/android/favicon_helper_unittest.cc index e86be60..b32cf4e9 100644 --- a/chrome/browser/android/favicon_helper_unittest.cc +++ b/chrome/browser/android/favicon_helper_unittest.cc
@@ -89,10 +89,9 @@ TEST_F(FaviconHelperTest, GetComposedFaviconImage) { raw_bitmap_results_.clear(); - std::vector<std::string> urls = {"http://www.tab1.com", - "http://www.tab2.com"}; - GURL url1 = GURL(urls[0]); - GURL url2 = GURL(urls[1]); + GURL url1 = GURL("http://www.tab1.com"); + GURL url2 = GURL("http://www.tab2.com"); + std::vector<GURL> urls = {url1, url2}; EXPECT_CALL(mock_favicon_service_, GetRawFaviconForPageURL(url1, _, _, 16, _, _)) @@ -112,11 +111,10 @@ TEST_F(FaviconHelperTest, GetComposedFaviconImageWithOneFaviconFailed) { raw_bitmap_results_.clear(); - std::vector<std::string> urls = {"http://www.tab1.com", "http://www.tab2.com", - "http://www.tab3.com"}; - GURL url1 = GURL(urls[0]); - GURL url2 = GURL(urls[1]); - GURL url3 = GURL(urls[2]); + GURL url1 = GURL("http://www.tab1.com"); + GURL url2 = GURL("http://www.tab2.com"); + GURL url3 = GURL("http://www.tab3.com"); + std::vector<GURL> urls = {url1, url2, url3}; EXPECT_CALL(mock_favicon_service_, GetRawFaviconForPageURL(url1, _, _, 16, _, _)) @@ -144,11 +142,10 @@ TEST_F(FaviconHelperTest, GetComposedFaviconImageOrderMatchesInput) { raw_bitmap_results_.clear(); - std::vector<std::string> urls = {"http://www.tab1.com", "http://www.tab2.com", - "http://www.tab3.com"}; - GURL url1 = GURL(urls[0]); - GURL url2 = GURL(urls[1]); - GURL url3 = GURL(urls[2]); + GURL url1 = GURL("http://www.tab1.com"); + GURL url2 = GURL("http://www.tab2.com"); + GURL url3 = GURL("http://www.tab3.com"); + std::vector<GURL> urls = {url1, url2, url3}; EXPECT_CALL(mock_favicon_service_, GetRawFaviconForPageURL(url1, _, _, 16, _, _))
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm index 5b8c8bc..9c49e477 100644 --- a/chrome/browser/app_controller_mac.mm +++ b/chrome/browser/app_controller_mac.mm
@@ -139,6 +139,11 @@ // make a new window while there are no other active windows. bool g_is_opening_new_window = false; +// Open the urls in the last used browser from a regular profile. +void OpenUrlsInBrowserWithProfile(const std::vector<GURL>& urls, + Profile* profile, + Profile::CreateStatus status); + // Activates a browser window having the given profile (the last one active) if // possible and returns a pointer to the activate |Browser| or NULL if this was // not possible. If the last active browser is minimized (in particular, if @@ -309,45 +314,25 @@ /*ignore_profile_picker=*/true); } -// Open the urls in the last used browser from a regular profile. +// Open the urls in the last used browser. Loads the profile asynchronously if +// needed. void OpenUrlsInBrowser(const std::vector<GURL>& urls) { - // TODO(https://crbug.com/1176734): This may create the profile synchronously, - // replace this by an asynchronous call. - Profile* profile = - g_browser_process->profile_manager()->GetLastUsedProfileAllowedByPolicy(); - Browser* browser = chrome::FindLastActiveWithProfile(profile); - int startupIndex = TabStripModel::kNoTab; - content::WebContents* startupContent = nullptr; - if (browser && browser->tab_strip_model()->count() == 1) { - // If there's only 1 tab and the tab is NTP, close this NTP tab and open all - // startup urls in new tabs, because the omnibox will stay focused if we - // load url in NTP tab. - startupIndex = browser->tab_strip_model()->active_index(); - startupContent = browser->tab_strip_model()->GetActiveWebContents(); - } else if (!browser) { - // if no browser window exists then create one with no tabs to be filled in. - browser = Browser::Create(Browser::CreateParams(profile, true)); - browser->window()->Show(); + AppController* controller = + base::mac::ObjCCastStrict<AppController>([NSApp delegate]); + if (!controller) + return; + + if (Profile* profile = [controller lastProfileIfLoaded]) { + OpenUrlsInBrowserWithProfile(urls, profile, + Profile::CREATE_STATUS_INITIALIZED); + return; } - // Various methods to open URLs that we get in a native fashion. We use - // StartupBrowserCreator here because on the other platforms, URLs to open - // come through the ProcessSingleton, and it calls StartupBrowserCreator. It's - // best to bottleneck the openings through that for uniform handling. - base::CommandLine dummy(base::CommandLine::NO_PROGRAM); - chrome::startup::IsFirstRun first_run = - first_run::IsChromeFirstRun() ? chrome::startup::IS_FIRST_RUN - : chrome::startup::IS_NOT_FIRST_RUN; - StartupBrowserCreatorImpl launch(base::FilePath(), dummy, first_run); - launch.OpenURLsInBrowser(browser, false, urls); - - // This NTP check should be replaced once https://crbug.com/624410 is fixed. - if (startupIndex != TabStripModel::kNoTab && - (startupContent->GetVisibleURL() == chrome::kChromeUINewTabURL || - startupContent->GetVisibleURL() == chrome::kChromeUINewTabPageURL)) { - browser->tab_strip_model()->CloseWebContentsAt(startupIndex, - TabStripModel::CLOSE_NONE); - } + // Asynchronously load the profile and open the URLs once it's loaded. + ProfileManager* profile_manager = g_browser_process->profile_manager(); + profile_manager->CreateProfileAsync( + GetStartupProfilePathMac(), + base::BindRepeating(&OpenUrlsInBrowserWithProfile, urls)); } } // namespace @@ -1996,6 +1981,52 @@ } } +void OpenUrlsInBrowserWithProfile(const std::vector<GURL>& urls, + Profile* profile, + Profile::CreateStatus status) { + if (status != Profile::CREATE_STATUS_INITIALIZED) + return; + AppController* controller = + base::mac::ObjCCastStrict<AppController>([NSApp delegate]); + if (!controller) + return; + DCHECK(profile); + profile = [controller safeProfileForNewWindows:profile]; + Browser* browser = chrome::FindLastActiveWithProfile(profile); + int startupIndex = TabStripModel::kNoTab; + content::WebContents* startupContent = nullptr; + if (browser && browser->tab_strip_model()->count() == 1) { + // If there's only 1 tab and the tab is NTP, close this NTP tab and open all + // startup urls in new tabs, because the omnibox will stay focused if we + // load url in NTP tab. + startupIndex = browser->tab_strip_model()->active_index(); + startupContent = browser->tab_strip_model()->GetActiveWebContents(); + } else if (!browser) { + // if no browser window exists then create one with no tabs to be filled in. + browser = Browser::Create(Browser::CreateParams(profile, true)); + browser->window()->Show(); + } + + // Various methods to open URLs that we get in a native fashion. We use + // StartupBrowserCreator here because on the other platforms, URLs to open + // come through the ProcessSingleton, and it calls StartupBrowserCreator. It's + // best to bottleneck the openings through that for uniform handling. + base::CommandLine dummy(base::CommandLine::NO_PROGRAM); + chrome::startup::IsFirstRun first_run = + first_run::IsChromeFirstRun() ? chrome::startup::IS_FIRST_RUN + : chrome::startup::IS_NOT_FIRST_RUN; + StartupBrowserCreatorImpl launch(base::FilePath(), dummy, first_run); + launch.OpenURLsInBrowser(browser, false, urls); + + // This NTP check should be replaced once https://crbug.com/624410 is fixed. + if (startupIndex != TabStripModel::kNoTab && + (startupContent->GetVisibleURL() == chrome::kChromeUINewTabURL || + startupContent->GetVisibleURL() == chrome::kChromeUINewTabPageURL)) { + browser->tab_strip_model()->CloseWebContentsAt(startupIndex, + TabStripModel::CLOSE_NONE); + } +} + } // namespace namespace app_controller_mac {
diff --git a/chrome/browser/ash/accessibility/select_to_speak_browsertest.cc b/chrome/browser/ash/accessibility/select_to_speak_browsertest.cc index 1634255..af1411ff 100644 --- a/chrome/browser/ash/accessibility/select_to_speak_browsertest.cc +++ b/chrome/browser/ash/accessibility/select_to_speak_browsertest.cc
@@ -7,7 +7,6 @@ #include "ash/accessibility/ui/accessibility_focus_ring_controller_impl.h" #include "ash/accessibility/ui/accessibility_focus_ring_layer.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_view_ids.h" #include "ash/public/cpp/system_tray_test_api.h" #include "ash/public/cpp/test/shell_test_api.h"
diff --git a/chrome/browser/ash/login/chrome_restart_request.cc b/chrome/browser/ash/login/chrome_restart_request.cc index 23f371a..0858020 100644 --- a/chrome/browser/ash/login/chrome_restart_request.cc +++ b/chrome/browser/ash/login/chrome_restart_request.cc
@@ -12,7 +12,6 @@ #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/public/cpp/app_list/app_list_switches.h" -#include "ash/public/cpp/ash_features.h" #include "base/base_switches.h" #include "base/bind.h" #include "base/command_line.h"
diff --git a/chrome/browser/ash/login/eula_browsertest.cc b/chrome/browser/ash/login/eula_browsertest.cc index d9a9b412..46411f6 100644 --- a/chrome/browser/ash/login/eula_browsertest.cc +++ b/chrome/browser/ash/login/eula_browsertest.cc
@@ -351,8 +351,7 @@ } // Tests that "Additional ToS" dialog could be opened and closed. -// TODO(crbug.com/1175244): Flaky on linux-chromeos-rel and linux-chromeos-dbg. -IN_PROC_BROWSER_TEST_F(EulaTest, DISABLED_AdditionalToS) { +IN_PROC_BROWSER_TEST_F(EulaTest, AdditionalToS) { base::HistogramTester histogram_tester; ShowEulaScreen();
diff --git a/chrome/browser/ash/login/lock/views_screen_locker.cc b/chrome/browser/ash/login/lock/views_screen_locker.cc index a0019005..3027e23 100644 --- a/chrome/browser/ash/login/lock/views_screen_locker.cc +++ b/chrome/browser/ash/login/lock/views_screen_locker.cc
@@ -8,7 +8,6 @@ #include <string> #include <utility> -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/login_screen.h" #include "ash/public/cpp/login_screen_model.h" #include "base/bind.h"
diff --git a/chrome/browser/ash/login/login_screen_policy_browsertest.cc b/chrome/browser/ash/login/login_screen_policy_browsertest.cc index 1c836e668..942cf0d 100644 --- a/chrome/browser/ash/login/login_screen_policy_browsertest.cc +++ b/chrome/browser/ash/login/login_screen_policy_browsertest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_view_ids.h" #include "ash/public/cpp/login_screen.h" #include "ash/public/cpp/login_screen_model.h"
diff --git a/chrome/browser/ash/login/oobe_interactive_ui_test.cc b/chrome/browser/ash/login/oobe_interactive_ui_test.cc index 5d0fac8..ddec00f 100644 --- a/chrome/browser/ash/login/oobe_interactive_ui_test.cc +++ b/chrome/browser/ash/login/oobe_interactive_ui_test.cc
@@ -6,7 +6,6 @@ #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/login_screen_test_api.h" #include "ash/public/cpp/test/shell_test_api.h" @@ -826,9 +825,8 @@ // crbug.com/997987. Disabled on MSAN since they time out. // crbug.com/1055853: EndToEnd is flaky on Linux Chromium OS ASan LSan -// crbug.com/1214917: EndToEnd is flaky on linux-chromeos-dbg #if defined(MEMORY_SANITIZER) || defined(ADDRESS_SANITIZER) || \ - defined(LEAK_SANITIZER) || !defined(NDEBUG) + defined(LEAK_SANITIZER) #define MAYBE_EndToEnd DISABLED_EndToEnd #else #define MAYBE_EndToEnd EndToEnd
diff --git a/chrome/browser/ash/login/screens/error_screen.cc b/chrome/browser/ash/login/screens/error_screen.cc index 4717109..47eac26 100644 --- a/chrome/browser/ash/login/screens/error_screen.cc +++ b/chrome/browser/ash/login/screens/error_screen.cc
@@ -6,7 +6,6 @@ #include <memory> -#include "ash/public/cpp/ash_features.h" #include "base/bind.h" #include "base/callback_helpers.h" #include "base/command_line.h"
diff --git a/chrome/browser/ash/login/screens/gesture_navigation_screen.cc b/chrome/browser/ash/login/screens/gesture_navigation_screen.cc index fe07dc7..564cabd6 100644 --- a/chrome/browser/ash/login/screens/gesture_navigation_screen.cc +++ b/chrome/browser/ash/login/screens/gesture_navigation_screen.cc
@@ -4,8 +4,8 @@ #include "chrome/browser/ash/login/screens/gesture_navigation_screen.h" +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/tablet_mode.h" #include "base/metrics/histogram_functions.h"
diff --git a/chrome/browser/ash/login/screens/gesture_navigation_screen_browsertest.cc b/chrome/browser/ash/login/screens/gesture_navigation_screen_browsertest.cc index cf3f603..4bdc02f 100644 --- a/chrome/browser/ash/login/screens/gesture_navigation_screen_browsertest.cc +++ b/chrome/browser/ash/login/screens/gesture_navigation_screen_browsertest.cc
@@ -7,8 +7,8 @@ #include <string> #include <vector> +#include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/test/shell_test_api.h" #include "base/bind.h"
diff --git a/chrome/browser/ash/login/screens/marketing_opt_in_screen.cc b/chrome/browser/ash/login/screens/marketing_opt_in_screen.cc index f299cfbf2..91dd2d1 100644 --- a/chrome/browser/ash/login/screens/marketing_opt_in_screen.cc +++ b/chrome/browser/ash/login/screens/marketing_opt_in_screen.cc
@@ -9,7 +9,6 @@ #include <unordered_set> #include "ash/constants/ash_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/login_screen.h" #include "base/bind.h"
diff --git a/chrome/browser/ash/login/screens/marketing_opt_in_screen_browsertest.cc b/chrome/browser/ash/login/screens/marketing_opt_in_screen_browsertest.cc index 73cf8df6..048a95c 100644 --- a/chrome/browser/ash/login/screens/marketing_opt_in_screen_browsertest.cc +++ b/chrome/browser/ash/login/screens/marketing_opt_in_screen_browsertest.cc
@@ -9,7 +9,6 @@ #include <string> #include "ash/constants/ash_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/shelf_test_api.h" #include "ash/public/cpp/test/shell_test_api.h"
diff --git a/chrome/browser/ash/login/session/user_session_manager.cc b/chrome/browser/ash/login/session/user_session_manager.cc index a368881..8e4b99d3 100644 --- a/chrome/browser/ash/login/session/user_session_manager.cc +++ b/chrome/browser/ash/login/session/user_session_manager.cc
@@ -18,7 +18,6 @@ #include "ash/components/account_manager/account_manager_factory.h" #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "base/base_paths.h" #include "base/bind.h" #include "base/callback_helpers.h"
diff --git a/chrome/browser/ash/login/ui/webui_login_view.cc b/chrome/browser/ash/login/ui/webui_login_view.cc index b20033d..9d9bc835 100644 --- a/chrome/browser/ash/login/ui/webui_login_view.cc +++ b/chrome/browser/ash/login/ui/webui_login_view.cc
@@ -7,7 +7,6 @@ #include <memory> #include <utility> -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/login_accelerators.h" #include "ash/public/cpp/login_screen.h" #include "base/bind.h"
diff --git a/chrome/browser/ash/login/webview_login_browsertest.cc b/chrome/browser/ash/login/webview_login_browsertest.cc index 585c5284..cb8f9c5 100644 --- a/chrome/browser/ash/login/webview_login_browsertest.cc +++ b/chrome/browser/ash/login/webview_login_browsertest.cc
@@ -352,7 +352,12 @@ void DisableImplicitServices() { SigninFrameJS().ExecuteAsync( - "gaia.chromeOSLogin.sendImplicitServices = false"); + "gaia.chromeOSLogin.shouldSendImplicitServices = false"); + } + + void DisableCloseViewMessage() { + SigninFrameJS().ExecuteAsync( + "gaia.chromeOSLogin.shouldSendCloseView = false"); } void WaitForServicesSet() { @@ -436,6 +441,8 @@ IN_PROC_BROWSER_TEST_P(WebviewCloseViewLoginTest, NativeTest) { WaitForGaiaPageLoadAndPropertyUpdate(); ExpectIdentifierPage(); + // Test will send `closerView` manually (if the feature is enabled). + DisableCloseViewMessage(); SigninFrameJS().TypeIntoPath(FakeGaiaMixin::kFakeUserEmail, FakeGaiaMixin::kEmailPath); test::OobeJS().ClickOnPath(kPrimaryButton); @@ -503,6 +510,8 @@ WaitForGaiaPageLoadAndPropertyUpdate(); ExpectIdentifierPage(); + // Test will send `closerView` manually (if the feature is enabled). + DisableCloseViewMessage(); SigninFrameJS().TypeIntoPath(FakeGaiaMixin::kFakeUserEmail, FakeGaiaMixin::kEmailPath); @@ -547,6 +556,8 @@ // Start with identifer page. ExpectIdentifierPage(); + // Test will send `closerView` manually (if the feature is enabled). + DisableCloseViewMessage(); // Move to password page. auto back_button_waiter = CreateGaiaPageEventWaiter("backButton"); @@ -1725,18 +1736,13 @@ EXPECT_TRUE(user_manager->GetActiveUser()->IsChild()); } -// crbug.com/1215441 -#if defined(OS_LINUX) || defined(OS_CHROMEOS) -#define MAYBE_UserInfoNeverSent DISABLED_UserInfoNeverSent -#else -#define MAYBE_UserInfoNeverSent UserInfoNeverSent -#endif - // Verifies flow when user info message is never sent. -IN_PROC_BROWSER_TEST_P(WebviewCloseViewLoginTest, MAYBE_UserInfoNeverSent) { +IN_PROC_BROWSER_TEST_P(WebviewCloseViewLoginTest, UserInfoNeverSent) { WaitForGaiaPageLoadAndPropertyUpdate(); ExpectIdentifierPage(); DisableImplicitServices(); + // Test will send `closerView` manually (if the feature is enabled). + DisableCloseViewMessage(); SigninFrameJS().TypeIntoPath(FakeGaiaMixin::kFakeUserEmail, FakeGaiaMixin::kEmailPath); test::OobeJS().ClickOnPath(kPrimaryButton);
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc index b9e6ef4..59256eb 100644 --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -126,9 +126,9 @@ #endif #include "chrome/browser/ui/webui/download_shelf/download_shelf.mojom.h" #include "chrome/browser/ui/webui/download_shelf/download_shelf_ui.h" +#include "chrome/browser/ui/webui/history_clusters/history_clusters.mojom.h" +#include "chrome/browser/ui/webui/history_clusters/memories_ui.h" #include "chrome/browser/ui/webui/internals/user_education/user_education_internals.mojom.h" -#include "chrome/browser/ui/webui/memories/history_clusters.mojom.h" -#include "chrome/browser/ui/webui/memories/memories_ui.h" #include "chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom.h" #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h" #include "chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h"
diff --git a/chrome/browser/chromeos/extensions/wallpaper_private_api.cc b/chrome/browser/chromeos/extensions/wallpaper_private_api.cc index f13a533..d30ffd7 100644 --- a/chrome/browser/chromeos/extensions/wallpaper_private_api.cc +++ b/chrome/browser/chromeos/extensions/wallpaper_private_api.cc
@@ -9,7 +9,6 @@ #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/wallpaper_controller.h" #include "base/bind.h" #include "base/command_line.h"
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc index 03a88793..3c08833d 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc
@@ -15,7 +15,6 @@ #if !defined(OFFICIAL_BUILD) #include "ash/content/file_manager/url_constants.h" #endif -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/test/shell_test_api.h" #include "base/bind.h" #include "base/callback_helpers.h"
diff --git a/chrome/browser/chromeos/first_run/chromeos_first_run_browsertest.cc b/chrome/browser/chromeos/first_run/chromeos_first_run_browsertest.cc index aee1367..87a1875 100644 --- a/chrome/browser/chromeos/first_run/chromeos_first_run_browsertest.cc +++ b/chrome/browser/chromeos/first_run/chromeos_first_run_browsertest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/system_tray_test_api.h" #include "ash/public/cpp/test/shell_test_api.h" #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc index 315d418..0ca55730 100644 --- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc +++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
@@ -12,7 +12,7 @@ #include <sstream> #include <utility> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "base/bind.h" #include "base/containers/contains.h" #include "base/feature_list.h"
diff --git a/chrome/browser/chromeos/policy/dlp/clipboard_bubble.cc b/chrome/browser/chromeos/policy/dlp/clipboard_bubble.cc index d31b284..f68a48e 100644 --- a/chrome/browser/chromeos/policy/dlp/clipboard_bubble.cc +++ b/chrome/browser/chromeos/policy/dlp/clipboard_bubble.cc
@@ -4,7 +4,7 @@ #include "chrome/browser/chromeos/policy/dlp/clipboard_bubble.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/style/color_provider.h" #include "chrome/browser/chromeos/policy/dlp/dlp_clipboard_bubble_constants.h" #include "components/strings/grit/components_strings.h"
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc index 106db83..f176a26 100644 --- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc +++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc
@@ -7,7 +7,7 @@ #include <string> #include <vector> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/privacy_screen_dlp_helper.h" #include "base/bind.h" #include "base/check.h"
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc index 081cf93..35274bc 100644 --- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc +++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc
@@ -4,7 +4,7 @@ #include "chrome/browser/chromeos/policy/dlp/dlp_content_manager.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "base/callback_helpers.h" #include "base/json/json_writer.h" #include "base/strings/utf_string_conversions.h"
diff --git a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceDropNotificationManager.java b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceDropNotificationManager.java index 4cb51643..8212428 100644 --- a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceDropNotificationManager.java +++ b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceDropNotificationManager.java
@@ -20,7 +20,7 @@ import org.chromium.base.ContextUtils; import org.chromium.base.IntentUtils; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.notifications.NotificationIntentInterceptor; import org.chromium.chrome.browser.notifications.NotificationUmaTracker; @@ -145,7 +145,7 @@ .setClass(mContext, ChromeLauncherActivity.class) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NEW_DOCUMENT) .putExtra(Browser.EXTRA_APPLICATION_ID, mContext.getPackageName()) - .putExtra(ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); + .putExtra(WebappConstants.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); IntentUtils.addTrustedIntentExtras(intent); return intent; }
diff --git a/chrome/browser/commerce/price_tracking/android/javatests/src/org/chromium/chrome/browser/price_tracking/PriceDropNotificationManagerTest.java b/chrome/browser/commerce/price_tracking/android/javatests/src/org/chromium/chrome/browser/price_tracking/PriceDropNotificationManagerTest.java index b9689d62..3f09ed1 100644 --- a/chrome/browser/commerce/price_tracking/android/javatests/src/org/chromium/chrome/browser/price_tracking/PriceDropNotificationManagerTest.java +++ b/chrome/browser/commerce/price_tracking/android/javatests/src/org/chromium/chrome/browser/price_tracking/PriceDropNotificationManagerTest.java
@@ -37,8 +37,8 @@ import org.chromium.base.Callback; import org.chromium.base.ContextUtils; import org.chromium.base.test.util.CommandLineFlags; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; @@ -115,7 +115,7 @@ assertEquals(ContextUtils.getApplicationContext().getPackageName(), intent.getStringExtra(Browser.EXTRA_APPLICATION_ID)); assertEquals(true, - intent.getBooleanExtra(ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, false)); + intent.getBooleanExtra(WebappConstants.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, false)); } @Test
diff --git a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc index 8cd1c54..50fa209 100644 --- a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc +++ b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
@@ -5924,6 +5924,92 @@ } } +// Tests that the "requestMethods" and "excludedRequestMethods" properties of a +// rule condition are considered properly for non-HTTP(s) requests. +IN_PROC_BROWSER_TEST_P(DeclarativeNetRequestBrowserTest, + BlockRequests_NonHTTPMethods) { + // Load an extension with some DNR rules that have different request method + // conditions. + std::vector<TestRule> rules; + + TestRule rule1 = CreateGenericRule(1); + rule1.condition->url_filter = "default"; + rules.push_back(rule1); + + TestRule rule2 = CreateGenericRule(2); + rule2.condition->url_filter = "all_methods"; + rule2.condition->request_methods = {"delete", "get", "head", "options", + "patch", "post", "put"}; + rules.push_back(rule2); + + TestRule rule3 = CreateGenericRule(3); + rule3.condition->url_filter = "some_methods"; + rule3.condition->request_methods = {"get", "put"}; + rules.push_back(rule3); + + TestRule rule4 = CreateGenericRule(4); + rule4.condition->url_filter = "all_methods_excluded"; + rule4.condition->excluded_request_methods = { + "delete", "get", "head", "options", "patch", "post", "put"}; + rules.push_back(rule4); + + TestRule rule5 = CreateGenericRule(5); + rule5.condition->url_filter = "some_methods_excluded"; + rule5.condition->excluded_request_methods = {"get", "put"}; + rules.push_back(rule5); + + ASSERT_NO_FATAL_FAILURE(LoadExtensionWithRules(rules)); + + // Start a web socket test server. + net::SpawnedTestServer websocket_test_server( + net::SpawnedTestServer::TYPE_WS, net::GetWebSocketTestDataDirectory()); + ASSERT_TRUE(websocket_test_server.Start()); + std::string websocket_url = + websocket_test_server.GetURL("echo-with-no-extension").spec(); + + const char kOpenWebSocketsScript[] = R"( + { + const websocketUrl = "%s"; + const testCases = ["default", "all_methods", "some_methods", + "all_methods_excluded", "some_methods_excluded"]; + + let blockedTestCases = []; + + Promise.allSettled( + testCases.map(testCase => + new Promise(resolve => + { + let websocket = new WebSocket(websocketUrl + "?" + testCase); + websocket.addEventListener("open", event => + { + websocket.close(); + resolve(); + }); + websocket.addEventListener("error", event => + { + blockedTestCases.push(testCase); + resolve(); + }); + }) + ) + ).then(() => + { + window.domAutomationController.send(blockedTestCases.sort().join()); + }); + } + )"; + + content::RenderFrameHost* main_frame = GetMainFrame(); + + std::string actual_blocked; + EXPECT_TRUE(content::ExecuteScriptAndExtractString( + main_frame, + base::StringPrintf(kOpenWebSocketsScript, websocket_url.c_str()), + &actual_blocked)); + EXPECT_EQ("all_methods_excluded,default,some_methods_excluded", + actual_blocked); +} + // Tests that FLEDGE requests can be blocked by the declarativeNetRequest API, // and that if they try to redirect requests, the request is blocked, instead of // being redirected.
diff --git a/chrome/browser/extensions/api/identity/identity_apitest.cc b/chrome/browser/extensions/api/identity/identity_apitest.cc index 9c7c96a..736683a 100644 --- a/chrome/browser/extensions/api/identity/identity_apitest.cc +++ b/chrome/browser/extensions/api/identity/identity_apitest.cc
@@ -1100,6 +1100,9 @@ IdentityGetAuthTokenError::State::kSignInFailed, 1); } +#if !BUILDFLAG(IS_CHROMEOS_LACROS) +// TODO(crbug.com/1220066): Remove the lacros exclusion when DICE is disabled on +// Lacros. IN_PROC_BROWSER_TEST_F(GetAuthTokenFunctionTest, PRE_InteractiveNotSignedAndSigninNotAllowed) { // kSigninAllowed cannot be set after the profile creation. Use @@ -1124,7 +1127,8 @@ kGetAuthTokenResultHistogramName, IdentityGetAuthTokenError::State::kBrowserSigninNotAllowed, 1); } -#endif +#endif // !BUILDFLAG(IS_CHROMEOS_LACROS) +#endif // !BUILDFLAG(IS_CHROMEOS_ASH) IN_PROC_BROWSER_TEST_F(GetAuthTokenFunctionTest, NonInteractiveMintFailure) { SignIn("primary@example.com");
diff --git a/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc b/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc index 5230b81..77de96a 100644 --- a/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc +++ b/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc
@@ -4,7 +4,7 @@ #include "chrome/browser/extensions/api/tabs/tabs_util.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/assistant/assistant_state.h" #include "base/metrics/histogram_macros.h" #include "chrome/browser/ash/accessibility/accessibility_manager.h"
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 2360bc9..4df23482 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -4438,7 +4438,7 @@ { "name": "raw-audio-capture", "owners": [ "henrika@google.com", "video-cmi-mpp@google.com" ], - "expiry_milestone": 93 + "expiry_milestone": 95 }, { "name": "raw-clipboard",
diff --git a/chrome/browser/google/google_brand_code_map_chromeos.cc b/chrome/browser/google/google_brand_code_map_chromeos.cc index 508038c..99005c0 100644 --- a/chrome/browser/google/google_brand_code_map_chromeos.cc +++ b/chrome/browser/google/google_brand_code_map_chromeos.cc
@@ -91,6 +91,7 @@ {"CYQR", {"XGJJ", "DRMC", "RUQD"}}, {"CYSQ", {"NHHD", "TAVM", "FHSA"}}, {"DBED", {"JUMI", "UTSY", "RXGS"}}, + {"DBHI", {"MMGG", "MMQD", "XQDJ"}}, {"DEAA", {"HXUG", "BJUN", "IYTV"}}, {"DEAB", {"ARPQ", "MFRJ", "JWTH"}}, {"DEAC", {"DSMM", "IXET", "KQDV"}}, @@ -116,6 +117,7 @@ {"ELQA", {"GTJZ", "DTIH", "IXVN"}}, {"EOJH", {"GTAZ", "APYI", "UHAZ"}}, {"EUHF", {"RZPG", "FQYM", "IIBT"}}, + {"EWFK", {"XAMW", "XCJY", "NWVP"}}, {"EXCQ", {"LAOZ", "QTVX", "ZCLW"}}, {"FBTP", {"XLDO", "TLOM", "FYMS"}}, {"FCPG", {"WITB", "FOXJ", "YJQZ"}}, @@ -199,6 +201,7 @@ {"KBOV", {"PGBC", "IKKC", "AHSL"}}, {"KLKW", {"PIDD", "JIKU", "QTVN"}}, {"KOKS", {"XCGR", "ZFVG", "PPCB"}}, + {"KRTE", {"ILKK", "GNTB", "XFRA"}}, {"KXUH", {"RIFT", "DZUO", "ZSEI"}}, {"LASN", {"ILWC", "BQYG", "RROZ"}}, {"LEAA", {"DHUB", "OBDS", "YMSJ"}}, @@ -307,6 +310,7 @@ {"NZRH", {"NOUG", "UDYG", "ZGAU"}}, {"OFPE", {"YFOO", "UIGY", "PFGZ"}}, {"OIFF", {"MLXE", "KFNX", "CRAQ"}}, + {"OIXD", {"UNMJ", "EGQA", "GIAQ"}}, {"OKWC", {"RGFB", "UPFP", "HUVK"}}, {"OYZI", {"WDBC", "NKZT", "QJZD"}}, {"PAZD", {"VARX", "KZSU", "WPLH"}}, @@ -334,6 +338,7 @@ {"QTMI", {"YMOW", "FZIR", "YKGT"}}, {"QVKE", {"FIQU", "CVOM", "LPVD"}}, {"QYGU", {"FYBR", "QLFJ", "OLRV"}}, + {"QZPR", {"SLSU", "LFCQ", "TKBG"}}, {"QZUX", {"HNBM", "BUJY", "FFDE"}}, {"RGDH", {"YWKM", "ZBAR", "RMQQ"}}, {"RGNF", {"SDGJ", "KEWA", "GITE"}}, @@ -401,6 +406,7 @@ {"WBZQ", {"LAYK", "LQDM", "QBFV"}}, {"WCLL", {"DALK", "WPRA", "TPTP"}}, {"WFIQ", {"KKHX", "UTHS", "HDSP"}}, + {"WFVB", {"UQPS", "NZRZ", "GJNX"}}, {"WJOZ", {"BASQ", "BRTL", "CQAV"}}, {"WMMD", {"HBFI", "XBKO", "LCEC"}}, {"WMPI", {"POXG", "VCJD", "WEGX"}},
diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc index a201e92..193c764 100644 --- a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc +++ b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
@@ -42,7 +42,9 @@ : WebViewPermissionHelperDelegate(web_view_permission_helper) #if BUILDFLAG(ENABLE_PLUGINS) , - plugin_auth_host_receivers_(web_contents(), this) + plugin_auth_host_receivers_(web_contents(), + this, + content::WebContentsFrameReceiverSetPassKey()) #endif { }
diff --git a/chrome/browser/lite_video/lite_video_observer.cc b/chrome/browser/lite_video/lite_video_observer.cc index 85b4d18..deffa5c 100644 --- a/chrome/browser/lite_video/lite_video_observer.cc +++ b/chrome/browser/lite_video/lite_video_observer.cc
@@ -65,7 +65,9 @@ LiteVideoObserver::LiteVideoObserver(content::WebContents* web_contents) : content::WebContentsObserver(web_contents), - receivers_(web_contents, this) { + receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { lite_video_decider_ = GetLiteVideoDeciderFromWebContents(web_contents); routing_ids_to_notify_ = {}; }
diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc index 133ee32..a46887ee 100644 --- a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc +++ b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
@@ -512,6 +512,11 @@ } #endif // !defined(OS_ANDROID) +void RecordDisplayHDRStatus(const display::Display& display) { + base::UmaHistogramBoolean("Hardware.Display.SupportsHDR", + display.color_spaces().SupportsHDR()); +} + } // namespace ChromeBrowserMainExtraPartsMetrics::ChromeBrowserMainExtraPartsMetrics() @@ -762,11 +767,17 @@ } #endif // defined(OS_WIN) - display_count_ = display::Screen::GetScreen()->GetNumDisplays(); + auto* screen = display::Screen::GetScreen(); + screen->AddObserver(this); + is_screen_observer_ = true; + + display_count_ = screen->GetNumDisplays(); base::UmaHistogramCounts100("Hardware.Display.Count.OnStartup", display_count_); - display::Screen::GetScreen()->AddObserver(this); - is_screen_observer_ = true; + + for (const auto& display : screen->GetAllDisplays()) { + RecordDisplayHDRStatus(display); + } #if !defined(OS_ANDROID) metrics::BeginFirstWebContentsProfiling(); @@ -809,6 +820,7 @@ void ChromeBrowserMainExtraPartsMetrics::OnDisplayAdded( const display::Display& new_display) { EmitDisplaysChangedMetric(); + RecordDisplayHDRStatus(new_display); } void ChromeBrowserMainExtraPartsMetrics::OnDisplayRemoved( @@ -816,6 +828,14 @@ EmitDisplaysChangedMetric(); } +void ChromeBrowserMainExtraPartsMetrics::OnDisplayMetricsChanged( + const display::Display& display, + uint32_t changed_metrics) { + if (changed_metrics & DisplayObserver::DISPLAY_METRIC_COLOR_SPACE) { + RecordDisplayHDRStatus(display); + } +} + void ChromeBrowserMainExtraPartsMetrics::EmitDisplaysChangedMetric() { int display_count = display::Screen::GetScreen()->GetNumDisplays(); if (display_count != display_count_) {
diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h index 8ec83bc..383a1c91 100644 --- a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h +++ b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h
@@ -48,6 +48,8 @@ // DisplayObserver overrides. void OnDisplayAdded(const display::Display& new_display) override; void OnDisplayRemoved(const display::Display& old_display) override; + void OnDisplayMetricsChanged(const display::Display& display, + uint32_t changed_metrics) override; // If the number of displays has changed, emit a UMA metric. void EmitDisplaysChangedMetric();
diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc index 89c8ae0..5b51f1b 100644 --- a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc +++ b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc
@@ -27,6 +27,7 @@ const char kTouchEventFeatureDetectionEnabledHistogramName[] = "Touchscreen.TouchEventsEnabled"; +const char kSupportsHDRHistogramName[] = "Hardware.Display.SupportsHDR"; } // namespace @@ -164,3 +165,14 @@ } #endif // defined(USE_OZONE) || defined(USE_X11) + +// Verify a Hardware.Display.SupportsHDR value is recorded during +// PostBrowserStart. +TEST_F(ChromeBrowserMainExtraPartsMetricsTest, + VerifySupportsHDRIsRecordedAfterPostBrowserStart) { + base::HistogramTester histogram_tester; + ChromeBrowserMainExtraPartsMetrics test_target; + + test_target.PostBrowserStart(); + histogram_tester.ExpectTotalCount(kSupportsHDRHistogramName, 1); +}
diff --git a/chrome/browser/net/net_error_tab_helper.cc b/chrome/browser/net/net_error_tab_helper.cc index 3137583..3528302 100644 --- a/chrome/browser/net/net_error_tab_helper.cc +++ b/chrome/browser/net/net_error_tab_helper.cc
@@ -122,9 +122,17 @@ NetErrorTabHelper::NetErrorTabHelper(WebContents* contents) : WebContentsObserver(contents), - network_diagnostics_receivers_(contents, this), - network_easter_egg_receivers_(contents, this), - net_error_page_support_(contents, this), + network_diagnostics_receivers_( + contents, + this, + content::WebContentsFrameReceiverSetPassKey()), + network_easter_egg_receivers_( + contents, + this, + content::WebContentsFrameReceiverSetPassKey()), + net_error_page_support_(contents, + this, + content::WebContentsFrameReceiverSetPassKey()), is_error_page_(false), dns_error_active_(false), dns_error_page_committed_(false),
diff --git a/chrome/browser/offline_pages/offline_page_tab_helper.cc b/chrome/browser/offline_pages/offline_page_tab_helper.cc index 6bce7676..5d480f9 100644 --- a/chrome/browser/offline_pages/offline_page_tab_helper.cc +++ b/chrome/browser/offline_pages/offline_page_tab_helper.cc
@@ -101,7 +101,10 @@ OfflinePageTabHelper::OfflinePageTabHelper(content::WebContents* web_contents) : content::WebContentsObserver(web_contents), - mhtml_page_notifier_receivers_(web_contents, this) { + mhtml_page_notifier_receivers_( + web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext());
diff --git a/chrome/browser/optimization_guide/android/android_push_notification_manager.cc b/chrome/browser/optimization_guide/android/android_push_notification_manager.cc index 4115790..306849cd 100644 --- a/chrome/browser/optimization_guide/android/android_push_notification_manager.cc +++ b/chrome/browser/optimization_guide/android/android_push_notification_manager.cc
@@ -152,15 +152,8 @@ } size_t cached_notifications_total = 0; - for (int int_opt_type = proto::OptimizationType_MIN; - int_opt_type <= proto::OptimizationType_MAX; int_opt_type++) { - if (!proto::OptimizationType_IsValid(int_opt_type)) { - // Handles parsing to reserved tag numbers. - continue; - } - proto::OptimizationType opt_type = - static_cast<proto::OptimizationType>(int_opt_type); - + for (proto::OptimizationType opt_type : + OptimizationGuideBridge::GetOptTypesWithPushNotifications()) { std::vector<proto::HintNotificationPayload> notifications = OptimizationGuideBridge::GetCachedNotifications(opt_type); cached_notifications_total += notifications.size();
diff --git a/chrome/browser/optimization_guide/android/java/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuideBridge.java b/chrome/browser/optimization_guide/android/java/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuideBridge.java index 5f8327be..3e1547d 100644 --- a/chrome/browser/optimization_guide/android/java/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuideBridge.java +++ b/chrome/browser/optimization_guide/android/java/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuideBridge.java
@@ -157,6 +157,20 @@ } /** + * Returns an array of all the optimization types that have cached push notifications. + */ + @CalledByNative + private static int[] getOptTypesWithPushNotifications() { + List<OptimizationType> cachedTypes = + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications(); + int[] intCachedTypes = new int[cachedTypes.size()]; + for (int i = 0; i < cachedTypes.size(); i++) { + intCachedTypes[i] = cachedTypes.get(i).getNumber(); + } + return intCachedTypes; + } + + /** * Returns an array of all the optimization types that overflowed their cache for push * notifications. */
diff --git a/chrome/browser/optimization_guide/android/java/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuidePushNotificationManager.java b/chrome/browser/optimization_guide/android/java/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuidePushNotificationManager.java index e02fddf5..0154233 100644 --- a/chrome/browser/optimization_guide/android/java/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuidePushNotificationManager.java +++ b/chrome/browser/optimization_guide/android/java/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuidePushNotificationManager.java
@@ -162,6 +162,22 @@ } /** + * Returns a list of all the optimization types that have push notification cached. Optimization + * types with overflowed caches are not included. + */ + public static List<OptimizationType> getOptTypesWithPushNotifications() { + List<OptimizationType> types = new ArrayList<OptimizationType>(); + for (OptimizationType type : OptimizationType.values()) { + Set<String> cache = + SharedPreferencesManager.getInstance().readStringSet(cacheKey(type)); + if (cache != null && cache.size() > 0 && !checkForOverflow(cache)) { + types.add(type); + } + } + return types; + } + + /** * Returns a list of all the optimization types that overflowed their push notification caches. */ public static List<OptimizationType> getOptTypesThatOverflowedPushNotifications() {
diff --git a/chrome/browser/optimization_guide/android/javatests/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuidePushNotificationManagerUnitTest.java b/chrome/browser/optimization_guide/android/javatests/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuidePushNotificationManagerUnitTest.java index 570ffd7..0074051 100644 --- a/chrome/browser/optimization_guide/android/javatests/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuidePushNotificationManagerUnitTest.java +++ b/chrome/browser/optimization_guide/android/javatests/src/org/chromium/chrome/browser/optimization_guide/OptimizationGuidePushNotificationManagerUnitTest.java
@@ -137,6 +137,9 @@ .getNotificationCacheForOptimizationType(OptimizationType.LITE_PAGE) .length); + Assert.assertEquals(Arrays.asList(OptimizationType.PERFORMANCE_HINTS), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); + OptimizationGuidePushNotificationManager.clearCacheForOptimizationType( OptimizationType.PERFORMANCE_HINTS); cached = OptimizationGuidePushNotificationManager.getNotificationCacheForOptimizationType( @@ -160,6 +163,9 @@ Assert.assertNotNull(cached); Assert.assertEquals(0, cached.length); + Assert.assertEquals(new ArrayList<OptimizationType>(), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); + verify(mOptimizationGuideBridgeJniMock, times(1)) .onNewPushNotification(anyLong(), eq(NOTIFICATION_WITHOUT_PAYLOAD.toByteArray())); } @@ -180,6 +186,9 @@ OptimizationType.PERFORMANCE_HINTS); Assert.assertNotNull(cached); Assert.assertEquals(0, cached.length); + + Assert.assertEquals(new ArrayList<OptimizationType>(), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); } @Test @@ -206,6 +215,9 @@ .getNotificationCacheForOptimizationType(OptimizationType.LITE_VIDEO) .length); + Assert.assertEquals(Arrays.asList(OptimizationType.LITE_PAGE, OptimizationType.LITE_VIDEO), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); + setFeatureStatusForTest(false); // Push another notification to trigger the clear. OptimizationGuidePushNotificationManager.onPushNotification(NOTIFICATION_WITH_PAYLOAD); @@ -218,6 +230,9 @@ OptimizationGuidePushNotificationManager .getNotificationCacheForOptimizationType(OptimizationType.LITE_VIDEO) .length); + + Assert.assertEquals(new ArrayList<OptimizationType>(), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); } @Test @@ -248,12 +263,18 @@ OptimizationType.PERFORMANCE_HINTS); Assert.assertNull(cached); + Assert.assertEquals(new ArrayList<OptimizationType>(), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); + OptimizationGuidePushNotificationManager.clearCacheForOptimizationType( OptimizationType.PERFORMANCE_HINTS); cached = OptimizationGuidePushNotificationManager.getNotificationCacheForOptimizationType( OptimizationType.PERFORMANCE_HINTS); Assert.assertNotNull(cached); Assert.assertEquals(0, cached.length); + + Assert.assertEquals(new ArrayList<OptimizationType>(), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); } @Test @@ -276,6 +297,9 @@ Assert.assertNotNull(cached); Assert.assertEquals(1, cached.length); Assert.assertEquals(NOTIFICATION_WITHOUT_PAYLOAD, cached[0]); + + Assert.assertEquals(Arrays.asList(OptimizationType.PERFORMANCE_HINTS), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); } @Test @@ -307,6 +331,9 @@ OptimizationType.PERFORMANCE_HINTS); Assert.assertNotNull(cached); Assert.assertEquals(0, cached.length); + + Assert.assertEquals(new ArrayList<OptimizationType>(), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); } @Test @@ -323,6 +350,9 @@ Assert.assertNotNull(cached); Assert.assertEquals(1, cached.length); Assert.assertEquals(NOTIFICATION_WITHOUT_PAYLOAD, cached[0]); + + Assert.assertEquals(Arrays.asList(OptimizationType.PERFORMANCE_HINTS), + OptimizationGuidePushNotificationManager.getOptTypesWithPushNotifications()); } @Test
diff --git a/chrome/browser/optimization_guide/android/optimization_guide_bridge.cc b/chrome/browser/optimization_guide/android/optimization_guide_bridge.cc index f9d983a..ce6b67ae 100644 --- a/chrome/browser/optimization_guide/android/optimization_guide_bridge.cc +++ b/chrome/browser/optimization_guide/android/optimization_guide_bridge.cc
@@ -98,6 +98,25 @@ // static base::flat_set<proto::OptimizationType> +OptimizationGuideBridge::GetOptTypesWithPushNotifications() { + JNIEnv* env = AttachCurrentThread(); + std::vector<int> cached_int_types; + JavaIntArrayToIntVector( + env, Java_OptimizationGuideBridge_getOptTypesWithPushNotifications(env), + &cached_int_types); + + base::flat_set<proto::OptimizationType> cached_types; + for (int int_type : cached_int_types) { + // Handles parsing of reserved tag numbers. + if (proto::OptimizationType_IsValid(int_type)) { + cached_types.insert(static_cast<proto::OptimizationType>(int_type)); + } + } + return cached_types; +} + +// static +base::flat_set<proto::OptimizationType> OptimizationGuideBridge::GetOptTypesThatOverflowedPushNotifications() { JNIEnv* env = AttachCurrentThread(); std::vector<int> overflowed_int_types;
diff --git a/chrome/browser/optimization_guide/android/optimization_guide_bridge.h b/chrome/browser/optimization_guide/android/optimization_guide_bridge.h index 611e4fc..14d3571 100644 --- a/chrome/browser/optimization_guide/android/optimization_guide_bridge.h +++ b/chrome/browser/optimization_guide/android/optimization_guide_bridge.h
@@ -25,6 +25,8 @@ static std::vector<proto::HintNotificationPayload> GetCachedNotifications( proto::OptimizationType opt_type); static base::flat_set<proto::OptimizationType> + GetOptTypesWithPushNotifications(); + static base::flat_set<proto::OptimizationType> GetOptTypesThatOverflowedPushNotifications(); static void ClearCacheForOptimizationType(proto::OptimizationType opt_type); static void OnNotificationNotHandledByNative(
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc index 8475d5b3..cd904c6 100644 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
@@ -1176,7 +1176,10 @@ password_reuse_detection_manager_(this), driver_factory_(nullptr), content_credential_manager_(this), - password_generation_driver_receivers_(web_contents, this), + password_generation_driver_receivers_( + web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()), observer_(nullptr), #if BUILDFLAG(ENABLE_DICE_SUPPORT) credentials_filter_(
diff --git a/chrome/browser/plugins/plugin_observer.cc b/chrome/browser/plugins/plugin_observer.cc index 280652d..de58227 100644 --- a/chrome/browser/plugins/plugin_observer.cc +++ b/chrome/browser/plugins/plugin_observer.cc
@@ -77,7 +77,9 @@ PluginObserver::PluginObserver(content::WebContents* web_contents) : content::WebContentsObserver(web_contents), - plugin_host_receivers_(web_contents, this) {} + plugin_host_receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) {} PluginObserver::~PluginObserver() { }
diff --git a/chrome/browser/profiles/profile_attributes_storage.cc b/chrome/browser/profiles/profile_attributes_storage.cc index 05cf8e2..8f6a0e6e 100644 --- a/chrome/browser/profiles/profile_attributes_storage.cc +++ b/chrome/browser/profiles/profile_attributes_storage.cc
@@ -481,7 +481,7 @@ // If this is the placeholder avatar, it is already included in the // resources, so it doesn't need to be downloaded (and it will never be - // requested from disk by GetHighResAvatarOfProfileAtIndex). + // requested from disk by `ProfileAttributesEntry::GetHighResAvatar()`). if (icon_index == profiles::GetPlaceholderAvatarIndex()) return;
diff --git a/chrome/browser/profiles/profile_info_cache.cc b/chrome/browser/profiles/profile_info_cache.cc index b0c717a..5e8df04 100644 --- a/chrome/browser/profiles/profile_info_cache.cc +++ b/chrome/browser/profiles/profile_info_cache.cc
@@ -317,46 +317,12 @@ CacheKeyFromProfilePath(GetPathOfProfileAtIndex(index))); } -size_t ProfileInfoCache::GetAvatarIconIndexOfProfileAtIndex(size_t index) - const { - std::string icon_url; - GetInfoForProfileAtIndex(index)->GetString( - ProfileAttributesEntry::kAvatarIconKey, &icon_url); - size_t icon_index = 0; - if (!profiles::IsDefaultAvatarIconUrl(icon_url, &icon_index)) - DLOG(WARNING) << "Unknown avatar icon: " << icon_url; - - return icon_index; -} - void ProfileInfoCache::NotifyProfileAuthInfoChanged( const base::FilePath& profile_path) { for (auto& observer : observer_list_) observer.OnProfileAuthInfoChanged(profile_path); } -void ProfileInfoCache::SetAvatarIconOfProfileAtIndex(size_t index, - size_t icon_index) { - if (!profiles::IsDefaultAvatarIconIndex(icon_index)) { - DLOG(WARNING) << "Unknown avatar icon index: " << icon_index; - // switch to generic avatar - icon_index = 0; - } - std::unique_ptr<base::DictionaryValue> info( - GetInfoForProfileAtIndex(index)->DeepCopy()); - info->SetString(ProfileAttributesEntry::kAvatarIconKey, - profiles::GetDefaultAvatarIconUrl(icon_index)); - SetInfoForProfileAtIndex(index, std::move(info)); - - base::FilePath profile_path = GetPathOfProfileAtIndex(index); - - if (!disable_avatar_download_for_testing_) - DownloadHighResAvatarIfNeeded(icon_index, profile_path); - - for (auto& observer : observer_list_) - observer.OnProfileAvatarChanged(profile_path); -} - std::string ProfileInfoCache::GetLastDownloadedGAIAPictureUrlWithSizeOfProfileAtIndex( size_t index) const { @@ -526,25 +492,6 @@ return base_name.MaybeAsASCII(); } -const gfx::Image* ProfileInfoCache::GetHighResAvatarOfProfileAtIndex( - size_t index) const { - const size_t avatar_index = GetAvatarIconIndexOfProfileAtIndex(index); - - // If this is the placeholder avatar, it is already included in the - // resources, so it doesn't need to be downloaded. - if (avatar_index == profiles::GetPlaceholderAvatarIndex()) { - return &ui::ResourceBundle::GetSharedInstance().GetImageNamed( - profiles::GetPlaceholderAvatarIconResourceID()); - } - - const std::string file_name = - profiles::GetDefaultAvatarIconFileNameAtIndex(avatar_index); - const base::FilePath image_path = - profiles::GetPathOfHighResAvatarAtIndex(avatar_index); - return LoadAvatarPictureFromPath(GetPathOfProfileAtIndex(index), file_name, - image_path); -} - #if !defined(OS_ANDROID) void ProfileInfoCache::LoadGAIAPictureIfNeeded() { std::vector<ProfileAttributesEntry*> entries = GetAllProfilesAttributes();
diff --git a/chrome/browser/profiles/profile_info_cache.h b/chrome/browser/profiles/profile_info_cache.h index d62f9e40..fc8dbb0d 100644 --- a/chrome/browser/profiles/profile_info_cache.h +++ b/chrome/browser/profiles/profile_info_cache.h
@@ -76,11 +76,7 @@ // Returns true if a GAIA picture has been loaded or has failed to load for // profile at |index|. bool IsGAIAPictureOfProfileAtIndexLoaded(size_t index) const; - // Will be removed SOON with ProfileInfoCache tests. Do not use! - size_t GetAvatarIconIndexOfProfileAtIndex(size_t index) const; - // Will be removed SOON with ProfileInfoCache tests. Do not use! - void SetAvatarIconOfProfileAtIndex(size_t index, size_t icon_index); void SetGAIAPictureOfProfileAtIndex(size_t index, const std::string& image_url_with_size, gfx::Image image); @@ -133,11 +129,6 @@ // of profiles is still sorted. void UpdateSortForProfileIndex(size_t index); - // Will be removed SOON with ProfileInfoCache tests. Do not use! - // Loads or uses an already loaded high resolution image of the - // generic profile avatar. - const gfx::Image* GetHighResAvatarOfProfileAtIndex(size_t index) const; - // Download and high-res avatars used by the profiles. void DownloadAvatars();
diff --git a/chrome/browser/profiles/profile_info_cache_unittest.cc b/chrome/browser/profiles/profile_info_cache_unittest.cc index 4ca5747..86c044a 100644 --- a/chrome/browser/profiles/profile_info_cache_unittest.cc +++ b/chrome/browser/profiles/profile_info_cache_unittest.cc
@@ -228,7 +228,7 @@ GetConcatenation(gaia_name, profile_name); EXPECT_EQ(expected_profile_name, entry->GetName()); #if !defined(OS_ANDROID) - EXPECT_EQ(i, GetCache()->GetAvatarIconIndexOfProfileAtIndex(index)); + EXPECT_EQ(i, entry->GetAvatarIconIndex()); #endif EXPECT_EQ(true, entry->GetBackgroundStatus()); EXPECT_EQ(gaia_name, entry->GetGAIAName()); @@ -429,14 +429,8 @@ // Avatar icons not used on Android. #if !defined(OS_ANDROID) const size_t new_icon_index = 3; - GetCache()->SetAvatarIconOfProfileAtIndex(1, new_icon_index); - EXPECT_EQ(new_icon_index, GetCache()->GetAvatarIconIndexOfProfileAtIndex(1)); - - const size_t wrong_icon_index = profiles::GetDefaultAvatarIconCount() + 1; - const size_t generic_icon_index = 0; - GetCache()->SetAvatarIconOfProfileAtIndex(1, wrong_icon_index); - EXPECT_EQ(generic_icon_index, - GetCache()->GetAvatarIconIndexOfProfileAtIndex(1)); + entry_2->SetAvatarIconIndex(new_icon_index); + EXPECT_EQ(new_icon_index, entry_2->GetAvatarIconIndex()); #endif } @@ -526,7 +520,7 @@ EXPECT_TRUE(gfx::test::AreImagesEqual(gaia_image, entry->GetAvatarIcon())); // Set a non-default avatar. This should be preferred over the GAIA image. - GetCache()->SetAvatarIconOfProfileAtIndex(1, kOtherAvatarIndex); + entry->SetAvatarIconIndex(kOtherAvatarIndex); GetCache()->SetProfileIsUsingDefaultAvatarAtIndex(1, false); EXPECT_FALSE(GetCache()->ProfileIsUsingDefaultAvatarAtIndex(1)); EXPECT_FALSE(GetCache()->IsUsingGAIAPictureOfProfileAtIndex(1));
diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h index 1384f54..915ae81 100644 --- a/chrome/browser/profiles/profile_manager.h +++ b/chrome/browser/profiles/profile_manager.h
@@ -79,6 +79,8 @@ // Same as GetLastUsedProfile() but returns the incognito Profile if // incognito mode is forced. This should be used if the last used Profile // will be used to open new browser windows. + // WARNING: if the profile does not exist, this function creates it + // synchronously, causing blocking file I/O. static Profile* GetLastUsedProfileAllowedByPolicy(); // Helper function that returns true if OffTheRecord mode is forced for
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb index a9d7c7e..d906fd2 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb
@@ -702,7 +702,7 @@ <translation id="5891934789323004067">Taula</translation> <translation id="5899860758576822363">Erreproduzitu bolumen baxuagoan ChromeVox hitz egiten ari bada</translation> <translation id="5901630391730855834">Horia</translation> -<translation id="5906974869830879618">Idatzi PIN kodea</translation> +<translation id="5906974869830879618">Idatzi PINa</translation> <translation id="5921587111466148855">Atala</translation> <translation id="5923780477617566089">Gaurko data</translation> <translation id="5926889058434275234">Keinuen zerrenda osoa ikusteko, joan laguntza-zentrora.</translation>
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/oobe_eula.js b/chrome/browser/resources/chromeos/login/screens/oobe/oobe_eula.js index 6bea5285..a93bedf 100644 --- a/chrome/browser/resources/chromeos/login/screens/oobe/oobe_eula.js +++ b/chrome/browser/resources/chromeos/login/screens/oobe/oobe_eula.js
@@ -439,7 +439,8 @@ * @private */ focusAdditionalTermsLink_() { - this.$.additionalTerms.focus(); + Polymer.RenderStatus.afterNextRender( + this, () => this.$.additionalTerms.focus()); }, /**
diff --git a/chrome/browser/resources/memories/BUILD.gn b/chrome/browser/resources/memories/BUILD.gn index 2538d96..3ee6d28 100644 --- a/chrome/browser/resources/memories/BUILD.gn +++ b/chrome/browser/resources/memories/BUILD.gn
@@ -20,7 +20,7 @@ ":browser_proxy", ":cluster", ":router", - "//chrome/browser/ui/webui/memories:mojo_bindings_webui_js", + "//chrome/browser/ui/webui/history_clusters:mojo_bindings_webui_js", "//third_party/polymer/v3_0/components-chromium/iron-list", "//third_party/polymer/v3_0/components-chromium/iron-scroll-threshold", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", @@ -36,7 +36,7 @@ js_library("browser_proxy") { deps = [ - "//chrome/browser/ui/webui/memories:mojo_bindings_webui_js", + "//chrome/browser/ui/webui/history_clusters:mojo_bindings_webui_js", "//ui/webui/resources/js:cr.m", ] } @@ -161,10 +161,11 @@ grd_prefix = "$grd_prefix" + "_API" out_grd = "$target_gen_dir/clusters_api_mojo_resources.grdp" input_files = [ "history_clusters.mojom-webui.js" ] - resource_path_rewrites = [ "history_clusters.mojom-webui.js|chrome/browser/ui/webui/memories/history_clusters.mojom-webui.js" ] + resource_path_rewrites = [ "history_clusters.mojom-webui.js|chrome/browser/ui/webui/history_clusters/history_clusters.mojom-webui.js" ] input_files_base_dir = - rebase_path("$root_gen_dir/mojom-webui/chrome/browser/ui/webui/memories", - root_build_dir) + rebase_path( + "$root_gen_dir/mojom-webui/chrome/browser/ui/webui/history_clusters", + root_build_dir) } generate_grd("build_history_clusters_definition_mojo_grdp") { @@ -204,7 +205,7 @@ source = "$target_gen_dir/resources.grd" deps = [ ":build_grd", - "//chrome/browser/ui/webui/memories:mojo_bindings_webui_js", + "//chrome/browser/ui/webui/history_clusters:mojo_bindings_webui_js", "//components/history_clusters/core:mojo_bindings_webui_js", ] outputs = [
diff --git a/chrome/browser/resources/memories/app.js b/chrome/browser/resources/memories/app.js index a473574..9d7802fd 100644 --- a/chrome/browser/resources/memories/app.js +++ b/chrome/browser/resources/memories/app.js
@@ -12,7 +12,7 @@ import 'chrome://resources/polymer/v3_0/iron-list/iron-list.js'; import 'chrome://resources/polymer/v3_0/iron-scroll-threshold/iron-scroll-threshold.js'; -import {PageCallbackRouter, PageHandlerRemote, QueryResult} from '/chrome/browser/ui/webui/memories/history_clusters.mojom-webui.js'; +import {PageCallbackRouter, PageHandlerRemote, QueryResult} from '/chrome/browser/ui/webui/history_clusters/history_clusters.mojom-webui.js'; import {URLVisit} from '/components/history_clusters/core/history_clusters.mojom-webui.js'; import {CrToolbarElement} from 'chrome://resources/cr_elements/cr_toolbar/cr_toolbar.js'; import {CrToolbarSearchFieldElement} from 'chrome://resources/cr_elements/cr_toolbar/cr_toolbar_search_field.js';
diff --git a/chrome/browser/resources/memories/browser_proxy.js b/chrome/browser/resources/memories/browser_proxy.js index c7f83ec4..896ba7b 100644 --- a/chrome/browser/resources/memories/browser_proxy.js +++ b/chrome/browser/resources/memories/browser_proxy.js
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import {PageCallbackRouter, PageHandler, PageHandlerRemote} from '/chrome/browser/ui/webui/memories/history_clusters.mojom-webui.js'; +import {PageCallbackRouter, PageHandler, PageHandlerRemote} from '/chrome/browser/ui/webui/history_clusters/history_clusters.mojom-webui.js'; import {addSingletonGetter} from 'chrome://resources/js/cr.m.js'; /**
diff --git a/chrome/browser/resources/memories/cluster.js b/chrome/browser/resources/memories/cluster.js index eaf9e0d..b6eb318 100644 --- a/chrome/browser/resources/memories/cluster.js +++ b/chrome/browser/resources/memories/cluster.js
@@ -8,7 +8,7 @@ import './top_visit.js'; import 'chrome://resources/cr_elements/shared_style_css.m.js'; -import {PageCallbackRouter} from '/chrome/browser/ui/webui/memories/history_clusters.mojom-webui.js'; +import {PageCallbackRouter} from '/chrome/browser/ui/webui/history_clusters/history_clusters.mojom-webui.js'; import {Cluster, URLVisit} from '/components/history_clusters/core/history_clusters.mojom-webui.js'; import {assert} from 'chrome://resources/js/assert.m.js'; import {Url} from 'chrome://resources/mojo/url/mojom/url.mojom-webui.js';
diff --git a/chrome/browser/resources/welcome/shared/splash_pages_shared_css.html b/chrome/browser/resources/welcome/shared/splash_pages_shared_css.html index 2f95bcb5..9aa54ba 100644 --- a/chrome/browser/resources/welcome/shared/splash_pages_shared_css.html +++ b/chrome/browser/resources/welcome/shared/splash_pages_shared_css.html
@@ -4,7 +4,7 @@ align-items: center; display: flex; flex-direction: column; - height: 100%; + height: fit-content; justify-content: center; margin: auto; min-height: 100%; @@ -16,7 +16,7 @@ #text { align-items: center; display: flex; - flex-basis: 45%; + flex-basis: 45vh; flex-direction: column; }
diff --git a/chrome/browser/safe_browsing/download_protection/download_protection_service_unittest.cc b/chrome/browser/safe_browsing/download_protection/download_protection_service_unittest.cc index 1395eda1..3c9440a 100644 --- a/chrome/browser/safe_browsing/download_protection/download_protection_service_unittest.cc +++ b/chrome/browser/safe_browsing/download_protection/download_protection_service_unittest.cc
@@ -23,7 +23,6 @@ #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/location.h" -#include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/memory/scoped_refptr.h" #include "base/path_service.h" @@ -139,7 +138,11 @@ // a given URL. class MockSafeBrowsingDatabaseManager : public TestSafeBrowsingDatabaseManager { public: - MockSafeBrowsingDatabaseManager() {} + MockSafeBrowsingDatabaseManager() = default; + MockSafeBrowsingDatabaseManager(const MockSafeBrowsingDatabaseManager&) = + delete; + MockSafeBrowsingDatabaseManager& operator=( + const MockSafeBrowsingDatabaseManager&) = delete; MOCK_METHOD1(MatchDownloadAllowlistUrl, bool(const GURL&)); MOCK_METHOD1(MatchDownloadAllowlistString, bool(const std::string&)); @@ -148,8 +151,7 @@ SafeBrowsingDatabaseManager::Client* client)); private: - ~MockSafeBrowsingDatabaseManager() override {} - DISALLOW_COPY_AND_ASSIGN(MockSafeBrowsingDatabaseManager); + ~MockSafeBrowsingDatabaseManager() override = default; }; std::unique_ptr<KeyedService> CreateTestBinaryUploadService( @@ -162,13 +164,14 @@ explicit FakeSafeBrowsingService(Profile* profile) : test_shared_loader_factory_( base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( - &test_url_loader_factory_)), - download_report_count_(0) { + &test_url_loader_factory_)) { services_delegate_ = ServicesDelegate::CreateForTest(this, this); BinaryUploadServiceFactory::GetInstance()->SetTestingFactory( profile, base::BindRepeating(&CreateTestBinaryUploadService)); mock_database_manager_ = new MockSafeBrowsingDatabaseManager(); } + FakeSafeBrowsingService(const FakeSafeBrowsingService&) = delete; + FakeSafeBrowsingService& operator=(const FakeSafeBrowsingService&) = delete; // Returned pointer has the same lifespan as the database_manager_ refcounted // object. @@ -220,7 +223,7 @@ int download_report_count() { return download_report_count_; } protected: - ~FakeSafeBrowsingService() override {} + ~FakeSafeBrowsingService() override = default; void RegisterAllDelayedAnalysis() override {} @@ -245,9 +248,7 @@ test_shared_loader_factory_map_; scoped_refptr<MockSafeBrowsingDatabaseManager> mock_database_manager_; - int download_report_count_; - - DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingService); + int download_report_count_ = 0; }; using NiceMockDownloadItem = NiceMock<download::MockDownloadItem>; @@ -3137,6 +3138,10 @@ })"); PrepareResponse(ClientDownloadResponse::SAFE, net::HTTP_OK, net::OK); + EXPECT_CALL(*sb_service_->mock_database_manager(), + MatchDownloadAllowlistUrl(_)) + .WillRepeatedly(Return(false)); + RunLoop run_loop; download_service_->CheckClientDownload( &item, @@ -3192,6 +3197,9 @@ EXPECT_CALL(item, GetReceivedBytes()) .WillRepeatedly(Return(100 * 1024 * 1024)); + EXPECT_CALL(*sb_service_->mock_database_manager(), + MatchDownloadAllowlistUrl(_)) + .WillRepeatedly(Return(false)); TestBinaryUploadService* test_upload_service = static_cast<TestBinaryUploadService*>(
diff --git a/chrome/browser/sessions/session_restore_browsertest.cc b/chrome/browser/sessions/session_restore_browsertest.cc index 9aa3c1d..970bf38 100644 --- a/chrome/browser/sessions/session_restore_browsertest.cc +++ b/chrome/browser/sessions/session_restore_browsertest.cc
@@ -186,13 +186,11 @@ #endif } - Browser* QuitBrowserAndRestore(Browser* browser, int expected_tab_count) { - return QuitBrowserAndRestoreWithURL( - browser, expected_tab_count, GURL(), true); + Browser* QuitBrowserAndRestore(Browser* browser) { + return QuitBrowserAndRestoreWithURL(browser, GURL(), true); } Browser* QuitBrowserAndRestoreWithURL(Browser* browser, - int expected_tab_count, const GURL& url, bool no_memory_pressure) { Profile* profile = browser->profile(); @@ -389,7 +387,7 @@ ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); // Restart and session restore the tabs. - Browser* restored = QuitBrowserAndRestore(browser(), 3); + Browser* restored = QuitBrowserAndRestore(browser()); TabStripModel* tab_strip_model = restored->tab_strip_model(); const int tabs = tab_strip_model->count(); ASSERT_EQ(3, tabs); @@ -422,7 +420,7 @@ // Restart and session restore the tabs. content::DOMMessageQueue message_queue; - Browser* restored = QuitBrowserAndRestore(browser(), 3); + Browser* restored = QuitBrowserAndRestore(browser()); for (int i = 0; i < 2; ++i) { std::string message; EXPECT_TRUE(message_queue.WaitForMessage(&message)); @@ -464,7 +462,7 @@ // Restart and session restore the tabs. content::DOMMessageQueue message_queue; - Browser* restored = QuitBrowserAndRestore(browser(), 3); + Browser* restored = QuitBrowserAndRestore(browser()); for (int i = 0; i < 2; ++i) { std::string message; EXPECT_TRUE(message_queue.WaitForMessage(&message)); @@ -577,7 +575,7 @@ // Restart and make sure we have two windows. CloseBrowserSynchronously(popup); - QuitBrowserAndRestore(browser(), 1); + QuitBrowserAndRestore(browser()); ASSERT_EQ(2u, active_browser_list_->size()); EXPECT_EQ(Browser::TYPE_NORMAL, active_browser_list_->get(0)->type()); EXPECT_EQ(Browser::TYPE_POPUP, active_browser_list_->get(1)->type()); @@ -920,7 +918,7 @@ ui_test_utils::NavigateToURL(browser(), GetUrl1()); ui_test_utils::NavigateToURL(browser(), GetUrl2()); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(GetUrl2(), new_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); @@ -1014,7 +1012,7 @@ SessionRestoreTest::SetUpOnMainThread(); } - Browser* QuitBrowserAndRestore(Browser* browser, int expected_tab_count) { + Browser* QuitBrowserAndRestore(Browser* browser) { // The test parameter determines whether to do a command reset. if (GetParam()) { SessionService* const session_service = @@ -1022,8 +1020,7 @@ session_service->ResetFromCurrentBrowsers(); } - return SessionRestoreTest::QuitBrowserAndRestore(browser, - expected_tab_count); + return SessionRestoreTest::QuitBrowserAndRestore(browser); } private: @@ -1051,7 +1048,7 @@ CheckTabGrouping(browser()->tab_strip_model(), group_spec)); const auto groups = GetTabGroups(browser()->tab_strip_model()); - Browser* new_browser = QuitBrowserAndRestore(browser(), kNumTabs); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(kNumTabs, new_browser->tab_strip_model()->count()); ASSERT_NO_FATAL_FAILURE( CheckTabGrouping(new_browser->tab_strip_model(), group_spec)); @@ -1081,7 +1078,7 @@ u"Foo", tab_groups::TabGroupColorId::kBlue, true); tsm->group_model()->GetTabGroup(group2)->SetVisualData(group2_data); - Browser* const new_browser = QuitBrowserAndRestore(browser(), 5); + Browser* const new_browser = QuitBrowserAndRestore(browser()); TabStripModel* const new_tsm = new_browser->tab_strip_model(); ASSERT_EQ(5, new_tsm->count()); @@ -1126,7 +1123,7 @@ CheckTabGrouping(browser()->tab_strip_model(), group_spec)); const auto orig_groups = GetTabGroups(browser()->tab_strip_model()); - Browser* const new_browser = QuitBrowserAndRestore(browser(), 5); + Browser* const new_browser = QuitBrowserAndRestore(browser()); TabStripModel* const new_tsm = new_browser->tab_strip_model(); ASSERT_EQ(kNumTabs, new_tsm->count()); ASSERT_NO_FATAL_FAILURE(CheckTabGrouping(new_tsm, group_spec)); @@ -1157,7 +1154,7 @@ })); EXPECT_EQ(3, controller.GetEntryCount()); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); content::NavigationController& new_controller = new_browser->tab_strip_model()->GetActiveWebContents()->GetController(); EXPECT_EQ(3, new_controller.GetEntryCount()); @@ -1222,8 +1219,7 @@ browser(), GURL(url::kAboutBlankURL), WindowOpenDisposition::NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); - Browser* restored = - QuitBrowserAndRestoreWithURL(browser(), 1, GURL(), true); + Browser* restored = QuitBrowserAndRestoreWithURL(browser(), GURL(), true); TabStripModel* tab_strip_model = restored->tab_strip_model(); ASSERT_EQ(1u, active_browser_list_->size()); @@ -1249,8 +1245,7 @@ ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); // Restore the brwoser, but instead of directly waiting, we issue a critical // memory pressure event and finish then the loading. - Browser* restored = - QuitBrowserAndRestoreWithURL(browser(), 1, GURL(), false); + Browser* restored = QuitBrowserAndRestoreWithURL(browser(), GURL(), false); TabStripModel* tab_strip_model = restored->tab_strip_model(); @@ -1272,7 +1267,7 @@ EXPECT_TRUE(content::BINDINGS_POLICY_MOJO_WEB_UI & old_tab->GetMainFrame()->GetEnabledBindings()); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); content::WebContents* new_tab = new_browser->tab_strip_model()->GetActiveWebContents(); @@ -1295,7 +1290,7 @@ EXPECT_TRUE(old_tab->GetMainFrame()->GetEnabledBindings() & content::BINDINGS_POLICY_WEB_UI); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); content::WebContents* new_tab = new_browser->tab_strip_model()->GetActiveWebContents(); @@ -1310,7 +1305,7 @@ ui_test_utils::NavigateToURL(browser(), GetUrl3()); GoBack(browser()); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(GetUrl2(), new_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); @@ -1344,7 +1339,7 @@ ui_test_utils::NavigateToURL(browser(), GetUrl2()); GoBack(browser()); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(1, new_browser->tab_strip_model()->count()); @@ -1374,7 +1369,7 @@ browser(), GetUrl2(), WindowOpenDisposition::NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); - Browser* new_browser = QuitBrowserAndRestore(browser(), 2); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(2, new_browser->tab_strip_model()->count()); @@ -1395,7 +1390,7 @@ SessionServiceFactory::GetForProfile(browser()->profile()); session_service->OnErrorWritingSessionCommands(); - Browser* new_browser = QuitBrowserAndRestore(browser(), 2); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(2, new_browser->tab_strip_model()->count()); ASSERT_EQ(1, new_browser->tab_strip_model()->active_index()); @@ -1414,7 +1409,7 @@ ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); chrome::CloseTab(browser()); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); AssertOneWindowWithOneTab(new_browser); ASSERT_EQ(GetUrl1(), @@ -1533,7 +1528,7 @@ 0, TabStripModel::CLOSE_CREATE_HISTORICAL_TAB); - Browser* new_browser = QuitBrowserAndRestore(browser(), 2); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(GetUrl2(), new_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); @@ -1553,7 +1548,7 @@ navigate_params.disposition = WindowOpenDisposition::NEW_BACKGROUND_TAB; ui_test_utils::NavigateToURL(&navigate_params); - Browser* new_browser = QuitBrowserAndRestore(browser(), 3); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(GetUrl1(), new_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); @@ -1586,7 +1581,7 @@ // Restore the session, which should bring back the first window with // GetUrl1(). - Browser* new_browser = QuitBrowserAndRestore(app_window, 1); + Browser* new_browser = QuitBrowserAndRestore(app_window); AssertOneWindowWithOneTab(new_browser); @@ -1614,7 +1609,7 @@ // Restart and make sure we have only one window with one tab and the url // is GetUrl1(). - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); AssertOneWindowWithOneTab(new_browser); @@ -1647,7 +1642,7 @@ int expected_process_count = RenderProcessHostCount(); // Restart. - Browser* new_browser = QuitBrowserAndRestore(browser(), 3); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(3, new_browser->tab_strip_model()->count()); @@ -1674,7 +1669,7 @@ ASSERT_EQ(1, browser()->tab_strip_model()->active_index()); // Kill the original browser then open a new one to trigger a restore. - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(2, new_browser->tab_strip_model()->count()); ASSERT_EQ(1, new_browser->tab_strip_model()->active_index()); @@ -1715,7 +1710,7 @@ Profile* profile = browser()->profile(); // This will also initiate a session restore, but we're not interested in it. - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(2, new_browser->tab_strip_model()->count()); ASSERT_EQ(0, new_browser->tab_strip_model()->active_index()); @@ -1761,7 +1756,7 @@ // Restore the session by calling chrome::Navigate(). Browser* new_browser = - QuitBrowserAndRestoreWithURL(browser(), 3, GetUrl3(), true); + QuitBrowserAndRestoreWithURL(browser(), GetUrl3(), true); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(3, new_browser->tab_strip_model()->count()); // Navigated url should be the active tab. @@ -1790,7 +1785,7 @@ } // Restore the session. - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(1, new_browser->tab_strip_model()->count()); @@ -1815,7 +1810,7 @@ Profile* profile = browser()->profile(); // This will also initiate a session restore, but we're not interested in it. - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(2, new_browser->tab_strip_model()->count()); ASSERT_EQ(1, new_browser->tab_strip_model()->active_index()); @@ -1854,7 +1849,7 @@ ASSERT_TRUE(controller->GetDefaultSessionStorageNamespace()); std::string session_storage_id = controller->GetDefaultSessionStorageNamespace()->id(); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(GetUrl1(), new_browser->tab_strip_model()->GetActiveWebContents()->GetURL()); @@ -1900,7 +1895,7 @@ controller->GetDefaultSessionStorageNamespace()->should_persist()); // Quit and restore. Check that no extra tabs were created. - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); EXPECT_EQ(1, new_browser->tab_strip_model()->count()); } @@ -1931,7 +1926,7 @@ download_manager, 1, content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1, new_browser->tab_strip_model()->count()); // In addition to restarting the browser, create a new download in a new @@ -2319,7 +2314,7 @@ EXPECT_EQ("none", GetContent(browser(), 2)); // Kill the original browser then open a new one to trigger a restore. - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); // Verify again (after session restore) that all the tabs have seen the @@ -2367,7 +2362,7 @@ ASSERT_TRUE(old_popup->GetController().CanGoBack()); // Kill the original browser then open a new one to trigger a restore. - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(2, new_browser->tab_strip_model()->count()); content::WebContents* new_popup = GetTab(new_browser, 1); @@ -2418,7 +2413,7 @@ ASSERT_TRUE(old_tab->GetController().CanGoBack()); // Kill the original browser then open a new one to trigger a restore. - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(1, new_browser->tab_strip_model()->count()); content::WebContents* new_tab = GetTab(new_browser, 0); @@ -2464,7 +2459,7 @@ } // Kill the original browser then open a new one to trigger a restore. - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(2, new_browser->tab_strip_model()->count()); content::WebContents* new_popup = GetTab(new_browser, 1); @@ -2550,7 +2545,7 @@ // Kill the original browser then open a new one to trigger a restore. ASSERT_TRUE(old_tab->GetController().CanGoBack()); - Browser* new_browser = QuitBrowserAndRestore(browser(), 1); + Browser* new_browser = QuitBrowserAndRestore(browser()); ASSERT_EQ(1u, active_browser_list_->size()); ASSERT_EQ(1, new_browser->tab_strip_model()->count()); content::WebContents* new_tab = @@ -2612,7 +2607,7 @@ histogram_tester.GetAllSamples(kTimeSinceTabClosedUntilRestored).size(), 0U); - QuitBrowserAndRestoreWithURL(browser(), 1, GURL(), true); + QuitBrowserAndRestoreWithURL(browser(), GURL(), true); EXPECT_EQ( histogram_tester.GetAllSamples(kTimeSinceTabClosedUntilRestored).size(), @@ -2642,7 +2637,7 @@ .size(), 0U); - QuitBrowserAndRestoreWithURL(browser(), 1, GURL(), true); + QuitBrowserAndRestoreWithURL(browser(), GURL(), true); EXPECT_EQ(histogram_tester.GetAllSamples(kTimeSinceWindowClosedUntilRestored) .size(), @@ -2783,7 +2778,7 @@ // We perform session restore under memory pressure so the tab is not restored // in the background. Browser* new_browser = QuitBrowserAndRestoreWithURL( - browser(), 2, GURL(), /*no_memory_pressure=*/false); + browser(), GURL(), /*no_memory_pressure=*/false); wc = new_browser->tab_strip_model()->GetWebContentsAt(0); EXPECT_EQ(2, new_browser->tab_strip_model()->count()); EXPECT_NE(0, new_browser->tab_strip_model()->active_index()); @@ -2868,7 +2863,7 @@ // We perform session restore under memory pressure so the tab is not restored // in the background. Browser* new_browser = QuitBrowserAndRestoreWithURL( - browser(), 2, GURL(), /*no_memory_pressure=*/false); + browser(), GURL(), /*no_memory_pressure=*/false); wc = new_browser->tab_strip_model()->GetWebContentsAt(0); EXPECT_EQ(2, new_browser->tab_strip_model()->count()); EXPECT_NE(0, new_browser->tab_strip_model()->active_index());
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/scan_tab/QrCodeScanMediator.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/scan_tab/QrCodeScanMediator.java index ab36dda..10f4202 100644 --- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/scan_tab/QrCodeScanMediator.java +++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/scan_tab/QrCodeScanMediator.java
@@ -25,7 +25,7 @@ import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.task.AsyncTask; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.ui.base.ActivityAndroidPermissionDelegate; import org.chromium.ui.base.AndroidPermissionDelegate; @@ -189,7 +189,7 @@ .setClass(mContext, ChromeLauncherActivity.class) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NEW_DOCUMENT) .putExtra(Browser.EXTRA_APPLICATION_ID, mContext.getPackageName()) - .putExtra(ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); + .putExtra(WebappConstants.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); IntentUtils.addTrustedIntentExtras(intent); mContext.startActivity(intent); }
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/NotificationManager.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/NotificationManager.java index ee7dd1a..ea79c031 100644 --- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/NotificationManager.java +++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/NotificationManager.java
@@ -22,7 +22,7 @@ import org.chromium.base.IntentUtils; import org.chromium.base.annotations.CalledByNative; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ShortcutHelper; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.notifications.NotificationConstants; import org.chromium.chrome.browser.notifications.NotificationUmaTracker; @@ -54,13 +54,14 @@ */ private static void openUrl(Uri uri) { Context context = ContextUtils.getApplicationContext(); - Intent intent = new Intent() - .setAction(Intent.ACTION_VIEW) - .setData(uri) - .setClass(context, ChromeLauncherActivity.class) - .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - .putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()) - .putExtra(ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); + Intent intent = + new Intent() + .setAction(Intent.ACTION_VIEW) + .setData(uri) + .setClass(context, ChromeLauncherActivity.class) + .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + .putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()) + .putExtra(WebappConstants.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true); IntentUtils.addTrustedIntentExtras(intent); context.startActivity(intent); }
diff --git a/chrome/browser/share/core/BUILD.gn b/chrome/browser/share/core/BUILD.gn index 9d60d23..34f69f5 100644 --- a/chrome/browser/share/core/BUILD.gn +++ b/chrome/browser/share/core/BUILD.gn
@@ -8,6 +8,7 @@ sources = [ "share_targets.cc", "share_targets.h", + "share_targets_observer.h", ] deps = [ "//base",
diff --git a/chrome/browser/share/core/share_targets.cc b/chrome/browser/share/core/share_targets.cc index 4e7de34..5076fbd 100644 --- a/chrome/browser/share/core/share_targets.cc +++ b/chrome/browser/share/core/share_targets.cc
@@ -9,6 +9,7 @@ #include "base/check_op.h" #include "base/files/file_util.h" #include "base/memory/singleton.h" +#include "chrome/browser/share/core/share_targets_observer.h" #include "chrome/browser/share/proto/share_target.pb.h" #include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h" @@ -85,7 +86,7 @@ // Looks good. Update our internal list. SwapTargetsLocked(new_targets); - + NotifyShareTargetUpdated(); return UpdateResult::SUCCESS; } @@ -95,26 +96,27 @@ targets_.swap(new_targets); } -// Return the ShareTarget for a given locale. If the locale is not found return -// a global locale. -const mojom::ShareTargets* ShareTargets::GetShareTargetsForLocale( - const std::string& locale) { - // TODO: ensure correct thread is used in order to call - // lock_.AssertAcquired(); - if (!targets_ || targets_->map_target_locale_map().size() == 0) { - return nullptr; - } - - auto it = targets_->map_target_locale_map().find(locale); - - if (it == targets_->map_target_locale_map().end()) { - it = targets_->map_target_locale_map().find(GLOBAL); - } - - if (it == targets_->map_target_locale_map().end()) { - return nullptr; - } - - return &(it->second); +void ShareTargets::AddObserver(ShareTargetsObserver* observer) { + observers_.AddObserver(observer); } + +void ShareTargets::RemoveObserver(ShareTargetsObserver* observer) { + observers_.RemoveObserver(observer); +} + +void ShareTargets::NotifyShareTargetUpdated() { + for (ShareTargetsObserver& observer : observers_) { + // TODO get locale and register for locale change events. + std::string locale = GLOBAL; + auto it = targets_->map_target_locale_map().find(locale); + + if (it == targets_->map_target_locale_map().end()) { + it = targets_->map_target_locale_map().find(GLOBAL); + } + std::unique_ptr<mojom::ShareTargets> to_return(new mojom::ShareTargets()); + to_return->CopyFrom(it->second); + observer.OnShareTargetsUpdated(std::move(to_return)); + } +} + } // namespace sharing
diff --git a/chrome/browser/share/core/share_targets.h b/chrome/browser/share/core/share_targets.h index 43df1f7..965aea86 100644 --- a/chrome/browser/share/core/share_targets.h +++ b/chrome/browser/share/core/share_targets.h
@@ -7,11 +7,13 @@ #include "chrome/browser/share/proto/share_target.pb.h" +#include "base/observer_list.h" #include "base/synchronization/lock.h" namespace sharing { struct ShareTargetsSingletonTrait; +class ShareTargetsObserver; class ShareTargets { public: @@ -24,14 +26,11 @@ // protos. void PopulateFromDynamicUpdate(const std::string& binary_pb); - // - // Accessors - // + // Observers ----------------------------------------------------------------- - // Return the ShareTarget for a given locale. If the locale is not found - // return a global locale. - const mojom::ShareTargets* GetShareTargetsForLocale( - const std::string& locale); + // Adds/Removes an Observer. + void AddObserver(ShareTargetsObserver* observer); + void RemoveObserver(ShareTargetsObserver* observer); protected: // Creator must call one of Populate* before calling other methods. @@ -63,6 +62,14 @@ mutable base::Lock lock_; + // Observers ---------------------------------------------------------------- + + // Notify all ShareTargetsObservers registered that the ShareTargets have been + // updated. + void NotifyShareTargetUpdated(); + + base::ObserverList<ShareTargetsObserver>::Unchecked observers_; + friend struct ShareTargetsSingletonTrait; };
diff --git a/chrome/browser/share/core/share_targets_observer.h b/chrome/browser/share/core/share_targets_observer.h new file mode 100644 index 0000000..213c3fb8 --- /dev/null +++ b/chrome/browser/share/core/share_targets_observer.h
@@ -0,0 +1,27 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_SHARE_CORE_SHARE_TARGETS_OBSERVER_H_ +#define CHROME_BROWSER_SHARE_CORE_SHARE_TARGETS_OBSERVER_H_ + +#include "chrome/browser/share/proto/share_target.pb.h" + +namespace sharing { + +class ShareTargetsObserver { + public: + ShareTargetsObserver() = default; + virtual ~ShareTargetsObserver() = default; + + ShareTargetsObserver(const ShareTargetsObserver& other) = delete; + ShareTargetsObserver& operator=(const ShareTargetsObserver& other) = delete; + + // Called when the data model is updated + virtual void OnShareTargetsUpdated( + std::unique_ptr<mojom::ShareTargets> ShareTarget) {} +}; + +} // namespace sharing + +#endif // CHROME_BROWSER_SHARE_CORE_SHARE_TARGETS_OBSERVER_H_
diff --git a/chrome/browser/sharing/sms/sms_fetch_request_handler.cc b/chrome/browser/sharing/sms/sms_fetch_request_handler.cc index 9ece25d..bb27567 100644 --- a/chrome/browser/sharing/sms/sms_fetch_request_handler.cc +++ b/chrome/browser/sharing/sms/sms_fetch_request_handler.cc
@@ -47,10 +47,11 @@ std::unique_ptr<syncer::DeviceInfo> device = device_source_->GetDeviceByGuid(message.sender_guid()); - const std::string remote_os = device ? device->GetOSString() : ""; + const std::string& client_name = + device ? device->client_name() : message.sender_device_name(); auto origin = url::Origin::Create(GURL(message.sms_fetch_request().origin())); - auto request = std::make_unique<Request>(this, fetcher_, origin, remote_os, + auto request = std::make_unique<Request>(this, fetcher_, origin, client_name, std::move(done_callback)); requests_.insert(std::move(request)); } @@ -62,7 +63,7 @@ void SmsFetchRequestHandler::AskUserPermission( const content::OriginList& origin_list, const std::string& one_time_code, - const std::string& remote_os) { + const std::string& client_name) { JNIEnv* env = base::android::AttachCurrentThread(); // TODO(crbug.com/1015645): Support iframe in cross-device WebOTP. const std::u16string origin = url_formatter::FormatOriginForSecurityDisplay( @@ -77,7 +78,7 @@ Java_SmsFetcherMessageHandler_showNotification( env, base::android::ConvertUTF8ToJavaString(env, one_time_code), base::android::ConvertUTF16ToJavaString(env, origin), - base::android::ConvertUTF8ToJavaString(env, remote_os), + base::android::ConvertUTF8ToJavaString(env, client_name), reinterpret_cast<intptr_t>(this)); } @@ -123,12 +124,12 @@ SmsFetchRequestHandler* handler, content::SmsFetcher* fetcher, const url::Origin& origin, - const std::string& remote_os, + const std::string& client_name, SharingMessageHandler::DoneCallback respond_callback) : handler_(handler), fetcher_(fetcher), origin_list_(content::OriginList{origin}), - remote_os_(remote_os), + client_name_(client_name), respond_callback_(std::move(respond_callback)) { // TODO(crbug.com/1015645): Support iframe in cross-device WebOTP. fetcher_->Subscribe(origin_list_, this); @@ -155,7 +156,7 @@ FROM_HERE, base::BindOnce(&SmsFetchRequestHandler::AskUserPermission, handler_->GetWeakPtr(), origin_list, one_time_code, - remote_os_), + client_name_), kNotificationDelay); }
diff --git a/chrome/browser/sharing/sms/sms_fetch_request_handler.h b/chrome/browser/sharing/sms/sms_fetch_request_handler.h index d772267..cad0db8 100644 --- a/chrome/browser/sharing/sms/sms_fetch_request_handler.h +++ b/chrome/browser/sharing/sms/sms_fetch_request_handler.h
@@ -37,7 +37,7 @@ SharingMessageHandler::DoneCallback done_callback) override; virtual void AskUserPermission(const content::OriginList&, const std::string& one_time_code, - const std::string& remote_os); + const std::string& client_name); virtual void OnConfirm(JNIEnv*, jstring origin); virtual void OnDismiss(JNIEnv*, jstring origin); @@ -58,7 +58,7 @@ Request(SmsFetchRequestHandler* handler, content::SmsFetcher* fetcher, const url::Origin& origin, - const std::string& remote_os, + const std::string& client_name, SharingMessageHandler::DoneCallback respond_callback); ~Request() override; @@ -77,7 +77,7 @@ content::SmsFetcher* fetcher_; const content::OriginList origin_list_; std::string one_time_code_; - std::string remote_os_; + std::string client_name_; SharingMessageHandler::DoneCallback respond_callback_; DISALLOW_COPY_AND_ASSIGN(Request);
diff --git a/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc b/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc index 81664fc..f751dc7b 100644 --- a/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc +++ b/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc
@@ -65,7 +65,7 @@ MOCK_METHOD3(AskUserPermission, void(const content::OriginList&, const std::string& one_time_code, - const std::string& remote_os)); + const std::string& client_name)); content::BrowserTaskEnvironment& task_environment() { return task_environment_;
diff --git a/chrome/browser/sharing_hub/sharing_hub_model.cc b/chrome/browser/sharing_hub/sharing_hub_model.cc index a0710da..88c95db 100644 --- a/chrome/browser/sharing_hub/sharing_hub_model.cc +++ b/chrome/browser/sharing_hub/sharing_hub_model.cc
@@ -28,14 +28,12 @@ SharingHubModel::SharingHubModel(content::BrowserContext* context) : context_(context) { PopulateFirstPartyActions(); - - base::ThreadPool::PostTask( - FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(&SharingHubModel::PopulateThirdPartyActions, - base::Unretained(this))); + sharing::ShareTargets::GetInstance()->AddObserver(this); } -SharingHubModel::~SharingHubModel() = default; +SharingHubModel::~SharingHubModel() { + sharing::ShareTargets::GetInstance()->RemoveObserver(this); +} void SharingHubModel::GetFirstPartyActionList( content::WebContents* web_contents, @@ -108,10 +106,9 @@ // action will be disabled in the app menu. std::string locale = "GLOBAL"; int id = 1; - const sharing::mojom::ShareTargets* targets = - sharing::ShareTargets::GetInstance()->GetShareTargetsForLocale(locale); - if (targets) { - for (const sharing::mojom::ShareTarget& target : targets->targets()) { + if (third_party_targets_) { + for (const sharing::mojom::ShareTarget& target : + third_party_targets_->targets()) { // get ICON from target.icon(); third_party_action_list_.push_back({id, base::ASCIIToUTF16(target.nickname()), @@ -126,4 +123,10 @@ return send_tab_to_self::ShouldOfferFeature(web_contents); } +void SharingHubModel::OnShareTargetsUpdated( + std::unique_ptr<sharing::mojom::ShareTargets> share_target) { + third_party_targets_ = std::move(share_target); + PopulateThirdPartyActions(); +} + } // namespace sharing_hub
diff --git a/chrome/browser/sharing_hub/sharing_hub_model.h b/chrome/browser/sharing_hub/sharing_hub_model.h index 76bfbf0..1e8fab6 100644 --- a/chrome/browser/sharing_hub/sharing_hub_model.h +++ b/chrome/browser/sharing_hub/sharing_hub_model.h
@@ -10,10 +10,17 @@ #include <vector> #include "base/macros.h" +#include "chrome/browser/share/core/share_targets_observer.h" class GURL; class Profile; +namespace sharing { +namespace mojom { +class ShareTargets; +} // namespace mojom +} // namespace sharing + namespace content { class BrowserContext; class WebContents; @@ -35,10 +42,10 @@ // The Sharing Hub model contains a list of first and third party actions. // This object should only be accessed from one thread, which is usually the // main thread. -class SharingHubModel { +class SharingHubModel : public sharing::ShareTargetsObserver { public: explicit SharingHubModel(content::BrowserContext* context); - ~SharingHubModel(); + ~SharingHubModel() override; // Populates the vector with first party Sharing Hub actions, ordered by // appearance in the dialog. Some actions (i.e. send tab to self) may not be @@ -54,6 +61,10 @@ // the corresponding webpage. void ExecuteThirdPartyAction(Profile* profile, int id); + // sharing::ShareTargetsObserver implementation. + void OnShareTargetsUpdated( + std::unique_ptr<sharing::mojom::ShareTargets> ShareTarget) override; + private: void PopulateFirstPartyActions(); void PopulateThirdPartyActions(); @@ -70,6 +81,8 @@ content::BrowserContext* context_; + std::unique_ptr<sharing::mojom::ShareTargets> third_party_targets_; + DISALLOW_COPY_AND_ASSIGN(SharingHubModel); };
diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc index 853a4e2..3092558e 100644 --- a/chrome/browser/signin/account_consistency_mode_manager.cc +++ b/chrome/browser/signin/account_consistency_mode_manager.cc
@@ -90,7 +90,12 @@ DCHECK(profile_); DCHECK(ShouldBuildServiceForProfile(profile)); -#if BUILDFLAG(ENABLE_DICE_SUPPORT) +#if BUILDFLAG(IS_CHROMEOS_LACROS) + // Lacros doesn't support account inconsistency. + // TODO(crbug.com/1220066): Remove this section when Lacros stops building + // with DICE. + profile->GetPrefs()->SetBoolean(prefs::kSigninAllowed, true); +#elif BUILDFLAG(ENABLE_DICE_SUPPORT) PrefService* prefs = profile->GetPrefs(); // Propagate settings changes from the previous launch to the signin-allowed // pref.
diff --git a/chrome/browser/signin/account_consistency_mode_manager_unittest.cc b/chrome/browser/signin/account_consistency_mode_manager_unittest.cc index 5d38b22..43ae850 100644 --- a/chrome/browser/signin/account_consistency_mode_manager_unittest.cc +++ b/chrome/browser/signin/account_consistency_mode_manager_unittest.cc
@@ -63,6 +63,9 @@ } #if BUILDFLAG(ENABLE_DICE_SUPPORT) +#if !BUILDFLAG(IS_CHROMEOS_LACROS) +// TODO(crbug.com/1220066): Remove the lacros exclusion when DICE is disabled on +// Lacros. // Checks that changing the signin-allowed pref changes the Dice state on next // startup. TEST(AccountConsistencyModeManagerTest, SigninAllowedChangesDiceState) { @@ -135,6 +138,7 @@ manager.GetAccountConsistencyMethod()); } } +#endif // !BUILDFLAG(IS_CHROMEOS_LACROS) // Checks that Dice migration happens when the manager is created. TEST(AccountConsistencyModeManagerTest, MigrateAtCreation) {
diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCache.java b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCache.java index 95c2786..ec4742a 100644 --- a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCache.java +++ b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCache.java
@@ -232,7 +232,7 @@ } private void populateCache() { - AccountManagerFacadeProvider.getInstance().tryGetGoogleAccounts(accounts -> { + AccountManagerFacadeProvider.getInstance().getAccounts().then(accounts -> { for (Account account : accounts) { mAccountInfoService.getAccountInfoByEmail(account.name) .then(this::onAccountInfoUpdated); @@ -243,7 +243,7 @@ private void populateCacheLegacy() { assert mProfileDataSource != null : "This only populates cache with the Legacy profile data source."; - AccountManagerFacadeProvider.getInstance().tryGetGoogleAccounts(accounts -> { + AccountManagerFacadeProvider.getInstance().getAccounts().then(accounts -> { for (Account account : accounts) { ProfileData profileData = mProfileDataSource.getProfileDataForAccount(account.name); if (profileData != null) {
diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCacheWithBadgeRenderTest.java b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCacheWithBadgeRenderTest.java index 739b020..3f6763d 100644 --- a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCacheWithBadgeRenderTest.java +++ b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCacheWithBadgeRenderTest.java
@@ -131,6 +131,8 @@ : ProfileDataCache.createWithoutBadge(getActivity(), R.dimen.user_picture_size); // ProfileDataCache only populates the cache when an observer is added. mProfileDataCache.addObserver(mObserver); + }); + TestThreadUtils.runOnUiThreadBlocking(() -> { mImageView.setImageDrawable( mProfileDataCache.getProfileDataOrDefault(TEST_ACCOUNT_NAME).getImage()); });
diff --git a/chrome/browser/subresource_redirect/subresource_redirect_observer.cc b/chrome/browser/subresource_redirect/subresource_redirect_observer.cc index d36d497..932f190 100644 --- a/chrome/browser/subresource_redirect/subresource_redirect_observer.cc +++ b/chrome/browser/subresource_redirect/subresource_redirect_observer.cc
@@ -114,7 +114,9 @@ SubresourceRedirectObserver::SubresourceRedirectObserver( content::WebContents* web_contents) : content::WebContentsObserver(web_contents), - receivers_(web_contents, this) { + receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { DCHECK(ShouldEnablePublicImageHintsBasedCompression() || ShouldEnableRobotsRulesFetching()); if (ShouldEnablePublicImageHintsBasedCompression()) {
diff --git a/chrome/browser/supervised_user/supervised_user_navigation_observer.cc b/chrome/browser/supervised_user/supervised_user_navigation_observer.cc index d23ffeec..d0618f2 100644 --- a/chrome/browser/supervised_user/supervised_user_navigation_observer.cc +++ b/chrome/browser/supervised_user/supervised_user_navigation_observer.cc
@@ -47,7 +47,9 @@ SupervisedUserNavigationObserver::SupervisedUserNavigationObserver( content::WebContents* web_contents) : content::WebContentsObserver(web_contents), - receiver_(web_contents, this) { + receiver_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); supervised_user_service_ =
diff --git a/chrome/browser/sync/sync_encryption_keys_tab_helper.cc b/chrome/browser/sync/sync_encryption_keys_tab_helper.cc index 2c3eda6..3641e526 100644 --- a/chrome/browser/sync/sync_encryption_keys_tab_helper.cc +++ b/chrome/browser/sync/sync_encryption_keys_tab_helper.cc
@@ -49,7 +49,10 @@ public: EncryptionKeyApi(content::WebContents* web_contents, syncer::SyncService* sync_service) - : sync_service_(sync_service), receivers_(web_contents, this) { + : sync_service_(sync_service), + receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { DCHECK(web_contents); DCHECK(sync_service); }
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index be23575..c14fd76 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -383,7 +383,7 @@ "//chrome/browser/ui/webui/bluetooth_internals", "//chrome/browser/ui/webui/download_shelf:mojo_bindings", "//chrome/browser/ui/webui/downloads:mojo_bindings", - "//chrome/browser/ui/webui/memories:mojo_bindings", + "//chrome/browser/ui/webui/history_clusters:mojo_bindings", "//chrome/browser/ui/webui/new_tab_page:mojo_bindings", "//chrome/browser/ui/webui/new_tab_page_third_party:mojo_bindings", "//chrome/browser/ui/webui/omnibox:mojo_bindings", @@ -1393,6 +1393,10 @@ "webui/history/history_ui.h", "webui/history/navigation_handler.cc", "webui/history/navigation_handler.h", + "webui/history_clusters/history_clusters_handler.cc", + "webui/history_clusters/history_clusters_handler.h", + "webui/history_clusters/memories_ui.cc", + "webui/history_clusters/memories_ui.h", "webui/identity_internals_ui.cc", "webui/identity_internals_ui.h", "webui/inspect_ui.cc", @@ -1412,10 +1416,6 @@ "webui/media_router/media_router_internals_webui_message_handler.cc", "webui/media_router/media_router_internals_webui_message_handler.h", "webui/media_router/web_contents_display_observer.h", - "webui/memories/memories_handler.cc", - "webui/memories/memories_handler.h", - "webui/memories/memories_ui.cc", - "webui/memories/memories_ui.h", "webui/new_tab_page/new_tab_page_handler.cc", "webui/new_tab_page/new_tab_page_handler.h", "webui/new_tab_page/new_tab_page_ui.cc", @@ -2931,6 +2931,8 @@ "signin_view_controller.h", "signin_view_controller_delegate.cc", "signin_view_controller_delegate.h", + "startup/web_app_protocol_handling_startup_utils.cc", + "startup/web_app_protocol_handling_startup_utils.h", "tab_contents/chrome_web_contents_menu_helper.cc", "tab_contents/chrome_web_contents_menu_helper.h", "tab_contents/chrome_web_contents_view_handle_drop.cc", @@ -3518,13 +3520,6 @@ } } - if (is_win || is_mac || is_linux) { - sources += [ - "startup/web_app_protocol_handling_startup_utils.cc", - "startup/web_app_protocol_handling_startup_utils.h", - ] - } - if (is_win || is_mac || (is_linux && !is_chromeos_lacros)) { sources += [ "startup/web_app_url_handling_startup_utils.cc", @@ -4413,8 +4408,12 @@ "views/web_apps/pwa_confirmation_bubble_view.h", "views/web_apps/web_app_confirmation_view.cc", "views/web_apps/web_app_confirmation_view.h", + "views/web_apps/web_app_hover_button.cc", + "views/web_apps/web_app_hover_button.h", "views/web_apps/web_app_info_image_source.cc", "views/web_apps/web_app_info_image_source.h", + "views/web_apps/web_app_protocol_handler_intent_picker_dialog_view.cc", + "views/web_apps/web_app_protocol_handler_intent_picker_dialog_view.h", "views/web_apps/web_app_uninstall_dialog_view.cc", "views/web_apps/web_app_uninstall_dialog_view.h", "views/webauthn/authenticator_bio_enrollment_sheet_view.cc", @@ -4556,15 +4555,6 @@ ] } - if (is_win || is_mac || is_linux) { - sources += [ - "views/web_apps/web_app_hover_button.cc", - "views/web_apps/web_app_hover_button.h", - "views/web_apps/web_app_protocol_handler_intent_picker_dialog_view.cc", - "views/web_apps/web_app_protocol_handler_intent_picker_dialog_view.h", - ] - } - if (is_win || is_mac || (is_linux && !is_chromeos_lacros)) { sources += [ "views/web_apps/web_app_url_handler_hover_button.cc",
diff --git a/chrome/browser/ui/android/favicon/java/src/org/chromium/chrome/browser/ui/favicon/FaviconHelper.java b/chrome/browser/ui/android/favicon/java/src/org/chromium/chrome/browser/ui/favicon/FaviconHelper.java index f43b21b..6e425a6 100644 --- a/chrome/browser/ui/android/favicon/java/src/org/chromium/chrome/browser/ui/favicon/FaviconHelper.java +++ b/chrome/browser/ui/android/favicon/java/src/org/chromium/chrome/browser/ui/favicon/FaviconHelper.java
@@ -191,7 +191,7 @@ * that this callback is not called if this method returns false. * @return True if GetLocalFaviconImageForURL is successfully called. */ - public boolean getComposedFaviconImage(Profile profile, @NonNull List<String> urls, + public boolean getComposedFaviconImage(Profile profile, @NonNull List<GURL> urls, int desiredSizeInPixel, FaviconImageCallback faviconImageCallback) { assert mNativeFaviconHelper != 0; @@ -201,14 +201,14 @@ } return FaviconHelperJni.get().getComposedFaviconImage(mNativeFaviconHelper, profile, - urls.toArray(new String[0]), desiredSizeInPixel, faviconImageCallback); + urls.toArray(new GURL[0]), desiredSizeInPixel, faviconImageCallback); } @NativeMethods interface Natives { long init(); void destroy(long nativeFaviconHelper); - boolean getComposedFaviconImage(long nativeFaviconHelper, Profile profile, String[] urls, + boolean getComposedFaviconImage(long nativeFaviconHelper, Profile profile, GURL[] urls, int desiredSizeInDip, FaviconImageCallback faviconImageCallback); boolean getLocalFaviconImageForURL(long nativeFaviconHelper, Profile profile, String pageUrl, int desiredSizeInDip, FaviconImageCallback faviconImageCallback);
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd index 5e79309..03e500d 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4200,13 +4200,13 @@ <!-- Sms Fetcher --> <message name="IDS_SMS_FETCHER_NOTIFICATION_TITLE_UNKNOWN_DEVICE" translateable="false" desc="Title text shown when the browser has received an SMS on the user's behalf when the source device name is unknown."> - Allow Chrome to submit code on your remote device? + Verify your phone number on other device </message> <message name="IDS_SMS_FETCHER_NOTIFICATION_TITLE" translateable="false" desc="Title text shown when the browser has received an SMS on the user's behalf."> - Allow Chrome to submit code on your <ph name="OS">%1$s<ex>mac</ex></ph>? + Verify your phone number on <ph name="CLIENT_NAME">%1$s<ex>Zoe's Macbook</ex></ph> </message> <message name="IDS_SMS_FETCHER_NOTIFICATION_TEXT" translateable="false" desc="Content text shown when the browser has received an SMS on the user's behalf."> - Tap OK to submit <ph name="ONE_TIME_CODE">%1$s<ex>123</ex></ph> on <ph name="ORIGIN">%2$s<ex>example.com</ex></ph> + Let Chrome submit <ph name="ONE_TIME_CODE">%1$s<ex>123</ex></ph> on <ph name="ORIGIN">%2$s<ex>example.com</ex></ph> </message> <!-- Interventions -->
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb index 17aa9e5..46dd792 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Skakel sinkronisering aan?</translation> <translation id="123724288017357924">Herlaai die huidige bladsy en ignoreer kasinhoud</translation> <translation id="1240288207750131269">Laai tans <ph name="LANG" /></translation> +<translation id="1242883863226959074">toestel</translation> <translation id="124678866338384709">Maak huidige oortjie toe</translation> <translation id="1258753120186372309">Google-logoskets: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Kon nie <ph name="CONTENT_TYPE" /> deel nie.</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Laai prent af</translation> <translation id="6865313869410766144">Vul vormdata outomaties in</translation> <translation id="6867400383614725881">Nuwe Incognito-oortjie</translation> +<translation id="6869056123412990582">rekenaar</translation> <translation id="6882836635272038266">Standaardbeskerming teen webwerwe, aflaaie en uitbreidings wat bekend is daarvoor dat hulle gevaarlik is.</translation> <translation id="688738109438487280">Voeg bestaande data by <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Ontsluit om jou wagwoord te kopieer</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Stuur boodskap</translation> <translation id="8410695015584479363">Spoor pryse na</translation> <translation id="8413126021676339697">Wys volle geskiedenis</translation> +<translation id="8424781820952413435">Bladsy is gestuur. Maak Chrome op jou <ph name="DEVICE_TYPE" /> oop om dit te sien</translation> <translation id="8427875596167638501">Voorskou-oortjie is half oopgemaak</translation> <translation id="8428213095426709021">Instellings</translation> <translation id="8438566539970814960">Maak soektogte en blaai-ervaring beter</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Opletberigte oor prysverlagings</translation> <translation id="8616006591992756292">Jou Google-rekening kan dalk ander vorme van blaaigeskiedenis hê by <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="8617240290563765734">Maak die voorgestelde URL oop wat in die afgelaaide inhoud gespesifiseer word?</translation> +<translation id="8621068256433641644">foon</translation> <translation id="8636825310635137004">Skakel sinkronisering aan om jou oortjies van jou ander toestelle af te kry.</translation> <translation id="8641930654639604085">Probeer volwasse werwe blokkeer</translation> <translation id="8655129584991699539">Jy kan die data in Chrome-instellings uitvee</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb index ce489ee..be3e5c8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">አስምር ይብራ?</translation> <translation id="123724288017357924">የተሸጎጠ ይዘትን ችላ በማለት የአሁኑን ገጽ ዳግም ጫን</translation> <translation id="1240288207750131269"><ph name="LANG" />ን በመጫን ላይ</translation> +<translation id="1242883863226959074">መሣሪያ</translation> <translation id="124678866338384709">የአሁኑን ትር ዝጋ</translation> <translation id="1258753120186372309">Google doodle፦ <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ን ማጋራት አልተቻለም።</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">ምስል አውርድ</translation> <translation id="6865313869410766144">የራስ-ሙላ ቅጽ ውሂብ</translation> <translation id="6867400383614725881">አዲስ ማንነት የማያሳውቅ ትር</translation> +<translation id="6869056123412990582">ኮምፒውተር</translation> <translation id="6882836635272038266">አደገኛ መሆናቸው ከታወቁ የድር ጣቢያዎች፣ ማውረዶች እና ቅጥያዎች መደበኛ ጥበቃ።</translation> <translation id="688738109438487280">ነባሩን ውሂብ ወደ <ph name="TO_ACCOUNT" /> ያክሉ።</translation> <translation id="6891726759199484455">የይለፍ ቃልዎን ለመቅዳት ይክፈቱ</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">መልዕክት ይላኩ</translation> <translation id="8410695015584479363">ዋጋዎችን ተከታተል</translation> <translation id="8413126021676339697">ሙሉ ታሪክ አሳይ</translation> +<translation id="8424781820952413435">ገጽ ተልኳል። እሱን ለማየት፣ በእርስዎ <ph name="DEVICE_TYPE" /> ላይ Chromeን ይክፈቱ</translation> <translation id="8427875596167638501">የቅድመ-እይታ ትር ግማሽ ተከፍቷል</translation> <translation id="8428213095426709021">ቅንብሮች</translation> <translation id="8438566539970814960">ፍለጋዎችን እና አሰሳን የተሻለ አድርግ</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">የዋጋ ቅነሳ ማንቂያዎች</translation> <translation id="8616006591992756292">የእርስዎ Google መለያ <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> ላይ ሌሎች የአሰሳ ታሪክ ዓይነቶች ሊኖረው ይችላል።</translation> <translation id="8617240290563765734">በወረደው ይዘት ላይ የተጠቆመው ዩአርኤል ይከፈት?</translation> +<translation id="8621068256433641644">ስልክ</translation> <translation id="8636825310635137004">ትሮችዎን ከሌሎች መሣሪያዎችዎ ለማግኘት ስምረትን ያብሩ።</translation> <translation id="8641930654639604085">የአዋቂ ሰው ጣቢያዎችን ለማገድ ሞክር</translation> <translation id="8655129584991699539">ውሂቡን በChrome ቅንብሮች ውስጥ ማጽዳት ይችላሉ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb index 7a1686c..5f06564 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Sinxronizasiya ktiv edilsin?</translation> <translation id="123724288017357924">Keş məzmununu iqnor edərək cari səhifəni yenidən yükləyin</translation> <translation id="1240288207750131269"><ph name="LANG" /> yüklənir</translation> +<translation id="1242883863226959074">cihaz</translation> <translation id="124678866338384709">Cari paneli bağlayın</translation> <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> paylaşmaq mümkün olmnadı</translation> @@ -918,6 +919,7 @@ <translation id="6864459304226931083">Şəkli endirin</translation> <translation id="6865313869410766144">Avtomatik data doldurması</translation> <translation id="6867400383614725881">Yeni Anonim tab</translation> +<translation id="6869056123412990582">kompüter</translation> <translation id="6882836635272038266">Təhlükəli hesab edilən veb saytlar, endirmələr və artırmalara qarşı standart qoruma.</translation> <translation id="688738109438487280">Mövcud datanı <ph name="TO_ACCOUNT" /> hesabına əlavə edin.</translation> <translation id="6891726759199484455">Parolu kopyalamaq üçün kiliddən çıxarın</translation> @@ -1154,6 +1156,7 @@ <translation id="8393700583063109961">Mesaj göndərin</translation> <translation id="8410695015584479363">Qiymətləri izləyin</translation> <translation id="8413126021676339697">Tam tarixçəni göstərin</translation> +<translation id="8424781820952413435">Səhifə göndərildi. Onu görmək üçün bu cihazda Chrome'u açın: <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Önbaxış tabının yarısı açılıb</translation> <translation id="8428213095426709021">Ayarlar</translation> <translation id="8438566539970814960">Axtarış və brauzer fəaliyyətini təkmilləşdirin</translation> @@ -1195,6 +1198,7 @@ <translation id="860282621117673749">Qiymət endirimi siqnalları</translation> <translation id="8616006591992756292"><ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> linkində Google Hesabına məxsus axtarış tarixçəsinin başqa formaları ola bilər.</translation> <translation id="8617240290563765734">Endirilmiş kontentdə təklif edilən link açılsın?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Panelləri digər cihazlarınızdan əldə etmək üçün sinxronizasiyanı aktiv edin.</translation> <translation id="8641930654639604085">Böyüklər üçün olan saytları blok edin</translation> <translation id="8655129584991699539">Datanı Chrome Ayarlarından silə bilərsiniz</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb index 4eaecbd..06e45d4 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Уключыць сінхранізацыю?</translation> <translation id="123724288017357924">Перазагрузіць бягучую старонку, ігнаруючы змесціва кэша</translation> <translation id="1240288207750131269">Ідзе загрузка пакета для наступнай мовы: <ph name="LANG" /></translation> +<translation id="1242883863226959074">прыладзе</translation> <translation id="124678866338384709">Закрыць бягучую ўкладку</translation> <translation id="1258753120186372309">Дудл Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Не ўдалося абагуліць змесціва наступнага тыпу: <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Спампаваць відарыс</translation> <translation id="6865313869410766144">Даныя для аўтазапаўнення</translation> <translation id="6867400383614725881">Новая ўкладка ў рэжыме інкогніта</translation> +<translation id="6869056123412990582">камп'ютары</translation> <translation id="6882836635272038266">Стандартная абарона ад вэб-сайтаў, спамповак і пашырэнняў, вядомых як небяспечныя.</translation> <translation id="688738109438487280">Дадаць існуючыя даныя ва ўліковы запіс <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Разблакіруйце, каб скапіраваць пароль</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Адправіць паведамленне</translation> <translation id="8410695015584479363">Адсочваць цэны</translation> <translation id="8413126021676339697">Паказаць усю гісторыю</translation> +<translation id="8424781820952413435">Старонка адпраўлена. Каб праглядзець яе, адкрыйце Chrome на <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Укладка перадпрагляду адкрыта напалову</translation> <translation id="8428213095426709021">Налады</translation> <translation id="8438566539970814960">Паскорыць пошук і прагляд</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Абвесткі пра зніжэнне цэн</translation> <translation id="8616006591992756292">На старонцы <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> могуць размяшчацца іншыя формы гісторыі прагляду сайтаў для вашага Уліковага запісу Google.</translation> <translation id="8617240290563765734">Адкрыць прапанаваны URL-адрас, указаны ў спампаваным змесціве?</translation> +<translation id="8621068256433641644">тэлефоне</translation> <translation id="8636825310635137004">Каб глядзець укладкі са сваіх іншых прылад, уключыце сінхранізацыю.</translation> <translation id="8641930654639604085">Спрабаваць блакіраваць сайты для дарослых</translation> <translation id="8655129584991699539">Даныя можна выдаліць у наладах Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb index d6977e5..818d30f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Uključiti sinhronizaciju?</translation> <translation id="123724288017357924">Ponovo učitajte tren. str. ignorir. sadrž. keš memor.</translation> <translation id="1240288207750131269">Učitavanje jezika <ph name="LANG" /></translation> +<translation id="1242883863226959074">uređaj</translation> <translation id="124678866338384709">Zatvori trenutnu karticu</translation> <translation id="1258753120186372309">Google crtež: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Nije moguće podijeliti <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Preuzmi sliku</translation> <translation id="6865313869410766144">Podaci za automatsko popunjavanje obrasca</translation> <translation id="6867400383614725881">Nova anonimna kartica</translation> +<translation id="6869056123412990582">računar</translation> <translation id="6882836635272038266">Standardna zaštita od web lokacija, preuzimanja i ekstenzija za koje se zna da su opasne.</translation> <translation id="688738109438487280">Dodavanje postojećih podataka na račun <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Otključajte da kopirate lozinku</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Pošalji poruku</translation> <translation id="8410695015584479363">Prati cijene</translation> <translation id="8413126021676339697">Pokaži cijelu povijest</translation> +<translation id="8424781820952413435">Stranica je poslana. Da je vidite, otvorite Chrome koristeći <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Kartica za pregled je napola otvorena</translation> <translation id="8428213095426709021">Postavke</translation> <translation id="8438566539970814960">Poboljšajte pretraživanje i pregledanje</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Obavještenja o padu cijena</translation> <translation id="8616006591992756292">Vaš Google račun može imati druge oblike historije pregledanja na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Otvoriti predloženi URL koji je naveden u preuzetom sadržaju?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Da dobijete svoje kartice s drugih uređaja, uključite sinhronizaciju.</translation> <translation id="8641930654639604085">Pokušaj blokirati web lokacije sa sadržajem za odrasle</translation> <translation id="8655129584991699539">Podatke možete obrisati u Postavkama Chromea</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb index 2a189d1..8a7210f3 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Vols activar la sincronització?</translation> <translation id="123724288017357924">Carrega pàgina actual; ignora contingut en memòria</translation> <translation id="1240288207750131269">S'està carregant <ph name="LANG" /></translation> +<translation id="1242883863226959074">dispositiu</translation> <translation id="124678866338384709">Tanca la pestanya actual</translation> <translation id="1258753120186372309">Doodle de Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">No s'ha pogut compartir <ph name="CONTENT_TYPE" />.</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Baixa la imatge</translation> <translation id="6865313869410766144">Dades d'Emplenament automàtic de formularis</translation> <translation id="6867400383614725881">Pestanya d'incògnit nova</translation> +<translation id="6869056123412990582">ordinador</translation> <translation id="6882836635272038266">Protecció estàndard contra llocs web, baixades i extensions que se sap que són perillosos.</translation> <translation id="688738109438487280">Afegeix les dades existents a <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Desbloqueja la pantalla per copiar la contrasenya</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Envia el missatge</translation> <translation id="8410695015584479363">Fes un seguiment dels preus</translation> <translation id="8413126021676339697">Mostra l'historial complet</translation> +<translation id="8424781820952413435">S'ha enviat la pàgina. Per veure-la, obre Chrome al teu <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">La pestanya de previsualització està oberta fins a la meitat</translation> <translation id="8428213095426709021">Configuració</translation> <translation id="8438566539970814960">Millora les cerques i la navegació</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Alertes de baixada de preu</translation> <translation id="8616006591992756292">A <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> trobaràs altres maneres d'explorar l'historial de navegació del teu Compte de Google.</translation> <translation id="8617240290563765734">Voleu obrir l'URL suggerit que s'especifica al contingut que s'ha baixat?</translation> +<translation id="8621068256433641644">telèfon</translation> <translation id="8636825310635137004">Activa la sincronització per accedir a les pestanyes dels altres dispositius que tinguis.</translation> <translation id="8641930654639604085">Prova de bloquejar els llocs web per a adults</translation> <translation id="8655129584991699539">Pots esborrar les dades a la configuració de Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb index 0b0e4c2d..c1101c9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Zapnout synchronizaci?</translation> <translation id="123724288017357924">Obnovit stránku a ignorovat obsah v mezipaměti</translation> <translation id="1240288207750131269">Načítání jazyka <ph name="LANG" /></translation> +<translation id="1242883863226959074">zařízení</translation> <translation id="124678866338384709">Zavřít aktuální kartu</translation> <translation id="1258753120186372309">Sváteční logo Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Sdílení obsahu typu <ph name="CONTENT_TYPE" /> se nezdařilo</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Stáhnout obrázek</translation> <translation id="6865313869410766144">Automatické vyplňování formulářů</translation> <translation id="6867400383614725881">Nová anonymní karta</translation> +<translation id="6869056123412990582">počítač</translation> <translation id="6882836635272038266">Standardní ochrana před weby, soubory ke stažení a rozšířeními, o nichž je známo, že jsou nebezpečné.</translation> <translation id="688738109438487280">Přidat existující data do účtu <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Chcete-li zkopírovat heslo, odemkněte zařízení</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Odeslat zprávu</translation> <translation id="8410695015584479363">Sledovat ceny</translation> <translation id="8413126021676339697">Zobrazit celou historii</translation> +<translation id="8424781820952413435">Stránka byla odeslána. Zobrazte ji v Chromu v zařízení <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Karta náhledu je otevřená na půlce</translation> <translation id="8428213095426709021">Nastavení</translation> <translation id="8438566539970814960">Vylepšit vyhledávání a procházení</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Upozornění na pokles ceny</translation> <translation id="8616006591992756292">Na stránce <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> mohou být k dispozici další druhy historie prohlížení zaznamenané ve vašem účtu Google.</translation> <translation id="8617240290563765734">Otevřít navrhovanou adresu URL uvedenou ve staženém obsahu?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Chcete-li získat přístup ke kartám ze svých ostatních zařízení, zapněte synchronizaci.</translation> <translation id="8641930654639604085">Pokusit se blokovat weby pouze pro dospělé</translation> <translation id="8655129584991699539">Data můžete vymazat v nastavení Chromu</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb index d1dafee1..b174986 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Vil du aktivere synkronisering?</translation> <translation id="123724288017357924">Genindlæs aktuel side, og ignorer indhold gemt i cache</translation> <translation id="1240288207750131269"><ph name="LANG" /> indlæses</translation> +<translation id="1242883863226959074">enhed</translation> <translation id="124678866338384709">Luk aktuel fane</translation> <translation id="1258753120186372309">Google-doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Det var ikke muligt at dele <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Download billede</translation> <translation id="6865313869410766144">Formulardata for AutoFyld</translation> <translation id="6867400383614725881">Ny inkognitofane</translation> +<translation id="6869056123412990582">computer</translation> <translation id="6882836635272038266">Standardbeskyttelse mod websites, downloads og udvidelser, som er registreret som skadelige.</translation> <translation id="688738109438487280">Føj eksisterende data til <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Lås op for at kopiere din adgangskode</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Send en besked</translation> <translation id="8410695015584479363">Følg prisudvikling</translation> <translation id="8413126021676339697">Vis hele historikken</translation> +<translation id="8424781820952413435">Siden er sendt. Åbn Chrome på din <ph name="DEVICE_TYPE" /> for at se den</translation> <translation id="8427875596167638501">Fanen forhåndsvisning er åbnet halvt</translation> <translation id="8428213095426709021">Indstillinger</translation> <translation id="8438566539970814960">Gør søgninger og browsing endnu bedre</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Underretninger om prisfald</translation> <translation id="8616006591992756292">Din Google-konto kan have andre former for browserhistorik på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Vil du åbne den foreslåede webadresse, som er angivet i det downloadede indhold?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Aktivér synkronisering for at få adgang til dine faner på dine andre enheder.</translation> <translation id="8641930654639604085">Prøv at blokere websites med indhold for voksne</translation> <translation id="8655129584991699539">Du kan rydde dataene i Chrome-indstillingerne</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb index 0260959..3e477dc 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Ενεργοποίηση συγχρονισμού;</translation> <translation id="123724288017357924">Επαναφ. τρέχ.σελ. αγνοώντας το περιεχ. κρυφ.μνήμης</translation> <translation id="1240288207750131269">Φόρτωση <ph name="LANG" /></translation> +<translation id="1242883863226959074">συσκευή</translation> <translation id="124678866338384709">Κλείσιμο τρέχουσας καρτέλας</translation> <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Δεν ήταν δυνατή η κοινοποίηση <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Λήψη εικόνας</translation> <translation id="6865313869410766144">Δεδομένα φόρμας αυτόματης συμπλήρωσης</translation> <translation id="6867400383614725881">Νέα καρτ. ανών. περιήγ.</translation> +<translation id="6869056123412990582">υπολογιστής</translation> <translation id="6882836635272038266">Βασική προστασία από ιστοτόπους, λήψεις και επεκτάσεις που είναι γνωστό ότι είναι επικίνδυνα.</translation> <translation id="688738109438487280">Προσθήκη υπαρχόντων δεδομένων στον λογαριασμό <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Ξεκλειδώστε για αντιγραφή του κωδικού πρόσβασης</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Αποστολή μηνύματος</translation> <translation id="8410695015584479363">Παρακολούθηση τιμών</translation> <translation id="8413126021676339697">Εμφάνιση πλήρους ιστορικού</translation> +<translation id="8424781820952413435">Η σελίδα στάλθηκε. Για να τη δείτε, ανοίξτε το Chrome σε <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Η καρτέλα προεπισκόπησης έχει ανοίξει κατά το ήμισυ</translation> <translation id="8428213095426709021">Ρυθμίσεις</translation> <translation id="8438566539970814960">Βελτιώστε τις αναζητήσεις και την περιήγηση</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Ειδοποιήσεις πτώσης τιμής</translation> <translation id="8616006591992756292">Ο Λογαριασμός σας Google ενδέχεται να διαθέτει άλλες μορφές ιστορικού περιήγησης στη διεύθυνση <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Άνοιγμα της προτεινόμενης διεύθυνσης URL που καθορίζεται στο ληφθέν περιεχόμενο;</translation> +<translation id="8621068256433641644">τηλέφωνο</translation> <translation id="8636825310635137004">Για να εμφανίζονται οι καρτέλες από τις άλλες συσκευές σας, ενεργοποιήστε τον συγχρονισμό.</translation> <translation id="8641930654639604085">Δοκιμάστε να αποκλείσετε τους ιστοτόπους με περιεχόμενο για ενηλίκους</translation> <translation id="8655129584991699539">Μπορείτε να διαγράψετε τα δεδομένα στις ρυθμίσεις του Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb index 9d4e334f..feeb713 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">¿Quieres activar la sincronización?</translation> <translation id="123724288017357924">Volver a cargar página actual; ignorar contenido en caché</translation> <translation id="1240288207750131269">Cargando <ph name="LANG" /></translation> +<translation id="1242883863226959074">dispositivo</translation> <translation id="124678866338384709">Cerrar la pestaña actual</translation> <translation id="1258753120186372309">Doodle de Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">No se pudo compartir <ph name="CONTENT_TYPE" /></translation> @@ -424,7 +425,7 @@ <translation id="3749259744154402564">No se admite esa acción</translation> <translation id="3771001275138982843">No se pudo descargar la actualización</translation> <translation id="3771033907050503522">Pestañas de incógnito</translation> -<translation id="3771290962915251154">Se inhabilitó esta configuración porque los Controles parentales están activados</translation> +<translation id="3771290962915251154">Se inhabilitó esta configuración porque los controles parentales están activados</translation> <translation id="3771694256347217732">Condiciones del Servicio de Google</translation> <translation id="3773755127849930740"><ph name="BEGIN_LINK" />Activa Bluetooth<ph name="END_LINK" /> para permitir la sincronización</translation> <translation id="3773856050682458546">Información básica y datos sobre los sitios web que visitas y las apps que usas</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Descargar imagen</translation> <translation id="6865313869410766144">Datos del formulario de autocompletar</translation> <translation id="6867400383614725881">Nueva pestaña de incógnito</translation> +<translation id="6869056123412990582">computadora</translation> <translation id="6882836635272038266">Protección estándar contra descargas, extensiones y sitios web identificados como peligrosos.</translation> <translation id="688738109438487280">Agrega los datos existentes a <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Desbloquea la pantalla para copiar tu contraseña</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Enviar mensaje</translation> <translation id="8410695015584479363">Seguimiento de precios</translation> <translation id="8413126021676339697">Mostrar historial completo</translation> +<translation id="8424781820952413435">Se envió la página. Para verla, abre Chrome en tu <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">La pestaña de vista previa está abierta a la mitad</translation> <translation id="8428213095426709021">Configuración</translation> <translation id="8438566539970814960">Mejorar las búsquedas y la navegación</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Alertas de descuentos</translation> <translation id="8616006591992756292">Es posible que tu cuenta de Google tenga otros formularios del historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">¿Quieres abrir la URL sugerida que se especifica en el contenido descargado?</translation> +<translation id="8621068256433641644">teléfono</translation> <translation id="8636825310635137004">Activa la sincronización para obtener las pestañas de tus otros dispositivos.</translation> <translation id="8641930654639604085">Tratar de bloquear los sitios para adultos</translation> <translation id="8655129584991699539">Puedes borrar los datos en la Configuración de Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb index 71d3b70..4186be3 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">¿Activar sincronización?</translation> <translation id="123724288017357924">Vuelve a cargar esta página sin contenido en caché</translation> <translation id="1240288207750131269">Cargando <ph name="LANG" /></translation> +<translation id="1242883863226959074">dispositivo</translation> <translation id="124678866338384709">Cierra la pestaña actual</translation> <translation id="1258753120186372309">Doodles de Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">No se ha podido compartir: <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Descargar imagen</translation> <translation id="6865313869410766144">Datos para autocompletar formularios</translation> <translation id="6867400383614725881">Nueva pestaña de incógnito</translation> +<translation id="6869056123412990582">ordenador</translation> <translation id="6882836635272038266">Protección estándar frente a descargas, extensiones y sitios web que se sabe que son peligrosos.</translation> <translation id="688738109438487280">Añade los datos actuales a <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Desbloquea la pantalla para copiar tu contraseña</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Enviar mensaje</translation> <translation id="8410695015584479363">Seguir precios</translation> <translation id="8413126021676339697">Mostrar historial completo</translation> +<translation id="8424781820952413435">Página enviada. Para verla, abre Chrome en tu <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">La pestaña de vista previa está medio abierta</translation> <translation id="8428213095426709021">Configuración</translation> <translation id="8438566539970814960">Mejorar las búsquedas y la navegación</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Alertas por bajada de precio</translation> <translation id="8616006591992756292">Es posible que tu cuenta de Google tenga otros tipos de historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">¿Quieres abrir la URL sugerida que se especifica en el contenido descargado?</translation> +<translation id="8621068256433641644">teléfono</translation> <translation id="8636825310635137004">Activa la sincronización para ver las pestañas de tus otros dispositivos.</translation> <translation id="8641930654639604085">Intentar bloquear sitios para adultos</translation> <translation id="8655129584991699539">Puedes borrar los datos en la configuración de Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb index beb3f2c..6fee4d7d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Kas lülitada sünkroonimine sisse?</translation> <translation id="123724288017357924">Praeguse lehe uuesti laadimine, eirates vahemälus olevat sisu</translation> <translation id="1240288207750131269">Keele laadimine: <ph name="LANG" /></translation> +<translation id="1242883863226959074">seadmes</translation> <translation id="124678866338384709">Aktiivse vahelehe sulgemine</translation> <translation id="1258753120186372309">Google'i Doodle'i vigurlogo: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Üksust <ph name="CONTENT_TYPE" /> ei õnnestunud jagada</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Laadi kujutis alla</translation> <translation id="6865313869410766144">Automaattäitmise vormiandmed</translation> <translation id="6867400383614725881">Uus inkognito vaheleht</translation> +<translation id="6869056123412990582">arvutis</translation> <translation id="6882836635272038266">Standardne kaitse teadaolevalt ohtlike veebisaitide, allalaadimiste ja laienduste vastu.</translation> <translation id="688738109438487280">Lisab olemasolevad andmed kontole <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Avage oma parooli kopeerimiseks</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Saatke sõnum</translation> <translation id="8410695015584479363">Jälgi hindu</translation> <translation id="8413126021676339697">Kuva kogu ajalugu</translation> +<translation id="8424781820952413435">Leht saadetud. Selle vaatamiseks avage Chrome oma <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Eelvaate vaheleht on pooleldi avatud</translation> <translation id="8428213095426709021">Seaded</translation> <translation id="8438566539970814960">Otsingute ja sirvimise paremaks muutmine</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Hinnalanguse märguanded</translation> <translation id="8616006591992756292">Aadressil <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> võib teie Google'i kontol olla muus vormis sirvimisajalugu.</translation> <translation id="8617240290563765734">Kas avada allalaaditud sisus toodud soovitatud URL?</translation> +<translation id="8621068256433641644">telefonis</translation> <translation id="8636825310635137004">Vahelehtede hankimiseks oma teistest seadmetest lülitage sünkroonimine sisse.</translation> <translation id="8641930654639604085">Proovi blokeerida täiskasvanutele mõeldud saidid</translation> <translation id="8655129584991699539">Andmeid saab kustutada Chrome’i seadetes.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb index 13db84a..3248152e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Sinkronizazioa aktibatu nahi duzu?</translation> <translation id="123724288017357924">Kargatu orria, cacheko edukiari ez ikusi eginda</translation> <translation id="1240288207750131269"><ph name="LANG" /> kargatzen</translation> +<translation id="1242883863226959074">gailuan</translation> <translation id="124678866338384709">Itxi oraingo fitxa</translation> <translation id="1258753120186372309">Google doodle-a: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Ezin izan da partekatu <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Deskargatu irudia</translation> <translation id="6865313869410766144">Bete inprimakiko datuak automatikoki</translation> <translation id="6867400383614725881">Sortu ezkutuko moduko fitxa bat</translation> +<translation id="6869056123412990582">ordenagailuan</translation> <translation id="6882836635272038266">Kaltegarriak direla dakigun webgune, deskarga eta luzapenen aurkako babes estandarra.</translation> <translation id="688738109438487280">Gehitu lehendik dituzun datuak <ph name="TO_ACCOUNT" /> kontuan.</translation> <translation id="6891726759199484455">Desblokeatu pasahitza kopiatzeko</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Bidali mezua</translation> <translation id="8410695015584479363">Egin prezioen jarraipena</translation> <translation id="8413126021676339697">Erakutsi historia osoa</translation> +<translation id="8424781820952413435">Bidali da orria. Ikusteko, ireki Chrome <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">Aurrebista-fitxa erdiirekita dago</translation> <translation id="8428213095426709021">Ezarpenak</translation> <translation id="8438566539970814960">Hobetu bilaketak eta arakatze-jarduerak</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Prezio-jaitsierei buruzko alertak</translation> <translation id="8616006591992756292">Google-ko kontuko historia arakatzeko beste modu batzuk aurki zenitzake <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> webgunean.</translation> <translation id="8617240290563765734">Deskargatutako edukian iradokitako URL helbidea ireki nahi duzu?</translation> +<translation id="8621068256433641644">telefonoan</translation> <translation id="8636825310635137004">Beste gailuetako fitxak eskura izateko, aktibatu sinkronizazioa.</translation> <translation id="8641930654639604085">Blokeatu helduentzako webguneak</translation> <translation id="8655129584991699539">Chrome ezarpenetan garbi ditzakezu datuak</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb index d95a1e6..17e44ae5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">همگامسازی روشن شود؟</translation> <translation id="123724288017357924">تازهسازی صفحه اصلی با نادیده گرفتن محتوای حافظه پنهان</translation> <translation id="1240288207750131269">درحال بار کردن <ph name="LANG" /></translation> +<translation id="1242883863226959074">دستگاه</translation> <translation id="124678866338384709">بستن برگه کنونی</translation> <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> همرسانی نشد</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">بارگیری تصویر</translation> <translation id="6865313869410766144">تکمیل خودکار دادههای فرم</translation> <translation id="6867400383614725881">برگه ناشناس جدید</translation> +<translation id="6869056123412990582">رایانه</translation> <translation id="6882836635272038266">محافظت استاندارد دربرابر وبسایتها، بارگیریها، و افزونههایی که خطرناک بودنشان مشخص شده است.</translation> <translation id="688738109438487280">افزودن دادههای موجود به <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">برای کپی کردن گذرواژهتان، قفل صفحه را باز کنید</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">ارسال پیام</translation> <translation id="8410695015584479363">پیگیری قیمت</translation> <translation id="8413126021676339697">نمایش کل سابقه</translation> +<translation id="8424781820952413435">صفحه ارسال شد. برای دیدن آن، Chrome را در <ph name="DEVICE_TYPE" /> باز کنید</translation> <translation id="8427875596167638501">برگه پیشنمایش نیمهباز است</translation> <translation id="8428213095426709021">تنظیمات</translation> <translation id="8438566539970814960">بهبود جستجوها و مرور</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">اعلانهای کاهش قیمت</translation> <translation id="8616006591992756292">ممکن است حساب Google شما اشکال دیگری از سابقه مرور در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> داشته باشد.</translation> <translation id="8617240290563765734">نشانی وب مشخص شده در محتوای بارگیریشده باز شود؟</translation> +<translation id="8621068256433641644">تلفن</translation> <translation id="8636825310635137004">برای دسترسی به برگههایتان در دستگاههای دیگر، همگامسازی را روشن کنید.</translation> <translation id="8641930654639604085">سایتهای مخصوص بزرگسالان مسدود شوند</translation> <translation id="8655129584991699539">میتوانید دادهها را در تنظیمات Chrome پاک کنید</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb index 46560535..1a52c0ff 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Otetaanko synkronointi käyttöön?</translation> <translation id="123724288017357924">Päivitä nykyinen sivu, ohita välimuistin sisältö</translation> <translation id="1240288207750131269">Ladataan: <ph name="LANG" /></translation> +<translation id="1242883863226959074">laitteella</translation> <translation id="124678866338384709">Sulje nykyinen välilehti</translation> <translation id="1258753120186372309">Google-piirros: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Jakaminen epäonnistui: <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Lataa kuva</translation> <translation id="6865313869410766144">Automaattisesti täydennetyt lomaketiedot</translation> <translation id="6867400383614725881">Uusi incognito-välilehti</translation> +<translation id="6869056123412990582">tietokoneella</translation> <translation id="6882836635272038266">Perustason suojaus vaaralliseksi tiedettyjä sivustoja, latauksia ja laajennuksia vastaan.</translation> <translation id="688738109438487280">Lisää olemassa olevat tiedot tilille <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Avaa lukitus kopioidaksesi salasanan</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Lähetä viesti</translation> <translation id="8410695015584479363">Seuraa hintoja</translation> <translation id="8413126021676339697">Näytä koko selaushistoria</translation> +<translation id="8424781820952413435">Sivu lähetetty. Jos haluat nähdä sen, avaa Chrome <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Esikatseluvälilehti on puoliksi auki</translation> <translation id="8428213095426709021">Asetukset</translation> <translation id="8438566539970814960">Paranna hakuja ja selausta</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Ilmoitukset hinnanalennuksista</translation> <translation id="8616006591992756292">Google-tililläsi voi olla muita selaushistoriatietoja osoitteessa <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Avataanko ladatussa sisällössä määritetty ehdotettu URL-osoite?</translation> +<translation id="8621068256433641644">puhelimella</translation> <translation id="8636825310635137004">Ota synkronointi käyttöön, niin voit käyttää välilehtiäsi kaikilla laitteilla.</translation> <translation id="8641930654639604085">Pyri estämään aikuisille tarkoitetut sivustot</translation> <translation id="8655129584991699539">Voit tyhjentää datan Chromen asetuksissa</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb index a0a7bea..104e7b4 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Activer la synchronisation?</translation> <translation id="123724288017357924">Actualiser la page, ignorer le contenu mis en cache</translation> <translation id="1240288207750131269"><ph name="LANG" /> en cours de chargement…</translation> +<translation id="1242883863226959074">appareil</translation> <translation id="124678866338384709">Fermer l'onglet actuel</translation> <translation id="1258753120186372309">Logo commémoratif de Google : <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Partage impossible du contenu suivant : <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Télécharger l'image</translation> <translation id="6865313869410766144">Données de remplissage automatique de formulaires</translation> <translation id="6867400383614725881">Nouvel onglet de navigation privée</translation> +<translation id="6869056123412990582">ordinateur</translation> <translation id="6882836635272038266">Protection standard contre les sites Web, les téléchargements et les extensions qui sont réputés être dangereux.</translation> <translation id="688738109438487280">Ajouter les données existantes à <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Déverrouillez pour copier votre mot de passe</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Envoyer un message</translation> <translation id="8410695015584479363">Suivre les prix</translation> <translation id="8413126021676339697">Afficher l'historique complet</translation> +<translation id="8424781820952413435">Page envoyée. Pour la consulter, ouvrez Chrome sur votre <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">L'onglet d'aperçu est ouvert à moitié</translation> <translation id="8428213095426709021">Paramètres</translation> <translation id="8438566539970814960">Amélioration des recherches et de la navigation</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Alertes relatives aux baisses de prix</translation> <translation id="8616006591992756292">D'autres formes d'historique de navigation peuvent exister sur votre compte Google à l'adresse <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Ouvrir l'URL suggérée du contenu téléchargé?</translation> +<translation id="8621068256433641644">téléphone</translation> <translation id="8636825310635137004">Pour synchroniser vos onglets sur vos autres appareils, activez la synchronisation.</translation> <translation id="8641930654639604085">Essayer de bloquer les sites pour adultes</translation> <translation id="8655129584991699539">Vous pouvez effacer les données dans les paramètres de Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb index 3f1a18b..b33e390 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Activer la synchronisation ?</translation> <translation id="123724288017357924">Actualiser page active et ignorer contenu en cache</translation> <translation id="1240288207750131269"><ph name="LANG" /> : chargement…</translation> +<translation id="1242883863226959074">appareil</translation> <translation id="124678866338384709">Fermer l'onglet actuel</translation> <translation id="1258753120186372309">Doodle : <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Impossible de partager le contenu suivant : <ph name="CONTENT_TYPE" /></translation> @@ -52,6 +53,7 @@ <translation id="1307205233980126133">Désolé, nous n'avons pas pu vérifier vos identifiants</translation> <translation id="1310482092992808703">Regrouper les onglets</translation> <translation id="1311657260431405215">Ce code QR n'est pas une URL : <ph name="QRCODEVALUE" /></translation> +<translation id="1316212908214730110">texte_stylisé_chrome</translation> <translation id="1327257854815634930">Historique de navigation ouvert</translation> <translation id="1331212799747679585">Impossible de mettre à jour Chrome. Plus d'options</translation> <translation id="1332501820983677155">Raccourcis liés aux fonctionnalités de Google Chrome</translation> @@ -919,6 +921,7 @@ <translation id="6864459304226931083">Télécharger l'image</translation> <translation id="6865313869410766144">Données de saisie automatique</translation> <translation id="6867400383614725881">Nouvel onglet de navigation privée</translation> +<translation id="6869056123412990582">ordinateur</translation> <translation id="6882836635272038266">Ce mode offre une protection standard contre les téléchargements, les extensions et les sites Web connus pour être dangereux.</translation> <translation id="688738109438487280">Ajoutez les données existantes au compte <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Déverrouillez pour copier votre mot de passe</translation> @@ -961,6 +964,7 @@ <translation id="718926126787620637">Liste des dossiers de favoris ouverte à hauteur maximale</translation> <translation id="7191430249889272776">L'onglet a été ouvert en arrière-plan.</translation> <translation id="7233236755231902816">Pour afficher le Web dans votre langue, téléchargez la dernière version de Chrome</translation> +<translation id="7242755609445462077">Texte stylisé, <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Assurez-vous que la synchronisation est activée sur votre <ph name="TARGET_DEVICE_NAME" /> dans Chrome</translation> <translation id="7252076891734325316">Posez le téléphone près de l'ordinateur</translation> <translation id="7274013316676448362">Site bloqué</translation> @@ -1154,6 +1158,7 @@ <translation id="8393700583063109961">Envoyer un message</translation> <translation id="8410695015584479363">Suivre les prix</translation> <translation id="8413126021676339697">Afficher l'historique complet</translation> +<translation id="8424781820952413435">Page envoyée. Pour la voir, ouvrez Chrome sur votre <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">L'onglet "Aperçu" est ouvert à moitié</translation> <translation id="8428213095426709021">Paramètres</translation> <translation id="8438566539970814960">Améliorer les recherches et la navigation</translation> @@ -1195,6 +1200,7 @@ <translation id="860282621117673749">Alertes de prix en baisse</translation> <translation id="8616006591992756292">Votre compte Google conserve peut-être d'autres formes d'historique de navigation sur la page <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Ouvrir l'URL suggérée indiquée dans le contenu téléchargé ?</translation> +<translation id="8621068256433641644">téléphone</translation> <translation id="8636825310635137004">Activez la synchronisation pour accéder à vos onglets sur vos autres appareils.</translation> <translation id="8641930654639604085">Essayer de bloquer les sites réservés aux adultes</translation> <translation id="8655129584991699539">Vous pouvez effacer les données dans les paramètres Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb index 6bd4f30..cc75817 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Queres activar a sincronización?</translation> <translation id="123724288017357924">Cargar a páxina, ignorando o contido da caché</translation> <translation id="1240288207750131269">Cargando <ph name="LANG" /></translation> +<translation id="1242883863226959074">dispositivo</translation> <translation id="124678866338384709">Pechar a pestana actual</translation> <translation id="1258753120186372309">Doodle de Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Non se puido compartir este contido: <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Descargar imaxe</translation> <translation id="6865313869410766144">Autocompletar datos do formulario</translation> <translation id="6867400383614725881">Nova pestana de incógnito</translation> +<translation id="6869056123412990582">ordenador</translation> <translation id="6882836635272038266">Protección estándar contra os sitios web, as descargas e as extensións que se consideren perigosos.</translation> <translation id="688738109438487280">Engade os datos existentes a <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Desbloquea a pantalla para copiar o teu contrasinal</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Enviar mensaxe</translation> <translation id="8410695015584479363">Facer seguimento de prezos</translation> <translation id="8413126021676339697">Mostrar historial completo</translation> +<translation id="8424781820952413435">Enviouse a páxina. Para vela, abre Chrome no teu <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">A pestana de vista previa abriuse ata a metade</translation> <translation id="8428213095426709021">Configuración</translation> <translation id="8438566539970814960">Mellorar as buscas e a navegación</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Alertas de baixada de prezos</translation> <translation id="8616006591992756292">É posible que a túa conta de Google teña outras formas do historial de navegación en <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Queres abrir o URL específico suxerido no contido descargado?</translation> +<translation id="8621068256433641644">teléfono</translation> <translation id="8636825310635137004">Activa a sincronización para sincronizar as pestanas dos demais dispositivos.</translation> <translation id="8641930654639604085">Tentar bloquear sitios con contido para adultos</translation> <translation id="8655129584991699539">Podes borrar os datos na configuración de Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb index eaa48b933..3a75d1a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -52,6 +52,7 @@ <translation id="1307205233980126133">માફ કરશો, અમે તમારી લૉગ ઇન વિગતો કન્ફર્મ કરી શક્યા નથી</translation> <translation id="1310482092992808703">ટૅબનું ગ્રૂપ બનાવો</translation> <translation id="1311657260431405215">આ QR કોડ કોઈ URL નથી: <ph name="QRCODEVALUE" /></translation> +<translation id="1316212908214730110">chrome_stylized_highlight_</translation> <translation id="1327257854815634930">નૅવિગેશન ઇતિહાસ ખુલ્લો છે</translation> <translation id="1331212799747679585">Chrome અપડેટ કરી શકાતું નથી. વધુ વિકલ્પો</translation> <translation id="1332501820983677155">Google Chrome સુવિધાના શૉર્ટકટ્સ</translation> @@ -961,6 +962,7 @@ <translation id="718926126787620637">બુકમાર્ક ફોલ્ડરોની સૂચિ સંપૂર્ણ ઊંચાઈએ ખોલી</translation> <translation id="7191430249889272776">ટેબ પૃષ્ઠભૂમિમાં ખોલવામાં આવ્યું છે.</translation> <translation id="7233236755231902816">વેબ તમારી ભાષામાં જોવા માટે Chromeનું એકદમ નવું વર્ઝન મેળવો</translation> +<translation id="7242755609445462077">સ્ટાઇલિશ હાઇલાઇટ <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">ખાતરી કરો કે <ph name="TARGET_DEVICE_NAME" />માં Chromeમાં સિંક ચાલુ કરેલું છે</translation> <translation id="7252076891734325316">તમારા ફોનને કમ્પ્યુટરની નજીક રાખો</translation> <translation id="7274013316676448362">અવરોધિત સાઇટ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb index 3d35c0d..b91d6cc 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">क्या सिंक करना चालू करें?</translation> <translation id="123724288017357924">कैश सामग्री को अनदेखा कर, मौजूदा पेज फिर लोड करें</translation> <translation id="1240288207750131269"><ph name="LANG" /> लोड हो रही है</translation> +<translation id="1242883863226959074">डिवाइस</translation> <translation id="124678866338384709">वर्तमान टैब को बंद करें</translation> <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> शेयर नहीं किया जा सका</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">इमेज डाउनलोड करें</translation> <translation id="6865313869410766144">ऑटोमैटिक भरने वाले फ़ॉर्म का डेटा</translation> <translation id="6867400383614725881">नया गुप्त टैब</translation> +<translation id="6869056123412990582">कंप्यूटर</translation> <translation id="6882836635272038266">उन वेबसाइटों, डाउनलोड, और एक्सटेंशन से मानक सुरक्षा जो नुकसान पहुंचा सकते हैं.</translation> <translation id="688738109438487280">मौजूदा डेटा <ph name="TO_ACCOUNT" /> में जोड़ें.</translation> <translation id="6891726759199484455">अपना पासवर्ड कॉपी करने के लिए अनलॉक करें</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">संदेश भेजें</translation> <translation id="8410695015584479363">कीमतें ट्रैक करें</translation> <translation id="8413126021676339697">पूरा इतिहास दिखाएं</translation> +<translation id="8424781820952413435">पेज भेजा गया. इसे देखने के लिए, अपने <ph name="DEVICE_TYPE" /> पर Chrome खोलें</translation> <translation id="8427875596167638501">'झलक' टैब आधी स्क्रीन में खुला हुआ है</translation> <translation id="8428213095426709021">सेटिंग</translation> <translation id="8438566539970814960">खोजों और ब्राउज़िंग को बेहतर बनाएं</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">कीमत में कमी की सूचनाएं</translation> <translation id="8616006591992756292">आपके Google खाते में <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> पर अन्य प्रकार के ब्राउज़िंग इतिहास हो सकतेे हैं.</translation> <translation id="8617240290563765734">सुझाया गया वह URL खोलें जिसे डाउनलोड की गई सामग्री में बताया गया है?</translation> +<translation id="8621068256433641644">फ़ोन</translation> <translation id="8636825310635137004">अपने अन्य डिवाइस से अपने टैब पाने के लिए, सिंक करना चालू करें.</translation> <translation id="8641930654639604085">वयस्क साइटें ब्लॉक करने की कोशिश करें</translation> <translation id="8655129584991699539">आप 'Chrome सेटिंग' में डेटा हटा सकते हैं</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb index 824c21c2..c96e06fd 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Želite li uključiti sinkronizaciju?</translation> <translation id="123724288017357924">Ponovno učitavanje trenutačne stranice uz zanemarivanje sadržaja iz predmemorije</translation> <translation id="1240288207750131269">Učitava se <ph name="LANG" /></translation> +<translation id="1242883863226959074">uređaju</translation> <translation id="124678866338384709">Zatvaranje trenutačne kartice</translation> <translation id="1258753120186372309">Googleov doodle logotip: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Nije moguće podijeliti <ph name="CONTENT_TYPE" /></translation> @@ -919,6 +920,7 @@ <translation id="6864459304226931083">Preuzmi sliku</translation> <translation id="6865313869410766144">Automatski ispuni podatke u obrascu</translation> <translation id="6867400383614725881">Nova anonimna kartica</translation> +<translation id="6869056123412990582">računalu</translation> <translation id="6882836635272038266">Standardna zaštita od web-lokacija, preuzimanja i proširenja za koje je poznato da su opasna.</translation> <translation id="688738109438487280">Dodavanje postojećih podataka na račun <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Otključajte za kopiranje zaporke</translation> @@ -1155,6 +1157,7 @@ <translation id="8393700583063109961">Pošaljite poruku</translation> <translation id="8410695015584479363">Prati cijene</translation> <translation id="8413126021676339697">Pokaži cijelu povijest</translation> +<translation id="8424781820952413435">Stranica je poslana. Da biste je vidjeli, otvorite Chrome na svojem <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Kartica pregleda je poluotvorena</translation> <translation id="8428213095426709021">Postavke</translation> <translation id="8438566539970814960">Poboljšajte pretraživanje i pregledavanje</translation> @@ -1196,6 +1199,7 @@ <translation id="860282621117673749">Obavijesti o padu cijena</translation> <translation id="8616006591992756292">Na vašem Google računu možda postoje drugi oblici povijesti pregledavanja na stranici <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Želite li otvoriti predloženi URL naveden u preuzetom sadržaju?</translation> +<translation id="8621068256433641644">telefonu</translation> <translation id="8636825310635137004">Da bi se prikazale kartice s vaših ostalih uređaja, uključite sinkronizaciju.</translation> <translation id="8641930654639604085">Pokušaj blokirati web-lokacije za odrasle</translation> <translation id="8655129584991699539">Podatke možete izbrisati u postavkama Chromea</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb index bd36c018..93d1161 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Bekapcsolja a szinkronizálást?</translation> <translation id="123724288017357924">Oldal újratöltése a gyorsítótárat figyelmen kívül hagyva</translation> <translation id="1240288207750131269">Betöltés: <ph name="LANG" /></translation> +<translation id="1242883863226959074">eszközén</translation> <translation id="124678866338384709">Az aktuális lap bezárása</translation> <translation id="1258753120186372309">Google ünnepi embléma: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Nem sikerült a(z) <ph name="CONTENT_TYPE" /> megosztása</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Kép letöltése</translation> <translation id="6865313869410766144">Automatikus kitöltési űrlapadatok</translation> <translation id="6867400383614725881">Új inkognitó lap</translation> +<translation id="6869056123412990582">számítógépén</translation> <translation id="6882836635272038266">Normál védelem azon webhelyekkel, letöltésekkel és bővítményekkel szemben, amelyekről ismert, hogy veszélyesek.</translation> <translation id="688738109438487280">Meglévő adatok hozzáadása a(z) <ph name="TO_ACCOUNT" /> fiókhoz.</translation> <translation id="6891726759199484455">Oldja fel a képernyőzárat a jelszó másolásához</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Üzenet küldése</translation> <translation id="8410695015584479363">Árak nyomon követése</translation> <translation id="8413126021676339697">Az összes előzmény</translation> +<translation id="8424781820952413435">Oldal elküldve. Megtekintéséhez nyissa meg a Chrome-ot <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">Félmagasságban megnyitott előnézeti ablak</translation> <translation id="8428213095426709021">Beállítások</translation> <translation id="8438566539970814960">Keresések és böngészés javítása</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Árcsökkenési értesítések</translation> <translation id="8616006591992756292">Előfordulhat, hogy a böngészési előzmények más formái még megtalálhatók Google-fiókjában a <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> webhelyen.</translation> <translation id="8617240290563765734">Megnyitja a letöltött tartalomban szereplő javasolt URL-t?</translation> +<translation id="8621068256433641644">telefonján</translation> <translation id="8636825310635137004">Ha a többi eszközén is szeretné elérni lapjait, kapcsolja be a szinkronizálást</translation> <translation id="8641930654639604085">Felnőtteknek szóló webhelyek letiltásának megkísérlése</translation> <translation id="8655129584991699539">Az adatokat a Chrome beállításaiban módosíthatja</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb index 8ac9dfb..7c79367 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Միացնե՞լ համաժամացումը</translation> <translation id="123724288017357924">Վերաբեռնել ընթացիկ էջը` անտեսելով հիշապահեստի բովանդակությունը</translation> <translation id="1240288207750131269">Բեռնվում է <ph name="LANG" /> լեզվի փաթեթը</translation> +<translation id="1242883863226959074">սարք</translation> <translation id="124678866338384709">Փակել ընթացիկ ներդիրը</translation> <translation id="1258753120186372309">Google doodle՝ <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Չհաջողվեց ուղարկել բովանդակությունը (<ph name="CONTENT_TYPE" />)</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Ներբեռնել պատկերը</translation> <translation id="6865313869410766144">Ինքնալցման տվյալներ</translation> <translation id="6867400383614725881">Նոր ինկոգնիտո ներդիր</translation> +<translation id="6869056123412990582">համակարգիչ</translation> <translation id="6882836635272038266">Սովորական պաշտպանություն վտանգավոր կայքերից, ընդլայնումներից և ներբեռնումներից։</translation> <translation id="688738109438487280">Ավելացնել առկա տվյալները <ph name="TO_ACCOUNT" /> հաշվում:</translation> <translation id="6891726759199484455">Գաղտնաբառը պատճենելու համար ապակողպեք էկրանը</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Ուղարկել հաղորդագրություն</translation> <translation id="8410695015584479363">Հետևել գներին</translation> <translation id="8413126021676339697">Ցույց տալ ամբողջ պատմությունը</translation> +<translation id="8424781820952413435">Էջն ուղարկվեց։ Այն տեսնելու համար բացեք Chrome դիտարկիչը <ph name="DEVICE_TYPE" /> հեռախոսում։</translation> <translation id="8427875596167638501">Նախադիտման ներդիրը կիսաբաց է</translation> <translation id="8428213095426709021">Կարգավորումներ</translation> <translation id="8438566539970814960">Լավացնել որոնումն ու էջերի դիտումը</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Գների իջեցման մասին ծանուցումներ</translation> <translation id="8616006591992756292">Ձեր Google հաշվում կարող են լինել այցելությունների պատմության այլ ձևեր ևս: Դրանք կարող եք գտնել <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> էջում:</translation> <translation id="8617240290563765734">Բացե՞լ ներբեռնված բովանդակությունում հատկորոշված URL-ը:</translation> +<translation id="8621068256433641644">հեռախոս</translation> <translation id="8636825310635137004">Ձեր մյուս սարքերում եղած ներդիրներն օգտագործելու համար միացրեք համաժամացումը:</translation> <translation id="8641930654639604085">Արգելափակել մեծահասակների համար նախատեսված կայքերը</translation> <translation id="8655129584991699539">Տվյալները կարող եք ջնջել Chrome-ի կարգավորումներում</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb index fc0cb113..7f68bf2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Aktifkan sinkronisasi?</translation> <translation id="123724288017357924">Memuat ulang halaman, mengabaikan konten dalam cache</translation> <translation id="1240288207750131269">Memuat <ph name="LANG" /></translation> +<translation id="1242883863226959074">perangkat</translation> <translation id="124678866338384709">Menutup tab aktif</translation> <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Tidak dapat membagikan <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Download gambar</translation> <translation id="6865313869410766144">Data formulir isi-otomatis</translation> <translation id="6867400383614725881">Tab Samaran baru</translation> +<translation id="6869056123412990582">komputer</translation> <translation id="6882836635272038266">Perlindungan standar terhadap situs, download, dan ekstensi yang bereputasi berbahaya.</translation> <translation id="688738109438487280">Menambahkan data yang sudah ada ke <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Buka kunci untuk menyalin sandi Anda</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Kirim pesan</translation> <translation id="8410695015584479363">Pantau harga</translation> <translation id="8413126021676339697">Tampilkan histori lengkap</translation> +<translation id="8424781820952413435">Halaman dikirim. Untuk melihatnya, buka Chrome di <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Tab pratinjau terbuka setengah</translation> <translation id="8428213095426709021">Setelan</translation> <translation id="8438566539970814960">Jadikan penelusuran dan penjelajahan lebih baik</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Notifikasi diskon</translation> <translation id="8616006591992756292">Akun Google Anda mungkin memiliki bentuk histori penjelajahan lainnya di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Buka URL yang disarankan yang ditentukan di konten download?</translation> +<translation id="8621068256433641644">ponsel</translation> <translation id="8636825310635137004">Untuk mengakses tab Anda dari perangkat lainnya, aktifkan sinkronisasi.</translation> <translation id="8641930654639604085">Coba blokir situs dewasa</translation> <translation id="8655129584991699539">Anda dapat menghapus data di Setelan Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb index ae56a6f..c0cb1bf 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Kveikja á samstillingu?</translation> <translation id="123724288017357924">Endurhlaða núverandi síðu, hunsa efni í skyndiminni</translation> <translation id="1240288207750131269">Hleður <ph name="LANG" /></translation> +<translation id="1242883863226959074">tæki</translation> <translation id="124678866338384709">Loka núverandi flipa</translation> <translation id="1258753120186372309">Google dúlla: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Ekki tókst að deila <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Sækja mynd</translation> <translation id="6865313869410766144">Gögn sjálfvirkrar útfyllingar eyðublaða</translation> <translation id="6867400383614725881">Nýr huliðsflipi</translation> +<translation id="6869056123412990582">tölva</translation> <translation id="6882836635272038266">Hefðbundin vörn gegn vefsvæðum, niðurhali og viðbótum sem vitað er að eru hættuleg.</translation> <translation id="688738109438487280">Bæta fyrirliggjandi gögnum við <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Opnaðu til að afrita aðgangsorðið þitt</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Senda skilaboð</translation> <translation id="8410695015584479363">Vakta verð</translation> <translation id="8413126021676339697">Sýna allan feril</translation> +<translation id="8424781820952413435">Síða send. Opnaðu Chrome í <ph name="DEVICE_TYPE" /> til að sjá hana.</translation> <translation id="8427875596167638501">Forskoðunarflipinn er hálfopinn</translation> <translation id="8428213095426709021">Stillingar</translation> <translation id="8438566539970814960">Bæta leit og vafra</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Tilkynningar um verðlækkanir</translation> <translation id="8616006591992756292">Google reikningurinn þinn kann að vera með annars konar vefskoðunarferil á <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Opna ráðlögðu vefslóðina sem tilgreind er í sótta efninu?</translation> +<translation id="8621068256433641644">sími</translation> <translation id="8636825310635137004">Kveiktu á samstillingu til að fá aðgang að flipunum þínum í öðrum tækjum.</translation> <translation id="8641930654639604085">Reyna að setja vefsvæði fyrir fullorðna á bannlista</translation> <translation id="8655129584991699539">Þú getur hreinsað gögnin í stillingum Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb index 06c39c82..4eaa92a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Attivare la sincronizzazione?</translation> <translation id="123724288017357924">Ricarica pag. corr. Ignora i contenuti nella cache</translation> <translation id="1240288207750131269">Caricamento della lingua <ph name="LANG" /> in corso…</translation> +<translation id="1242883863226959074">dispositivo</translation> <translation id="124678866338384709">Chiudi scheda corrente</translation> <translation id="1258753120186372309">Doodle di Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Impossibile condividere <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Scarica immagine</translation> <translation id="6865313869410766144">Dati della compilazione automatica dei moduli</translation> <translation id="6867400383614725881">Nuova scheda in incognito</translation> +<translation id="6869056123412990582">computer</translation> <translation id="6882836635272038266">Sistemi di protezione standard da estensioni, siti web e download che sono noti per essere pericolosi.</translation> <translation id="688738109438487280">Aggiungi i dati esistenti a <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Sblocca per copiare la password</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Invia messaggio</translation> <translation id="8410695015584479363">Monitora prezzi</translation> <translation id="8413126021676339697">Mostra cronologia completa</translation> +<translation id="8424781820952413435">Pagina inviata. Per visualizzarla, apri Chrome sul tuo <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">La scheda di anteprima è aperta nella parte inferiore dello schermo</translation> <translation id="8428213095426709021">Impostazioni</translation> <translation id="8438566539970814960">Migliora le ricerche e le attività di navigazione</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Avvisi su cali di prezzo</translation> <translation id="8616006591992756292">Il tuo Account Google potrebbe avere altre forme di cronologia di navigazione all'indirizzo <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Aprire l'URL consigliato specificato nei contenuti scaricati?</translation> +<translation id="8621068256433641644">telefono</translation> <translation id="8636825310635137004">Attiva la sincronizzazione per trovare le tue schede degli altri dispositivi.</translation> <translation id="8641930654639604085">Prova a bloccare siti per adulti</translation> <translation id="8655129584991699539">Puoi cancellare i dati nelle Impostazioni di Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb index d7c7a58..bed0dba6 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">להפעיל סנכרון?</translation> <translation id="123724288017357924">טעינה מחדש של הדף הנוכחי, תוך התעלמות מתוכן שמאוחסן בקובץ השמור</translation> <translation id="1240288207750131269"><ph name="LANG" /> בטעינה</translation> +<translation id="1242883863226959074">מכשיר</translation> <translation id="124678866338384709">סגירת הכרטיסייה הנוכחית</translation> <translation id="1258753120186372309">דודל של Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">לא ניתן היה לשתף את ה<ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">הורדת תמונה</translation> <translation id="6865313869410766144">נתוני טפסים למילוי אוטומטי</translation> <translation id="6867400383614725881">כרטיסיית מצב אנונימי חדשה</translation> +<translation id="6869056123412990582">מחשב</translation> <translation id="6882836635272038266">הגנה רגילה מפני אתרים, הורדות ותוספים שידועים כמסוכנים.</translation> <translation id="688738109438487280">הוספת נתונים קיימים אל <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">ביטול הנעילה יאפשר להעתיק את הסיסמה</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">שליחת הודעה</translation> <translation id="8410695015584479363">מעקב אחר מחירים</translation> <translation id="8413126021676339697">להצגת ההיסטוריה המלאה</translation> +<translation id="8424781820952413435">הדף נשלח. כדי להציג אותו, יש לפתוח דפדפן Chrome ב<ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">כרטיסיית התצוגה המקדימה פתוחה בחצי גובה המסך</translation> <translation id="8428213095426709021">הגדרות</translation> <translation id="8438566539970814960">שיפור החיפושים והגלישה</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">התראות על הנחות</translation> <translation id="8616006591992756292">ייתכן שלחשבון Google שלך יהיו צורות אחרות של היסטוריית גלישה בכתובת <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">האם לעבור אל כתובת האתר שצוינה כהצעה בתוכן שהורדת?</translation> +<translation id="8621068256433641644">טלפון</translation> <translation id="8636825310635137004">כדי לקבל את הכרטיסיות מהמכשירים האחרים שלך, יש להפעיל את הסנכרון.</translation> <translation id="8641930654639604085">יש לנסות לחסום אתרים שמכילים תוכן למבוגרים</translation> <translation id="8655129584991699539">אפשר לנקות את הנתונים דרך הגדרות Chrome.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb index 88d3682..dc46260 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">გსურთ სინქრონიზაციის ჩართვა?</translation> <translation id="123724288017357924">გვერდის გადატვირთვა ქეშირ. კონტენტის იგნორირებით</translation> <translation id="1240288207750131269">იტვირთება <ph name="LANG" /></translation> +<translation id="1242883863226959074">მოწყობილობა</translation> <translation id="124678866338384709">მიმდინარე ჩანართის დახურვა</translation> <translation id="1258753120186372309">Google Doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ვერ გაზიარდა</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">სურათის ჩამოტვირთვა</translation> <translation id="6865313869410766144">ფორმათა მონაცემების ავტომატური შევსება</translation> <translation id="6867400383614725881">ახალი ინკოგნიტო ჩანართი</translation> +<translation id="6869056123412990582">კომპიუტერი</translation> <translation id="6882836635272038266">სტანდარტული დაცვა ცნობილი სახიფათო ვებსაიტებისგან, ჩამოტვირთვებისა და გაფართოებებისგან.</translation> <translation id="688738109438487280">არსებული მონაცემების <ph name="TO_ACCOUNT" />-ში დამატება.</translation> <translation id="6891726759199484455">განბლოკეთ თქვენი პაროლის კოპირებისთვის</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">შეტყობინების გაგზავნა</translation> <translation id="8410695015584479363">ფასებზე თვალის დევნება</translation> <translation id="8413126021676339697">სრული ისტორიის ჩვენება</translation> +<translation id="8424781820952413435">გვერდი გაიგზავნა. მის სანახავად გახსენით Chrome თქვენს <ph name="DEVICE_TYPE" />-ზე</translation> <translation id="8427875596167638501">გადახედვის ჩანართი ნახევრადგახსნილია</translation> <translation id="8428213095426709021">პარამეტრები</translation> <translation id="8438566539970814960">გააუმჯობესეთ ძიებები და ვებსაიტების დათვალიერება</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">გაფრთხილებები ფასის დაწევაზე</translation> <translation id="8616006591992756292">თქვენს Google ანგარიშში შეიძლება ინახებოდეს სხვა ტიპის დათვალიერების ისტორიაც, რომელიც ხელმისაწვდომია მისამართზე: <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">გაიხსნას ჩამოტვირთულ შემცველობაში რეკომენდირებული URL?</translation> +<translation id="8621068256433641644">ტელეფონი</translation> <translation id="8636825310635137004">თქვენს სხვა მოწყობილობებზე არსებულ ჩანართებზე წვდომის მისაღებად, ჩართეთ სინქრონიზაცია.</translation> <translation id="8641930654639604085">შეძლებისდაგვარად, უფროსებისთვის განკუთვნილი საიტების დაბლოკვა</translation> <translation id="8655129584991699539">მონაცემების გასუფთავება შეგიძლიათ Chrome-ის პარამეტრებიდან</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb index 1b9b772..a85446e7 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Синхрондау қосылсын ба?</translation> <translation id="123724288017357924">Кэштелген мазмұнды елемей, ағымдағы бетті жаңарту</translation> <translation id="1240288207750131269"><ph name="LANG" /> тілі жүктелуде</translation> +<translation id="1242883863226959074">құрылғы</translation> <translation id="124678866338384709">Ағымдағы қойындыны жабу</translation> <translation id="1258753120186372309">Google Doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> бөлісу мүмкін болмады.</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Суретті жүктеп алу</translation> <translation id="6865313869410766144">Нысан деректерін автотолтыру</translation> <translation id="6867400383614725881">Жаңа инкогнито қойындысы</translation> +<translation id="6869056123412990582">компьютер</translation> <translation id="6882836635272038266">Қауіпті саналатын веб-сайттардан, жүктеп алынған файлдардан және кеңейтімдерден стандартты қорғау.</translation> <translation id="688738109438487280">Бар деректерді <ph name="TO_ACCOUNT" /> есептік жазбасына енгізіңіз.</translation> <translation id="6891726759199484455">Құпия сөзді көшіру үшін құлыпты ашыңыз</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Хабар жіберу</translation> <translation id="8410695015584479363">Бағаларды қадағалау</translation> <translation id="8413126021676339697">Толық журналды көрсету</translation> +<translation id="8424781820952413435">Бет жіберілді. Оны көру үшін <ph name="DEVICE_TYPE" /> құрылғысында Chrome-ды ашыңыз.</translation> <translation id="8427875596167638501">"Алдын ала қарау" қойындысы жартылай ашық.</translation> <translation id="8428213095426709021">Параметрлер</translation> <translation id="8438566539970814960">Іздеу және сайттарды шолу жұмысын жақсарту</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Бағаның төмендеуі туралы хабарландырулар</translation> <translation id="8616006591992756292"><ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> мекенжайында Google есептік жазбасымен шолу тарихының басқа да үлгілері болуы мүмкін.</translation> <translation id="8617240290563765734">Жүктелген мазмұндағы ұсынылған URL мекенжайын ашу қажет пе?</translation> +<translation id="8621068256433641644">телефон</translation> <translation id="8636825310635137004">Басқа құрылғылардағы қойындыларды алу үшін, синхрондауды қосыңыз</translation> <translation id="8641930654639604085">Ересектерге арналған сайттарды бөгеу</translation> <translation id="8655129584991699539">Деректерді Chrome параметрлерінде өшіруге болады.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb index 1b7b8aa..c2619f0b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">បើកសមកាលកម្ម?</translation> <translation id="123724288017357924">ផ្ទុកទំព័របច្ចុប្បន្នឡើងវិញ ដោយមិនអើពីនឹងមាតិកាដែលបានរក្សាទុកក្នុងឃ្លាំងផ្ទុកទិន្នន័យ</translation> <translation id="1240288207750131269">កំពុងផ្ទុក <ph name="LANG" /></translation> +<translation id="1242883863226959074">ឧបករណ៍</translation> <translation id="124678866338384709">បិទផ្ទាំងបច្ចុប្បន្ន</translation> <translation id="1258753120186372309">Google doodle៖ <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">មិនអាចចែករំលែក <ph name="CONTENT_TYPE" /> បានទេ</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">ទាញយករូបភាព</translation> <translation id="6865313869410766144">បំពេញទិន្នន័យបែបបទស្វ័យប្រវត្តិ</translation> <translation id="6867400383614725881">ផ្ទាំងឯកជនថ្មី</translation> +<translation id="6869056123412990582">កុំព្យូទ័រ</translation> <translation id="6882836635272038266">ការការពារស្តង់ដារពីគេហទំព័រ ការទាញយក និងកម្មវិធីបន្ថែមដែលដឹងថាមានគ្រោះថ្នាក់។</translation> <translation id="688738109438487280">បន្ថែមទិន្នន័យដែលមានស្រាប់ទៅ <ph name="TO_ACCOUNT" /> ។</translation> <translation id="6891726759199484455">ដោះសោដើម្បីចម្លងពាក្យសម្ងាត់របស់អ្នក</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">ផ្ញើសារ</translation> <translation id="8410695015584479363">តាមដានតម្លៃ</translation> <translation id="8413126021676339697">បង្ហាញប្រវត្តិពេញលេញ</translation> +<translation id="8424781820952413435">ទំព័រត្រូវបានផ្ញើ។ ដើម្បីមើលទំព័រ សូមបើក Chrome នៅលើ <ph name="DEVICE_TYPE" /> របស់អ្នក</translation> <translation id="8427875596167638501">ផ្ទាំងមើលសាកល្បងបានបើកពាក់កណ្ដាល</translation> <translation id="8428213095426709021">ការកំណត់</translation> <translation id="8438566539970814960">ធ្វើឱ្យការស្វែងរក និងការរុករកប្រសើរជាងមុន</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">ការជូនដំណឹងអំពីការធ្លាក់ថ្លៃ</translation> <translation id="8616006591992756292">គណនី Google របស់អ្នកអាចនឹងមានទម្រង់ប្រវត្តិរុករកផ្សេងទៀតនៅ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ។</translation> <translation id="8617240290563765734">បើក URL ដែលបានស្នើដែលបានបញ្ជាក់នៅក្នុងមាតិកាដែលបានទាញយកដែរឬទេ?</translation> +<translation id="8621068256433641644">ទូរសព្ទ</translation> <translation id="8636825310635137004">ដើម្បីទទួលបានផ្ទាំងរបស់អ្នកពីឧបករណ៍ផ្សេងទៀតរបស់អ្នក សូមបើកការធ្វើសមកាលកម្ម</translation> <translation id="8641930654639604085">ព្យាយាមរារាំងទំព័រសម្រាប់មនុស្សធំ</translation> <translation id="8655129584991699539">អ្នកអាចសម្អាតទិន្នន័យនៅក្នុងការកំណត់ Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb index dfcd94f0..f688644b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">ಸಿಂಕ್ ಆನ್ ಮಾಡುವುದೇ?</translation> <translation id="123724288017357924">ಸಂಗ್ರಹ ಮಾಡಿದ ವಿಷಯವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ, ಪ್ರಸ್ತುತ ಪುಟ ಮರುಲೋಡ್ ಮಾಡಿ</translation> <translation id="1240288207750131269"><ph name="LANG" /> ಅನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> +<translation id="1242883863226959074">ಸಾಧನ</translation> <translation id="124678866338384709">ಪ್ರಸ್ತುತ ಟ್ಯಾಬ್ ಮುಚ್ಚಿ</translation> <translation id="1258753120186372309">Google ಡೂಡಲ್: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">ಚಿತ್ರ ಡೌನ್ಲೋಡ್ ಮಾಡಿ</translation> <translation id="6865313869410766144">ಸ್ವಯಂತುಂಬುವಿಕೆ ಫಾರ್ಮ್ ಡೇಟಾ</translation> <translation id="6867400383614725881">ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ</translation> +<translation id="6869056123412990582">ಕಂಪ್ಯೂಟರ್</translation> <translation id="6882836635272038266">ಅಪಾಯಕಾರಿ ಎಂದು ತಿಳಿದಿರುವ ವೆಬ್ಸೈಟ್ಗಳು, ಡೌನ್ಲೋಡ್ಗಳು ಮತ್ತು ವಿಸ್ತರಣೆಗಳ ವಿರುದ್ಧ ಪ್ರಮಾಣಿತ ಸುರಕ್ಷತೆ.</translation> <translation id="688738109438487280">ಪ್ರಸ್ತುತ ಡೇಟಾವನ್ನು <ph name="TO_ACCOUNT" /> ಗೆ ಸೇರಿಸಿ.</translation> <translation id="6891726759199484455">ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನಕಲಿಸಲು ಅನ್ಲಾಕ್ ಮಾಡಲಾಗಿದೆ</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">ಸಂದೇಶ ಕಳುಹಿಸು</translation> <translation id="8410695015584479363">ದರಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ</translation> <translation id="8413126021676339697">ಪೂರ್ತಿ ಇತಿಹಾಸವನ್ನು ತೋರಿಸಿ</translation> +<translation id="8424781820952413435">ಪುಟವನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ. ಅದನ್ನು ನೋಡಲು, ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿ Chrome ಅನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="8427875596167638501">ಪೂರ್ವವೀಕ್ಷಣೆ ಟ್ಯಾಬ್ ಅರ್ಧ ತೆರೆದಿದೆ</translation> <translation id="8428213095426709021">ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="8438566539970814960">ಹುಡುಕಾಟಗಳನ್ನು ಮತ್ತು ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಉತ್ತಮಗೊಳಿಸುವಂತೆ ಮಾಡಿ</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">ಬೆಲೆ ಕುಸಿತ ಎಚ್ಚರಿಕೆಗಳು</translation> <translation id="8616006591992756292">ನಿಮ್ಮ Google ಖಾತೆಯು <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> ನಲ್ಲಿ ಇತರ ವಿಧಗಳ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಹೊಂದಿರಬಹುದು.</translation> <translation id="8617240290563765734">ಡೌನ್ಲೋಡ್ ಮಾಡಲಾದ ವಿಷಯದಲ್ಲಿ ಸೂಚಿಸಲಾದ ನಿರ್ದಿಷ್ಟ URL ತೆರೆಯುವುದೇ?</translation> +<translation id="8621068256433641644">ಫೋನ್</translation> <translation id="8636825310635137004">ನಿಮ್ಮ ಇತರ ಸಾಧನಗಳಿಂದ ನಿಮ್ಮ ಟ್ಯಾಬ್ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, ಸಿಂಕ್ ಆನ್ ಮಾಡಿ.</translation> <translation id="8641930654639604085">ವಯಸ್ಕರ ಸೈಟ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲು ಪ್ರಯತ್ನಿಸಿ</translation> <translation id="8655129584991699539">ನೀವು ಡೇಟಾವನ್ನು Chrome ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ತೆರವುಗೊಳಿಸಬಹುದು</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb index a7c12ea..aef6cb5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">동기화를 사용하시겠습니까?</translation> <translation id="123724288017357924">캐시된 콘텐츠를 무시하고 현재 페이지 새로고침</translation> <translation id="1240288207750131269"><ph name="LANG" /> 로드 중</translation> +<translation id="1242883863226959074">기기</translation> <translation id="124678866338384709">현재 탭 닫기</translation> <translation id="1258753120186372309">Google 기념일 로고: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> 공유할 수 없음</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">이미지 다운로드</translation> <translation id="6865313869410766144">양식 데이터 자동 완성</translation> <translation id="6867400383614725881">새 시크릿 탭</translation> +<translation id="6869056123412990582">컴퓨터</translation> <translation id="6882836635272038266">위험한 웹사이트, 다운로드 항목 및 확장 프로그램에 대응하는 표준 보호 기능입니다.</translation> <translation id="688738109438487280"><ph name="TO_ACCOUNT" />에 기존 데이터 추가</translation> <translation id="6891726759199484455">비밀번호를 복사하려면 잠금 해제하세요</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">메시지 보내기</translation> <translation id="8410695015584479363">가격 추적</translation> <translation id="8413126021676339697">방문 기록 전체 보기</translation> +<translation id="8424781820952413435">페이지를 전송했습니다. <ph name="DEVICE_TYPE" /> 기기에서 Chrome을 열어서 확인하세요.</translation> <translation id="8427875596167638501">미리보기 탭이 절반 높이로 열림</translation> <translation id="8428213095426709021">설정</translation> <translation id="8438566539970814960">검색 및 탐색 기능 개선</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">가격 인하 알림</translation> <translation id="8616006591992756292">Google 계정의 내 활동(<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />)에는 인터넷 사용 기록이 다른 형식으로 남아 있을 수도 있습니다.</translation> <translation id="8617240290563765734">다운로드한 콘텐츠에 지정된 추천 URL을 여시겠습니까?</translation> +<translation id="8621068256433641644">스마트폰</translation> <translation id="8636825310635137004">다른 기기에서 탭을 가져오려면 동기화를 사용 설정하세요.</translation> <translation id="8641930654639604085">성인용 사이트 차단 시도</translation> <translation id="8655129584991699539">Chrome 설정에서 데이터를 삭제할 수 있습니다.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb index 17f3d28..0dcef17 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Шайкештирүү күйгүзүлсүнбү?</translation> <translation id="123724288017357924">Кэшти колдонбой, учурдагы баракты кайра жүктөө</translation> <translation id="1240288207750131269"><ph name="LANG" /> жүктөлүүдө</translation> +<translation id="1242883863226959074">түзмөктө</translation> <translation id="124678866338384709">Учурдагы өтмөктү жабуу</translation> <translation id="1258753120186372309">Google чиймелек: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> менен бөлүшүлгөн жок</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Сүрөттү жүктөп алуу</translation> <translation id="6865313869410766144">Автотолтуруу формасынын дайындары</translation> <translation id="6867400383614725881">Жаңы жашыруун өтмөк</translation> +<translation id="6869056123412990582">компьютерде</translation> <translation id="6882836635272038266">Кооптуу деп таанылган вебсайттардан, жүктөлүп алынган файлдардан жана кеңейтүүлөрдөн стандарттуу түрдө коргоо.</translation> <translation id="688738109438487280">Учурдагы дайындарды <ph name="TO_ACCOUNT" /> аккаунтка кошуу.</translation> <translation id="6891726759199484455">Сырсөзүңүздү көчүрүү үчүн кулпусун ачыңыз</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Билдирүү жөнөтүү</translation> <translation id="8410695015584479363">Бааларга көз салуу</translation> <translation id="8413126021676339697">Таржымалды толугу менен көрсөтүү</translation> +<translation id="8424781820952413435">Барак жөнөтүлдү. Аны көрүү үчүн Chrome'ду <ph name="DEVICE_TYPE" /> ачыңыз</translation> <translation id="8427875596167638501">Алдын ала көрүү өтмөгүнүн жарымы жабык</translation> <translation id="8428213095426709021">Жөндөөлөр</translation> <translation id="8438566539970814960">Издөө жана серептөө аракеттериңизди жакшыртыңыз</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Баалардын түшкөнү жөнүндө эскертүүлөр</translation> <translation id="8616006591992756292">Google аккаунтуңуздун серептөө таржымалынын башка түрлөрү <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> дарегинде болушу мүмкүн.</translation> <translation id="8617240290563765734">Жүктөлүп алынган мазмунда белгиленип сунушталган URL ачылсынбы?</translation> +<translation id="8621068256433641644">телефондо</translation> <translation id="8636825310635137004">Өтмөктөрүңүздү башка түзмөктөрүңүздөн алуу үчүн шайкештирүүнү күйгүзүңүз.</translation> <translation id="8641930654639604085">Чоң кишилерге ылайыктуу сайттарга кирүүгө бөгөт коюуга аракет кылуу</translation> <translation id="8655129584991699539">Бул дайындарды Chrome'дун жөндөөлөрүнөн тазаласаңыз болот</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb index ea6e70a5..f3a4bc3 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">ເປີດການຊິ້ງຂໍ້ມູນບໍ?</translation> <translation id="123724288017357924">ໂຫຼດໜ້າປັດຈຸບັນຄືນໃໝ່, ໂດຍລະເລີຍເນື້ອຫາທີ່ຈັດເກັບໄວ້ຖາວອນ</translation> <translation id="1240288207750131269">ກຳລັງໂຫຼດ <ph name="LANG" /></translation> +<translation id="1242883863226959074">ອຸປະກອນ</translation> <translation id="124678866338384709">ປິດແຖບປັດຈຸບັນ</translation> <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">ບໍ່ສາມາດແບ່ງປັນ <ph name="CONTENT_TYPE" /> ໄດ້</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">ດາວໂຫຼດຮູບພາບ</translation> <translation id="6865313869410766144">ຕື່ມຂໍ້ມູນແບບຟອມອັດຕະໂນມັດ</translation> <translation id="6867400383614725881">ແຖບບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່</translation> +<translation id="6869056123412990582">ຄອມພິວເຕີ</translation> <translation id="6882836635272038266">ການປົກປ້ອງມາດຕະຖານຕໍ່ກັບເວັບໄຊ, ການດາວໂຫຼດ ແລະ ສ່ວນຂະຫຍາຍທີ່ຮູ້ຈັກວ່າເປັນອັນຕະລາຍ.</translation> <translation id="688738109438487280">ເພີ່ມຂໍ້ມູນທີ່ມີຢູ່ໃສ່ <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">ປົດລັອກເພື່ອສຳເນົາລະຫັດຜ່ານຂອງທ່ານ</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">ສົ່ງຂໍ້ຄວາມ</translation> <translation id="8410695015584479363">ຕິດຕາມລາຄາ</translation> <translation id="8413126021676339697">ສະແດງປະຫວັດທັງໝົດ</translation> +<translation id="8424781820952413435">ສົ່ງໜ້າແລ້ວ. ເພື່ອເບິ່ງມັນ, ໃຫ້ເປີດ Chrome ຢູ່ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ</translation> <translation id="8427875596167638501">ແຖບສະແດງຕົວຢ່າງເປີດເຄິ່ງໜຶ່ງ</translation> <translation id="8428213095426709021">ການຕັ້ງຄ່າ</translation> <translation id="8438566539970814960">ເຮັດໃຫ້ການຊອກຫາ ແລະ ການທ່ອງເວັບດີຂຶ້ນ</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">ແຈ້ງເຕືອນຫຼຸດລາຄາ</translation> <translation id="8616006591992756292">ບັນຊີ Google ຂອງທ່ານອາດຈະມີຮູບແບບອື່ນຂອງປະຫວັດການທ່ອງເວັບຢູ່ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">ເປີດ URL ແນະນຳໃຫ້ທີ່ລະບຸໄວ້ຢູ່ໃນເນື້ອໃນດາວໂຫຼດໄວ້ບໍ?</translation> +<translation id="8621068256433641644">ໂທລະສັບ</translation> <translation id="8636825310635137004">ເພື່ອໂຫຼດແຖບຂອງທ່ານຈາກອຸປະກອນອື່ນ, ໃຫ້ເປີດການຊິ້ງຂໍ້ມູນກ່ອນ.</translation> <translation id="8641930654639604085">ພະຍາຍາມບລັອກເວັບໄຊສຳລັບຜູ້ໃຫຍ່</translation> <translation id="8655129584991699539">ທ່ານສາມາດລຶບລ້າງຂໍ້ມູນໄດ້ໃນການຕັ້ງຄ່າ Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb index 1584669e..9d7f12ab 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Įjungti sinchronizavimą?</translation> <translation id="123724288017357924">Įk. šį puslapį iš naujo, nepais. talp. es. turinio</translation> <translation id="1240288207750131269">Įkeliama <ph name="LANG" /></translation> +<translation id="1242883863226959074">įrenginyje</translation> <translation id="124678866338384709">Uždaryti dabartinį skirtuką</translation> <translation id="1258753120186372309">„Google“ papuoštas logotipas: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Nepavyko bendrinti turinio: <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Atsisiųsti vaizdą</translation> <translation id="6865313869410766144">Automatinio pildymo formos duomenys</translation> <translation id="6867400383614725881">Naujas inkognito skirtukas</translation> +<translation id="6869056123412990582">kompiuteryje</translation> <translation id="6882836635272038266">Įprasta apsauga nuo svetainių, atsisiuntimų ir plėtinių, kurie yra žinomi kaip pavojingi.</translation> <translation id="688738109438487280">Pridėti esamus duomenis prie <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Atrakinkite, kad galėtumėte kopijuoti slaptažodį</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Siųsti pranešimą</translation> <translation id="8410695015584479363">Stebėti kainas</translation> <translation id="8413126021676339697">Rodyti visą istoriją</translation> +<translation id="8424781820952413435">Puslapis išsiųstas. Norėdami jį peržiūrėti, atidarykite „Chrome“ <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Peržiūros skirtukas atidarytas iki pusės ekrano</translation> <translation id="8428213095426709021">Nustatymai</translation> <translation id="8438566539970814960">Tobulinti paieškas ir naršymą</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Įspėjimai apie sumažintas kainas</translation> <translation id="8616006591992756292">„Google“ paskyroje gali būti kito tipo naršymo istorijos, kuri pasiekiama adresu <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Atidaryti atsisiųstame turinyje nurodytą siūlomą URL?</translation> +<translation id="8621068256433641644">telefone</translation> <translation id="8636825310635137004">Jei norite pasiekti skirtukus iš kitų įrenginių, įjunkite sinchronizavimą.</translation> <translation id="8641930654639604085">Bandyti užblokuoti suaugusiesiems skirtas svetaines</translation> <translation id="8655129584991699539">Duomenis galite išvalyti „Chrome“ nustatymų“ skiltyje</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb index f89dbc8..9241ad02 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Vai ieslēgt sinhronizāciju?</translation> <translation id="123724288017357924">Atkārtoti ielādēt lapu, ignorējot saturu kešatmiņā</translation> <translation id="1240288207750131269">Notiek valodas ielāde (<ph name="LANG" />)</translation> +<translation id="1242883863226959074">ierīcē</translation> <translation id="124678866338384709">Aizvērt pašreizējo cilni</translation> <translation id="1258753120186372309">Google svētku logotips: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Nevarēja kopīgot: <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Lejupielādēt attēlu</translation> <translation id="6865313869410766144">Automātiskās aizpildes veidlapas dati</translation> <translation id="6867400383614725881">Jauna inkognito cilne</translation> +<translation id="6869056123412990582">datorā</translation> <translation id="6882836635272038266">Standarta aizsardzība pret zināmām bīstamām tīmekļa vietnēm, lejupielādēm un paplašinājumiem.</translation> <translation id="688738109438487280">Pievienot esošos datus kontam <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Atbloķējiet, lai kopētu paroli</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Sūtīt ziņojumu</translation> <translation id="8410695015584479363">Izsekot cenām</translation> <translation id="8413126021676339697">Rādīt pilnu vēsturi</translation> +<translation id="8424781820952413435">Lapa ir nosūtīta. Lai to skatītu, atveriet pārlūku Chrome savā <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">Priekšskatījuma cilne ir daļēji atvērta</translation> <translation id="8428213095426709021">Iestatījumi</translation> <translation id="8438566539970814960">Uzlabot meklēšanu un pārlūkošanu</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Brīdinājumi par cenu kritumu</translation> <translation id="8616006591992756292">Jūsu Google kontam var būt citu veidu pārlūkošanas vēstures dati vietnē <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Vai atvērt lejupielādētajā saturā norādīto ieteikto URL?</translation> +<translation id="8621068256433641644">tālrunī</translation> <translation id="8636825310635137004">Ieslēdziet sinhronizāciju, lai būtu pieejamas cilnes no citām jūsu ierīcēm.</translation> <translation id="8641930654639604085">Pēc iespējas bloķēt vietnes ar pieaugušajiem paredzētu saturu</translation> <translation id="8655129584991699539">Varat notīrīt datus Chrome iestatījumos</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb index 12b4376a..b9a33cc 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Да се вклучи синхронизација?</translation> <translation id="123724288017357924">Вчитај тековна страница, без кеширана содржина</translation> <translation id="1240288207750131269">Се вчитува <ph name="LANG" /></translation> +<translation id="1242883863226959074">уред</translation> <translation id="124678866338384709">Затвори ја тековната картичка</translation> <translation id="1258753120186372309">Google Doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Не може да се сподели <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Преземи слика</translation> <translation id="6865313869410766144">Автоматско пополнување податоци во формулар</translation> <translation id="6867400383614725881">Нова картичка „Инкогнито“</translation> +<translation id="6869056123412990582">компјутер</translation> <translation id="6882836635272038266">Стандардна заштита од веб-сајтови, преземања и екстензии за коишто се знае дека се опасни.</translation> <translation id="688738109438487280">Додајте ги постоечките податоци во <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Отклучете за да ја копирате лозинката</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Испрати порака</translation> <translation id="8410695015584479363">Следете ги цените</translation> <translation id="8413126021676339697">Прикажи ја целата историја</translation> +<translation id="8424781820952413435">Страницата е испратена. За да ја видите, отворете ја Chrome на вашиот <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Картичката за преглед е отворена на половина екран</translation> <translation id="8428213095426709021">Поставки</translation> <translation id="8438566539970814960">Подобрете ги пребарувањата и прелистувањето</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Известувања за попусти</translation> <translation id="8616006591992756292">Вашата сметка на Google можеби има други видови историја на прелистување на <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Да се отвори предложената URL наведена во преземената содржина?</translation> +<translation id="8621068256433641644">телефон</translation> <translation id="8636825310635137004">За да ги добиете картичките од другите уреди, вклучете ја синхронизацијата.</translation> <translation id="8641930654639604085">Обиди се да ги блокираш сајтовите за возрасни</translation> <translation id="8655129584991699539">Податоците може да ги избришете во „Поставки за Chrome“</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb index c34741c..cd5e36d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">സമന്വയിപ്പിക്കൽ ഓണാക്കണോ?</translation> <translation id="123724288017357924">കാഷെ ചെയ്ത ഉള്ളടക്കം ഒഴിവാക്കി കൊണ്ട്, നിലവിലെ പേജ് റീലോഡ് ചെയ്യുക</translation> <translation id="1240288207750131269"><ph name="LANG" /> ലോഡ് ചെയ്യുന്നു</translation> +<translation id="1242883863226959074">ഉപകരണം</translation> <translation id="124678866338384709">നിലവിലെ ടാബ് അടയ്ക്കുക</translation> <translation id="1258753120186372309">Google ഡൂഡിൽ: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> പങ്കിടാനായില്ല</translation> @@ -52,6 +53,7 @@ <translation id="1307205233980126133">ക്ഷമിക്കണം, നിങ്ങളുടെ ക്രെഡൻഷ്യലുകൾ സാധൂകരിക്കാൻ ഞങ്ങൾക്കായില്ല</translation> <translation id="1310482092992808703">ടാബുകൾ ഗ്രൂപ്പ് ചെയ്യൂ</translation> <translation id="1311657260431405215">ഈ QR കോഡ് ഒരു URL അല്ല: <ph name="QRCODEVALUE" /></translation> +<translation id="1316212908214730110">chrome_stylized_highlight_</translation> <translation id="1327257854815634930">നാവിഗേഷൻ ചരിത്രം തുറന്നിരിക്കുന്നു</translation> <translation id="1331212799747679585">Chrome അപ്ഡേറ്റ് ചെയ്യാനാവില്ല. കൂടുതൽ ഓപ്ഷനുകൾ</translation> <translation id="1332501820983677155">Google Chrome ഫീച്ചർ കുറുക്കുവഴികൾ</translation> @@ -919,6 +921,7 @@ <translation id="6864459304226931083">ചിത്രം ഡൗൺലോഡ് ചെയ്യുക</translation> <translation id="6865313869410766144">ഓട്ടോഫിൽ ഫോം ഡാറ്റ</translation> <translation id="6867400383614725881">പുതിയ അദൃശ്യ ടാബ്</translation> +<translation id="6869056123412990582">കമ്പ്യൂട്ടർ</translation> <translation id="6882836635272038266">അപകടകരമെന്ന് അറിയപ്പെടുന്ന വെബ്സൈറ്റുകൾ, ഡൗൺലോഡുകള്, വിപുലീകരണങ്ങൾ എന്നിവയ്ക്ക് എതിരായ സ്റ്റാൻഡേർഡ് സുരക്ഷ.</translation> <translation id="688738109438487280">നിലവിലുള്ള വിവരങ്ങളെ <ph name="TO_ACCOUNT" /> അക്കൗണ്ടിലേക്ക് ചേർക്കുക</translation> <translation id="6891726759199484455">പാസ്വേഡ് പകർത്താൻ അൺലോക്ക് ചെയ്യുക</translation> @@ -961,6 +964,7 @@ <translation id="718926126787620637">മുഴുവൻ ഉയരത്തിൽ തുറന്ന ബുക്ക്മാർക്ക് ഫോൾഡറുകളുടെ ലിസ്റ്റ്</translation> <translation id="7191430249889272776">ടാബ് പശ്ചാത്തലത്തിൽ തുറന്നു.</translation> <translation id="7233236755231902816">നിങ്ങളുടെ ഭാഷയിൽ വെബ് കാണാൻ Chrome-ൻ്റെ ഏറ്റവും പുതിയ പതിപ്പ് നേടൂ</translation> +<translation id="7242755609445462077">പ്രത്യേക സ്റ്റൈലിൽ ആക്കിയ ഹൈലൈറ്റ് <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Chrome-ൽ <ph name="TARGET_DEVICE_NAME" /> ഉപകരണത്തിലെ സമന്വയിപ്പിക്കൽ ഓണാക്കിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക</translation> <translation id="7252076891734325316">നിങ്ങളുടെ ഫോൺ കമ്പ്യൂട്ടറിന്റെ അടുത്ത് വയ്ക്കുക</translation> <translation id="7274013316676448362">സൈറ്റ് ബ്ലോക്ക് ചെയ്തു</translation> @@ -1154,6 +1158,7 @@ <translation id="8393700583063109961">സന്ദേശം അയയ്ക്കുക</translation> <translation id="8410695015584479363">നിരക്കുകൾ ട്രാക്ക് ചെയ്യുക</translation> <translation id="8413126021676339697">മുഴുവന് ചരിത്രവും കാണിക്കുക</translation> +<translation id="8424781820952413435">പേജ് അയച്ചു. അത് കാണാൻ, നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എന്നതിൽ Chrome തുറക്കുക</translation> <translation id="8427875596167638501">പ്രിവ്യു ടാബ് പാതി തുറന്നിരിക്കുന്നു</translation> <translation id="8428213095426709021">ക്രമീകരണങ്ങള്</translation> <translation id="8438566539970814960">തിരയലുകളും ബ്രൗസിംഗും മികച്ചതാക്കുക</translation> @@ -1195,6 +1200,7 @@ <translation id="860282621117673749">വിലയിടിവ് മുന്നറിയിപ്പുകൾ</translation> <translation id="8616006591992756292">നിങ്ങളുടെ Google അക്കൗണ്ടിന് <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> എന്നതിൽ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രമുണ്ടായിരിക്കാം.</translation> <translation id="8617240290563765734">ഡൗൺലോഡ് ചെയ്ത ഉള്ളടക്കത്തിൽ നിർദ്ദേശിച്ചിട്ടുള്ള URL തുറക്കണോ?</translation> +<translation id="8621068256433641644">ഫോൺ</translation> <translation id="8636825310635137004">നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിൽ നിന്നുള്ള ടാബുകൾ ലഭിക്കാൻ, സമന്വയിപ്പിക്കൽ ഓണാക്കുക.</translation> <translation id="8641930654639604085">മുതിർന്നവർക്കുള്ള സൈറ്റുകൾ ബ്ലോക്കുചെയ്യുന്നത് പരീക്ഷിച്ചുനോക്കൂ</translation> <translation id="8655129584991699539">Chrome ക്രമീകരണത്തിൽ നിങ്ങൾക്ക് ഈ ഡാറ്റ മായ്ക്കാം</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb index 665ba49..7804ed9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Hidupkan penyegerakan?</translation> <translation id="123724288017357924">Muat semula laman semasa dan abaikan kdgn dicache</translation> <translation id="1240288207750131269">Memuatkan <ph name="LANG" /></translation> +<translation id="1242883863226959074">peranti</translation> <translation id="124678866338384709">Tutup tab semasa</translation> <translation id="1258753120186372309">Coretan Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Tidak dapat berkongsi <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Muat turun imej</translation> <translation id="6865313869410766144">Autolengkap data borang</translation> <translation id="6867400383614725881">Tab Inkognito baharu</translation> +<translation id="6869056123412990582">komputer</translation> <translation id="6882836635272038266">Perlindungan standard daripada tapak web, muat turun dan sambungan yang diketahui berbahaya.</translation> <translation id="688738109438487280">Tambahkan data sedia ada pada <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Buka kunci untuk menyalin kata laluan anda</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Hantar mesej</translation> <translation id="8410695015584479363">Jejaki harga</translation> <translation id="8413126021676339697">Paparkan sejarah penuh</translation> +<translation id="8424781820952413435">Halaman dihantar. Untuk melihat halaman itu, buka Chrome pada <ph name="DEVICE_TYPE" /> anda</translation> <translation id="8427875596167638501">Tab pratonton separa terbuka</translation> <translation id="8428213095426709021">Tetapan</translation> <translation id="8438566539970814960">Mempertingkatkan carian dan penyemakan imbas</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Makluman penurunan harga</translation> <translation id="8616006591992756292">Akaun Google anda mungkin mempunyai sejarah penyemakan imbas dalam bentuk lain di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Buka URL yang dicadangkan yang dinyatakan dalam kandungan yang dimuat turun?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Hidupkan penyegerakan untuk mendapatkan tab daripada peranti anda yang lain.</translation> <translation id="8641930654639604085">Cuba menyekat tapak dewasa</translation> <translation id="8655129584991699539">Anda boleh mengosongkan data dalam Tetapan Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb index b271587b..fa6d5d9e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">စင့်ခ်လုပ်ခြင်းကို ဖွင့်မလား။</translation> <translation id="123724288017357924">လက်ရှိစာမျက်နှာကို ပြန်ဖွင့်ပြီး ကက်ရှ်ကို ပယ်ရန်</translation> <translation id="1240288207750131269"><ph name="LANG" /> ကို ဖွင့်နေသည်</translation> +<translation id="1242883863226959074">စက်</translation> <translation id="124678866338384709">လက်ရှိတဘ်ကို ပိတ်ရန်</translation> <translation id="1258753120186372309">Google doodle- <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ကို မျှဝေ၍မရပါ။</translation> @@ -919,6 +920,7 @@ <translation id="6864459304226931083">ပုံကို ဒေါင်းလုဒ်လုပ်ပါ</translation> <translation id="6865313869410766144">ဒေတာမှ အလိုလျောက် ဖြည့်စွက်</translation> <translation id="6867400383614725881">ရုပ်ဖျက်တဘ် အသစ်</translation> +<translation id="6869056123412990582">ကွန်ပျူတာ</translation> <translation id="6882836635272038266">အန္တရာယ်ရှိသည်ဟု သိထားသော ဝဘ်ဆိုက်၊ ဒေါင်းလုဒ်နှင့် နောက်ဆက်တွဲများအတွက် သာမန်ကာကွယ်မှု။</translation> <translation id="688738109438487280">လက်ရှိဒေတာကို <ph name="TO_ACCOUNT" /> သို့ ထည့်ပါ။</translation> <translation id="6891726759199484455">သင့်စကားဝှက်ကို မိတ္ထူကူးရန် ဖွင့်ပါ</translation> @@ -1155,6 +1157,7 @@ <translation id="8393700583063109961">စာပို့ရန်</translation> <translation id="8410695015584479363">ဈေးနှုန်းများ ခြေရာခံရန်</translation> <translation id="8413126021676339697">မှတ်တမ်း အပြည့် ပြရန်</translation> +<translation id="8424781820952413435">စာမျက်နှာ ပို့လိုက်ပြီ။ ၎င်းကိုကြည့်ရန် သင်၏ <ph name="DEVICE_TYPE" /> တွင် Chrome ဖွင့်ပါ</translation> <translation id="8427875596167638501">အစမ်းကြည့်ရှုမှုတဘ်ကို တစ်ဝက်ဖွင့်ထားသည်</translation> <translation id="8428213095426709021">ဆက်တင်များ</translation> <translation id="8438566539970814960">ရှာဖွေမှုနှင့် ဖွင့်ကြည့်မှု ပိုမိုကောင်းမွန်လာအောင် လုပ်ခြင်း</translation> @@ -1196,6 +1199,7 @@ <translation id="860282621117673749">ဈေးကျသွားကြောင်း သတိပေးချက်များ</translation> <translation id="8616006591992756292">သင့် Google အကောင့်က ဖွင့်ကြည့်ထားသောမှတ်တမ်းသည် <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> တွင် အခြားပုံစံများဖြင့် ရှိနေနိုင်ပါသည်။</translation> <translation id="8617240290563765734">ဒေါင်းလုပ်လုပ်ထားသည့် အကြောင်းအရာတွင် သတ်မှတ်ထားသည့် အကြံပြု URL ကိုဖွင့်မလား?</translation> +<translation id="8621068256433641644">ဖုန်း</translation> <translation id="8636825310635137004">သင်၏ အခြားစက်ပစ္စည်းများမှ တဘ်များကိုအသုံးပြုရန် စင့်ခ်ကို ဖွင့်ပါ။</translation> <translation id="8641930654639604085">လိင်ဆိုင်ရာဆိုက်များကို ပိတ်ဆို့ရန်ကြိုးစားကြည့်ပါ</translation> <translation id="8655129584991699539">ဒေတာများကို 'Chrome ဆက်တင်များ' တွင် ရှင်းထုတ်နိုင်သည်</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb index dd50d6e0..a461d877 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Vil du slå på synkronisering?</translation> <translation id="123724288017357924">Last inn siden på nytt, men ignorer bufret innhold</translation> <translation id="1240288207750131269">Laster inn <ph name="LANG" /></translation> +<translation id="1242883863226959074">enhet</translation> <translation id="124678866338384709">Lukk den aktive fanen</translation> <translation id="1258753120186372309">Google-doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Kunne ikke dele <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Last ned bildet</translation> <translation id="6865313869410766144">Skjemadata lagret med autofyll</translation> <translation id="6867400383614725881">Ny inkognitofane</translation> +<translation id="6869056123412990582">datamaskin</translation> <translation id="6882836635272038266">Standardbeskyttelse mot nettsteder, nedlastinger og utvidelser som anses som farlige.</translation> <translation id="688738109438487280">Legg til eksisterende data i <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Lås opp for å kopiere passordet ditt</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Send melding</translation> <translation id="8410695015584479363">Spor priser</translation> <translation id="8413126021676339697">Vis fullstendig logg</translation> +<translation id="8424781820952413435">Siden er sendt. For å se den, åpne Chrome på <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">Fanen for forhåndsvisning er halvveis åpnet</translation> <translation id="8428213095426709021">Innstillinger</translation> <translation id="8438566539970814960">Gjør søking og surfing bedre</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Varsler om avslag</translation> <translation id="8616006591992756292">Det kan hende Google-kontoen din har andre typer nettleserlogger på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Vil du åpne den foreslåtte nettadressen som er spesifisert i det nedlastede innholdet?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">For å få fanene dine fra de andre enhetene du bruker, slå på synkronisering.</translation> <translation id="8641930654639604085">Prøv å blokkere nettsteder med voksent innhold</translation> <translation id="8655129584991699539">Du kan slette dataene i Chrome-innstillingene</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb index bcb91b1..0fa6e02a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -52,6 +52,7 @@ <translation id="1307205233980126133">ਮਾਫ਼ ਕਰਨਾ, ਅਸੀਂ ਤੁਹਾਡੇ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲਾਂ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਨਹੀਂ ਕਰ ਸਕੇ</translation> <translation id="1310482092992808703">ਟੈਬਾਂ ਦਾ ਗਰੁੱਪ ਬਣਾਓ</translation> <translation id="1311657260431405215">ਇਹ QR Code ਕੋਈ URL ਨਹੀਂ ਹੈ: <ph name="QRCODEVALUE" /></translation> +<translation id="1316212908214730110">chrome_stylized_highlight_</translation> <translation id="1327257854815634930">ਨੈਵੀਗੇਸ਼ਨ ਇਤਿਹਾਸ ਖੁੱਲ੍ਹਾ ਹੋਇਆ ਹੈ</translation> <translation id="1331212799747679585">Chrome ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਹੋਰ ਵਿਕਲਪ</translation> <translation id="1332501820983677155">Google Chrome ਵਿਸ਼ੇਸ਼ਤਾ ਸ਼ਾਰਟਕੱਟ</translation> @@ -961,6 +962,7 @@ <translation id="718926126787620637">ਬੁੱਕਮਾਰਕ ਫੋਲਡਰਾਂ ਦੀ ਸੂਚੀ ਪੂਰੀ ਉਚਾਈ ਤੱਕ ਖੁੱਲ੍ਹੀ ਹੈ</translation> <translation id="7191430249889272776">ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਟੈਬ ਖੋਲ੍ਹੀ ਗਈ।</translation> <translation id="7233236755231902816">ਵੈੱਬ ਨੂੰ ਆਪਣੀ ਭਾਸ਼ਾ ਵਿੱਚ ਦੇਖਣ ਲਈ, Chrome ਦਾ ਨਵੀਨਤਮ ਵਰਜਨ ਪ੍ਰਾਪਤ ਕਰੋ</translation> +<translation id="7242755609445462077">ਸਟਾਈਲਬੱਧ ਹਾਈਲਾਈਟ <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">ਪੱਕਾ ਕਰੋ ਕਿ <ph name="TARGET_DEVICE_NAME" /> ਦੇ Chrome ਵਿੱਚ ਸਮਕਾਲੀਕਰਨ ਚਾਲੂ ਹੋਵੇ</translation> <translation id="7252076891734325316">ਆਪਣਾ ਫ਼ੋਨ ਕੰਪਿਊਟਰ ਦੇ ਨੇੜੇ ਰੱਖੋ</translation> <translation id="7274013316676448362">ਬਲਾਕ ਕੀਤੀ ਸਾਈਟ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb index 77413fd..3c0927ef 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Włączyć synchronizację?</translation> <translation id="123724288017357924">Ponowie załaduj stronę, bez pamięci podręcznej</translation> <translation id="1240288207750131269">Ładuję: <ph name="LANG" /></translation> +<translation id="1242883863226959074">urządzeniu</translation> <translation id="124678866338384709">Zamknij bieżącą kartę</translation> <translation id="1258753120186372309">Doodle Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> – nie udało się udostępnić</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Pobierz obraz</translation> <translation id="6865313869410766144">Autouzupełnianie danych formularzy</translation> <translation id="6867400383614725881">Nowa karta incognito</translation> +<translation id="6869056123412990582">komputerze</translation> <translation id="6882836635272038266">Standardowa ochrona przed stronami, pobieranymi plikami i rozszerzeniami, które są uznawane za niebezpieczne.</translation> <translation id="688738109438487280">Dodaj istniejące dane do konta <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Odblokuj, by skopiować hasło</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Wyślij wiadomość</translation> <translation id="8410695015584479363">Monitoruj ceny</translation> <translation id="8413126021676339697">Wyświetl całą historię</translation> +<translation id="8424781820952413435">Strona została wysłana. Aby ją zobaczyć, otwórz Chrome na swoim <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">Karta podglądu jest otwarta w połowie</translation> <translation id="8428213095426709021">Ustawienia</translation> <translation id="8438566539970814960">Ulepsz wyszukiwanie i przeglądanie</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Alerty o obniżkach cen</translation> <translation id="8616006591992756292">Inne rodzaje historii przeglądania mogą być nadal dostępne na Twoim koncie Google na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Otworzyć sugerowany URL określony w pobranych materiałach?</translation> +<translation id="8621068256433641644">telefonie</translation> <translation id="8636825310635137004">Aby korzystać z kart ze swoich innych urządzeń, włącz synchronizację</translation> <translation id="8641930654639604085">Próbuj blokować strony dla dorosłych</translation> <translation id="8655129584991699539">Dane możesz usunąć w Ustawieniach Chrome</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 0520f42..cf15f049 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
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Ativar sincronização?</translation> <translation id="123724288017357924">Atualizar página atual e ignorar conteúdo em cache</translation> <translation id="1240288207750131269">Carregando <ph name="LANG" /></translation> +<translation id="1242883863226959074">dispositivo</translation> <translation id="124678866338384709">Fechar a guia atual</translation> <translation id="1258753120186372309">Doodle do Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Falha no compartilhamento de <ph name="CONTENT_TYPE" /></translation> @@ -921,6 +922,7 @@ <translation id="6864459304226931083">Fazer o download da imagem</translation> <translation id="6865313869410766144">Preenchimento automático de dados de formulário</translation> <translation id="6867400383614725881">Nova guia anônima</translation> +<translation id="6869056123412990582">computador</translation> <translation id="6882836635272038266">Proteção padrão contra sites, downloads e extensões perigosos.</translation> <translation id="688738109438487280">Adicionar os dados disponíveis à conta <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Desbloqueie para copiar sua senha</translation> @@ -1157,6 +1159,7 @@ <translation id="8393700583063109961">Enviar mensagem</translation> <translation id="8410695015584479363">Monitorar preços</translation> <translation id="8413126021676339697">Mostrar histórico completo</translation> +<translation id="8424781820952413435">Página enviada. Para vê-la, abra o Chrome no seu <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">A guia "Visualizar" está parcialmente aberta</translation> <translation id="8428213095426709021">Configurações</translation> <translation id="8438566539970814960">Melhorar as pesquisas e a navegação</translation> @@ -1198,6 +1201,7 @@ <translation id="860282621117673749">Alertas de redução no preço</translation> <translation id="8616006591992756292">Sua Conta do Google pode ter outras formas de histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Abrir o URL sugerido especificado no conteúdo transferido por download?</translation> +<translation id="8621068256433641644">smartphone</translation> <translation id="8636825310635137004">Para ver suas guias abertas em outros dispositivos, ative a sincronização.</translation> <translation id="8641930654639604085">Tentar bloquear sites com conteúdo para adultos</translation> <translation id="8655129584991699539">É possível limpar os dados nas configurações do Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb index 5fc548c5..ee11b31 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Pretende ativar a sincronização?</translation> <translation id="123724288017357924">Atualizar página atual e ignorar conteúdo em cache</translation> <translation id="1240288207750131269">A carregar <ph name="LANG" /></translation> +<translation id="1242883863226959074">dispositivo</translation> <translation id="124678866338384709">Fechar o separador atual</translation> <translation id="1258753120186372309">Doodle da Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Não foi possível partilhar <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Transferir imagem</translation> <translation id="6865313869410766144">Dados de formulário de Preenchimento automático</translation> <translation id="6867400383614725881">Novo separador de navegação anónima</translation> +<translation id="6869056123412990582">computador</translation> <translation id="6882836635272038266">Proteção padrão contra Websites, transferências e extensões identificados como perigosos.</translation> <translation id="688738109438487280">Adicionar dados existentes a <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Desbloqueie para copiar a palavra-passe.</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Enviar mensagem</translation> <translation id="8410695015584479363">Monitorizar preços</translation> <translation id="8413126021676339697">Mostrar histórico completo</translation> +<translation id="8424781820952413435">Página enviada. Para a ver, abra o Chrome no seu <ph name="DEVICE_TYPE" /></translation> <translation id="8427875596167638501">O separador Pré-visualização está aberto até meio.</translation> <translation id="8428213095426709021">Definições</translation> <translation id="8438566539970814960">Melhorar as pesquisas e a navegação</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Alertas de descida do preço</translation> <translation id="8616006591992756292">A sua Conta Google pode ter outras formas do histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Pretende abrir o URL sugerido que é especificado no conteúdo transferido?</translation> +<translation id="8621068256433641644">telemóvel</translation> <translation id="8636825310635137004">Para obter os separadores dos seus outros dispositivos, ative a sincronização.</translation> <translation id="8641930654639604085">Tentar bloquear sites para adultos</translation> <translation id="8655129584991699539">Pode limpar os dados nas Definições do Chrome.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb index 7db8e6eb..0807af5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Activezi sincronizarea?</translation> <translation id="123724288017357924">Reîncarcă pagina, ignorând conținutul din cache</translation> <translation id="1240288207750131269">Se încarcă <ph name="LANG" /></translation> +<translation id="1242883863226959074">dispozitiv</translation> <translation id="124678866338384709">Închide fila actuală</translation> <translation id="1258753120186372309">Doodle Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Nu s-a trimis <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Descarcă imaginea</translation> <translation id="6865313869410766144">Datele salvate pentru completarea automată a formularelor</translation> <translation id="6867400383614725881">Filă incognito nouă</translation> +<translation id="6869056123412990582">computer</translation> <translation id="6882836635272038266">Protecție standard împotriva site-urilor, descărcărilor și extensiilor despre care se știe că sunt periculoase.</translation> <translation id="688738109438487280">Adaugă datele existente în <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Deblochează pentru a copia parola</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Trimite un mesaj</translation> <translation id="8410695015584479363">Urmărește prețurile</translation> <translation id="8413126021676339697">Afișează întregul istoric</translation> +<translation id="8424781820952413435">Pagina a fost trimisă. Ca să o vezi, deschide Chrome pe <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">Fila de previzualizare este pe jumătate deschisă</translation> <translation id="8428213095426709021">Setări</translation> <translation id="8438566539970814960">Îmbunătățește căutările și navigarea</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Alerte privind scăderile de preț</translation> <translation id="8616006591992756292">Contul Google poate să ofere alte forme ale istoricului de navigare la <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Deschizi adresa URL sugerată specificată în conținutul descărcat?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Pentru a accesa filele de pe alte dispozitive, activează sincronizarea.</translation> <translation id="8641930654639604085">Încearcă să blochezi site-urile destinate adulților</translation> <translation id="8655129584991699539">Poți șterge datele în Setările Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb index 7d368e5..ef080f1d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Включить синхронизацию?</translation> <translation id="123724288017357924">Обновить страницу без учета кешированного контента</translation> <translation id="1240288207750131269">Выполняется загрузка пакета "<ph name="LANG" />"…</translation> +<translation id="1242883863226959074">устройстве</translation> <translation id="124678866338384709">Закрыть вкладку</translation> <translation id="1258753120186372309">Дудл Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Не удалось отправить: <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Скачать изображение</translation> <translation id="6865313869410766144">Данные для автозаполнения</translation> <translation id="6867400383614725881">Новая вкладка инкогнито</translation> +<translation id="6869056123412990582">компьютере</translation> <translation id="6882836635272038266">Стандартная защита от опасных сайтов, расширений и скачанных файлов.</translation> <translation id="688738109438487280">Объединить сохраненные данные с данными пользователя <ph name="TO_ACCOUNT" /></translation> <translation id="6891726759199484455">Чтобы скопировать пароль, разблокируйте экран</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Отправить сообщение</translation> <translation id="8410695015584479363">Отслеживать цены</translation> <translation id="8413126021676339697">Показать всю историю</translation> +<translation id="8424781820952413435">Страница отправлена. Чтобы ее открыть, запустите Chrome на своем <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">Вкладка предпросмотра открыта на половину высоты</translation> <translation id="8428213095426709021">Настройки</translation> <translation id="8438566539970814960">Помогать улучшить просмотр страниц и поиск</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Оповещения о скидках</translation> <translation id="8616006591992756292">Информация о других ваших действиях в Интернете может также храниться на странице <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Открыть предложенный URL из скачанного контента?</translation> +<translation id="8621068256433641644">телефоне</translation> <translation id="8636825310635137004">Чтобы получить доступ к вкладкам на всех ваших устройствах, включите синхронизацию.</translation> <translation id="8641930654639604085">Блокировать сайты для взрослых</translation> <translation id="8655129584991699539">Удалить данные можно в настройках Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb index 156ad9a..6986e1fc 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Chcete zapnúť synchronizáciu?</translation> <translation id="123724288017357924">Opätovné načítanie aktuálnej stránky a ignorovanie obsahu vo vyrovnávacej pamäti</translation> <translation id="1240288207750131269">Načítava sa <ph name="LANG" /></translation> +<translation id="1242883863226959074">zariadenie</translation> <translation id="124678866338384709">Zavretie aktuálnej karty</translation> <translation id="1258753120186372309">Sviatočné logo Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> sa nepodarilo zdieľať</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Stiahnuť obrázok</translation> <translation id="6865313869410766144">Dáta automatického dopĺňania formulárov</translation> <translation id="6867400383614725881">Nová karta inkognito</translation> +<translation id="6869056123412990582">počítač</translation> <translation id="6882836635272038266">Štandardná ochrana pred nebezpečnými webmi, stiahnutými súbormi a rozšíreniami.</translation> <translation id="688738109438487280">Pridať existujúce dáta do účtu <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Heslo môžete kopírovať po odomknutí</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Odoslať správu</translation> <translation id="8410695015584479363">Sledovať ceny</translation> <translation id="8413126021676339697">Zobraziť celú históriu</translation> +<translation id="8424781820952413435">Stránka bola odoslaná. Ak ju chcete zobraziť, otvorte v zariadení <ph name="DEVICE_TYPE" /> Chrome</translation> <translation id="8427875596167638501">Karta ukážky je dopoly otvorená</translation> <translation id="8428213095426709021">Nastavenia</translation> <translation id="8438566539970814960">Zlepšovať vyhľadávanie a prehliadanie</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Upozornenia na poklesy cien</translation> <translation id="8616006591992756292">Váš účet Google môže mať ďalšie formy histórie prehliadania na adrese <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Otvoriť navrhovanú webovú adresu určenú v stiahnutom obsahu?</translation> +<translation id="8621068256433641644">telefón</translation> <translation id="8636825310635137004">Ak chcete získať karty zo svojich ostatných zariadení, zapnite synchronizáciu.</translation> <translation id="8641930654639604085">Pokúsiť sa blokovať weby pre dospelých</translation> <translation id="8655129584991699539">Môžete vymazať údaje v Nastaveniach Chromu</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb index 5f2a4104..47ef917 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Želite vklopiti sinhronizacijo?</translation> <translation id="123724288017357924">Vnov. nalag. tren. strani s prezrtjem predp. vseb.</translation> <translation id="1240288207750131269">Nalaganje: <ph name="LANG" /></translation> +<translation id="1242883863226959074">napravi</translation> <translation id="124678866338384709">Zapiranje trenutnega zavihka</translation> <translation id="1258753120186372309">Googlov priložnostni logotip: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Ni bilo mogoče deliti tega: <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Prenos slike</translation> <translation id="6865313869410766144">Podatki za samodejno izpolnjevanje obrazcev</translation> <translation id="6867400383614725881">Nov anonimni zavihek</translation> +<translation id="6869056123412990582">računalniku</translation> <translation id="6882836635272038266">Standardna zaščita proti spletnim mestom, prenosom in razširitvam, za katere vemo, da so nevarni.</translation> <translation id="688738109438487280">Dodajanje obstoječih podatkov v račun <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Odklenite, če želite kopirati geslo</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Pošlji sporočilo</translation> <translation id="8410695015584479363">Spremljanje cen</translation> <translation id="8413126021676339697">Prikaži celotno zgodovino</translation> +<translation id="8424781820952413435">Stran je bila poslana. Če si jo želite ogledati, odprite Chrome v <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">Zavihek za predogled je napol odprt</translation> <translation id="8428213095426709021">Nastavitve</translation> <translation id="8438566539970814960">Izboljšanje iskanja in brskanja</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Opozorila glede znižanja cen</translation> <translation id="8616006591992756292">V Google Računu so morda druge vrste zgodovine brskanja na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Želite odpreti predlagani URL, naveden v preneseni vsebini?</translation> +<translation id="8621068256433641644">telefonu</translation> <translation id="8636825310635137004">Če želite dostopati do zavihkov iz drugih naprav, vklopite sinhronizacijo.</translation> <translation id="8641930654639604085">Poskusi blokirati spletna mesta za odrasle</translation> <translation id="8655129584991699539">Podatke lahko izbrišete v Chromovih nastavitvah</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb index 7a8ed71..45b830f2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Të aktivizohet sinkronizimi?</translation> <translation id="123724288017357924">Ringarko faqen aktuale, duke shpërfillur përmbajtjen në memorien specifike</translation> <translation id="1240288207750131269"><ph name="LANG" /> po ngarkohet</translation> +<translation id="1242883863226959074">pajisja</translation> <translation id="124678866338384709">Mbyll skedën aktuale</translation> <translation id="1258753120186372309">Logoja alternative e Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Nuk mund të ndahet <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Shkarko imazhin</translation> <translation id="6865313869410766144">Plotëso automatikisht të dhënat e formularit</translation> <translation id="6867400383614725881">Skedë e re "e fshehtë"</translation> +<translation id="6869056123412990582">kompjuter</translation> <translation id="6882836635272038266">Mbrojtje standarde kundër faqeve të internetit, shkarkimeve dhe shtesave që njihen si të rrezikshme.</translation> <translation id="688738109438487280">Shto të dhënat ekzistuese te <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Shkyçe për të kopjuar fjalëkalimin</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Dërgo mesazh</translation> <translation id="8410695015584479363">Gjurmo çmimet</translation> <translation id="8413126021676339697">Shfaq historikun e plotë</translation> +<translation id="8424781820952413435">Faqja u dërgua. Për ta parë, hap Chrome në <ph name="DEVICE_TYPE" /> tënde</translation> <translation id="8427875596167638501">Skeda e shikimit paraprak është gjysmë e hapur</translation> <translation id="8428213095426709021">Cilësimet</translation> <translation id="8438566539970814960">Përmirëson kërkimet dhe shfletimin</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Alarme sinjalizuese për rënie çmimi</translation> <translation id="8616006591992756292">Llogaria jote e Google mund të ketë forma të tjera të historikut të shfletimit në <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Të hapet URL-ja e sugjeruar në përmbajtjen e shkarkuar?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Për të marrë skedat e tua nga pajisjet e tjera, aktivizo sinkronizimin.</translation> <translation id="8641930654639604085">Përpiqu të bllokosh sajtet për të rriturit</translation> <translation id="8655129584991699539">Mund t'i pastrosh të dhënat në "Cilësimet" e Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb index b753129..527e3e71 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Vill du aktivera synkronisering?</translation> <translation id="123724288017357924">Läs in den aktuella sidan igen och ignorera cachelagrat innehåll</translation> <translation id="1240288207750131269">Läser in <ph name="LANG" /></translation> +<translation id="1242883863226959074">enhet</translation> <translation id="124678866338384709">Stäng den aktuella fliken</translation> <translation id="1258753120186372309">Googles doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Det gick inte att dela <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Ladda ned bild</translation> <translation id="6865313869410766144">Formuläruppgifter för Autofyll</translation> <translation id="6867400383614725881">Ny inkognitoflik</translation> +<translation id="6869056123412990582">dator</translation> <translation id="6882836635272038266">Standardskydd mot kända skadliga webbplatser, nedladdningar och tillägg.</translation> <translation id="688738109438487280">Lägg till befintlig data i <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Lås upp om du vill kopiera lösenordet</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Skicka meddelande</translation> <translation id="8410695015584479363">Bevaka priser</translation> <translation id="8413126021676339697">Visa fullständig historik</translation> +<translation id="8424781820952413435">Sidan har skickats. Öppna Chrome på <ph name="DEVICE_TYPE" /> för att se den</translation> <translation id="8427875596167638501">Fliken Förhandsgranskning visas på halva skärmen</translation> <translation id="8428213095426709021">Inställningar</translation> <translation id="8438566539970814960">Förbättra sökningar och surfandet</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Aviseringar om prissänkning</translation> <translation id="8616006591992756292">Det kan finnas andra former av webbhistorik i Google-kontot på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Vill du öppna den föreslagna webbadressen i det nedladdade innehållet?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Aktivera synkronisering om du vill ha samma flikar tillgängliga på alla enheter.</translation> <translation id="8641930654639604085">Försök blockera webbplatser med innehåll för vuxna</translation> <translation id="8655129584991699539">Du kan rensa data i Chrome-inställningarna</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb index 9b830c5a..1c53fa7 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Ungependa kuwasha usawazishaji?</translation> <translation id="123724288017357924">Pakia upya ukurasa wa sasa, puuza maudhui ya akiba</translation> <translation id="1240288207750131269">Inapakia <ph name="LANG" /></translation> +<translation id="1242883863226959074">kifaa</translation> <translation id="124678866338384709">Funga kichupo kilichofunguka</translation> <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Imeshindwa kushiriki <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Pakua picha</translation> <translation id="6865313869410766144">Data ya fomu ya Kujaza Kiotomatiki</translation> <translation id="6867400383614725881">Kichupo fiche kipya</translation> +<translation id="6869056123412990582">kompyuta</translation> <translation id="6882836635272038266">Ulinzi wa kawaida dhidi ya tovuti, vipakuliwa na viendelezi vinavyojulikana kuwa hatari.</translation> <translation id="688738109438487280">Ongeza data iliyopo kwenye <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Fungua ili unakili nenosiri lako</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Tuma ujumbe</translation> <translation id="8410695015584479363">Fuatilia bei</translation> <translation id="8413126021676339697">Onyesha historia kamili</translation> +<translation id="8424781820952413435">Ukurasa umetumwa. Ili uuone, fungua Chrome kwenye <ph name="DEVICE_TYPE" /> yako</translation> <translation id="8427875596167638501">Kichupo cha kukagua kwanza kimefunguliwa nusu</translation> <translation id="8428213095426709021">Mipangilio</translation> <translation id="8438566539970814960">Boresha utafutaji na kuvinjari</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Arifa kuhusu punguzo la bei</translation> <translation id="8616006591992756292">Huenda Akaunti yako ya Google ikawa na aina nyingine za historia ya kuvinjari kwenye <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Ungependa kufungua URL iliyopendekezwa na kubainishwa katika maudhui yaliyopakuliwa?</translation> +<translation id="8621068256433641644">simu</translation> <translation id="8636825310635137004">Ili upate vichupo kutoka kwenye vifaa vyako vingine, washa kipengele cha usawazishaji.</translation> <translation id="8641930654639604085">Jaribu kuzuia tovuti zilizo na maudhui ya watu wazima</translation> <translation id="8655129584991699539">Unaweza kufuta data hii katika Mipangilio ya Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb index cd47456e..7e53d629 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -52,6 +52,7 @@ <translation id="1307205233980126133">உங்கள் அனுமதிச் சான்றுகளைச் சரிபார்க்க முடியவில்லை</translation> <translation id="1310482092992808703">தாவல்களைக் குழுவாக்கு</translation> <translation id="1311657260431405215">இந்த QR குறியீடு URL இல்லை: <ph name="QRCODEVALUE" /></translation> +<translation id="1316212908214730110">chrome_stylized_highlight_</translation> <translation id="1327257854815634930">வழிசெலுத்தல் வரலாறு திறக்கப்பட்டுள்ளது</translation> <translation id="1331212799747679585">Chromeமைப் புதுப்பிக்க முடியாது. கூடுதல் விருப்பங்கள்</translation> <translation id="1332501820983677155">Google Chrome அம்சத்திற்கான ஷார்ட்கட்கள்</translation> @@ -961,6 +962,7 @@ <translation id="718926126787620637">புக்மார்க் கோப்புறைகளின் பட்டியல் முழுத் திரையில் காட்டப்படுகிறது</translation> <translation id="7191430249889272776">தாவல் பின்புலத்தில் திறக்கப்பட்டது.</translation> <translation id="7233236755231902816">உங்கள் மொழியில் இணையதளங்களைப் பார்க்க Chromeமின் சமீபத்திய பதிப்பைப் பெறுங்கள்</translation> +<translation id="7242755609445462077">மெருகூட்டப்பட்ட ஹைலைட் <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Chromeமில் <ph name="TARGET_DEVICE_NAME" /> சாதன ஒத்திசைவு ஆன் செய்யப்பட்டுள்ளதை உறுதி செய்யவும்</translation> <translation id="7252076891734325316">கம்யூட்டருக்கு அருகில் உங்கள் மொபைலை வைக்கவும்</translation> <translation id="7274013316676448362">தடுக்கப்பட்ட தளம்</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb index 566cca09..3fb1acd2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">เปิดการซิงค์ไหม</translation> <translation id="123724288017357924">โหลดหน้าปัจจุบันซ้ำ โดยไม่คำนึงถึงเนื้อหาที่แคชไว้</translation> <translation id="1240288207750131269">กำลังโหลดภาษา<ph name="LANG" /></translation> +<translation id="1242883863226959074">อุปกรณ์</translation> <translation id="124678866338384709">ปิดแท็บปัจจุบัน</translation> <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">แชร์<ph name="CONTENT_TYPE" />ไม่ได้</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">ดาวน์โหลดรูปภาพ</translation> <translation id="6865313869410766144">ข้อมูลแบบฟอร์มที่ป้อนอัตโนมัติ</translation> <translation id="6867400383614725881">แท็บใหม่ที่ไม่ระบุตัวตน</translation> +<translation id="6869056123412990582">คอมพิวเตอร์</translation> <translation id="6882836635272038266">การปกป้องแบบมาตรฐานจากเว็บไซต์ การดาวน์โหลด และส่วนขยายที่ทราบแล้วว่าเป็นอันตราย</translation> <translation id="688738109438487280">เพิ่มข้อมูลที่มีอยู่ลงใน <ph name="TO_ACCOUNT" /></translation> <translation id="6891726759199484455">ปลดล็อกเพื่อคัดลอกรหัสผ่าน</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">ส่งข้อความ</translation> <translation id="8410695015584479363">ติดตามราคา</translation> <translation id="8413126021676339697">แสดงประวัติการเข้าชมทั้งหมด</translation> +<translation id="8424781820952413435">ส่งหน้าเว็บแล้ว เปิด Chrome ใน<ph name="DEVICE_TYPE" />เพื่อดู</translation> <translation id="8427875596167638501">แท็บแสดงตัวอย่างเปิดอยู่ครึ่งเดียว</translation> <translation id="8428213095426709021">การตั้งค่า</translation> <translation id="8438566539970814960">ปรับปรุงการค้นหาและการท่องเว็บให้ดียิ่งขึ้น</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">การแจ้งเตือนการลดราคา</translation> <translation id="8616006591992756292">บัญชี Google อาจมีประวัติการท่องเว็บรูปแบบอื่นๆ ที่ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="8617240290563765734">ต้องการเปิด URL แนะนำซึ่งระบุอยู่ในเนื้อหาที่ดาวน์โหลดไหม</translation> +<translation id="8621068256433641644">โทรศัพท์</translation> <translation id="8636825310635137004">เปิดการซิงค์เพื่อรับแท็บจากอุปกรณ์เครื่องอื่นๆ ของคุณ</translation> <translation id="8641930654639604085">พยายามบล็อกไซต์สำหรับผู้ใหญ่</translation> <translation id="8655129584991699539">คุณล้างข้อมูลได้ในการตั้งค่า Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb index 705208a..2c81cbb 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Senkronizasyon açılsın mı?</translation> <translation id="123724288017357924">Önbelleğe alınmış içeriği yoksayarak geçerli sayfayı yeniden yükler</translation> <translation id="1240288207750131269"><ph name="LANG" /> yükleniyor</translation> +<translation id="1242883863226959074">cihaz</translation> <translation id="124678866338384709">Geçerli sekmeyi kapatır</translation> <translation id="1258753120186372309">Google doodle'ı: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> paylaşılamadı</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Resmi indir</translation> <translation id="6865313869410766144">Form otomatik doldurma verileri</translation> <translation id="6867400383614725881">Yeni Gizli sekme</translation> +<translation id="6869056123412990582">bilgisayar</translation> <translation id="6882836635272038266">Tehlikeli olduğu bilinen web siteleri, indirmeler ve uzantılara karşı standart koruma.</translation> <translation id="688738109438487280">Mevcut veriler <ph name="TO_ACCOUNT" /> hesabına eklenir.</translation> <translation id="6891726759199484455">Şifrenizi kopyalamak için kilidi açın</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">İleti gönder</translation> <translation id="8410695015584479363">Fiyatları takip et</translation> <translation id="8413126021676339697">Tüm geçmişi göster</translation> +<translation id="8424781820952413435">Sayfa gönderildi. Bu sayfayı görebilmek için <ph name="DEVICE_TYPE" /> cihazınızda Chrome'u açın.</translation> <translation id="8427875596167638501">Önizleme sekmesi yarım açık</translation> <translation id="8428213095426709021">Ayarlar</translation> <translation id="8438566539970814960">Aramaları ve göz atmayı daha iyi yap</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Fiyat düşüşü uyarıları</translation> <translation id="8616006591992756292">Google Hesabınızın <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> adresinde başka biçimlerde tarama geçmişi olabilir.</translation> <translation id="8617240290563765734">İndirilen öğede belirtilen URL önerisi açılsın mı?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Diğer cihazlarınızdaki sekmelerinize ulaşmak için senkronizasyonu etkinleştirin.</translation> <translation id="8641930654639604085">Yetişkinlere yönelik siteleri engellemeyi dene</translation> <translation id="8655129584991699539">Verileri Chrome Ayarlarından temizleyebilirsiniz</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb index 42f342b6..b4a9fad 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Увімкнути синхронізацію?</translation> <translation id="123724288017357924">Оновити цю сторінку, ігноруючи кешований вміст</translation> <translation id="1240288207750131269">Завантажується мовний пакет (<ph name="LANG" />)</translation> +<translation id="1242883863226959074">пристрої</translation> <translation id="124678866338384709">Закрити поточну вкладку</translation> <translation id="1258753120186372309">Дудл Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Не вдалося надіслати: <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Завантажити зображення</translation> <translation id="6865313869410766144">Дані автозаповнення форм</translation> <translation id="6867400383614725881">Нова анонімна вкладка</translation> +<translation id="6869056123412990582">комп’ютері</translation> <translation id="6882836635272038266">Стандартний захист від відомих небезпечних веб-сайтів, завантажень і розширень.</translation> <translation id="688738109438487280">Додати наявні дані в обліковий запис <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Розблокуйте, щоб скопіювати пароль</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Надіслати повідомлення</translation> <translation id="8410695015584479363">Відстежувати ціни</translation> <translation id="8413126021676339697">Показати повну історію</translation> +<translation id="8424781820952413435">Сторінку надіслано. Щоб переглянути її, відкрийте Chrome на <ph name="DEVICE_TYPE" />.</translation> <translation id="8427875596167638501">Вкладку "Попередній перегляд" відкрито на половину висоти</translation> <translation id="8428213095426709021">Налаштування</translation> <translation id="8438566539970814960">Покращувати пошук і веб-перегляд</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Сповіщення про зниження цін</translation> <translation id="8616006591992756292">Історія веб-перегляду може також зберігатися у вашому обліковому записі Google на сторінці <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Перейти за URL-адресою, указаною в завантаженому вмісті?</translation> +<translation id="8621068256433641644">телефоні</translation> <translation id="8636825310635137004">Щоб мати доступ до вкладок з інших пристроїв, увімкніть синхронізацію.</translation> <translation id="8641930654639604085">Блокувати сайти для дорослих</translation> <translation id="8655129584991699539">Ви можете очистити дані в налаштуваннях Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb index 1babecd..0e34769 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Sinxronizatsiya yoqilsinmi?</translation> <translation id="123724288017357924">Keshga yuklangan ma’lumotlarsiz sahifani qayta yuklang.</translation> <translation id="1240288207750131269"><ph name="LANG" /> yuklanmoqda</translation> +<translation id="1242883863226959074">qurilma</translation> <translation id="124678866338384709">Joriy varaqni yopish</translation> <translation id="1258753120186372309">Google-dudl: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> yuborilmadi</translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Rasmni yuklab olish</translation> <translation id="6865313869410766144">Avtomatik to‘ldirish ma’lumotlari</translation> <translation id="6867400383614725881">Yangi inkognito varaq</translation> +<translation id="6869056123412990582">kompyuter</translation> <translation id="6882836635272038266">Zararli deb hisoblangan sayt, yuklanma va kengaytmalarga qarshi standart himoya</translation> <translation id="688738109438487280">Mavjud ma’lumotlarni <ph name="TO_ACCOUNT" /> hisobiga qo‘shadi.</translation> <translation id="6891726759199484455">Paroldan nusxa olish uchun qulfni oching</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Xabar yuborish</translation> <translation id="8410695015584479363">Narxlarni kuzatish</translation> <translation id="8413126021676339697">Barcha tarixni ko‘rsatish</translation> +<translation id="8424781820952413435">Sahifa yuborildi. Uni koʻrish uchun <ph name="DEVICE_TYPE" />da Chrome brauzerini oching</translation> <translation id="8427875596167638501">Razm solish sahifasi yarim hajmda ochildi</translation> <translation id="8428213095426709021">Sozlamalar</translation> <translation id="8438566539970814960">Sahifalarni kezish va qidiruvni yaxshilash</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Narx tushishi signallari</translation> <translation id="8616006591992756292">Google hisobingiz orqali bajargan internetdagi faoliyatingizni <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> orqali ko‘rishingiz mumkin.</translation> <translation id="8617240290563765734">Yuklab olingan kontent taklif qilgan URL manzil ochilsinmi?</translation> +<translation id="8621068256433641644">telefon</translation> <translation id="8636825310635137004">Boshqa qurilmalaringizdagi brauzer sahifalarini ko‘rish uchun sinxronizatsiyani yoqing.</translation> <translation id="8641930654639604085">Kattalar uchun mo‘ljallangan saytlar bloklansin</translation> <translation id="8655129584991699539">Maʼlumotlarni Chrome sozlamalaridan tozalashingiz mumkin</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb index b0fc3a52..f33e768e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">Bạn muốn bật tính năng đồng bộ hóa?</translation> <translation id="123724288017357924">Tải lại trang hiện tại, bỏ qua nội dung được lưu trong bộ nhớ đệm</translation> <translation id="1240288207750131269">Đang tải <ph name="LANG" /></translation> +<translation id="1242883863226959074">thiết bị</translation> <translation id="124678866338384709">Đóng thẻ hiện tại</translation> <translation id="1258753120186372309">Hình tượng trưng của Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Không thể chia sẻ <ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Tải hình ảnh xuống</translation> <translation id="6865313869410766144">Dữ liệu tự động điền vào biểu mẫu</translation> <translation id="6867400383614725881">Thẻ Ẩn danh mới</translation> +<translation id="6869056123412990582">máy tính</translation> <translation id="6882836635272038266">Chế độ bảo vệ thông thường chống lại các trang web, tệp đã tải xuống và tiện ích được xác định là nguy hiểm.</translation> <translation id="688738109438487280">Thêm dữ liệu hiện có vào <ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Mở khóa để sao chép mật khẩu của bạn</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Gửi tin nhắn</translation> <translation id="8410695015584479363">Theo dõi giá</translation> <translation id="8413126021676339697">Hiển thị toàn bộ lịch sử</translation> +<translation id="8424781820952413435">Đã gửi trang. Hãy mở Chrome trên <ph name="DEVICE_TYPE" /> của bạn để xem trang này.</translation> <translation id="8427875596167638501">Thẻ xem trước đang mở trên nửa màn hình</translation> <translation id="8428213095426709021">Cài đặt</translation> <translation id="8438566539970814960">Cải thiện tính năng tìm kiếm và duyệt web</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Thông báo khi có mặt hàng giảm giá</translation> <translation id="8616006591992756292">Tài khoản Google của bạn có thể có các dạng lịch sử duyệt web khác tại <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Mở URL đề xuất được chỉ định trong nội dung được tải xuống?</translation> +<translation id="8621068256433641644">điện thoại</translation> <translation id="8636825310635137004">Để có các thẻ từ các thiết bị khác của bạn, hãy bật đồng bộ hóa.</translation> <translation id="8641930654639604085">Cố gắng chặn các trang web cho người lớn</translation> <translation id="8655129584991699539">Bạn có thể xóa dữ liệu trong mục Cài đặt của Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb index 1dade59..cb8a162 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">开启同步功能?</translation> <translation id="123724288017357924">重新加载当前网页(忽略缓存的内容)</translation> <translation id="1240288207750131269">正在加载<ph name="LANG" /></translation> +<translation id="1242883863226959074">设备</translation> <translation id="124678866338384709">关闭当前标签页</translation> <translation id="1258753120186372309">Google 涂鸦:<ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">无法分享<ph name="CONTENT_TYPE" /></translation> @@ -919,6 +920,7 @@ <translation id="6864459304226931083">下载图片</translation> <translation id="6865313869410766144">自动填充表单数据</translation> <translation id="6867400383614725881">打开新的无痕式标签页</translation> +<translation id="6869056123412990582">计算机</translation> <translation id="6882836635272038266">针对已知危险网站、下载内容和扩展程序提供标准保护。</translation> <translation id="688738109438487280">将现有数据添加到 <ph name="TO_ACCOUNT" />。</translation> <translation id="6891726759199484455">需解锁才能复制您的密码</translation> @@ -1154,6 +1156,7 @@ <translation id="8393700583063109961">发送消息</translation> <translation id="8410695015584479363">跟踪价格</translation> <translation id="8413126021676339697">显示全部历史记录</translation> +<translation id="8424781820952413435">页面已发送。若要查看此页面,请在您的<ph name="DEVICE_TYPE" />上打开 Chrome</translation> <translation id="8427875596167638501">预览标签页已在下半屏中打开</translation> <translation id="8428213095426709021">设置</translation> <translation id="8438566539970814960">改善搜索和浏览体验</translation> @@ -1195,6 +1198,7 @@ <translation id="860282621117673749">降价提醒</translation> <translation id="8616006591992756292">您的 Google 帐号在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的浏览记录。</translation> <translation id="8617240290563765734">要打开下载的内容中指定的建议网址吗?</translation> +<translation id="8621068256433641644">手机</translation> <translation id="8636825310635137004">要访问您在其他设备上的标签页,请开启同步功能。</translation> <translation id="8641930654639604085">尽量屏蔽成人网站</translation> <translation id="8655129584991699539">要清除数据,请前往 Chrome 的“设置”页面</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb index fef7aac..5bf573b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">要開啟同步處理功能嗎?</translation> <translation id="123724288017357924">重新載入目前的網頁,忽略之前快取的內容</translation> <translation id="1240288207750131269">正在載入<ph name="LANG" /></translation> +<translation id="1242883863226959074">裝置</translation> <translation id="124678866338384709">關閉目前分頁</translation> <translation id="1258753120186372309">Google Doodle:<ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">下載圖片</translation> <translation id="6865313869410766144">自動填入表格數據</translation> <translation id="6867400383614725881">新無痕式分頁</translation> +<translation id="6869056123412990582">電腦</translation> <translation id="6882836635272038266">對已知的危險網站、下載檔案及擴充程式提供標準保護功能。</translation> <translation id="688738109438487280">將現有資料新增至 <ph name="TO_ACCOUNT" />。</translation> <translation id="6891726759199484455">解鎖即可複製您的密碼</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">傳送訊息</translation> <translation id="8410695015584479363">追蹤價格</translation> <translation id="8413126021676339697">顯示完整記錄</translation> +<translation id="8424781820952413435">已傳送網頁。如要查看,請在<ph name="DEVICE_TYPE" />上開啟 Chrome</translation> <translation id="8427875596167638501">預覽分頁喺畫面下半部分顯示</translation> <translation id="8428213095426709021">設定</translation> <translation id="8438566539970814960">改善搜尋和瀏覽體驗</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">降價快訊</translation> <translation id="8616006591992756292">您的 Google 帳戶在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的瀏覽記錄。</translation> <translation id="8617240290563765734">您要開啟下載檔案中指定的建議網址嗎?</translation> +<translation id="8621068256433641644">手機</translation> <translation id="8636825310635137004">如要取得其他裝置上的分頁,請開啟同步處理功能。</translation> <translation id="8641930654639604085">嘗試封鎖成人網站</translation> <translation id="8655129584991699539">您可以在 Chrome 設定中清除資料</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb index 195b73c6..b530a74 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">要開啟同步功能嗎?</translation> <translation id="123724288017357924">重新載入目前的網頁,略過已快取的內容</translation> <translation id="1240288207750131269">正在載入<ph name="LANG" /></translation> +<translation id="1242883863226959074">裝置</translation> <translation id="124678866338384709">關閉目前的分頁</translation> <translation id="1258753120186372309">Google Doodle:<ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">下載圖片</translation> <translation id="6865313869410766144">自動填入表單資料</translation> <translation id="6867400383614725881">新無痕分頁</translation> +<translation id="6869056123412990582">電腦</translation> <translation id="6882836635272038266">針對已知不安全的網站、下載內容和擴充功能提供標準防護機制。</translation> <translation id="688738109438487280">將現有資料新增至 <ph name="TO_ACCOUNT" />。</translation> <translation id="6891726759199484455">解鎖即可複製你的密碼</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">傳送訊息</translation> <translation id="8410695015584479363">追蹤價格</translation> <translation id="8413126021676339697">顯示完整記錄</translation> +<translation id="8424781820952413435">已傳送頁面。如要查看這個頁面,請在<ph name="DEVICE_TYPE" />上開啟 Chrome</translation> <translation id="8427875596167638501">已在畫面下半部顯示預覽分頁</translation> <translation id="8428213095426709021">設定</translation> <translation id="8438566539970814960">改善搜尋和瀏覽體驗</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">降價快訊</translation> <translation id="8616006591992756292">你的 Google 帳戶可能會儲存其他形式的瀏覽記錄,請參閱 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />。</translation> <translation id="8617240290563765734">開啟這項下載內容中指定的建議網址?</translation> +<translation id="8621068256433641644">手機</translation> <translation id="8636825310635137004">如要存取您在其他裝置上開啟的分頁,請開啟同步處理功能。</translation> <translation id="8641930654639604085">嘗試封鎖成人網站</translation> <translation id="8655129584991699539">你可以在 Chrome 設定中清除資料</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb index dde640d..49b051f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -39,6 +39,7 @@ <translation id="1231733316453485619">vula ukuvumelanisa?</translation> <translation id="123724288017357924">Phinda ulayishe ikhasi lamanje, iziba okuqukethwe okufakwe kunqolobane</translation> <translation id="1240288207750131269">Ilayisha i-<ph name="LANG" /></translation> +<translation id="1242883863226959074">idivayisi</translation> <translation id="124678866338384709">Vala ithebhu yamanje</translation> <translation id="1258753120186372309">I-Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1266864766717917324">Ayikwazanga ukwabelana nge-<ph name="CONTENT_TYPE" /></translation> @@ -920,6 +921,7 @@ <translation id="6864459304226931083">Landa isithombe</translation> <translation id="6865313869410766144">Gcwalisa ngokuzenzakalela idatha yefomu</translation> <translation id="6867400383614725881">Ithebhu entsha ye-incognito</translation> +<translation id="6869056123412990582">ikhompuyutha</translation> <translation id="6882836635272038266">Ukuvikelwa okujwayelekile ngokumelene namawebhusayithi, okulandwayo, nezandiso ezaziwa njengeziyingozi.</translation> <translation id="688738109438487280">Engeza idatha ekhona ku-<ph name="TO_ACCOUNT" />.</translation> <translation id="6891726759199484455">Vula ukuze ukopishe iphasiwedi yakho</translation> @@ -1156,6 +1158,7 @@ <translation id="8393700583063109961">Thumela umlayezo</translation> <translation id="8410695015584479363">Landelela izintengo</translation> <translation id="8413126021676339697">Bonisa umlando ophelele</translation> +<translation id="8424781820952413435">Ikhasi lithunyelwe Ukuze ulibone, vula i-Chrome ku-<ph name="DEVICE_TYPE" /> yakho</translation> <translation id="8427875596167638501">Ithebhu lokubuka kuqala livulwe ngohhafu</translation> <translation id="8428213095426709021">Izilungiselelo</translation> <translation id="8438566539970814960">Yenza usesho nokuphequlula kube ngcono</translation> @@ -1197,6 +1200,7 @@ <translation id="860282621117673749">Izexwayiso zokwehla kwentengo</translation> <translation id="8616006591992756292">I-akhawunti yakho ye-Google ingaba namanye amafomu omlando wokuphequlula ku-<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="8617240290563765734">Vula i-URL ephakanyisiwe ecaciswe kokuqukethwe okulandiwe?</translation> +<translation id="8621068256433641644">ifoni</translation> <translation id="8636825310635137004">Ukuze uthole amathebhu akho kusukela kumanye amadivayisi akho, vula ukuvumelanisa.</translation> <translation id="8641930654639604085">Zama ukuvimbela amasayithi abantu abadala</translation> <translation id="8655129584991699539">Ungasula idatha kuzilungiselelo ze-Chrome</translation>
diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc index eb0631d..ba16456 100644 --- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc +++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
@@ -11,7 +11,6 @@ #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" -#include "ash/public/cpp/ash_features.h" #include "base/bind.h" #include "base/check.h" #include "base/containers/contains.h"
diff --git a/chrome/browser/ui/app_list/search/files/file_result.cc b/chrome/browser/ui/app_list/search/files/file_result.cc index d05aef09..1e094e3 100644 --- a/chrome/browser/ui/app_list/search/files/file_result.cc +++ b/chrome/browser/ui/app_list/search/files/file_result.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> +#include "ash/constants/ash_features.h" #include "ash/public/cpp/app_list/app_list_types.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/file_icon_util.h" #include "ash/public/cpp/style/color_provider.h" #include "base/bind.h"
diff --git a/chrome/browser/ui/ash/ash_shell_init.cc b/chrome/browser/ui/ash/ash_shell_init.cc index f69b3f0..3dfe0df0 100644 --- a/chrome/browser/ui/ash/ash_shell_init.cc +++ b/chrome/browser/ui/ash/ash_shell_init.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/shell.h" #include "ash/shell_init_params.h" #include "chrome/browser/browser_process.h"
diff --git a/chrome/browser/ui/ash/capture_mode_browsertest.cc b/chrome/browser/ui/ash/capture_mode_browsertest.cc index 82d9893..68c8db8 100644 --- a/chrome/browser/ui/ash/capture_mode_browsertest.cc +++ b/chrome/browser/ui/ash/capture_mode_browsertest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/capture_mode_test_api.h" #include "ash/public/cpp/test/shell_test_api.h" #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc b/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc index 84b7c6b9..bd301b9 100644 --- a/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc +++ b/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc
@@ -8,7 +8,6 @@ #include <utility> #include "ash/constants/ash_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/media_notification_provider.h" #include "ash/public/cpp/shelf_model.h" #include "ash/public/cpp/window_properties.h"
diff --git a/chrome/browser/ui/ash/chrome_new_window_client.cc b/chrome/browser/ui/ash/chrome_new_window_client.cc index 415e767..6ba768ec 100644 --- a/chrome/browser/ui/ash/chrome_new_window_client.cc +++ b/chrome/browser/ui/ash/chrome_new_window_client.cc
@@ -10,7 +10,6 @@ #include "apps/launcher.h" #include "ash/constants/ash_features.h" #include "ash/public/cpp/app_list/internal_app_id_constants.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/keyboard_shortcut_viewer.h" #include "ash/public/cpp/shelf_model.h" #include "ash/public/cpp/shelf_types.h"
diff --git a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc index 3cc61fc1..922978b3 100644 --- a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc +++ b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc
@@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/holding_space/holding_space_controller.h" #include "ash/public/cpp/holding_space/holding_space_item.h" #include "ash/public/cpp/holding_space/holding_space_model.h"
diff --git a/chrome/browser/ui/ash/chrome_shell_delegate.cc b/chrome/browser/ui/ash/chrome_shell_delegate.cc index f895d80..95094f1 100644 --- a/chrome/browser/ui/ash/chrome_shell_delegate.cc +++ b/chrome/browser/ui/ash/chrome_shell_delegate.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/screenshot_delegate.h" #include "base/bind.h" #include "base/command_line.h"
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_client_impl_browsertest.cc b/chrome/browser/ui/ash/holding_space/holding_space_client_impl_browsertest.cc index d2411b41..d394f99 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_client_impl_browsertest.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_client_impl_browsertest.cc
@@ -6,7 +6,6 @@ #include <string> -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/holding_space/holding_space_controller.h" #include "ash/public/cpp/holding_space/holding_space_image.h" #include "ash/public/cpp/holding_space/holding_space_item.h"
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.cc b/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.cc index 6b4a309..ed3b084 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.cc
@@ -6,7 +6,7 @@ #include <vector> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "chrome/browser/ash/crosapi/crosapi_ash.h" #include "chrome/browser/ash/crosapi/crosapi_manager.h" #include "chrome/browser/chromeos/file_manager/path_util.h"
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_factory.cc b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_factory.cc index 59b94eb..cb20b85 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_factory.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_factory.cc
@@ -4,7 +4,7 @@ #include "chrome/browser/ui/ash/holding_space/holding_space_keyed_service_factory.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "chrome/browser/ash/drive/drive_integration_service.h" #include "chrome/browser/ash/profiles/profile_helper.h" #include "chrome/browser/chromeos/file_manager/volume_manager_factory.h"
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_unittest.cc b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_unittest.cc index 93855e6..f05b6fa 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_unittest.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_unittest.cc
@@ -6,7 +6,7 @@ #include <vector> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/file_icon_util.h" #include "ash/public/cpp/holding_space/holding_space_constants.h" #include "ash/public/cpp/holding_space/holding_space_controller.h"
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_ui_browsertest.cc b/chrome/browser/ui/ash/holding_space/holding_space_ui_browsertest.cc index 761d083..7f41493 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_ui_browsertest.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_ui_browsertest.cc
@@ -8,7 +8,7 @@ #include <unordered_map> #include <vector> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/capture_mode_test_api.h" #include "ash/public/cpp/holding_space/holding_space_client.h" #include "ash/public/cpp/holding_space/holding_space_constants.h"
diff --git a/chrome/browser/ui/ash/launcher_drag_interactive_uitest.cc b/chrome/browser/ui/ash/launcher_drag_interactive_uitest.cc index f61fe957..5110629 100644 --- a/chrome/browser/ui/ash/launcher_drag_interactive_uitest.cc +++ b/chrome/browser/ui/ash/launcher_drag_interactive_uitest.cc
@@ -5,7 +5,6 @@ #include "ash/constants/ash_features.h" #include "ash/public/cpp/app_list/app_list_config.h" #include "ash/public/cpp/app_list/app_list_types.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/test/shell_test_api.h" #include "base/macros.h"
diff --git a/chrome/browser/ui/ash/recording_service_browsertest.cc b/chrome/browser/ui/ash/recording_service_browsertest.cc index 18d174f..7a4f353 100644 --- a/chrome/browser/ui/ash/recording_service_browsertest.cc +++ b/chrome/browser/ui/ash/recording_service_browsertest.cc
@@ -5,7 +5,7 @@ #include <memory> #include <string> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/capture_mode_test_api.h" #include "ash/public/cpp/test/shell_test_api.h" #include "base/bind.h"
diff --git a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc index 529a80179..02510f1 100644 --- a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc +++ b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc
@@ -7,10 +7,10 @@ #include <stddef.h> #include <memory> +#include "ash/constants/ash_features.h" #include "ash/public/cpp/app_list/app_list_features.h" #include "ash/public/cpp/app_list/app_list_switches.h" #include "ash/public/cpp/app_menu_constants.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_item_delegate.h" #include "ash/public/cpp/shelf_model.h" #include "ash/public/cpp/shelf_test_api.h"
diff --git a/chrome/browser/ui/ash/system_tray_client_impl_browsertest.cc b/chrome/browser/ui/ash/system_tray_client_impl_browsertest.cc index c776f49..3a862ba 100644 --- a/chrome/browser/ui/ash/system_tray_client_impl_browsertest.cc +++ b/chrome/browser/ui/ash/system_tray_client_impl_browsertest.cc
@@ -4,7 +4,7 @@ #include "chrome/browser/ui/ash/system_tray_client_impl.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_view_ids.h" #include "ash/public/cpp/login_screen_test_api.h" #include "ash/public/cpp/system_tray_test_api.h"
diff --git a/chrome/browser/ui/browser_dialogs.h b/chrome/browser/ui/browser_dialogs.h index 1b58f18..f647096 100644 --- a/chrome/browser/ui/browser_dialogs.h +++ b/chrome/browser/ui/browser_dialogs.h
@@ -133,7 +133,7 @@ std::unique_ptr<WebApplicationInfo> web_app_info, AppInstallationAcceptanceCallback callback); -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) +#if !defined(OS_ANDROID) // Callback used to indicate whether a user has accepted the launch of a // web app. The boolean parameter is true when the user accepts the dialog. using WebAppProtocolHandlerAcceptanceCallback = @@ -147,7 +147,7 @@ Profile* profile, const web_app::AppId& app_id, WebAppProtocolHandlerAcceptanceCallback close_callback); -#endif +#endif // !defined(OS_ANDROID) #if defined(OS_WIN) || defined(OS_MAC) || \ (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
diff --git a/chrome/browser/ui/browser_window.h b/chrome/browser/ui/browser_window.h index e746691..8c9c638 100644 --- a/chrome/browser/ui/browser_window.h +++ b/chrome/browser/ui/browser_window.h
@@ -13,7 +13,6 @@ #include "build/build_config.h" #include "chrome/browser/apps/intent_helper/apps_navigation_types.h" #include "chrome/browser/lifetime/browser_close_manager.h" -#include "chrome/browser/sharing/sharing_dialog_data.h" #include "chrome/browser/signin/chrome_signin_helper.h" #include "chrome/browser/translate/chrome_translate_client.h" #include "chrome/browser/ui/bookmarks/bookmark_bar.h" @@ -37,6 +36,7 @@ class Browser; class SharingDialog; +struct SharingDialogData; class DownloadShelf; class ExclusiveAccessContext; class ExtensionsContainer;
diff --git a/chrome/browser/ui/search/search_ipc_router.cc b/chrome/browser/ui/search/search_ipc_router.cc index 6d4cf0d..5b8de8f 100644 --- a/chrome/browser/ui/search/search_ipc_router.cc +++ b/chrome/browser/ui/search/search_ipc_router.cc
@@ -34,6 +34,8 @@ return instant_service->IsInstantProcess(process_host->GetID()); } +} // namespace + class EmbeddedSearchClientFactoryImpl : public SearchIPCRouter::EmbeddedSearchClientFactory, public search::mojom::EmbeddedSearchConnector { @@ -42,7 +44,10 @@ EmbeddedSearchClientFactoryImpl( content::WebContents* web_contents, mojo::AssociatedReceiver<search::mojom::EmbeddedSearch>* receiver) - : client_receiver_(receiver), factory_receivers_(web_contents, this) { + : client_receiver_(receiver), + factory_receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { DCHECK(web_contents); DCHECK(receiver); // Before we are connected to a frame we throw away all messages. @@ -91,8 +96,6 @@ embedded_search_client_.Bind(std::move(client)); } -} // namespace - SearchIPCRouter::SearchIPCRouter(content::WebContents* web_contents, Delegate* delegate, std::unique_ptr<Policy> policy)
diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chrome/browser/ui/search_engines/search_engine_tab_helper.cc index 8c4e4c9..6516512 100644 --- a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc +++ b/chrome/browser/ui/search_engines/search_engine_tab_helper.cc
@@ -83,7 +83,9 @@ SearchEngineTabHelper::SearchEngineTabHelper(WebContents* web_contents) : content::WebContentsObserver(web_contents), - osdd_handler_receivers_(web_contents, this) { + osdd_handler_receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { DCHECK(web_contents); favicon::CreateContentFaviconDriverForWebContents(web_contents);
diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc index fa8cf52..f2f95f5 100644 --- a/chrome/browser/ui/startup/startup_browser_creator.cc +++ b/chrome/browser/ui/startup/startup_browser_creator.cc
@@ -126,9 +126,7 @@ #include "ui/base/ui_base_features.h" #endif -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) #include "chrome/browser/ui/startup/web_app_protocol_handling_startup_utils.h" -#endif #if defined(OS_WIN) || defined(OS_MAC) || \ (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) @@ -503,7 +501,14 @@ StartupBrowserCreator::StartupBrowserCreator() = default; -StartupBrowserCreator::~StartupBrowserCreator() = default; +StartupBrowserCreator::~StartupBrowserCreator() { + // When StartupBrowserCreator finishes doing its job, we should reset + // was_restarted_read_ so that this browser no longer reads as restarted. + // In the case where the browser is still running due to PWA or + // background-extension subsequent startups should not execute restarted + // behaviors. + was_restarted_read_ = false; +} // static bool StartupBrowserCreator::was_restarted_read_ = false; @@ -1083,7 +1088,6 @@ } } -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) // Web app Protocol handling. auto startup_callback = base::BindOnce( [](bool process_startup, const base::CommandLine& command_line, @@ -1109,7 +1113,6 @@ std::move(startup_callback))) { return true; } -#endif return StartupLaunchAfterProtocolHandler( command_line, cur_dir, privacy_safe_profile, process_startup,
diff --git a/chrome/browser/ui/startup/startup_browser_creator.h b/chrome/browser/ui/startup/startup_browser_creator.h index 8b69f8d..f86b37b 100644 --- a/chrome/browser/ui/startup/startup_browser_creator.h +++ b/chrome/browser/ui/startup/startup_browser_creator.h
@@ -110,9 +110,12 @@ Profile* GetPrivateProfileIfRequested(const base::CommandLine& command_line, Profile* profile); - // When called the first time, reads the value of the preference - // kWasRestarted and resets it to false. Subsequent calls return the value - // which was read the first time. + // Returns true during browser process startup if the previous browser was + // restarted. This only returns true before the first StartupBrowserCreator + // destructs. WasRestarted() will update prefs::kWasRestarted to false, but + // caches the value of kWasRestarted until StartupBrowserCreator's + // dtor is called. After the dtor is called, this function returns the value + // of the preference which is expected to be false as per above. static bool WasRestarted(); static SessionStartupPref GetSessionStartupPref(
diff --git a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc index a8aa231..3f18ccb 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
@@ -18,6 +18,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/test/bind.h" #include "base/test/metrics/histogram_tester.h" +#include "base/test/mock_callback.h" #include "base/threading/thread_restrictions.h" #include "build/branding_buildflags.h" #include "build/build_config.h" @@ -41,8 +42,10 @@ #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/scoped_profile_keep_alive.h" #include "chrome/browser/search/search.h" +#include "chrome/browser/sessions/app_session_service.h" #include "chrome/browser/sessions/app_session_service_factory.h" #include "chrome/browser/sessions/session_restore.h" +#include "chrome/browser/sessions/session_restore_test_helper.h" #include "chrome/browser/sessions/session_service_factory.h" #include "chrome/browser/signin/signin_promo.h" #include "chrome/browser/signin/signin_util.h" @@ -157,6 +160,10 @@ #include "chromeos/lacros/lacros_chrome_service_impl.h" #endif +#if BUILDFLAG(ENABLE_APP_SESSION_SERVICE) && !BUILDFLAG(IS_CHROMEOS_ASH) +#include "chrome/browser/first_run/scoped_relaunch_chrome_browser_override.h" +#endif + using testing::_; using extensions::Extension; @@ -1273,6 +1280,153 @@ ASSERT_EQ(1u, chrome::GetBrowserCount(profile2)); } +#if BUILDFLAG(ENABLE_APP_SESSION_SERVICE) && !BUILDFLAG(IS_CHROMEOS_ASH) +web_app::AppId InstallPWA(Profile* profile, const GURL& start_url) { + auto web_app_info = std::make_unique<WebApplicationInfo>(); + web_app_info->start_url = start_url; + web_app_info->scope = start_url.GetWithoutFilename(); + web_app_info->open_as_window = true; + web_app_info->title = u"A Web App"; + return web_app::test::InstallWebApp(profile, std::move(web_app_info)); +} + +class StartupBrowserCreatorRestartTest : public StartupBrowserCreatorTest, + public BrowserListObserver { + protected: + StartupBrowserCreatorRestartTest() { BrowserList::AddObserver(this); } + ~StartupBrowserCreatorRestartTest() override { + // We might have already been removed but it's safe to call again. + BrowserList::RemoveObserver(this); + } + + void SetUpInProcessBrowserTestFixture() override { + base::StringPiece test_name = + ::testing::UnitTest::GetInstance()->current_test_info()->name(); + + if (base::StartsWith(test_name, "PRE_")) { + // The PRE_ test will call chrome::AttemptRestart(). + mock_relaunch_callback_ = std::make_unique<::testing::StrictMock< + base::MockCallback<upgrade_util::RelaunchChromeBrowserCallback>>>(); + EXPECT_CALL(*mock_relaunch_callback_, Run); + relaunch_chrome_override_ = + std::make_unique<upgrade_util::ScopedRelaunchChromeBrowserOverride>( + mock_relaunch_callback_->Get()); + } + } + + void OnBrowserAdded(Browser* browser) override { + base::StringPiece test_name = + ::testing::UnitTest::GetInstance()->current_test_info()->name(); + + // The non PRE_ test will start up as if it was restarted. + // Check that, then remove the observer. + if (!base::StartsWith(test_name, "PRE_")) { + EXPECT_TRUE(StartupBrowserCreator::WasRestarted()); + EXPECT_FALSE(browser_added_check_passed_); + browser_added_check_passed_ = true; + BrowserList::RemoveObserver(this); + } + } + + bool browser_added_check_passed_ = false; + + private: + std::unique_ptr< + base::MockCallback<upgrade_util::RelaunchChromeBrowserCallback>> + mock_relaunch_callback_; + std::unique_ptr<upgrade_util::ScopedRelaunchChromeBrowserOverride> + relaunch_chrome_override_; +}; + +#if defined(OS_MAC) +// This test triggers a restart and expects apps to be restored. This is not +// yet enabled on Mac pending crbug.com/1194201. +#define MAYBE_PRE_ProfileRestartedAppRestore \ + DISABLED_PRE_ProfileRestartedAppRestore +#else +#define MAYBE_PRE_ProfileRestartedAppRestore \ + PRE_ProfileRestartedAppRestore +#endif +// Open an App and restart in preparation for the real test. +IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorRestartTest, + MAYBE_PRE_ProfileRestartedAppRestore) { + // Ensure services are started. + Profile* test_profile = browser()->profile(); + + AppSessionServiceFactory::GetForProfileForSessionRestore(test_profile); + SessionStartupPref pref_last(SessionStartupPref::LAST); + SessionStartupPref::SetStartupPref(test_profile, pref_last); + + // Install web app + auto example_url = GURL("http://www.example.com"); + web_app::AppId app_id = InstallPWA(test_profile, example_url); + Browser* app_browser = + web_app::LaunchWebAppBrowserAndWait(test_profile, app_id); + + ASSERT_NE(app_browser, nullptr); + ASSERT_EQ(app_browser->type(), Browser::Type::TYPE_APP); + ASSERT_TRUE(web_app::AppBrowserController::IsForWebApp(app_browser, app_id)); + + chrome::AttemptRestart(); + + PrefService* pref_service = g_browser_process->local_state(); + EXPECT_TRUE(pref_service->GetBoolean(prefs::kWasRestarted)); +} + +#if defined(OS_MAC) +// This test triggers a restart and expects apps to be restored. This is not +// yet enabled on Mac pending crbug.com/1194201. +#define MAYBE_ProfileRestartedAppRestore DISABLED_ProfileRestartedAppRestore +#else +#define MAYBE_ProfileRestartedAppRestore ProfileRestartedAppRestore +#endif +// This test tests a specific scenario where the browser is marked as restarted +// and a SessionBrowserCreatorImpl::MaybeAsyncRestore is triggered. +// ShouldRestoreApps will return true because the profile is marked as +// restarted which will trigger apps to restore. If apps are open at this point +// and an app restore occurs, apps will be duplicated. This test ensures that +// does not occur. This test doesn't build on non app_session_service +// platforms, hence the buildflag disablement. +IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorRestartTest, + MAYBE_ProfileRestartedAppRestore) { + Profile* test_profile = browser()->profile(); + + // StartupBrowserCreator() has already run in SetUp(), so it would already be + // reset by this point. + EXPECT_FALSE(StartupBrowserCreator::WasRestarted()); + EXPECT_TRUE(browser_added_check_passed_); + // Now close the original (and last alive) tabbed browser window + // note: there is still an app open + ASSERT_EQ(2u, BrowserList::GetInstance()->size()); + CloseBrowserSynchronously(browser()); + ASSERT_EQ(1U, BrowserList::GetInstance()->size()); + + // Now hit the codepath that would get hit if someone opened chrome + // from a desktop shortcut or similar. + SessionRestoreTestHelper restore_waiter; + base::CommandLine dummy(base::CommandLine::NO_PROGRAM); + StartupBrowserCreatorImpl creator(base::FilePath(), dummy, + chrome::startup::IS_NOT_FIRST_RUN); + creator.Launch(test_profile, std::vector<GURL>(), false, nullptr); + restore_waiter.Wait(); + + // We expect a browser to open, but we should NOT get a duplicate app. + // Note at this point, the profile IsRestarted() is still true. + ASSERT_EQ(2u, BrowserList::GetInstance()->size()); + bool app_found = false; + bool browser_found = false; + for (Browser* browser : *(BrowserList::GetInstance())) { + if (browser->type() == Browser::Type::TYPE_APP) { + ASSERT_FALSE(app_found); + app_found = true; + } else if (browser->type() == Browser::Type::TYPE_NORMAL) { + ASSERT_FALSE(browser_found); + browser_found = true; + } + } +} +#endif // BUILDFLAG(ENABLE_APP_SESSION_SERVICE) && !BUILDFLAG(IS_CHROMEOS_ASH) + // An observer that returns back to test code after a new browser is added to // the BrowserList. class BrowserAddedObserver : public BrowserListObserver { @@ -1503,15 +1657,6 @@ ASSERT_EQ(2u, BrowserList::GetInstance()->size()); } -web_app::AppId InstallPWA(Profile* profile, const GURL& start_url) { - auto web_app_info = std::make_unique<WebApplicationInfo>(); - web_app_info->start_url = start_url; - web_app_info->scope = start_url.GetWithoutFilename(); - web_app_info->open_as_window = true; - web_app_info->title = u"A Web App"; - return web_app::test::InstallWebApp(profile, std::move(web_app_info)); -} - IN_PROC_BROWSER_TEST_F(StartupBrowserWithRealWebAppTest, PRE_LastUsedProfilesWithRealWebApp) { ASSERT_EQ(1u, chrome::GetBrowserCount(browser()->profile())); @@ -2581,10 +2726,13 @@ // Validates that prefs::kWasRestarted is automatically reset after next browser // start. -class StartupBrowserCreatorWasRestartedFlag : public InProcessBrowserTest { +class StartupBrowserCreatorWasRestartedFlag : public InProcessBrowserTest, + public BrowserListObserver { public: - StartupBrowserCreatorWasRestartedFlag() = default; - ~StartupBrowserCreatorWasRestartedFlag() override = default; + StartupBrowserCreatorWasRestartedFlag() { BrowserList::AddObserver(this); } + ~StartupBrowserCreatorWasRestartedFlag() override { + BrowserList::RemoveObserver(this); + } void SetUpCommandLine(base::CommandLine* command_line) override { InProcessBrowserTest::SetUpCommandLine(command_line); @@ -2598,12 +2746,30 @@ temp_dir_.GetPath().Append(chrome::kLocalStateFilename), json)); } + protected: + // SetUpCommandLine is setting kWasRestarted, so these tests all start up + // with WasRestarted() true. + void OnBrowserAdded(Browser* browser) override { + EXPECT_TRUE(StartupBrowserCreator::WasRestarted()); + EXPECT_FALSE( + g_browser_process->local_state()->GetBoolean(prefs::kWasRestarted)); + on_browser_added_hit_ = true; + } + + bool on_browser_added_hit_ = false; + private: base::ScopedTempDir temp_dir_; }; IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorWasRestartedFlag, Test) { - EXPECT_TRUE(StartupBrowserCreator::WasRestarted()); + // OnBrowserAdded() should have been hit before the test body began. + EXPECT_TRUE(on_browser_added_hit_); + // This is a bit strange but what occurs is that StartupBrowserCreator runs + // before this test body is hit and ~StartupBrowserCreator() will reset the + // restarted state, so here when we read WasRestarted() it should already be + // reset to false. + EXPECT_FALSE(StartupBrowserCreator::WasRestarted()); EXPECT_FALSE( g_browser_process->local_state()->GetBoolean(prefs::kWasRestarted)); }
diff --git a/chrome/browser/ui/views/DEPS b/chrome/browser/ui/views/DEPS index 5f98f15..dacf3b6 100644 --- a/chrome/browser/ui/views/DEPS +++ b/chrome/browser/ui/views/DEPS
@@ -9,7 +9,6 @@ specific_include_rules = { "chrome_views_delegate_chromeos\.cc": [ - "+ash/public/cpp/ash_features.h", "+ash/shell.h", ], "qrcode_generator\.*": [
diff --git a/chrome/browser/ui/views/chrome_views_delegate_chromeos.cc b/chrome/browser/ui/views/chrome_views_delegate_chromeos.cc index ffdc7de..c7e4e73 100644 --- a/chrome/browser/ui/views/chrome_views_delegate_chromeos.cc +++ b/chrome/browser/ui/views/chrome_views_delegate_chromeos.cc
@@ -4,8 +4,8 @@ #include "chrome/browser/ui/views/chrome_views_delegate.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/accelerators.h" -#include "ash/public/cpp/ash_features.h" #include "ash/shell.h" #include "base/bind.h" #include "base/task/current_thread.h"
diff --git a/chrome/browser/ui/views/frame/window_controls_overlay_input_routing_mac.h b/chrome/browser/ui/views/frame/window_controls_overlay_input_routing_mac.h index 597ffc4..d08e159 100644 --- a/chrome/browser/ui/views/frame/window_controls_overlay_input_routing_mac.h +++ b/chrome/browser/ui/views/frame/window_controls_overlay_input_routing_mac.h
@@ -22,7 +22,7 @@ class WindowControlsOverlayInputRoutingMac : public views::ViewObserver { public: WindowControlsOverlayInputRoutingMac( - BrowserNonClientFrameViewMac const* browser_non_client_frame_view_mac, + BrowserNonClientFrameViewMac* browser_non_client_frame_view_mac, views::View* overlay_view, remote_cocoa::mojom::WindowControlsOverlayNSViewType overlay_type); ~WindowControlsOverlayInputRoutingMac() override; @@ -36,7 +36,7 @@ private: void UpdateNSViewPosition(); - BrowserNonClientFrameViewMac const* browser_non_client_frame_view_mac = + BrowserNonClientFrameViewMac* browser_non_client_frame_view_mac_ = nullptr; // weak views::View* overlay_view_; // weak. Owned by BrowserNonClientFrameViewMac. views::NativeWidgetMacNSWindowHost* host_; // weak. Owned by NativeWidgetMac.
diff --git a/chrome/browser/ui/views/frame/window_controls_overlay_input_routing_mac.mm b/chrome/browser/ui/views/frame/window_controls_overlay_input_routing_mac.mm index d8d845e..4acb481 100644 --- a/chrome/browser/ui/views/frame/window_controls_overlay_input_routing_mac.mm +++ b/chrome/browser/ui/views/frame/window_controls_overlay_input_routing_mac.mm
@@ -11,17 +11,27 @@ #include "ui/views/widget/widget.h" WindowControlsOverlayInputRoutingMac::WindowControlsOverlayInputRoutingMac( - BrowserNonClientFrameViewMac const* browser_non_client_frame_view_mac, + BrowserNonClientFrameViewMac* browser_non_client_frame_view_mac, views::View* overlay_view, remote_cocoa::mojom::WindowControlsOverlayNSViewType overlay_type) - : browser_non_client_frame_view_mac(browser_non_client_frame_view_mac), + : browser_non_client_frame_view_mac_(browser_non_client_frame_view_mac), overlay_view_(overlay_view), overlay_type_(overlay_type) { - overlay_view_->AddObserver(this); + // WebAppOriginText animates and disappears during initial launch so we want + // to observe that and update the remote view accordingly. + if (overlay_type_ == + remote_cocoa::mojom::WindowControlsOverlayNSViewType::kWebAppFrameToolbar) + overlay_view_->AddObserver(this); + else + browser_non_client_frame_view_mac_->AddObserver(this); } WindowControlsOverlayInputRoutingMac::~WindowControlsOverlayInputRoutingMac() { - overlay_view_->RemoveObserver(this); + if (overlay_type_ == + remote_cocoa::mojom::WindowControlsOverlayNSViewType::kWebAppFrameToolbar) + overlay_view_->RemoveObserver(this); + else + browser_non_client_frame_view_mac_->RemoveObserver(this); } void WindowControlsOverlayInputRoutingMac::OnViewBoundsChanged( @@ -31,7 +41,7 @@ void WindowControlsOverlayInputRoutingMac::Enable() { auto window = - browser_non_client_frame_view_mac->GetWidget()->GetNativeWindow(); + browser_non_client_frame_view_mac_->GetWidget()->GetNativeWindow(); host_ = views::NativeWidgetMacNSWindowHost::GetFromNativeWindow(window); host_->AddRemoteWindowControlsOverlayView(overlay_type_);
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc index 61524c9..c7eb11e 100644 --- a/chrome/browser/ui/views/overlay/overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -51,8 +51,8 @@ #include "ui/views/window/non_client_view.h" #if BUILDFLAG(IS_CHROMEOS_ASH) +#include "ash/constants/ash_features.h" #include "ash/public/cpp/ash_constants.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/rounded_corner_utils.h" #include "ash/public/cpp/window_properties.h" // nogncheck #include "ui/aura/window.h"
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc index d302fa1..1c43ab0e 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -53,7 +53,6 @@ #include "ui/views/widget/root_view.h" #if BUILDFLAG(IS_CHROMEOS_ASH) -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/tablet_mode.h" #include "ash/public/cpp/window_properties.h" // nogncheck #include "chromeos/ui/base/window_properties.h"
diff --git a/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc b/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc index 76ce7af..508c520 100644 --- a/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc +++ b/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc
@@ -209,7 +209,7 @@ return new_file_path; } -// // Launches the |app_id| web app with |files| handles, awaits for +// Launches the |app_id| web app with |files| handles, awaits for // |expected_launch_url| to load and stashes any launch params on // "window.launchParams" for further inspection. content::WebContents* LaunchApplication( @@ -347,6 +347,19 @@ apps::mojom::LaunchContainer::kLaunchContainerTab); } +// Regression test for crbug.com/1205528 +IN_PROC_BROWSER_TEST_F(WebAppFileHandlingBrowserTest, + LaunchParamsEmptyIfFileUnhandled) { + InstallFileHandlingPWA(); + SetFileHandlingPermission(CONTENT_SETTING_ALLOW); + + // Test that file handler dispatches to the normal start URL when the file + // path is not a handled file type, and `launchParams` remains undefined. + content::WebContents* web_contents = + LaunchWithFiles(app_id(), GetSecureAppURL(), {NewTestFilePath("png")}); + EXPECT_EQ(false, content::EvalJs(web_contents, "!!window.launchParams")); +} + // Disabled due to flakiness on Linux bots. http://crbug.com/1207370 #if defined(OS_LINUX) #define MAYBE_UnlimitedFileHandlersForChrome \
diff --git a/chrome/browser/ui/web_applications/web_app_launch_manager.cc b/chrome/browser/ui/web_applications/web_app_launch_manager.cc index c39a81f..3982aba 100644 --- a/chrome/browser/ui/web_applications/web_app_launch_manager.cc +++ b/chrome/browser/ui/web_applications/web_app_launch_manager.cc
@@ -179,39 +179,6 @@ return translated_url; } -GURL GetLaunchUrl(WebAppProvider& provider, - const apps::AppLaunchParams& params, - const apps::ShareTarget* share_target) { - if (!params.override_url.is_empty()) - return params.override_url; - - // Handle url_handlers launch - absl::optional<GURL> url_handler_launch_url = - GetUrlHandlingLaunchUrl(provider, params); - if (url_handler_launch_url.has_value()) - return url_handler_launch_url.value(); - - // Handle file_handlers launch - absl::optional<GURL> file_handler_url = - provider.os_integration_manager().GetMatchingFileHandlerURL( - params.app_id, params.launch_files); - if (file_handler_url.has_value()) - return file_handler_url.value(); - - // Handle protocol_handlers launch - absl::optional<GURL> protocol_handler_translated_url = - GetProtocolHandlingTranslatedUrl(provider, params); - if (protocol_handler_translated_url.has_value()) - return protocol_handler_translated_url.value(); - - // Handle share_target launch - if (share_target) - return share_target->action; - - // Default launch - return provider.registrar().GetAppLaunchUrl(params.app_id); -} - bool IsProtocolHandlerCommandLineArg(const base::CommandLine::StringType& arg) { #if defined(OS_WIN) GURL url(base::WideToUTF16(arg)); @@ -293,6 +260,7 @@ if (GetOpenApplicationCallback()) return GetOpenApplicationCallback().Run(std::move(params)); + // Determine the launch URL. bool is_share_intent = params.intent && (params.intent->action == apps_util::kIntentActionSend || @@ -300,8 +268,32 @@ const apps::ShareTarget* const share_target = is_share_intent ? provider_->registrar().GetAppShareTarget(params.app_id) : nullptr; - const GURL url = GetLaunchUrl(*provider_, params, share_target); - DCHECK(url.is_valid()); + bool set_file_launch_paths = false; + GURL launch_url; + if (!params.override_url.is_empty()) { + launch_url = params.override_url; + } else if (absl::optional<GURL> url_handler_launch_url = + GetUrlHandlingLaunchUrl(*provider_, params)) { + // Handle url_handlers launch. + launch_url = url_handler_launch_url.value(); + } else if (absl::optional<GURL> file_handler_url = + provider_->os_integration_manager().GetMatchingFileHandlerURL( + params.app_id, params.launch_files)) { + // Handle file_handlers launch. + launch_url = file_handler_url.value(); + set_file_launch_paths = true; + } else if (absl::optional<GURL> protocol_handler_translated_url = + GetProtocolHandlingTranslatedUrl(*provider_, params)) { + // Handle protocol_handlers launch. + launch_url = protocol_handler_translated_url.value(); + } else if (share_target) { + // Handle share_target launch. + launch_url = share_target->action; + } else { + // This is a default launch. + launch_url = provider_->registrar().GetAppLaunchUrl(params.app_id); + } + DCHECK(launch_url.is_valid()); // Place new windows on the specified display. display::ScopedDisplayForNewWindows scoped_display(params.display_id); @@ -311,7 +303,7 @@ GetSystemWebAppTypeForAppId(profile_, params.app_id); if (system_app_type) { Browser* browser = - LaunchSystemWebAppImpl(profile_, *system_app_type, url, params); + LaunchSystemWebAppImpl(profile_, *system_app_type, launch_url, params); return browser->tab_strip_model()->GetActiveWebContents(); } @@ -357,10 +349,11 @@ const int tab_index = model->GetIndexOfWebContents(existing_tab); existing_tab->OpenURL(content::OpenURLParams( - url, + launch_url, content::Referrer::SanitizeForRequest( - url, content::Referrer(existing_tab->GetURL(), - network::mojom::ReferrerPolicy::kDefault)), + launch_url, + content::Referrer(existing_tab->GetURL(), + network::mojom::ReferrerPolicy::kDefault)), disposition, ui::PAGE_TRANSITION_AUTO_BOOKMARK, /*is_renderer_initiated=*/false)); @@ -370,18 +363,17 @@ web_contents = existing_tab; SetTabHelperAppId(web_contents, params.app_id); } else { - web_contents = NavigateWebApplicationWindow( - browser, params.app_id, url, WindowOpenDisposition::NEW_FOREGROUND_TAB); + web_contents = + NavigateWebApplicationWindow(browser, params.app_id, launch_url, + WindowOpenDisposition::NEW_FOREGROUND_TAB); } // This can happen if Navigate() fails. if (!web_contents) return nullptr; - web_app::OsIntegrationManager& os_integration_manager = - provider_->os_integration_manager(); - if (os_integration_manager.IsFileHandlingAPIAvailable(params.app_id)) { - web_launch::WebLaunchFilesHelper::SetLaunchPaths(web_contents, url, + if (set_file_launch_paths) { + web_launch::WebLaunchFilesHelper::SetLaunchPaths(web_contents, launch_url, params.launch_files); } @@ -400,13 +392,13 @@ // Record the launch time in the site engagement service. A recent web // app launch will provide an engagement boost to the origin. site_engagement::SiteEngagementService::Get(profile_) - ->SetLastShortcutLaunchTime(web_contents, url); + ->SetLastShortcutLaunchTime(web_contents, launch_url); provider_->registry_controller().SetAppLastLaunchTime(params.app_id, base::Time::Now()); // Refresh the app banner added to homescreen event. The user may have // cleared their browsing data since installing the app, which removes the // event and will potentially permit a banner to be shown for the site. - RecordAppBanner(web_contents, url); + RecordAppBanner(web_contents, launch_url); return web_contents; }
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc index 00531dd..3513da31 100644 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -127,11 +127,11 @@ #include "chrome/browser/ui/webui/downloads/downloads_ui.h" #include "chrome/browser/ui/webui/feedback/feedback_ui.h" #include "chrome/browser/ui/webui/history/history_ui.h" +#include "chrome/browser/ui/webui/history_clusters/memories_ui.h" #include "chrome/browser/ui/webui/identity_internals_ui.h" #include "chrome/browser/ui/webui/inspect_ui.h" #include "chrome/browser/ui/webui/management/management_ui.h" #include "chrome/browser/ui/webui/media_router/media_router_internals_ui.h" -#include "chrome/browser/ui/webui/memories/memories_ui.h" #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h" #include "chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h" #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
diff --git a/chrome/browser/ui/webui/chromeos/internet_detail_dialog.cc b/chrome/browser/ui/webui/chromeos/internet_detail_dialog.cc index 5823743..91bd298 100644 --- a/chrome/browser/ui/webui/chromeos/internet_detail_dialog.cc +++ b/chrome/browser/ui/webui/chromeos/internet_detail_dialog.cc
@@ -4,7 +4,7 @@ #include "chrome/browser/ui/webui/chromeos/internet_detail_dialog.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/network_config_service.h" #include "base/json/json_writer.h" #include "base/strings/utf_string_conversions.h"
diff --git a/chrome/browser/ui/webui/memories/BUILD.gn b/chrome/browser/ui/webui/history_clusters/BUILD.gn similarity index 84% rename from chrome/browser/ui/webui/memories/BUILD.gn rename to chrome/browser/ui/webui/history_clusters/BUILD.gn index 35b2a3bc..93da00da 100644 --- a/chrome/browser/ui/webui/memories/BUILD.gn +++ b/chrome/browser/ui/webui/history_clusters/BUILD.gn
@@ -6,6 +6,6 @@ mojom("mojo_bindings") { sources = [ "history_clusters.mojom" ] - webui_module_path = "/chrome/browser/ui/webui/memories" + webui_module_path = "/chrome/browser/ui/webui/history_clusters" public_deps = [ "//components/history_clusters/core:mojo_bindings" ] }
diff --git a/chrome/browser/ui/webui/memories/OWNERS b/chrome/browser/ui/webui/history_clusters/OWNERS similarity index 100% rename from chrome/browser/ui/webui/memories/OWNERS rename to chrome/browser/ui/webui/history_clusters/OWNERS
diff --git a/chrome/browser/ui/webui/memories/history_clusters.mojom b/chrome/browser/ui/webui/history_clusters/history_clusters.mojom similarity index 100% rename from chrome/browser/ui/webui/memories/history_clusters.mojom rename to chrome/browser/ui/webui/history_clusters/history_clusters.mojom
diff --git a/chrome/browser/ui/webui/memories/memories_handler.cc b/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc similarity index 81% rename from chrome/browser/ui/webui/memories/memories_handler.cc rename to chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc index bf4f5c0..4ff7c2eae 100644 --- a/chrome/browser/ui/webui/memories/memories_handler.cc +++ b/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/webui/memories/memories_handler.h" +#include "chrome/browser/ui/webui/history_clusters/history_clusters_handler.h" #include <algorithm> #include <utility> @@ -39,7 +39,7 @@ #include "ui/base/l10n/time_format.h" #endif -MemoriesHandler::MemoriesHandler( +HistoryClustersHandler::HistoryClustersHandler( mojo::PendingReceiver<history_clusters::mojom::PageHandler> pending_page_handler, Profile* profile, @@ -56,14 +56,14 @@ service_observation_.Observe(history_clusters_service); } -MemoriesHandler::~MemoriesHandler() = default; +HistoryClustersHandler::~HistoryClustersHandler() = default; -void MemoriesHandler::SetPage( +void HistoryClustersHandler::SetPage( mojo::PendingRemote<history_clusters::mojom::Page> pending_page) { page_.Bind(std::move(pending_page)); } -void MemoriesHandler::QueryClusters( +void HistoryClustersHandler::QueryClusters( history_clusters::mojom::QueryParamsPtr query_params) { auto result_mojom = history_clusters::mojom::QueryResult::New(); result_mojom->title = query_params->query; @@ -76,7 +76,7 @@ result_mojom->is_continuation = true; } auto result_callback = - base::BindOnce(&MemoriesHandler::OnClustersQueryResult, + base::BindOnce(&HistoryClustersHandler::OnClustersQueryResult, weak_ptr_factory_.GetWeakPtr(), std::move(result_mojom)); if (history_clusters::RemoteModelEndpoint().is_valid()) { // Cancel pending queries, if any. @@ -108,7 +108,7 @@ } } -void MemoriesHandler::RemoveVisits( +void HistoryClustersHandler::RemoveVisits( std::vector<history_clusters::mojom::URLVisitPtr> visits, RemoveVisitsCallback callback) { // Reject the request if a pending task exists or the set of visits is empty. @@ -131,44 +131,45 @@ HistoryClustersServiceFactory::GetForBrowserContext(profile_); history_clusters_service->RemoveVisits( expire_list, - base::BindOnce(&MemoriesHandler::OnVisitsRemoved, + base::BindOnce(&HistoryClustersHandler::OnVisitsRemoved, weak_ptr_factory_.GetWeakPtr(), std::move(visits)), &remove_task_tracker_); std::move(callback).Run(true); } -void MemoriesHandler::OnMemoriesDebugMessage(const std::string& message) { +void HistoryClustersHandler::OnMemoriesDebugMessage( + const std::string& message) { if (content::RenderFrameHost* rfh = web_contents_->GetMainFrame()) { rfh->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kInfo, message); } } -void MemoriesHandler::OnClustersQueryResult( +void HistoryClustersHandler::OnClustersQueryResult( history_clusters::mojom::QueryResultPtr result_mojom, history_clusters::mojom::QueryParamsPtr continuation_query_params, - std::vector<history_clusters::mojom::ClusterPtr> memory_mojoms) { + std::vector<history_clusters::mojom::ClusterPtr> cluster_mojoms) { result_mojom->continuation_query_params = std::move(continuation_query_params); - result_mojom->clusters = std::move(memory_mojoms); + result_mojom->clusters = std::move(cluster_mojoms); page_->OnClustersQueryResult(std::move(result_mojom)); } -void MemoriesHandler::OnVisitsRemoved( +void HistoryClustersHandler::OnVisitsRemoved( std::vector<history_clusters::mojom::URLVisitPtr> visits) { page_->OnVisitsRemoved(std::move(visits)); } #if !defined(CHROME_BRANDED) -void MemoriesHandler::QueryHistoryService( +void HistoryClustersHandler::QueryHistoryService( history_clusters::mojom::QueryParamsPtr query_params, - std::vector<history_clusters::mojom::ClusterPtr> memory_mojoms, - MemoriesQueryResultsCallback callback) { + std::vector<history_clusters::mojom::ClusterPtr> cluster_mojoms, + QueryResultsCallback callback) { const size_t max_count = query_params->max_count ? query_params->max_count : -1; - if (memory_mojoms.size() == max_count) { - // Enough Memories have been created. Run the callback with those Memories + if (cluster_mojoms.size() == max_count) { + // Enough clusters have been created. Run the callback with those Clusters // along with the continuation query params. - std::move(callback).Run(std::move(query_params), std::move(memory_mojoms)); + std::move(callback).Run(std::move(query_params), std::move(cluster_mojoms)); return; } @@ -185,26 +186,26 @@ std::u16string query = base::UTF8ToUTF16(query_params->query); history_service->QueryHistory( query, query_options, - base::BindOnce(&MemoriesHandler::OnHistoryQueryResults, + base::BindOnce(&HistoryClustersHandler::OnHistoryQueryResults, weak_ptr_factory_.GetWeakPtr(), std::move(query_params), - std::move(memory_mojoms), std::move(callback)), + std::move(cluster_mojoms), std::move(callback)), &query_task_tracker_); } -void MemoriesHandler::OnHistoryQueryResults( +void HistoryClustersHandler::OnHistoryQueryResults( history_clusters::mojom::QueryParamsPtr query_params, - std::vector<history_clusters::mojom::ClusterPtr> memory_mojoms, - MemoriesQueryResultsCallback callback, + std::vector<history_clusters::mojom::ClusterPtr> cluster_mojoms, + QueryResultsCallback callback, history::QueryResults results) { if (results.empty()) { - // No more results to create Memories from. Run the callback with the - // Memories created so far along with the continuation query params. - std::move(callback).Run(std::move(query_params), std::move(memory_mojoms)); + // No more results to create Clusters from. Run the callback with the + // Clusters created so far along with the continuation query params. + std::move(callback).Run(std::move(query_params), std::move(cluster_mojoms)); return; } - auto memory_mojom = history_clusters::mojom::Cluster::New(); - memory_mojom->id = rand(); + auto cluster_mojom = history_clusters::mojom::Cluster::New(); + cluster_mojom->id = rand(); const TemplateURLService* template_url_service = TemplateURLServiceFactory::GetForProfile(profile_); @@ -225,11 +226,11 @@ std::vector<history_clusters::mojom::URLVisitPtr> visits; for (const auto& result : results) { - // Last visit time of the Memory is the visit time of most recently visited - // URL in the Memory. Collect all the visits in that day into the Memory. - if (memory_mojom->last_visit_time.is_null()) { - memory_mojom->last_visit_time = result.visit_time(); - } else if (memory_mojom->last_visit_time.LocalMidnight() > + // Last visit time of the Cluster is the visit time of most recently visited + // URL in the Cluster. Collect all the visits in that day into the Cluster. + if (cluster_mojom->last_visit_time.is_null()) { + cluster_mojom->last_visit_time = result.visit_time(); + } else if (cluster_mojom->last_visit_time.LocalMidnight() > result.visit_time()) { break; } @@ -310,9 +311,9 @@ // Add the visits and the related searches to the cluster. for (auto& visit : visits) { - if (memory_mojom->visits.empty()) { + if (cluster_mojom->visits.empty()) { // The first visit will be featured prominently and have related searches. - memory_mojom->visits.push_back(std::move(visit)); + cluster_mojom->visits.push_back(std::move(visit)); for (auto& search_query : related_searches) { const std::string search_query_utf8 = base::UTF16ToUTF8(search_query); @@ -324,22 +325,22 @@ auto search_query_mojom = history_clusters::mojom::SearchQuery::New(); search_query_mojom->query = search_query_utf8; search_query_mojom->url = GURL(search_url); - memory_mojom->visits[0]->related_searches.push_back( + cluster_mojom->visits[0]->related_searches.push_back( std::move(search_query_mojom)); } } else { // The rest of the visits will related visits of the first one. - memory_mojom->visits[0]->related_visits.push_back(std::move(visit)); + cluster_mojom->visits[0]->related_visits.push_back(std::move(visit)); } } - // Continue to extract Memories. Set the recency threshold to 11:59:59pm of + // Continue to extract Clusters. Set the recency threshold to 11:59:59pm of // the day before the Memory's `last_visit_time`. query_params->recency_threshold = - memory_mojom->last_visit_time.LocalMidnight() - + cluster_mojom->last_visit_time.LocalMidnight() - base::TimeDelta::FromSeconds(1); - memory_mojoms.push_back(std::move(memory_mojom)); - QueryHistoryService(std::move(query_params), std::move(memory_mojoms), + cluster_mojoms.push_back(std::move(cluster_mojom)); + QueryHistoryService(std::move(query_params), std::move(cluster_mojoms), std::move(callback)); } #endif
diff --git a/chrome/browser/ui/webui/memories/memories_handler.h b/chrome/browser/ui/webui/history_clusters/history_clusters_handler.h similarity index 68% rename from chrome/browser/ui/webui/memories/memories_handler.h rename to chrome/browser/ui/webui/history_clusters/history_clusters_handler.h index 82be3bc..a035008e 100644 --- a/chrome/browser/ui/webui/memories/memories_handler.h +++ b/chrome/browser/ui/webui/history_clusters/history_clusters_handler.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_WEBUI_MEMORIES_MEMORIES_HANDLER_H_ -#define CHROME_BROWSER_UI_WEBUI_MEMORIES_MEMORIES_HANDLER_H_ +#ifndef CHROME_BROWSER_UI_WEBUI_HISTORY_CLUSTERS_HISTORY_CLUSTERS_HANDLER_H_ +#define CHROME_BROWSER_UI_WEBUI_HISTORY_CLUSTERS_HISTORY_CLUSTERS_HANDLER_H_ #include <string> @@ -11,7 +11,7 @@ #include "base/memory/weak_ptr.h" #include "base/scoped_observation.h" #include "base/task/cancelable_task_tracker.h" -#include "chrome/browser/ui/webui/memories/history_clusters.mojom.h" +#include "chrome/browser/ui/webui/history_clusters/history_clusters.mojom.h" #include "components/history_clusters/core/history_clusters.mojom.h" #include "components/history_clusters/core/history_clusters_service.h" #include "mojo/public/cpp/bindings/pending_receiver.h" @@ -31,18 +31,20 @@ } // namespace history #endif -// Handles bidirectional communication between memories page and the browser. -class MemoriesHandler +// Handles bidirectional communication between the history clusters page and the +// browser. +class HistoryClustersHandler : public history_clusters::mojom::PageHandler, public history_clusters::HistoryClustersService::Observer { public: - MemoriesHandler(mojo::PendingReceiver<history_clusters::mojom::PageHandler> - pending_page_handler, - Profile* profile, - content::WebContents* web_contents); - MemoriesHandler(const MemoriesHandler&) = delete; - MemoriesHandler& operator=(const MemoriesHandler&) = delete; - ~MemoriesHandler() override; + HistoryClustersHandler( + mojo::PendingReceiver<history_clusters::mojom::PageHandler> + pending_page_handler, + Profile* profile, + content::WebContents* web_contents); + HistoryClustersHandler(const HistoryClustersHandler&) = delete; + HistoryClustersHandler& operator=(const HistoryClustersHandler&) = delete; + ~HistoryClustersHandler() override; // history_clusters::mojom::PageHandler: void SetPage( @@ -56,32 +58,32 @@ void OnMemoriesDebugMessage(const std::string& message) override; private: - // Called with `memory_mojoms` and `continuation_query_params` when the + // Called with `cluster_mojoms` and `continuation_query_params` when the // results of querying the HistoryClustersService are available. The latter is // created in anticipation of a continuation query. Subsequently, the bound // partially constructed `result_mojom` parameter is supplied with - // `memory_mojoms` and `continuation_query_params` and sent to the JS. + // `cluster_mojoms` and `continuation_query_params` and sent to the JS. void OnClustersQueryResult( history_clusters::mojom::QueryResultPtr result_mojom, history_clusters::mojom::QueryParamsPtr continuation_query_params, - std::vector<history_clusters::mojom::ClusterPtr> memory_mojoms); + std::vector<history_clusters::mojom::ClusterPtr> cluster_mojoms); // Called with the set of removed visits. Subsequently, `visits` is sent to // the JS to update the UI. void OnVisitsRemoved( std::vector<history_clusters::mojom::URLVisitPtr> visits); #if !defined(CHROME_BRANDED) - using MemoriesQueryResultsCallback = base::OnceCallback<void( + using QueryResultsCallback = base::OnceCallback<void( history_clusters::mojom::QueryParamsPtr, std::vector<history_clusters::mojom::ClusterPtr>)>; void QueryHistoryService( history_clusters::mojom::QueryParamsPtr query_params, - std::vector<history_clusters::mojom::ClusterPtr> memory_mojoms, - MemoriesQueryResultsCallback callback); + std::vector<history_clusters::mojom::ClusterPtr> cluster_mojoms, + QueryResultsCallback callback); void OnHistoryQueryResults( history_clusters::mojom::QueryParamsPtr query_params, - std::vector<history_clusters::mojom::ClusterPtr> memory_mojoms, - MemoriesQueryResultsCallback callback, + std::vector<history_clusters::mojom::ClusterPtr> cluster_mojoms, + QueryResultsCallback callback, history::QueryResults results); #endif @@ -100,7 +102,7 @@ mojo::Remote<history_clusters::mojom::Page> page_; mojo::Receiver<history_clusters::mojom::PageHandler> page_handler_; - base::WeakPtrFactory<MemoriesHandler> weak_ptr_factory_{this}; + base::WeakPtrFactory<HistoryClustersHandler> weak_ptr_factory_{this}; }; -#endif // CHROME_BROWSER_UI_WEBUI_MEMORIES_MEMORIES_HANDLER_H_ +#endif // CHROME_BROWSER_UI_WEBUI_HISTORY_CLUSTERS_HISTORY_CLUSTERS_HANDLER_H_
diff --git a/chrome/browser/ui/webui/memories/memories_ui.cc b/chrome/browser/ui/webui/history_clusters/memories_ui.cc similarity index 93% rename from chrome/browser/ui/webui/memories/memories_ui.cc rename to chrome/browser/ui/webui/history_clusters/memories_ui.cc index 012f0281..62c46aae 100644 --- a/chrome/browser/ui/webui/memories/memories_ui.cc +++ b/chrome/browser/ui/webui/history_clusters/memories_ui.cc
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/webui/memories/memories_ui.h" +#include "chrome/browser/ui/webui/history_clusters/memories_ui.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/favicon_source.h" -#include "chrome/browser/ui/webui/memories/memories_handler.h" +#include "chrome/browser/ui/webui/history_clusters/history_clusters_handler.h" #include "chrome/browser/ui/webui/sanitized_image_source.h" #include "chrome/browser/ui/webui/webui_util.h" #include "chrome/common/webui_url_constants.h" @@ -78,6 +78,6 @@ void MemoriesUI::BindInterface( mojo::PendingReceiver<history_clusters::mojom::PageHandler> pending_page_handler) { - memories_handler_ = std::make_unique<MemoriesHandler>( + history_clusters_handler_ = std::make_unique<HistoryClustersHandler>( std::move(pending_page_handler), profile_, web_contents_); }
diff --git a/chrome/browser/ui/webui/memories/memories_ui.h b/chrome/browser/ui/webui/history_clusters/memories_ui.h similarity index 73% rename from chrome/browser/ui/webui/memories/memories_ui.h rename to chrome/browser/ui/webui/history_clusters/memories_ui.h index 23f53136..fd7068af 100644 --- a/chrome/browser/ui/webui/memories/memories_ui.h +++ b/chrome/browser/ui/webui/history_clusters/memories_ui.h
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_WEBUI_MEMORIES_MEMORIES_UI_H_ -#define CHROME_BROWSER_UI_WEBUI_MEMORIES_MEMORIES_UI_H_ +#ifndef CHROME_BROWSER_UI_WEBUI_HISTORY_CLUSTERS_MEMORIES_UI_H_ +#define CHROME_BROWSER_UI_WEBUI_HISTORY_CLUSTERS_MEMORIES_UI_H_ -#include "chrome/browser/ui/webui/memories/history_clusters.mojom-forward.h" +#include "chrome/browser/ui/webui/history_clusters/history_clusters.mojom-forward.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "ui/webui/mojo_web_ui_controller.h" class Profile; -class MemoriesHandler; +class HistoryClustersHandler; namespace content { class WebContents; @@ -35,9 +35,9 @@ private: Profile* profile_; content::WebContents* web_contents_; - std::unique_ptr<MemoriesHandler> memories_handler_; + std::unique_ptr<HistoryClustersHandler> history_clusters_handler_; WEB_UI_CONTROLLER_TYPE_DECL(); }; -#endif // CHROME_BROWSER_UI_WEBUI_MEMORIES_MEMORIES_UI_H_ +#endif // CHROME_BROWSER_UI_WEBUI_HISTORY_CLUSTERS_MEMORIES_UI_H_
diff --git a/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc b/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc index 374807d6..18c15cc 100644 --- a/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc
@@ -9,8 +9,8 @@ #include <string> #include <vector> +#include "ash/constants/ash_features.h" #include "ash/public/cpp/accessibility_controller_enums.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_pref_names.h" #include "ash/public/cpp/tablet_mode.h" #include "base/command_line.h" @@ -334,11 +334,11 @@ } bool IsMagnifierPanningImprovementsEnabled() { - return features::IsMagnifierPanningImprovementsEnabled(); + return ::features::IsMagnifierPanningImprovementsEnabled(); } bool IsMagnifierContinuousMouseFollowingModeSettingEnabled() { - return features::IsMagnifierContinuousMouseFollowingModeSettingEnabled(); + return ::features::IsMagnifierContinuousMouseFollowingModeSettingEnabled(); } bool IsSwitchAccessTextAllowed() { @@ -347,7 +347,7 @@ } bool IsSwitchAccessPointScanningEnabled() { - return features::IsSwitchAccessPointScanningEnabled(); + return ::features::IsSwitchAccessPointScanningEnabled(); } bool IsSwitchAccessSetupGuideAllowed() {
diff --git a/chrome/browser/ui/webui/settings/chromeos/device_section.cc b/chrome/browser/ui/webui/settings/chromeos/device_section.cc index adb7696..11e1cc8f 100644 --- a/chrome/browser/ui/webui/settings/chromeos/device_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/device_section.cc
@@ -7,7 +7,6 @@ #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "ash/public/ash_interfaces.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/night_light_controller.h" #include "ash/public/cpp/stylus_utils.h" #include "base/command_line.h"
diff --git a/chrome/browser/ui/webui/settings/chromeos/internet_section.cc b/chrome/browser/ui/webui/settings/chromeos/internet_section.cc index e0ec9ed..6abec131 100644 --- a/chrome/browser/ui/webui/settings/chromeos/internet_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/internet_section.cc
@@ -5,7 +5,6 @@ #include "chrome/browser/ui/webui/settings/chromeos/internet_section.h" #include "ash/constants/ash_features.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/network_config_service.h" #include "base/bind.h" #include "base/containers/contains.h"
diff --git a/chrome/browser/ui/webui/settings/chromeos/people_section.cc b/chrome/browser/ui/webui/settings/chromeos/people_section.cc index 0c340dc..ce7c809 100644 --- a/chrome/browser/ui/webui/settings/chromeos/people_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/people_section.cc
@@ -7,7 +7,6 @@ #include "ash/components/account_manager/account_manager_factory.h" #include "ash/constants/ash_features.h" #include "ash/constants/ash_pref_names.h" -#include "ash/public/cpp/ash_features.h" #include "base/bind.h" #include "base/i18n/number_formatting.h" #include "base/metrics/histogram_functions.h"
diff --git a/chrome/browser/ui/webui/settings/chromeos/personalization_section.cc b/chrome/browser/ui/webui/settings/chromeos/personalization_section.cc index 3f78f95..c8f27eb 100644 --- a/chrome/browser/ui/webui/settings/chromeos/personalization_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/personalization_section.cc
@@ -7,7 +7,6 @@ #include "ash/constants/ash_features.h" #include "ash/public/cpp/ambient/ambient_client.h" #include "ash/public/cpp/ambient/ambient_prefs.h" -#include "ash/public/cpp/ash_features.h" #include "base/bind.h" #include "base/no_destructor.h" #include "base/strings/utf_string_conversions.h"
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc index d6e0a627..bcbf262 100644 --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -11,7 +11,7 @@ #include <utility> #include <vector> -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "base/feature_list.h" #include "base/memory/ptr_util.h" #include "build/branding_buildflags.h"
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 8c128ae..0993f77 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -1877,6 +1877,7 @@ "../browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_browsertest.cc", "../browser/ui/views/web_apps/frame_toolbar/web_app_minimal_ui_test.cc", "../browser/ui/views/web_apps/web_app_integration_browsertest.cc", + "../browser/ui/views/web_apps/web_app_protocol_handler_intent_picker_dialog_browsertest.cc", "../browser/ui/views/web_apps/web_app_tab_strip_browsertest.cc", "../browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc", "../browser/ui/views/webauthn/webauthn_icon_interactive_uitest.cc", @@ -3793,10 +3794,6 @@ [ "../browser/site_isolation/spellcheck_per_process_browsertest.cc" ] } - if (is_win || is_mac || is_linux) { - sources += [ "../browser/ui/views/web_apps/web_app_protocol_handler_intent_picker_dialog_browsertest.cc" ] - } - if (is_win || is_mac || (is_linux && !is_chromeos_lacros)) { sources += [ "../browser/ui/views/profiles/profile_picker_view_browsertest.cc",
diff --git a/chrome/test/android/browsertests_apk/AndroidManifest.xml.jinja2 b/chrome/test/android/browsertests_apk/AndroidManifest.xml.jinja2 index 6912b08..025e64f 100644 --- a/chrome/test/android/browsertests_apk/AndroidManifest.xml.jinja2 +++ b/chrome/test/android/browsertests_apk/AndroidManifest.xml.jinja2
@@ -103,6 +103,8 @@ </intent-filter> </activity> + <receiver android:name="org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetProvider"/> + <service android:name="org.chromium.components.background_task_scheduler.BackgroundTaskJobService" android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/>
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebApkIntentDataProviderBuilder.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebApkIntentDataProviderBuilder.java index 1587294..f999d592 100644 --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebApkIntentDataProviderBuilder.java +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebApkIntentDataProviderBuilder.java
@@ -7,10 +7,10 @@ import android.content.Intent; import android.graphics.Color; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; import org.chromium.chrome.browser.browserservices.intents.WebApkDistributor; import org.chromium.chrome.browser.browserservices.intents.WebDisplayMode; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.webapps.WebApkIntentDataProviderFactory; import org.chromium.components.webapps.ShortcutSource; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -54,8 +54,8 @@ public BrowserServicesIntentDataProvider build() { return WebApkIntentDataProviderFactory.create(new Intent(), mUrl, mScope, null, null, null, null, mDisplayMode, ScreenOrientationLockType.DEFAULT, ShortcutSource.UNKNOWN, - ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING, - ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING, Color.WHITE, + WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING, + WebappConstants.MANIFEST_COLOR_INVALID_OR_MISSING, Color.WHITE, false /* isPrimaryIconMaskable */, false /* isSplashIconMaskable */, mWebApkPackageName, /* shellApkVersion */ 1, mManifestUrl, mUrl, WebApkDistributor.BROWSER,
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebappTestHelper.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebappTestHelper.java index a85281d..6bf22e24 100644 --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebappTestHelper.java +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebappTestHelper.java
@@ -6,8 +6,8 @@ import android.content.Intent; -import org.chromium.chrome.browser.ShortcutHelper; import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider; +import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.webapps.WebappIntentDataProviderFactory; /** Helper class for webapp tests. */ @@ -18,8 +18,8 @@ */ public static Intent createMinimalWebappIntent(String id, String url) { Intent intent = new Intent(); - intent.putExtra(ShortcutHelper.EXTRA_ID, id); - intent.putExtra(ShortcutHelper.EXTRA_URL, url); + intent.putExtra(WebappConstants.EXTRA_ID, id); + intent.putExtra(WebappConstants.EXTRA_URL, url); return intent; }
diff --git a/chrome/test/base/test_browser_window.cc b/chrome/test/base/test_browser_window.cc index 786d48c..3be7189c 100644 --- a/chrome/test/base/test_browser_window.cc +++ b/chrome/test/base/test_browser_window.cc
@@ -4,6 +4,7 @@ #include "chrome/test/base/test_browser_window.h" +#include "chrome/browser/sharing/sharing_dialog_data.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_list_observer.h" #include "chrome/browser/ui/find_bar/find_bar.h"
diff --git a/chrome/test/data/policy/PRESUBMIT.py b/chrome/test/data/policy/PRESUBMIT.py index 9331a1d47..609d704 100644 --- a/chrome/test/data/policy/PRESUBMIT.py +++ b/chrome/test/data/policy/PRESUBMIT.py
@@ -2,6 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +USE_PYTHON3 = True + import os def RunOtherPresubmit(function_name, input_api, output_api):
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js b/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js index 8651fc3..23a1f8a 100644 --- a/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js +++ b/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js
@@ -7,7 +7,7 @@ GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']); GEN('#include "ash/constants/ash_features.h"'); -GEN('#include "ash/public/cpp/ash_features.h"'); +GEN('#include "ash/constants/ash_features.h"'); GEN('#include "components/full_restore/features.h"'); GEN('#include "chrome/common/buildflags.h"'); GEN('#include "build/branding_buildflags.h"');
diff --git a/chromecast/bindings/BUILD.gn b/chromecast/bindings/BUILD.gn index 70b9e24..7122f37 100644 --- a/chromecast/bindings/BUILD.gn +++ b/chromecast/bindings/BUILD.gn
@@ -56,18 +56,14 @@ sources = [ "bindings_manager_cast.cc", "bindings_manager_cast.h", - "named_message_port_connector_cast.cc", - "named_message_port_connector_cast.h", ] deps = [ ":bindings_manager", "//base", "//chromecast/bindings/public/mojom", - "//chromecast/browser:public", "//components/cast/api_bindings:manager", "//components/cast/message_port", - "//components/cast/named_message_port_connector", "//components/on_load_script_injector/browser", "//mojo/public/cpp/bindings", "//third_party/blink/public/common", @@ -76,6 +72,7 @@ source_set("browsertests_cast") { testonly = true + sources = [ "bindings_manager_cast_browsertest.cc" ] defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
diff --git a/chromecast/bindings/bindings_manager_cast.cc b/chromecast/bindings/bindings_manager_cast.cc index 1ccb15c..18867cf 100644 --- a/chromecast/bindings/bindings_manager_cast.cc +++ b/chromecast/bindings/bindings_manager_cast.cc
@@ -4,31 +4,18 @@ #include "chromecast/bindings/bindings_manager_cast.h" +#include <memory> #include <utility> #include <vector> -#include "base/logging.h" +#include "base/bind.h" #include "base/macros.h" -#include "base/notreached.h" -#include "chromecast/bindings/named_message_port_connector_cast.h" -#include "components/on_load_script_injector/browser/on_load_script_injector_host.h" +#include "components/cast/message_port/message_port_cast.h" namespace chromecast { namespace bindings { -BindingsManagerCast::BindingsManagerCast( - chromecast::CastWebContents* cast_web_contents) - : cast_web_contents_(cast_web_contents) { - DCHECK(cast_web_contents_); - - CastWebContents::Observer::Observe(cast_web_contents_); - - port_connector_ = - std::make_unique<NamedMessagePortConnectorCast>(cast_web_contents_, this); - - port_connector_->RegisterPortHandler(base::BindRepeating( - &BindingsManagerCast::OnPortConnected, base::Unretained(this))); -} +BindingsManagerCast::BindingsManagerCast() = default; BindingsManagerCast::~BindingsManagerCast() = default; @@ -52,30 +39,6 @@ receiver_.reset(); } -void BindingsManagerCast::OnPageStateChanged( - CastWebContents* cast_web_contents) { - // TODO(b/183378843): Remove usage of CWC in this class and - // move the CWC::Observer logics to other components, e.g. - // NMPC or |ApiBindingsClient|. - auto page_state = cast_web_contents->page_state(); - - switch (page_state) { - case CastWebContents::PageState::DESTROYED: - case CastWebContents::PageState::ERROR: - CastWebContents::Observer::Observe(nullptr); - cast_web_contents_ = nullptr; - port_connector_.reset(); - break; - case CastWebContents::PageState::LOADED: - port_connector_->OnPageLoaded(); - break; - case CastWebContents::PageState::IDLE: - case CastWebContents::PageState::LOADING: - case CastWebContents::PageState::CLOSED: - break; - } -} - void BindingsManagerCast::GetAll(GetAllCallback callback) { std::vector<chromecast::mojom::ApiBindingPtr> bindings_vector; for (const auto& bindings_name_and_script : bindings_) { @@ -87,8 +50,8 @@ void BindingsManagerCast::Connect(const std::string& port_name, blink::MessagePortDescriptor port) { - // TODO(b/183378843): Implements this method and migrate NMPC to use it. - NOTIMPLEMENTED_LOG_ONCE(); + OnPortConnected(port_name, + cast_api_bindings::MessagePortCast::Create(std::move(port))); } } // namespace bindings
diff --git a/chromecast/bindings/bindings_manager_cast.h b/chromecast/bindings/bindings_manager_cast.h index 9c77e33..ec4190a60 100644 --- a/chromecast/bindings/bindings_manager_cast.h +++ b/chromecast/bindings/bindings_manager_cast.h
@@ -5,23 +5,22 @@ #ifndef CHROMECAST_BINDINGS_BINDINGS_MANAGER_CAST_H_ #define CHROMECAST_BINDINGS_BINDINGS_MANAGER_CAST_H_ +#include "base/callback.h" #include "chromecast/bindings/bindings_manager.h" #include "chromecast/bindings/public/mojom/api_bindings.mojom.h" -#include "chromecast/browser/cast_web_contents.h" #include "components/cast/api_bindings/manager.h" #include "mojo/public/cpp/bindings/receiver.h" namespace chromecast { namespace bindings { -class NamedMessagePortConnectorCast; - // Implements the CastOS BindingsManager. class BindingsManagerCast : public BindingsManager, - public CastWebContents::Observer, public chromecast::mojom::ApiBindings { public: - explicit BindingsManagerCast(chromecast::CastWebContents* cast_web_contents); + // |cast_web_contents|: Used to inject bindings scripts into document early. + // Must outlive |this|. + BindingsManagerCast(); ~BindingsManagerCast() override; BindingsManagerCast(const BindingsManagerCast&) = delete; @@ -38,17 +37,11 @@ private: void OnClientDisconnected(); - // CastWebContents::Observer implementation. - void OnPageStateChanged(CastWebContents* cast_web_contents) override; - // chromecast::mojom::ApiBindings implementation. void GetAll(GetAllCallback callback) override; void Connect(const std::string& port_name, blink::MessagePortDescriptor port) override; - chromecast::CastWebContents* cast_web_contents_; - std::unique_ptr<NamedMessagePortConnectorCast> port_connector_; - // Stores all bindings, keyed on the string-based IDs provided by the // ApiBindings interface. std::map<std::string, std::string> bindings_;
diff --git a/chromecast/bindings/bindings_manager_cast_browsertest.cc b/chromecast/bindings/bindings_manager_cast_browsertest.cc index 2fa79e1..b5937e0 100644 --- a/chromecast/bindings/bindings_manager_cast_browsertest.cc +++ b/chromecast/bindings/bindings_manager_cast_browsertest.cc
@@ -168,8 +168,7 @@ cast_web_contents_ = std::make_unique<CastWebContentsImpl>(web_contents_.get(), init_params); title_change_observer_.Observe(cast_web_contents_.get()); - bindings_manager_ = std::make_unique<bindings::BindingsManagerCast>( - cast_web_contents_.get()); + bindings_manager_ = std::make_unique<bindings::BindingsManagerCast>(); cast_web_contents_->ConnectToBindingsService( bindings_manager_->CreateRemote()); }
diff --git a/chromecast/bindings/named_message_port_connector_cast.h b/chromecast/bindings/named_message_port_connector_cast.h deleted file mode 100644 index e57ce7ed..0000000 --- a/chromecast/bindings/named_message_port_connector_cast.h +++ /dev/null
@@ -1,49 +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 CHROMECAST_BINDINGS_NAMED_MESSAGE_PORT_CONNECTOR_CAST_H_ -#define CHROMECAST_BINDINGS_NAMED_MESSAGE_PORT_CONNECTOR_CAST_H_ - -#include "components/cast/named_message_port_connector/named_message_port_connector.h" - -namespace cast_api_bindings { -class Manager; -} - -namespace chromecast { -class CastWebContents; - -namespace bindings { - -// Injects and connects to NamedMessagePortConnector services into documents -// hosted by |cast_web_contents|. -class NamedMessagePortConnectorCast - : public cast_api_bindings::NamedMessagePortConnector { - public: - // |cast_web_contents|: The CastWebContents which will receive port connection - // services. - // |bindings_manager|: The BindingsManager instance that handles script - // injection on |cast_web_contents|. - // Both arguments must outlive |this|. - NamedMessagePortConnectorCast(chromecast::CastWebContents* cast_web_contents, - cast_api_bindings::Manager* bindings_manager); - ~NamedMessagePortConnectorCast() override; - - NamedMessagePortConnectorCast(const NamedMessagePortConnectorCast&) = delete; - void operator=(const NamedMessagePortConnectorCast&) = delete; - - // Sends a connection message to |cast_web_contents_|. - // Should be invoked when |cast_web_contents| has finished loading a page, - // and its main frame finished loading with no further pending navigations. - void OnPageLoaded(); - - private: - chromecast::CastWebContents* cast_web_contents_; - cast_api_bindings::Manager* bindings_manager_; -}; - -} // namespace bindings -} // namespace chromecast - -#endif // CHROMECAST_BINDINGS_NAMED_MESSAGE_PORT_CONNECTOR_CAST_H_
diff --git a/chromecast/browser/BUILD.gn b/chromecast/browser/BUILD.gn index 2e5242c..e7a01745 100644 --- a/chromecast/browser/BUILD.gn +++ b/chromecast/browser/BUILD.gn
@@ -75,6 +75,21 @@ ] } +cast_source_set("named_message_port_connector_cast") { + sources = [ + "named_message_port_connector_cast.cc", + "named_message_port_connector_cast.h", + ] + + deps = [ + "//base", + "//chromecast/browser:public", + "//components/cast/message_port:message_port_cast", + "//components/cast/named_message_port_connector", + "//components/on_load_script_injector/browser", + ] +} + group("browser") { public_deps = [ ":browser_base" ] } @@ -181,6 +196,7 @@ deps = [ ":browser_buildflags", + ":named_message_port_connector_cast", ":web_preferences", "//base", "//base:i18n", @@ -216,6 +232,7 @@ "//chromecast/net", "//chromecast/net:connectivity_checker", "//chromecast/service", + "//components/cast/message_port:message_port_cast", "//components/cdm/browser", "//components/download/public/common:public", "//components/media_control/browser",
diff --git a/chromecast/browser/DEPS b/chromecast/browser/DEPS index a39769a..86ca3fc 100644 --- a/chromecast/browser/DEPS +++ b/chromecast/browser/DEPS
@@ -1,6 +1,7 @@ include_rules = [ "+cc/base/switches.h", "+chromecast/activity", + "+chromecast/bindings", "+chromecast/bindings/public/mojom", "+chromecast/common", "+chromecast/common/mojom", @@ -14,6 +15,7 @@ "+chromecast/net", "+chromecast/service", "+chromecast/ui", + "+components/cast", "+components/cdm/browser", "+components/crash", "+components/download/public/common",
diff --git a/chromecast/browser/cast_web_contents.h b/chromecast/browser/cast_web_contents.h index 3a44a135..8ad8a99c 100644 --- a/chromecast/browser/cast_web_contents.h +++ b/chromecast/browser/cast_web_contents.h
@@ -32,11 +32,6 @@ class WebContents; } // namespace content -namespace on_load_script_injector { -template <typename> -class OnLoadScriptInjectorHost; -} // namespace on_load_script_injector - namespace chromecast { struct RendererFeature { @@ -241,6 +236,8 @@ // Whether WebRTC peer connections are allowed to use legacy versions of the // TLS/DTLS protocols. bool webrtc_allow_legacy_tls_protocols = false; + // Enable NamedMessagePortConnectorCast JS APIs. This is only meant to be + // modified by testing targets. InitParams(); InitParams(const InitParams& other); @@ -345,11 +342,6 @@ // Page Communication // =========================================================================== - // Returns the script injector instance, which injects scripts at page load - // time. - virtual on_load_script_injector::OnLoadScriptInjectorHost<uint64_t>* - script_injector() = 0; - // Executes a UTF-8 encoded |script| for every subsequent page load where // the frame's URL has an origin reflected in |origins|. The script is // executed early, prior to the execution of the document's scripts.
diff --git a/chromecast/browser/cast_web_contents_impl.cc b/chromecast/browser/cast_web_contents_impl.cc index 5904494..2c0246c2 100644 --- a/chromecast/browser/cast_web_contents_impl.cc +++ b/chromecast/browser/cast_web_contents_impl.cc
@@ -24,6 +24,7 @@ #include "chromecast/common/mojom/queryable_data_store.mojom.h" #include "chromecast/common/queryable_data.h" #include "chromecast/net/connectivity_checker.h" +#include "components/cast/message_port/message_port_cast.h" #include "components/media_control/mojom/media_playback_options.mojom.h" #include "content/public/browser/message_port_provider.h" #include "content/public/browser/navigation_entry.h" @@ -349,11 +350,6 @@ web_contents_, session_id, is_audio_app); } -on_load_script_injector::OnLoadScriptInjectorHost<uint64_t>* -CastWebContentsImpl::script_injector() { - return &script_injector_; -} - void CastWebContentsImpl::AddBeforeLoadJavaScript(uint64_t id, base::StringPiece script) { script_injector_.AddScriptForAllOrigins(id, std::string(script)); @@ -397,6 +393,11 @@ bindings_received_ = false; + named_message_port_connector_ = + std::make_unique<NamedMessagePortConnectorCast>(this); + named_message_port_connector_->RegisterPortHandler(base::BindRepeating( + &CastWebContentsImpl::OnPortConnected, base::Unretained(this))); + api_bindings_.Bind(std::move(api_bindings_remote)); // Fetch bindings and inject scripts into |script_injector_|. api_bindings_->GetAll(base::BindOnce(&CastWebContentsImpl::OnBindingsReceived, @@ -598,6 +599,19 @@ } } +bool CastWebContentsImpl::OnPortConnected( + base::StringPiece port_name, + std::unique_ptr<cast_api_bindings::MessagePort> port) { + DCHECK(api_bindings_); + + api_bindings_->Connect( + std::string(port_name), + cast_api_bindings::MessagePortCast::FromMessagePort(port.get()) + ->TakePort() + .PassPort()); + return true; +} + void CastWebContentsImpl::OnInterfaceRequestFromFrame( content::RenderFrameHost* /* render_frame_host */, const std::string& interface_name,
diff --git a/chromecast/browser/cast_web_contents_impl.h b/chromecast/browser/cast_web_contents_impl.h index c170124..361112aa2 100644 --- a/chromecast/browser/cast_web_contents_impl.h +++ b/chromecast/browser/cast_web_contents_impl.h
@@ -22,6 +22,7 @@ #include "chromecast/bindings/public/mojom/api_bindings.mojom.h" #include "chromecast/browser/cast_media_blocker.h" #include "chromecast/browser/cast_web_contents.h" +#include "chromecast/browser/named_message_port_connector_cast.h" #include "components/on_load_script_injector/browser/on_load_script_injector_host.h" #include "content/public/browser/render_process_host_observer.h" #include "content/public/browser/web_contents.h" @@ -75,8 +76,6 @@ void BlockMediaLoading(bool blocked) override; void BlockMediaStarting(bool blocked) override; void EnableBackgroundVideoPlayback(bool enabled) override; - on_load_script_injector::OnLoadScriptInjectorHost<uint64_t>* script_injector() - override; void AddBeforeLoadJavaScript(uint64_t id, base::StringPiece script) override; void PostMessageToMainFrame( const std::string& target_origin, @@ -154,6 +153,8 @@ std::vector<chromecast::shell::mojom::FeaturePtr> GetRendererFeatures(); void OnBindingsReceived( std::vector<chromecast::mojom::ApiBindingPtr> bindings); + bool OnPortConnected(base::StringPiece port_name, + std::unique_ptr<cast_api_bindings::MessagePort> port); content::WebContents* web_contents_; base::WeakPtr<Delegate> delegate_; @@ -199,6 +200,9 @@ bool bindings_received_{false}; GURL pending_load_url_; + // Used to open a MessageChannel for connecting API bindings. + std::unique_ptr<NamedMessagePortConnectorCast> named_message_port_connector_; + base::ObserverList<Observer>::Unchecked observer_list_; service_manager::BinderRegistry binder_registry_;
diff --git a/chromecast/bindings/named_message_port_connector_cast.cc b/chromecast/browser/named_message_port_connector_cast.cc similarity index 60% rename from chromecast/bindings/named_message_port_connector_cast.cc rename to chromecast/browser/named_message_port_connector_cast.cc index b50694f5..520c23b 100644 --- a/chromecast/bindings/named_message_port_connector_cast.cc +++ b/chromecast/browser/named_message_port_connector_cast.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromecast/bindings/named_message_port_connector_cast.h" +#include "chromecast/browser/named_message_port_connector_cast.h" #include <string> #include <utility> @@ -10,27 +10,23 @@ #include "base/logging.h" #include "base/strings/utf_string_conversions.h" #include "chromecast/browser/cast_web_contents.h" -#include "components/cast/api_bindings/manager.h" #include "components/cast/message_port/message_port_cast.h" #include "components/cast/named_message_port_connector/grit/named_message_port_connector_resources.h" #include "ui/base/resource/resource_bundle.h" namespace chromecast { -namespace bindings { namespace { -const char kNamedMessagePortConnectorBindingsId[] = - "NAMED_MESSAGE_PORT_CONNECTOR"; +constexpr uint64_t kNamedMessagePortConnectorBindingsId = 1000; } // namespace NamedMessagePortConnectorCast::NamedMessagePortConnectorCast( - chromecast::CastWebContents* cast_web_contents, - cast_api_bindings::Manager* bindings_manager) - : cast_web_contents_(cast_web_contents), - bindings_manager_(bindings_manager) { + chromecast::CastWebContents* cast_web_contents) + : cast_web_contents_(cast_web_contents) { DCHECK(cast_web_contents_); - DCHECK(bindings_manager_); + + CastWebContents::Observer::Observe(cast_web_contents_); // Register the port connection JS script for early injection. std::string bindings_script_string = @@ -38,11 +34,14 @@ IDR_PORT_CONNECTOR_JS); DCHECK(!bindings_script_string.empty()) << "NamedMessagePortConnector resources not loaded."; - bindings_manager_->AddBinding(kNamedMessagePortConnectorBindingsId, - bindings_script_string); + + cast_web_contents->AddBeforeLoadJavaScript( + kNamedMessagePortConnectorBindingsId, bindings_script_string); } -NamedMessagePortConnectorCast::~NamedMessagePortConnectorCast() = default; +NamedMessagePortConnectorCast::~NamedMessagePortConnectorCast() { + CastWebContents::Observer::Observe(nullptr); +} void NamedMessagePortConnectorCast::OnPageLoaded() { // Send the port connection message to the page once it is loaded. @@ -58,5 +57,24 @@ std::move(ports)); } -} // namespace bindings +void NamedMessagePortConnectorCast::OnPageStateChanged( + CastWebContents* cast_web_contents) { + auto page_state = cast_web_contents->page_state(); + + switch (page_state) { + case CastWebContents::PageState::DESTROYED: + case CastWebContents::PageState::ERROR: + CastWebContents::Observer::Observe(nullptr); + cast_web_contents_ = nullptr; + break; + case CastWebContents::PageState::LOADED: + OnPageLoaded(); + break; + case CastWebContents::PageState::IDLE: + case CastWebContents::PageState::LOADING: + case CastWebContents::PageState::CLOSED: + break; + } +} + } // namespace chromecast
diff --git a/chromecast/browser/named_message_port_connector_cast.h b/chromecast/browser/named_message_port_connector_cast.h new file mode 100644 index 0000000..74e7d8f --- /dev/null +++ b/chromecast/browser/named_message_port_connector_cast.h
@@ -0,0 +1,42 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMECAST_BROWSER_NAMED_MESSAGE_PORT_CONNECTOR_CAST_H_ +#define CHROMECAST_BROWSER_NAMED_MESSAGE_PORT_CONNECTOR_CAST_H_ + +#include "chromecast/browser/cast_web_contents.h" +#include "components/cast/named_message_port_connector/named_message_port_connector.h" + +namespace chromecast { + +// Injects and connects to NamedMessagePortConnector services into documents +// hosted by |cast_web_contents|. +class NamedMessagePortConnectorCast + : public cast_api_bindings::NamedMessagePortConnector, + public CastWebContents::Observer { + public: + // |cast_web_contents|: The CastWebContents which will receive port connection + // services. Must outlive |this|. + explicit NamedMessagePortConnectorCast( + chromecast::CastWebContents* cast_web_contents); + ~NamedMessagePortConnectorCast() override; + + NamedMessagePortConnectorCast(const NamedMessagePortConnectorCast&) = delete; + void operator=(const NamedMessagePortConnectorCast&) = delete; + + private: + // Sends a connection message to |cast_web_contents_|. + // Should be invoked when |cast_web_contents| has finished loading a page, + // and its main frame finished loading with no further pending navigations. + void OnPageLoaded(); + + // CastWebContents::Observer implementation. + void OnPageStateChanged(CastWebContents* cast_web_contents) override; + + chromecast::CastWebContents* cast_web_contents_; +}; + +} // namespace chromecast + +#endif // CHROMECAST_BROWSER_NAMED_MESSAGE_PORT_CONNECTOR_CAST_H_
diff --git a/chromecast/browser/test/mock_cast_web_view.h b/chromecast/browser/test/mock_cast_web_view.h index ef1c1a7f..bf70bd8c 100644 --- a/chromecast/browser/test/mock_cast_web_view.h +++ b/chromecast/browser/test/mock_cast_web_view.h
@@ -41,10 +41,6 @@ MOCK_METHOD(void, BlockMediaLoading, (bool), (override)); MOCK_METHOD(void, BlockMediaStarting, (bool), (override)); MOCK_METHOD(void, EnableBackgroundVideoPlayback, (bool), (override)); - MOCK_METHOD(on_load_script_injector::OnLoadScriptInjectorHost<uint64_t>*, - script_injector, - (), - (override)); MOCK_METHOD(void, AddBeforeLoadJavaScript, (uint64_t, base::StringPiece),
diff --git a/chromeos/profiles/atom.afdo.newest.txt b/chromeos/profiles/atom.afdo.newest.txt index d1d5952a..74cfa65 100644 --- a/chromeos/profiles/atom.afdo.newest.txt +++ b/chromeos/profiles/atom.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-atom-93-4535.0-1623669573-benchmark-93.0.4542.0-r1-redacted.afdo.xz +chromeos-chrome-amd64-atom-93-4535.0-1623669573-benchmark-93.0.4543.0-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/bigcore.afdo.newest.txt b/chromeos/profiles/bigcore.afdo.newest.txt index 351666d..471ee90da 100644 --- a/chromeos/profiles/bigcore.afdo.newest.txt +++ b/chromeos/profiles/bigcore.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-bigcore-93-4535.0-1623668202-benchmark-93.0.4542.0-r1-redacted.afdo.xz +chromeos-chrome-amd64-bigcore-93-4535.0-1623668202-benchmark-93.0.4543.0-r1-redacted.afdo.xz
diff --git a/components/arc/compat_mode/arc_resize_lock_manager.cc b/components/arc/compat_mode/arc_resize_lock_manager.cc index 1cb60328..5b927112 100644 --- a/components/arc/compat_mode/arc_resize_lock_manager.cc +++ b/components/arc/compat_mode/arc_resize_lock_manager.cc
@@ -172,6 +172,8 @@ if (!currentMode) return; + const auto resize_lock_type = window->GetProperty(ash::kArcResizeLockTypeKey); + switch (*currentMode) { case ResizeCompatMode::kPhone: compat_mode_button->SetImage(views::CAPTION_BUTTON_ICON_CENTER, @@ -179,6 +181,10 @@ ash::kSystemMenuPhoneIcon); compat_mode_button->SetText(l10n_util::GetStringUTF16( IDS_ARC_COMPAT_MODE_RESIZE_TOGGLE_MENU_PHONE)); + if (resize_lock_type == ash::ArcResizeLockType::FULLY_LOCKED) { + compat_mode_button->SetTooltipText(l10n_util::GetStringUTF16( + IDS_ASH_ARC_APP_COMPAT_DISABLED_COMPAT_MODE_BUTTON_TOOLTIP_PHONE)); + } break; case ResizeCompatMode::kTablet: compat_mode_button->SetImage(views::CAPTION_BUTTON_ICON_CENTER, @@ -196,8 +202,6 @@ break; } - const auto resize_lock_type = window->GetProperty(ash::kArcResizeLockTypeKey); - switch (resize_lock_type) { case ash::ArcResizeLockType::RESIZE_LIMITED: compat_mode_button->SetEnabled(true);
diff --git a/components/arc/compat_mode/style/arc_color_provider.cc b/components/arc/compat_mode/style/arc_color_provider.cc index e927a81..6ba3a82 100644 --- a/components/arc/compat_mode/style/arc_color_provider.cc +++ b/components/arc/compat_mode/style/arc_color_provider.cc
@@ -4,7 +4,7 @@ #include "components/arc/compat_mode/style/arc_color_provider.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/style/scoped_light_mode_as_default.h" namespace arc {
diff --git a/components/arc/dark_theme/arc_dark_theme_bridge.cc b/components/arc/dark_theme/arc_dark_theme_bridge.cc index 88cb884b..20c155d 100644 --- a/components/arc/dark_theme/arc_dark_theme_bridge.cc +++ b/components/arc/dark_theme/arc_dark_theme_bridge.cc
@@ -4,7 +4,7 @@ #include "components/arc/dark_theme/arc_dark_theme_bridge.h" -#include "ash/public/cpp/ash_features.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/style/color_provider.h" #include "base/bind.h" #include "base/logging.h"
diff --git a/components/arc_strings.grdp b/components/arc_strings.grdp index f3ca91a..4a4dfe2 100644 --- a/components/arc_strings.grdp +++ b/components/arc_strings.grdp
@@ -1,6 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <grit-part> <!-- ARC app compatibility mode --> + <message name="IDS_ASH_ARC_APP_COMPAT_DISABLED_COMPAT_MODE_BUTTON_TOOLTIP_PHONE" desc="Tooltip text that describes the compatibility mode button only supports the phone size"> + This app only supports "Phone" size. + </message> <message name="IDS_ASH_ARC_APP_COMPAT_RESIZE_CONFIRM_TITLE" desc="Dialog title that asks user if they want to enable resizing of the ARC application."> Enable Resizing? </message>
diff --git a/components/arc_strings_grdp/IDS_ASH_ARC_APP_COMPAT_DISABLED_COMPAT_MODE_BUTTON_TOOLTIP_PHONE.png.sha1 b/components/arc_strings_grdp/IDS_ASH_ARC_APP_COMPAT_DISABLED_COMPAT_MODE_BUTTON_TOOLTIP_PHONE.png.sha1 new file mode 100644 index 0000000..8e82c531 --- /dev/null +++ b/components/arc_strings_grdp/IDS_ASH_ARC_APP_COMPAT_DISABLED_COMPAT_MODE_BUTTON_TOOLTIP_PHONE.png.sha1
@@ -0,0 +1 @@ +63be4e07a42db31a4946010b22d367a27c47aba9 \ No newline at end of file
diff --git a/components/blocked_content/popup_blocker_tab_helper.cc b/components/blocked_content/popup_blocker_tab_helper.cc index 1570f7e..5a8f09d2 100644 --- a/components/blocked_content/popup_blocker_tab_helper.cc +++ b/components/blocked_content/popup_blocker_tab_helper.cc
@@ -52,7 +52,7 @@ // Clear all page actions, blocked content notifications and browser actions // for this tab, unless this is an same-document navigation. Also only // consider main frame navigations that successfully committed. - if (!navigation_handle->IsInMainFrame() || + if (!navigation_handle->IsInPrimaryMainFrame() || !navigation_handle->HasCommitted() || navigation_handle->IsSameDocument()) { return;
diff --git a/components/blocked_content/popup_blocker_tab_helper_unittest.cc b/components/blocked_content/popup_blocker_tab_helper_unittest.cc index ccd2cd5..743d2aa 100644 --- a/components/blocked_content/popup_blocker_tab_helper_unittest.cc +++ b/components/blocked_content/popup_blocker_tab_helper_unittest.cc
@@ -14,6 +14,7 @@ #include "components/content_settings/browser/test_page_specific_content_settings_delegate.h" #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/sync_preferences/testing_pref_service_syncable.h" +#include "content/public/test/mock_navigation_handle.h" #include "content/public/test/test_renderer_host.h" #include "testing/gmock/include/gmock/gmock.h" #include "third_party/blink/public/mojom/window_features/window_features.mojom.h" @@ -189,4 +190,32 @@ ->IsContentBlocked(ContentSettingsType::POPUPS)); } +TEST_F(PopupBlockerTabHelperTest, + NavigatingNonPrimaryDoesntClearsContentSettings) { + TestPopupNavigationDelegate::ResultHolder result; + helper()->AddBlockedPopup( + std::make_unique<TestPopupNavigationDelegate>(GURL(kUrl1), &result), + blink::mojom::WindowFeatures(), PopupBlockType::kNoGesture); + EXPECT_TRUE(content_settings::PageSpecificContentSettings::GetForFrame( + web_contents()->GetMainFrame()) + ->IsContentBlocked(ContentSettingsType::POPUPS)); + + // Navigating a non-primary main frame shoudn't clear the popups. + content::MockNavigationHandle handle(GURL(kUrl2), + web_contents()->GetMainFrame()); + handle.set_has_committed(true); + handle.set_is_in_primary_main_frame(false); + helper()->DidFinishNavigation(&handle); + EXPECT_TRUE(content_settings::PageSpecificContentSettings::GetForFrame( + web_contents()->GetMainFrame()) + ->IsContentBlocked(ContentSettingsType::POPUPS)); + + // Navigating the primary main frame should clear the popups. + handle.set_is_in_primary_main_frame(true); + helper()->DidFinishNavigation(&handle); + EXPECT_FALSE(content_settings::PageSpecificContentSettings::GetForFrame( + web_contents()->GetMainFrame()) + ->IsContentBlocked(ContentSettingsType::POPUPS)); +} + } // namespace blocked_content
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb index cae824d..40cdd81 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
@@ -201,7 +201,7 @@ <translation id="6206551242102657620">Байланыс қорғалған. Сайт ақпараты</translation> <translation id="6216432067784365534"><ph name="NAME_OF_LIST_ITEM" /> опциялары</translation> <translation id="6231752747840485235">"<ph name="APP_NAME" />" қолданбасы жойылсын ба?</translation> -<translation id="6260852843601447737">Жабу және бұзушылық туралы хабарлау</translation> +<translation id="6260852843601447737">Жабу және ереже бұзу туралы хабарлау</translation> <translation id="6262279340360821358"><ph name="PERMISSION_1" /> және <ph name="PERMISSION_2" /> үшін тыйым салынған.</translation> <translation id="6270391203985052864">Сайттар хабарландырулар жіберу рұқсатын сұрай алады</translation> <translation id="6295158916970320988">Барлық сайттар</translation>
diff --git a/components/exo/client_controlled_shell_surface.cc b/components/exo/client_controlled_shell_surface.cc index 97b4667..ad9d43b 100644 --- a/components/exo/client_controlled_shell_surface.cc +++ b/components/exo/client_controlled_shell_surface.cc
@@ -7,12 +7,12 @@ #include <map> #include <utility> +#include "ash/constants/ash_features.h" #include "ash/frame/header_view.h" #include "ash/frame/non_client_frame_view_ash.h" #include "ash/frame/wide_frame_view.h" #include "ash/public/cpp/arc_resize_lock_type.h" #include "ash/public/cpp/ash_constants.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/rounded_corner_utils.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/window_backdrop.h"
diff --git a/components/exo/client_controlled_shell_surface_unittest.cc b/components/exo/client_controlled_shell_surface_unittest.cc index 30e2a04f..0553e8a 100644 --- a/components/exo/client_controlled_shell_surface_unittest.cc +++ b/components/exo/client_controlled_shell_surface_unittest.cc
@@ -4,12 +4,12 @@ #include "components/exo/client_controlled_shell_surface.h" +#include "ash/constants/ash_features.h" #include "ash/display/screen_orientation_controller.h" #include "ash/frame/header_view.h" #include "ash/frame/non_client_frame_view_ash.h" #include "ash/frame/wide_frame_view.h" #include "ash/public/cpp/arc_resize_lock_type.h" -#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/shelf_types.h" #include "ash/public/cpp/test/shell_test_api.h" #include "ash/shelf/shelf.h"
diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc index d9978b9d..eafa39f 100644 --- a/components/google/core/common/google_util.cc +++ b/components/google/core/common/google_util.cc
@@ -116,6 +116,8 @@ youtube_tlds( std::initializer_list<base::StringPiece>({YOUTUBE_TLD_LIST})); return IsValidHostName(canonical_host, "youtube", subdomain_permission, + *youtube_tlds) || + IsValidHostName(canonical_host, "youtubekids", subdomain_permission, *youtube_tlds); }
diff --git a/components/google/core/common/google_util_unittest.cc b/components/google/core/common/google_util_unittest.cc index 4e1079a..4d7ed00 100644 --- a/components/google/core/common/google_util_unittest.cc +++ b/components/google/core/common/google_util_unittest.cc
@@ -402,6 +402,11 @@ google_util::ALLOW_SUBDOMAIN, google_util::DISALLOW_NON_STANDARD_PORTS)); + // YouTube Kids + EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://www.youtubekids.com"), + google_util::ALLOW_SUBDOMAIN, + google_util::DISALLOW_NON_STANDARD_PORTS)); + // TLD checks. EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://www.youtube.ca"), google_util::ALLOW_SUBDOMAIN,
diff --git a/components/history_clusters/core/history_clusters_service.cc b/components/history_clusters/core/history_clusters_service.cc index f631875..7c47de8 100644 --- a/components/history_clusters/core/history_clusters_service.cc +++ b/components/history_clusters/core/history_clusters_service.cc
@@ -53,9 +53,10 @@ return matching_clusters; } -// TODO(manukh): Move mojom translation to `MemoriesHandler` once we've created +// TODO(manukh): Move mojom translation to `HistoryClustersHandler` once we've +// created // a mirror cpp struct the `MemoryService` can return instead. There's no need -// to do this yet, since the `MemoriesHandler` is the only consumer of +// to do this yet, since the `HistoryClustersHandler` is the only consumer of // `HistoryClustersService`, but once the omnibox comes into play, we'll need a // common non-mojom response. // TODO(crbug.com/1179069): fill out the remaining Memories mojom fields.
diff --git a/components/page_load_metrics/browser/metrics_web_contents_observer.cc b/components/page_load_metrics/browser/metrics_web_contents_observer.cc index ca327c8..89940846 100644 --- a/components/page_load_metrics/browser/metrics_web_contents_observer.cc +++ b/components/page_load_metrics/browser/metrics_web_contents_observer.cc
@@ -213,7 +213,10 @@ content::Visibility::HIDDEN), embedder_interface_(std::move(embedder_interface)), has_navigated_(false), - page_load_metrics_receiver_(web_contents, this) { + page_load_metrics_receiver_( + web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { // NoStatePrefetch loads erroneously report that they are initially visible, // so we manually override visibility state for prerender. if (embedder_interface_->IsNoStatePrefetch(web_contents))
diff --git a/components/pdf/browser/pdf_web_contents_helper.cc b/components/pdf/browser/pdf_web_contents_helper.cc index 1a41169..b2f6605 100644 --- a/components/pdf/browser/pdf_web_contents_helper.cc +++ b/components/pdf/browser/pdf_web_contents_helper.cc
@@ -33,7 +33,9 @@ content::WebContents* web_contents, std::unique_ptr<PDFWebContentsHelperClient> client) : content::WebContentsObserver(web_contents), - pdf_service_receivers_(web_contents, this), + pdf_service_receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()), client_(std::move(client)) {} PDFWebContentsHelper::~PDFWebContentsHelper() {
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json index 58f9c7ea..a5313e5 100644 --- a/components/policy/resources/policy_templates.json +++ b/components/policy/resources/policy_templates.json
@@ -16030,7 +16030,7 @@ 'owners': ['treib@chromium.org', 'carlosk@chromium.org'], 'type': 'main', 'schema': { 'type': 'boolean' }, - 'supported_on': ['android:54-'], + 'supported_on': ['android:54-','ios:93-'], 'features': { 'dynamic_refresh': True, 'per_profile': True, @@ -16045,7 +16045,6 @@ 'caption': 'Do not show content suggestions on the New Tab page', }, ], - 'future_on': [ 'ios' ], 'example_value': True, 'default': True, 'id': 338,
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 3fc29a5f..47f078c 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -81,6 +81,7 @@ <translation id="1082802595100075771">Laisser les utilisateurs choisir s'ils veulent employer un service Google anonyme pour qu'une description soit ajoutée automatiquement aux images sans libellé</translation> <translation id="1087437665304381368">Cette règle permet de ne contrôler que le mode développeur <ph name="PRODUCT_OS_NAME" />. Si vous voulez bloquer l'accès aux options pour les développeurs Android, vous devez définir la règle <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.</translation> <translation id="1087707496788636333">La liste des règles Chrome Enterprise a changé d'adresse ! Pensez à mettre à jour vos favoris. Le lien correct est le suivant : <ph name="POLICY_DOCUMENTATION_URL" />.</translation> +<translation id="1089631008765417531">Autoriser les applis Web installées d'office à interroger les attributs des appareils.</translation> <translation id="1095209545735032039">Bloquer l'API Serial sur ces sites</translation> <translation id="1096105751829466145">Moteur de recherche par défaut</translation> <translation id="1099282607296956954">Activer l'isolation des sites pour tous les sites</translation> @@ -570,6 +571,7 @@ Remarque : La valeur de cette règle doit être comprise entre 0 et 100 %.</translation> <translation id="1736269219679256369">Autoriser la poursuite de la navigation depuis une page d'avertissement SSL</translation> +<translation id="173993509627303617">Empêcher les applis Web installées d'office d'interroger les attributs des appareils.</translation> <translation id="174765717426930019">Autoriser tous les pop-ups avec une cible "<ph name="BLANK_PAGE_NAME" />" à interagir avec la page sur laquelle ils ont été ouverts, sauf si celle-ci interdit explicitement ce type d'interaction </translation> <translation id="1750315445671978749">Bloquer tous les téléchargements</translation> <translation id="1751429117283165017">Permet de dresser la liste des formats d'URL pour lesquels les sites ne sont pas autorisés à demander aux utilisateurs un accès en écriture aux fichiers ou répertoires figurant dans le système de fichiers du système d'exploitation hôte. @@ -929,6 +931,17 @@ Si vous définissez <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> sur "1", seules les variantes considérées comme des correctifs essentiels de sécurité ou de stabilité peuvent être appliquées à <ph name="PRODUCT_OS_NAME" />. Si vous définissez <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> sur "2", aucune variante ne peut être appliquée au navigateur sur l'écran de connexion. Veuillez noter que ce mode n'est pas recommandé, car il est susceptible d'empêcher les développeurs <ph name="PRODUCT_OS_NAME" /> de fournir des correctifs de sécurité critiques en temps voulu.</translation> +<translation id="2216380260552785166">Cette règle contrôle la façon dont <ph name="PRODUCT_NAME" /> interprète les règles des listes grises/de sites pour la fonctionnalité Legacy Browser Support. Cela concerne ces règles : <ph name="URL_LIST_POLICY_NAME" />, <ph name="URL_GREYLIST_POLICY_NAME" />, <ph name="USE_IE_SITELIST_POLICY_NAME" />, <ph name="EXTERNAL_SITELIST_POLICY_NAME" /> et <ph name="EXTERNAL_GREYLIST_POLICY_NAME" />. + + Si la valeur est définie sur "Par défaut" (0) ou n'est pas spécifiée, la correspondance d'URL est moins stricte. Les règles qui n'incluent pas "/" recherchent une sous-chaîne dans le nom d'hôte de l'URL. + + Si la valeur est définie sur "Strict" (1), la correspondance d'URL est plus stricte. Les règles qui n'incluent pas "/" n'établissent une correspondance qu'avec la fin du nom d'hôte. Elles doivent être associées à la limite d'un nom de domaine. La compatibilité est meilleure avec <ph name="MS_IE_PRODUCT_NAME" /> et <ph name="MS_EDGE_PRODUCT_NAME" />. + + Par exemple, pour la règle "example.com" : + + "http://example.com/" et "http://subdomain.example.com/" correspondent, quel que soit le mode d'analyse. + + "http://notexample.com/", "http://example.com.invalid.com/" et "http://example.comabc/" correspondent uniquement en mode "Par défaut".</translation> <translation id="2221850122314326571">Lorsque ce paramètre est activé, <ph name="PRODUCT_NAME" /> vérifie les certificats des serveurs à l'aide de l'outil de vérification intégré. Lorsque ce paramètre est désactivé, <ph name="PRODUCT_NAME" /> vérifie les certificats des serveurs à l'aide de l'ancien outil de vérification fourni par la plate-forme. Lorsque ce paramètre n'est pas défini, l'outil intégré de vérification des certificats ou l'ancien outil peuvent être utilisés. @@ -2165,6 +2178,13 @@ Pour en savoir plus sur les sessions <ph name="WEBXR_AR_SESSION_ENUM_VALUE" />, veuillez consulter la spécification <ph name="WEBXR_AR_MODULE_API_NAME" />.</translation> <translation id="3788662722837364290">Paramètres de gestion de l'alimentation en cas d'inactivité de l'utilisateur</translation> +<translation id="3789468269499404556">Lorsqu'elle est activée, la fonctionnalité <ph name="PRODUCT_NAME" /> envoie des en-têtes de requête précis qui fournissent des infos sur le navigateur et l'environnement de l'utilisateur. + + Cette fonctionnalité est complémentaire. Toutefois, les nouveaux en-têtes peuvent entraîner un dysfonctionnement de certains sites qui appliquent des restrictions concernant les caractères que peuvent contenir les requêtes. + + Si cette règle est activée ou qu'elle n'est pas configurée, la fonctionnalité <ph name="PRODUCT_NAME" /> est activée. Si cette règle est désactivée, la fonctionnalité n'est pas disponible. + + Elle permet d'assurer la transition à court terme et sera supprimée de la version 94 de Chrome.</translation> <translation id="3790085888761753785">Si ce paramètre est activé, les utilisateurs seront autorisés à se connecter à leur compte avec Smart Lock. Ce paramètre est plus permissif que le comportement normal de Smart Lock qui permet seulement aux utilisateurs de déverrouiller leur écran. Si ce paramètre est désactivé, les utilisateurs ne seront pas autorisés à se connecter avec Smart Lock. @@ -2520,6 +2540,7 @@ À compter de la version 92 de <ph name="PRODUCT_NAME" />, cette règle est aussi prise en charge en mode sans interface graphique. Sous <ph name="MS_WIN_NAME" />, cette fonctionnalité n'est disponible que sur les instances jointes à un domaine <ph name="MS_AD_NAME" />, s'exécutant sous Windows 10 Pro ou bénéficiant de la <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Sous <ph name="MAC_OS_NAME" />, elle n'est disponible que sur les instances gérées via MDM ou jointes à un domaine via MCX.</translation> +<translation id="4268586991084547853">Davantage compatible avec les listes des sites Microsoft IE/Edge en mode Entreprise.</translation> <translation id="4269859918103560644">Laisser l'utilisateur décider</translation> <translation id="4274691295133617461">Si cette règle est définie sur "3", les sites Web peuvent demander l'accès en lecture aux fichiers et répertoires qui figurent dans le système de fichiers du système d'exploitation hôte via l'API File System. Si cette règle est définie sur "2", l'accès est refusé. @@ -2750,6 +2771,7 @@ * Lorsque le filtre <ph name="FILTER_PLACEHOLDER" /> est défini sur <ph name="EMPTY_DICTIONARY" />, la sélection de certificats client ne fait pas l'objet de restrictions supplémentaires. Notez que les filtres fournis par le serveur Web restent appliqués. Si cette règle n'est pas configurée, aucune sélection automatique n'est effectuée pour aucun site.</translation> +<translation id="4615003180013429835">Mode d'analyse de la liste des sites</translation> <translation id="4617338332148204752">Ignorer la vérification des balises Meta dans <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Configurer la liste blanche d'installation des extensions</translation> <translation id="4632343302005518762">Autoriser <ph name="PRODUCT_FRAME_NAME" /> à gérer les types de contenu répertoriés</translation> @@ -3433,6 +3455,11 @@ <translation id="5535973522252703021">Liste blanche des serveurs de délégation Kerberos</translation> <translation id="553806128266843748">Indicateur booléen spécifiant si la limitation est activée.</translation> <translation id="5540885720415375851">Autoriser la détection des appareils en local</translation> +<translation id="5541621819310532773">La configuration de cette règle autorise les applis Web installées d'office à obtenir les attributs des appareils (par ex. : numéro de série, nom d'hôte) à l'aide de l'API Web des attributs d'appareils. + + Si cette règle est définie sur "True" ou si elle n'est pas configurée, elle autorisera les applis Web installées d'office à utiliser l'API Web des attributs d'appareils. + + Si cette règle est définie sur "False", elle les empêchera d'utiliser cette API.</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="555022085242359084">Activer le contraste élevé sur l'écran de connexion</translation> <translation id="555077880566103058">Autoriser tous les sites à exécuter le plug-in "<ph name="FLASH_PLUGIN_NAME" />" automatiquement</translation> @@ -4070,6 +4097,7 @@ Si elle est désactivée ou n'est pas définie, le menu d'accessibilité flottant ne sera jamais affiché.</translation> <translation id="6424485010103067949"><ph name="OMA_URI" /> :</translation> <translation id="6424486395812679373">Procéder aux vérifications de la navigation sécurisée pour tous les fichiers téléchargés</translation> +<translation id="6436052172226685535">Comportement par défaut de LBS.</translation> <translation id="6438364096042399634">Permet d'établir la liste des appareils USB que les utilisateurs peuvent dissocier de leur pilote de noyau pour s'en servir via l'API chrome.usb directement au sein d'une application Web. Les entrées sont des paires composées d'un identifiant de fournisseur USB et d'un code produit associé à un appareil spécifique. Si cette règle n'est pas configurée, la liste des appareils USB amovibles est vide. @@ -4569,6 +4597,11 @@ <translation id="69525503251220566">Paramètre qui active la fonctionnalité de recherche par image pour le moteur de recherche par défaut</translation> <translation id="6953102253399571439">Activer l'impression par code définie par défaut</translation> <translation id="6956272732789158625">Interdire à tous les sites d'utiliser la génération de clé</translation> +<translation id="6959021201443139119">Permet de rétablir l'ancien comportement <ph name="ATTRIBUTE_SAMESITE_NAME" /> pour les cookies définis sur les domaines correspondant à ces formats. Si vous rétablissez l'ancien comportement, les cookies dont la valeur de l'attribut <ph name="ATTRIBUTE_SAMESITE_NAME" /> n'est pas spécifiée sont traités comme si la valeur "<ph name="ATTRIBUTE_VALUE_SAMESITE_NONE" />" était définie. De plus, ceux dont l'attribut a pour valeur "<ph name="ATTRIBUTE_VALUE_SAMESITE_NONE" />" n'exigent plus que la valeur de l'attribut "<ph name="ATTRIBUTE_SECURE_NAME" />" soit spécifiée. Enfin, les schémas ne sont pas non plus comparés pour déterminer si deux sites sont identiques ou non. Pour une description complète, accédez à https://www.chromium.org/administrators/policy-list-3/cookie-legacy-samesite-policies. + + Pour les cookies sur des domaines autres que ceux représentés par les formats spécifiés ici, ou pour tous les cookies si cette règle n'est pas configurée, la valeur globale par défaut sera définie à partir de la configuration personnelle de l'utilisateur. + + Les formats que vous répertoriez ici sont traités comme des domaines et non des URL. Vous ne devez donc pas spécifier de schéma ni de port.</translation> <translation id="6961602002757991199">Si cette règle est définie sur une URL valide, <ph name="PRODUCT_NAME" /> télécharge la liste des sites à partir de cette URL, puis applique les instructions comme si elles avaient été configurées avec la règle <ph name="BROWSER_SWITCHER_URL_GREYLIST_POLICY_NAME" />. Ces instructions empêchent <ph name="PRODUCT_NAME" /> et le navigateur secondaire de s'ouvrir l'un l'autre. Si cette règle n'est pas configurée ou qu'elle est définie sur une URL non valide, <ph name="PRODUCT_NAME" /> n'utilise pas cette règle comme source d'instructions pour ne pas changer de navigateur.
diff --git a/components/printing/browser/print_manager.cc b/components/printing/browser/print_manager.cc index cface58..19a6b012 100644 --- a/components/printing/browser/print_manager.cc +++ b/components/printing/browser/print_manager.cc
@@ -13,7 +13,10 @@ PrintManager::PrintManager(content::WebContents* contents) : content::WebContentsObserver(contents), - print_manager_host_receivers_(contents, this) {} + print_manager_host_receivers_( + contents, + this, + content::WebContentsFrameReceiverSetPassKey()) {} PrintManager::~PrintManager() = default;
diff --git a/components/query_tiles/internal/tile_service_impl_unittest.cc b/components/query_tiles/internal/tile_service_impl_unittest.cc index d85725e..9c2e696 100644 --- a/components/query_tiles/internal/tile_service_impl_unittest.cc +++ b/components/query_tiles/internal/tile_service_impl_unittest.cc
@@ -27,6 +27,7 @@ using testing::_; using ::testing::Invoke; +using ::testing::NiceMock; namespace query_tiles { namespace { @@ -83,7 +84,7 @@ auto tile_manager = std::make_unique<MockTileManager>(); tile_manager_ = tile_manager.get(); auto image_prefetcher = std::make_unique<MockImagePrefetcher>(); - auto scheduler = std::make_unique<MockTileServiceScheduler>(); + auto scheduler = std::make_unique<NiceMock<MockTileServiceScheduler>>(); scheduler_ = scheduler.get(); image_prefetcher_ = image_prefetcher.get(); ON_CALL(*image_prefetcher_, Prefetch(_, _, _))
diff --git a/components/safe_browsing/content/browser/browser_url_loader_throttle.cc b/components/safe_browsing/content/browser/browser_url_loader_throttle.cc index a263421e..f73a2ab9 100644 --- a/components/safe_browsing/content/browser/browser_url_loader_throttle.cc +++ b/components/safe_browsing/content/browser/browser_url_loader_throttle.cc
@@ -76,7 +76,8 @@ url_checker_ = std::make_unique<SafeBrowsingUrlCheckerImpl>( headers, load_flags, request_destination, has_user_gesture, url_checker_delegate, web_contents_getter_, real_time_lookup_enabled_, - can_rt_check_subresource_url_, can_check_db_, url_lookup_service_); + can_rt_check_subresource_url_, can_check_db_, + content::GetUIThreadTaskRunner({}), url_lookup_service_); CheckUrl(url, method); }
diff --git a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc index cc6bba6..79c588a 100644 --- a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc +++ b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc
@@ -10,6 +10,7 @@ #include "base/bind.h" #include "base/supports_user_data.h" #include "components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/resource_context.h" @@ -158,7 +159,7 @@ static_cast<int>(render_frame_id)), /*real_time_lookup_enabled=*/false, /*can_rt_check_subresource_url=*/false, - /*can_check_db=*/true, + /*can_check_db=*/true, content::GetUIThreadTaskRunner({}), /*url_lookup_service=*/nullptr); checker_impl->CheckUrl(
diff --git a/components/safe_browsing/content/browser/web_api_handshake_checker.cc b/components/safe_browsing/content/browser/web_api_handshake_checker.cc index c27d442..a4269fd 100644 --- a/components/safe_browsing/content/browser/web_api_handshake_checker.cc +++ b/components/safe_browsing/content/browser/web_api_handshake_checker.cc
@@ -54,7 +54,8 @@ url_checker_delegate, web_contents_getter_, /*real_time_lookup_enabled=*/false, /*can_rt_check_subresource_url=*/false, - /*can_check_db=*/true, /*url_lookup_service=*/nullptr); + /*can_check_db=*/true, content::GetUIThreadTaskRunner({}), + /*url_lookup_service=*/nullptr); url_checker_->CheckUrl( url, "GET", base::BindOnce(&WebApiHandshakeChecker::CheckerOnIO::OnCheckUrlResult,
diff --git a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc index cada0baf..07f51a7 100644 --- a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc +++ b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc
@@ -8,10 +8,10 @@ #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros_local.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/trace_event/trace_event.h" #include "components/safe_browsing/core/browser/url_checker_delegate.h" #include "components/safe_browsing/core/common/safebrowsing_constants.h" -#include "components/safe_browsing/core/common/thread_utils.h" #include "components/safe_browsing/core/common/utils.h" #include "components/safe_browsing/core/db/v4_protocol_manager_util.h" #include "components/safe_browsing/core/features.h" @@ -109,6 +109,7 @@ bool real_time_lookup_enabled, bool can_rt_check_subresource_url, bool can_check_db, + scoped_refptr<base::SequencedTaskRunner> ui_task_runner, base::WeakPtr<RealTimeUrlLookupServiceBase> url_lookup_service_on_ui) : headers_(headers), load_flags_(load_flags), @@ -120,10 +121,15 @@ real_time_lookup_enabled_(real_time_lookup_enabled), can_rt_check_subresource_url_(can_rt_check_subresource_url), can_check_db_(can_check_db), + ui_task_runner_(ui_task_runner), url_lookup_service_on_ui_(url_lookup_service_on_ui) { DCHECK(!web_contents_getter_.is_null()); DCHECK(!can_rt_check_subresource_url_ || real_time_lookup_enabled_); DCHECK(real_time_lookup_enabled_ || can_check_db_); + + // This object is used exclusively on the IO thread but may be constructed on + // the UI thread. + DETACH_FROM_THREAD(thread_checker_); } SafeBrowsingUrlCheckerImpl::SafeBrowsingUrlCheckerImpl( @@ -132,6 +138,7 @@ const base::RepeatingCallback<web::WebState*()>& web_state_getter, bool real_time_lookup_enabled, bool can_rt_check_subresource_url, + scoped_refptr<base::SequencedTaskRunner> ui_task_runner, base::WeakPtr<RealTimeUrlLookupServiceBase> url_lookup_service_on_ui) : load_flags_(0), request_destination_(request_destination), @@ -142,13 +149,18 @@ real_time_lookup_enabled_(real_time_lookup_enabled), can_rt_check_subresource_url_(can_rt_check_subresource_url), can_check_db_(true), + ui_task_runner_(ui_task_runner), url_lookup_service_on_ui_(url_lookup_service_on_ui) { DCHECK(!web_state_getter_.is_null()); DCHECK(!can_rt_check_subresource_url_ || real_time_lookup_enabled_); + + // This object is used exclusively on the IO thread but may be constructed on + // the UI thread. + DETACH_FROM_THREAD(thread_checker_); } SafeBrowsingUrlCheckerImpl::~SafeBrowsingUrlCheckerImpl() { - DCHECK(CurrentlyOnThread(ThreadID::IO)); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (state_ == STATE_CHECKING_URL) { if (can_check_db_) { @@ -196,7 +208,7 @@ resource.callback = base::BindRepeating(&SafeBrowsingUrlCheckerImpl::OnBlockingPageComplete, weak_factory_.GetWeakPtr()); - resource.callback_thread = GetTaskRunner(ThreadID::IO); + resource.callback_thread = base::ThreadTaskRunnerHandle::Get(); resource.web_contents_getter = web_contents_getter_; resource.web_state_getter = web_state_getter_; resource.threat_source = is_from_real_time_check @@ -322,7 +334,7 @@ void SafeBrowsingUrlCheckerImpl::CheckUrlImpl(const GURL& url, const std::string& method, Notifier notifier) { - DCHECK(CurrentlyOnThread(ThreadID::IO)); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DVLOG(1) << "SafeBrowsingUrlCheckerImpl checks URL: " << url; urls_.emplace_back(url, method, std::move(notifier), @@ -332,7 +344,7 @@ } void SafeBrowsingUrlCheckerImpl::ProcessUrls() { - DCHECK(CurrentlyOnThread(ThreadID::IO)); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_NE(STATE_BLOCKED, state_); if (!base::FeatureList::IsEnabled(kDelayedWarnings)) { DCHECK_NE(STATE_DELAYED_BLOCKING_PAGE, state_); @@ -390,10 +402,9 @@ TRACE_EVENT_ASYNC_BEGIN1("safe_browsing", "CheckUrl", this, "url", url.spec()); - GetTaskRunner(ThreadID::IO) - ->PostTask(FROM_HERE, - base::BindOnce( - &SafeBrowsingUrlCheckerImpl::OnCheckBrowseUrlResult, + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::BindOnce(&SafeBrowsingUrlCheckerImpl::OnCheckBrowseUrlResult, weak_factory_.GetWeakPtr(), url, threat_type, ThreatMetadata())); break; @@ -433,25 +444,23 @@ // Full-hash matched locally so queue a call to // |OnCheckUrlForHighConfidenceAllowlist| to trigger the hash-based // checking. - GetTaskRunner(ThreadID::IO) - ->PostTask( - FROM_HERE, - base::BindOnce(&SafeBrowsingUrlCheckerImpl:: - OnCheckUrlForHighConfidenceAllowlist, - weak_factory_.GetWeakPtr(), - /*did_match_allowlist=*/true)); + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::BindOnce(&SafeBrowsingUrlCheckerImpl:: + OnCheckUrlForHighConfidenceAllowlist, + weak_factory_.GetWeakPtr(), + /*did_match_allowlist=*/true)); break; case AsyncMatch::NO_MATCH: // No match found locally or |can_check_db_| is false. Queue the call // to |OnCheckUrlForHighConfidenceAllowlist| to perform the full URL // lookup. - GetTaskRunner(ThreadID::IO) - ->PostTask( - FROM_HERE, - base::BindOnce(&SafeBrowsingUrlCheckerImpl:: - OnCheckUrlForHighConfidenceAllowlist, - weak_factory_.GetWeakPtr(), - /*did_match_allowlist=*/false)); + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::BindOnce(&SafeBrowsingUrlCheckerImpl:: + OnCheckUrlForHighConfidenceAllowlist, + weak_factory_.GetWeakPtr(), + /*did_match_allowlist=*/false)); break; } } else { @@ -548,7 +557,7 @@ void SafeBrowsingUrlCheckerImpl::OnCheckUrlForHighConfidenceAllowlist( bool did_match_allowlist) { - DCHECK(CurrentlyOnThread(ThreadID::IO)); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); bool is_expected_request_destination = (network::mojom::RequestDestination::kDocument == request_destination_) || ((network::mojom::RequestDestination::kIframe == request_destination_ || @@ -564,12 +573,11 @@ return; } - GetTaskRunner(ThreadID::UI) - ->PostTask( - FROM_HERE, - base::BindOnce(&SafeBrowsingUrlCheckerImpl::StartLookupOnUIThread, - weak_factory_.GetWeakPtr(), url, - url_lookup_service_on_ui_, database_manager_)); + ui_task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&SafeBrowsingUrlCheckerImpl::StartLookupOnUIThread, + weak_factory_.GetWeakPtr(), url, url_lookup_service_on_ui_, + database_manager_, base::ThreadTaskRunnerHandle::Get())); } void SafeBrowsingUrlCheckerImpl::SetWebUIToken(int token) { @@ -581,18 +589,17 @@ base::WeakPtr<SafeBrowsingUrlCheckerImpl> weak_checker_on_io, const GURL& url, base::WeakPtr<RealTimeUrlLookupServiceBase> url_lookup_service_on_ui, - scoped_refptr<SafeBrowsingDatabaseManager> database_manager) { - DCHECK(CurrentlyOnThread(ThreadID::UI)); + scoped_refptr<SafeBrowsingDatabaseManager> database_manager, + scoped_refptr<base::SequencedTaskRunner> io_task_runner) { bool is_lookup_service_available = url_lookup_service_on_ui && !url_lookup_service_on_ui->IsInBackoffMode(); base::UmaHistogramBoolean("SafeBrowsing.RT.IsLookupServiceAvailable", is_lookup_service_available); if (!is_lookup_service_available) { - GetTaskRunner(ThreadID::IO) - ->PostTask( - FROM_HERE, - base::BindOnce(&SafeBrowsingUrlCheckerImpl::PerformHashBasedCheck, - weak_checker_on_io, url)); + io_task_runner->PostTask( + FROM_HERE, + base::BindOnce(&SafeBrowsingUrlCheckerImpl::PerformHashBasedCheck, + weak_checker_on_io, url)); return; } @@ -604,11 +611,11 @@ url_lookup_service_on_ui->StartLookup(url, std::move(request_callback), std::move(response_callback), - GetTaskRunner(ThreadID::IO)); + std::move(io_task_runner)); } void SafeBrowsingUrlCheckerImpl::PerformHashBasedCheck(const GURL& url) { - DCHECK(CurrentlyOnThread(ThreadID::IO)); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (!can_check_db_ || database_manager_->CheckBrowseUrl( url, url_checker_delegate_->GetThreatTypes(), this)) { @@ -629,7 +636,7 @@ void SafeBrowsingUrlCheckerImpl::OnRTLookupRequest( std::unique_ptr<RTLookupRequest> request, std::string oauth_token) { - DCHECK(CurrentlyOnThread(ThreadID::IO)); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); LogRTLookupRequest(*request, oauth_token); } @@ -638,7 +645,7 @@ bool is_rt_lookup_successful, bool is_cached_response, std::unique_ptr<RTLookupResponse> response) { - DCHECK(CurrentlyOnThread(ThreadID::IO)); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); bool is_expected_request_destination = (network::mojom::RequestDestination::kDocument == request_destination_) || ((network::mojom::RequestDestination::kIframe == request_destination_ ||
diff --git a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h index 6443f68..6f9bbae 100644 --- a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h +++ b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h
@@ -10,6 +10,7 @@ #include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" +#include "base/threading/thread_checker.h" #include "base/timer/timer.h" #include "components/safe_browsing/core/common/safe_browsing_url_checker.mojom.h" #include "components/safe_browsing/core/db/database_manager.h" @@ -80,6 +81,7 @@ bool real_time_lookup_enabled, bool can_rt_check_subresource_url, bool can_check_db, + scoped_refptr<base::SequencedTaskRunner> ui_task_runner, base::WeakPtr<RealTimeUrlLookupServiceBase> url_lookup_service_on_ui); // Constructor that takes only a RequestDestination, a UrlCheckerDelegate, and @@ -91,6 +93,7 @@ const base::RepeatingCallback<web::WebState*()>& web_state_getter, bool real_time_lookup_enabled, bool can_rt_check_subresource_url, + scoped_refptr<base::SequencedTaskRunner> ui_task_runner, base::WeakPtr<RealTimeUrlLookupServiceBase> url_lookup_service_on_ui); ~SafeBrowsingUrlCheckerImpl() override; @@ -178,7 +181,8 @@ base::WeakPtr<SafeBrowsingUrlCheckerImpl> weak_checker_on_io, const GURL& url, base::WeakPtr<RealTimeUrlLookupServiceBase> url_lookup_service_on_ui, - scoped_refptr<SafeBrowsingDatabaseManager> database_manager); + scoped_refptr<SafeBrowsingDatabaseManager> database_manager, + scoped_refptr<base::SequencedTaskRunner> io_task_runner); // Called when the |request| from the real-time lookup service is sent. void OnRTLookupRequest(std::unique_ptr<RTLookupRequest> request, @@ -239,6 +243,7 @@ bool is_cached_safe_url; }; + THREAD_CHECKER(thread_checker_); const net::HttpRequestHeaders headers_; const int load_flags_; const network::mojom::RequestDestination request_destination_; @@ -279,6 +284,9 @@ // for this profile. bool can_check_db_; + // The task runner for the UI thread. + scoped_refptr<base::SequencedTaskRunner> ui_task_runner_; + // This object is used to perform real time url check. Can only be accessed in // UI thread. base::WeakPtr<RealTimeUrlLookupServiceBase> url_lookup_service_on_ui_;
diff --git a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl_unittest.cc b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl_unittest.cc index aa2d814..fdcb33a 100644 --- a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl_unittest.cc +++ b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl_unittest.cc
@@ -261,6 +261,7 @@ /*has_user_gesture=*/false, url_checker_delegate_, mock_web_contents_getter.Get(), real_time_lookup_enabled, /*can_rt_check_subresource_url=*/false, can_check_safe_browsing_db, + base::ThreadTaskRunnerHandle::Get(), real_time_lookup_enabled ? url_lookup_service_->GetWeakPtr() : nullptr); }
diff --git a/components/security_interstitials/content/security_interstitial_tab_helper.cc b/components/security_interstitials/content/security_interstitial_tab_helper.cc index 07ba5ea..c938c532 100644 --- a/components/security_interstitials/content/security_interstitial_tab_helper.cc +++ b/components/security_interstitials/content/security_interstitial_tab_helper.cc
@@ -86,7 +86,10 @@ SecurityInterstitialTabHelper::SecurityInterstitialTabHelper( content::WebContents* web_contents) - : WebContentsObserver(web_contents), receiver_(web_contents, this) {} + : WebContentsObserver(web_contents), + receiver_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) {} void SecurityInterstitialTabHelper::SetBlockingPage( int64_t navigation_id,
diff --git a/components/signin/internal/identity_manager/primary_account_mutator_impl.cc b/components/signin/internal/identity_manager/primary_account_mutator_impl.cc index b61786e..11460ad 100644 --- a/components/signin/internal/identity_manager/primary_account_mutator_impl.cc +++ b/components/signin/internal/identity_manager/primary_account_mutator_impl.cc
@@ -58,7 +58,14 @@ DCHECK(!account_info.gaia.empty()); #if !BUILDFLAG(IS_CHROMEOS_ASH) - if (!pref_service_->GetBoolean(prefs::kSigninAllowed)) + bool is_signin_allowed = pref_service_->GetBoolean(prefs::kSigninAllowed); +#if BUILDFLAG(IS_CHROMEOS_LACROS) + // Check that `prefs::kSigninAllowed` has not been set to false in a context + // where Lacros wants to set a Primary Account. Lacros doesn't offer account + // inconsistency - just like Ash. + DCHECK(is_signin_allowed); +#endif + if (!is_signin_allowed) return false; #endif
diff --git a/components/signin/ios/browser/account_consistency_service.mm b/components/signin/ios/browser/account_consistency_service.mm index 0566040..4372b9ef 100644 --- a/components/signin/ios/browser/account_consistency_service.mm +++ b/components/signin/ios/browser/account_consistency_service.mm
@@ -213,23 +213,17 @@ return; } - // If the user has been prompted to enter their credentials on a Gaia sign-on - // page show the account consistency promo. - NSString* x_autologin_header = [[http_response allHeaderFields] - objectForKey:[NSString stringWithUTF8String:signin::kAutoLoginHeader]]; - if (signin::IsMICEWebSignInEnabled() && x_autologin_header) { - show_consistency_promo_ = true; - // Allows the URL response to load before showing the consistency promo. - // The promo should always be displayed in the foreground of Gaia - // sign-on. - std::move(callback).Run(PolicyDecision::Allow()); - return; - } - NSString* manage_accounts_header = [[http_response allHeaderFields] objectForKey: [NSString stringWithUTF8String:signin::kChromeManageAccountsHeader]]; if (!manage_accounts_header) { + // Header that detects whether a user has been prompted to enter their + // credentials on a Gaia sign-on page. + NSString* x_autologin_header = [[http_response allHeaderFields] + objectForKey:[NSString stringWithUTF8String:signin::kAutoLoginHeader]]; + if (signin::IsMICEWebSignInEnabled() && x_autologin_header) { + show_consistency_promo_ = true; + } std::move(callback).Run(PolicyDecision::Allow()); return; } @@ -268,6 +262,14 @@ return; } } + } else if (!identity_manager_->GetAccountsWithRefreshTokens().empty() && + signin::IsMICEWebSignInEnabled()) { + show_consistency_promo_ = true; + // Allows the URL response to load before showing the consistency promo. + // The promo should always be displayed in the foreground of Gaia + // sign-on. + std::move(callback).Run(PolicyDecision::Allow()); + return; } [delegate_ onAddAccount]; break;
diff --git a/components/signin/public/identity_manager/primary_account_mutator_unittest.cc b/components/signin/public/identity_manager/primary_account_mutator_unittest.cc index 9c452bef..d6bd1d38 100644 --- a/components/signin/public/identity_manager/primary_account_mutator_unittest.cc +++ b/components/signin/public/identity_manager/primary_account_mutator_unittest.cc
@@ -357,6 +357,7 @@ primary_account_info.account_id); } +#if !BUILDFLAG(IS_CHROMEOS_LACROS) // Checks that trying to set the primary account fails if setting the primary // account is not allowed. TEST_F(PrimaryAccountMutatorTest, @@ -387,6 +388,7 @@ EXPECT_FALSE(primary_account_mutator->SetPrimaryAccount( primary_account_info.account_id, signin::ConsentLevel::kSync)); } +#endif // !BUILDFLAG(IS_CHROMEOS_LACROS) // End of tests of preconditions not being satisfied causing the setting of // the primary account to fail.
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb index c857595..8507a8d5 100644 --- a/components/strings/components_strings_af.xtb +++ b/components/strings/components_strings_af.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Raak sensor om te betaal</translation> <translation id="2728127805433021124">Bediener se sertifikaat is met 'n swak handtekening-algoritme onderteken.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Voer tans konnektiwiteitdiagnostiek uit<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">As jy hierdie kenmerke aktiveer kan jy blaaierdata verloor of - jou sekuriteit of privaatheid kompromitteer. Geaktiveerde kenmerke geld vir alle - gebruikers van hierdie blaaier.</translation> <translation id="2738330467931008676">Kies oplaaiadres</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Verwyder geselekteerde items</translation> @@ -2214,6 +2211,7 @@ <translation id="9128870381267983090">Koppel aan netwerk</translation> <translation id="9137013805542155359">Wys oorspronklike</translation> <translation id="9141013498910525015">Bestuur adresse</translation> +<translation id="9144951720726881238">Vervaldatum:</translation> <translation id="9148088599418889305">Kies versendingmetode</translation> <translation id="9148507642005240123">Ontdoen wysiging</translation> <translation id="9150045010208374699">Gebruik jou kamera</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb index 57c494b4..e9992f8 100644 --- a/components/strings/components_strings_am.xtb +++ b/components/strings/components_strings_am.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">ለመክፈል ዳሳሽን ነካ አድርግ</translation> <translation id="2728127805433021124">የአገልጋዩ እውቅና ማረጋገጫ የተፈረመው በደካማ የፊርማ ስልተቀመር ነው።</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />የግንኙነት መመርመሪያን በማሄድ ላይ<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">እነዚህን ባህሪያት በማንቃት የአሳሽ ውሂብ ሊያጡ ወይም የእርስዎን ደህንነት ወይም ግላዊነት ለአደጋ ሊያጋልጡት ይችላሉ። የነቁ ባህሪያት በሁሉም የዚህ አሳሽ ተጠቃሚዎች ላይ ተፈጻሚ ናቸው።</translation> <translation id="2738330467931008676">የመውሰጃ አድራሻ ይምረጡ</translation> <translation id="2740531572673183784">እሺ</translation> <translation id="2742870351467570537">የተመረጡትን ንጥሎች አስወግድ</translation> @@ -2205,6 +2204,7 @@ <translation id="9128870381267983090">ከአውታረ መረብ ጋር ይገናኙ</translation> <translation id="9137013805542155359">የመጀመሪያውን አሳይ</translation> <translation id="9141013498910525015">አድራሻዎችን ያቀናብሩ</translation> +<translation id="9144951720726881238">ጊዜው የሚያልፍበት ቀን፦</translation> <translation id="9148088599418889305">የመላኪያ ዘዴ ይምረጡ</translation> <translation id="9148507642005240123">&አርትዕን ቀልብስ</translation> <translation id="9150045010208374699">ካሜራዎን ይጠቀማል</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index 5ba122b8..26741b5 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">المس المستشعر لإجراء الدفع</translation> <translation id="2728127805433021124">شهادة الخادم موقّعة باستخدام خوارزمية توقيع ضعيفة.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />تشغيل بيانات تشخيص الاتصال<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">من خلال تفعيل هذه الميزات، قد تفقد بيانات المتصفِّح أو - يتعرّض أمانك وخصوصيتك للاختراق. يتم تطبيق الميزات المفعَّلة على جميع - مستخدمي هذا المتصفِّح.</translation> <translation id="2738330467931008676">اختيار عنوان الاستلام من المستخدم</translation> <translation id="2740531572673183784">حسنًا</translation> <translation id="2742870351467570537">إزالة العناصر المحددة</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb index d982b2d..5020ef1 100644 --- a/components/strings/components_strings_as.xtb +++ b/components/strings/components_strings_as.xtb
@@ -492,9 +492,6 @@ <translation id="272451190272506600">পৰিশোধ কৰিবলৈ ছেন্সৰ স্পর্শ কৰক</translation> <translation id="2728127805433021124">ছাৰ্ভাৰৰ প্ৰমাণপত্ৰ স্বাক্ষৰ কৰাৰ এটা দুৰ্বল কলনবিধি ব্যৱহাৰ কৰি স্বাক্ষৰ কৰা হৈছে।</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Running Connectivity Diagnostics চলাই চাওক<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">এই সুবিধাসমূহ সক্ষম কৰিলে আপুনি ব্ৰাউজাৰৰ ডেটা হেৰুৱাবলগা অথবা - আপোনাৰ সুৰক্ষা বা গোপনীয়তাৰ ক্ষেত্ৰত আপোচ কৰিবলগা হ’ব পাৰে৷ সক্ষম কৰা সুবিধাসমূহ - এই ব্ৰাউজাৰ ব্যৱহাৰ কৰা সকলো ব্যৱহাৰকাৰীৰ ক্ষেত্ৰত প্ৰযোজ্য হয়৷</translation> <translation id="2738330467931008676">পিক আপ কৰাৰ ঠিকনা বাছনি কৰক</translation> <translation id="2740531572673183784">ঠিক আছে</translation> <translation id="2742870351467570537">বাছি লোৱা সামগ্ৰীবোৰ আঁতৰাওক</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb index 6a67349..7e1421a 100644 --- a/components/strings/components_strings_az.xtb +++ b/components/strings/components_strings_az.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Ödəniş etmək üçün sensora toxunun</translation> <translation id="2728127805433021124">Server sertifikatı zəif imza alqoritmi istifadə olunaraq daxil edildi.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Bağlantı Diaqnostikası İşləyir<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Bu funksiyaları aktiv etməklə, brauzer datası silinə bilər, yaxud - təhlükəsizlik və ya məxfiliyinizi təhlükə altına ata bilərsiniz. Aktiv edilən funksiyalar bu brauzerin - bütün istifadəçilərinə tətbiq edilir.</translation> <translation id="2738330467931008676">Götürmə Ünvanı seçin</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Seçilmiş elementləri silin</translation> @@ -2209,6 +2206,7 @@ <translation id="9128870381267983090">Şəbəkəyə qoşulun</translation> <translation id="9137013805542155359">Originalı göstərin</translation> <translation id="9141013498910525015">Ünvanları idarə edin</translation> +<translation id="9144951720726881238">Bitmə tarixi:</translation> <translation id="9148088599418889305">Göndərmə Üsulu seçin</translation> <translation id="9148507642005240123">Düzəlişi geri qaytarın</translation> <translation id="9150045010208374699">Kameranızı istifadə edin</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb index 2e1c5111..51a1ad5 100644 --- a/components/strings/components_strings_be.xtb +++ b/components/strings/components_strings_be.xtb
@@ -285,7 +285,7 @@ <translation id="1919345977826869612">Рэклама</translation> <translation id="1919367280705858090">Дапамога пры асобных паведамленнях аб памылцы</translation> <translation id="192020519938775529">{COUNT,plural, =0{Няма}=1{1 сайт}one{# сайт}few{# сайты}many{# сайтаў}other{# сайта}}</translation> -<translation id="1924727005275031552">Новыя</translation> +<translation id="1924727005275031552">Новая форма</translation> <translation id="1945968466830820669">Вы можаце страціць доступ да ўліковага запісу арганізацыі, або ў вас могуць скрасці асабістыя даныя. Chromium рэкамендуе змяніць пароль.</translation> <translation id="1947454675006758438">Скаба зверху справа</translation> <translation id="1958218078413065209">Ваш рэзультат: <ph name="SCORE" />.</translation> @@ -412,7 +412,7 @@ <translation id="239429038616798445">Гэты спосаб дастаўкі недаступны. Выберыце іншы спосаб.</translation> <translation id="2396249848217231973">&Адрабіць выдаленне</translation> <translation id="2410754574180102685">Government-Legal</translation> -<translation id="2413155254802890957">Старыя</translation> +<translation id="2413155254802890957">Старая форма</translation> <translation id="2413528052993050574">Серверу не ўдалося даказаць, што гэта <ph name="DOMAIN" />; магчыма, яго сертыфікат бяспекі адкліканы. Прычынай могуць быць няправільныя налады або зламыснік, які спрабуе перахапіць падключэнне.</translation> <translation id="2414886740292270097">Цёмная</translation> <translation id="2438874542388153331">Чатыры дзіркі справа</translation> @@ -495,9 +495,6 @@ <translation id="272451190272506600">Каб заплаціць, дакраніцеся да датчыка</translation> <translation id="2728127805433021124">Сертыфікат сервера падпісаны з выкарыстаннем ненадзейнага алгарытму.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Запусціць дыягностыку падключэння<ph name="END_LINK" />.</translation> -<translation id="2734544361860335147">Пасля ўключэння гэтых функцый вы можаце страціць даныя браўзера ці - паставіць пад пагрозу сваю бяспеку або прыватнасць. Уключаныя функцыі прымяняюцца да ўсіх - карыстальнікаў гэтага браўзера.</translation> <translation id="2738330467931008676">Выбраць адрас прыняцця</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Выдаліць выбраныя элементы</translation> @@ -1791,7 +1788,7 @@ <translation id="7548892272833184391">Выпраўленне памылак падключэння</translation> <translation id="7549584377607005141">Для правільнага паказу старонкі патрабуюцца ўведзеныя раней даныя. Можна адправіць гэтыя даныя яшчэ раз, але тым самым будуць паўтораны дзеянні, выкананыя на гэтай старонцы раней.</translation> <translation id="7550637293666041147">Ваша імя карыстальніка Chrome і імя карыстальніка на прыладзе</translation> -<translation id="755279583747225797">Дзейнічае пробны перыяд</translation> +<translation id="755279583747225797">Дзейнічае пробная версія</translation> <translation id="7552846755917812628">Паспрабуйце наступнае:</translation> <translation id="7554475479213504905">Перазагрузіць і ўсё роўна паказаць</translation> <translation id="7554791636758816595">Новая ўкладка</translation> @@ -2214,6 +2211,7 @@ <translation id="9128870381267983090">Падключыцеся да сеткі</translation> <translation id="9137013805542155359">Паказаць арыгінал</translation> <translation id="9141013498910525015">Кіраваць адрасамі</translation> +<translation id="9144951720726881238">Заканчэнне тэрміну дзеяння:</translation> <translation id="9148088599418889305">Выбраць спосаб дастаўкі</translation> <translation id="9148507642005240123">&Адрабіць змену</translation> <translation id="9150045010208374699">Выкарыстоўваць камеру</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index 1ea89311..a97cf85 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -493,7 +493,6 @@ <translation id="272451190272506600">Докоснете сензора, за да платите</translation> <translation id="2728127805433021124">Сертификатът на сървъра е подписан със слаб алгоритъм.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Стартирайте диагностика на свързаността<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Активирането на тези функции може да доведе до загуба на данни на браузъра или компрометиране на сигурността или поверителността ви. Активираните функции се прилагат за всички потребители на този браузър.</translation> <translation id="2738330467931008676">Избиране на адрес за вземане</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Премахване на избраните елементи</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb index 5823251..943d5893 100644 --- a/components/strings/components_strings_bn.xtb +++ b/components/strings/components_strings_bn.xtb
@@ -493,9 +493,6 @@ <translation id="272451190272506600">পেমেন্ট করতে সেন্সর টাচ করুন</translation> <translation id="2728127805433021124">একটি দুর্বল স্বাক্ষর অ্যালগোরিদম ব্যবহার করে সার্ভারের সার্টিফিকেটে সাইন করা হয়েছে৷</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />সংযোগের ডায়গনিস্টিক্স চালান<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">এইসব ফিচার চালু করলে আপনার ব্রাউজ করা ডেটা মুছে যেতে পারে - অথবা আপনার নিরাপত্তা বা গোপনীয়তা বিঘ্নিত হতে পারে। চালু করা ফিচারগুলি - এই ব্রাউজারের সব ব্যবহারকারীর ক্ষেত্রে প্রযোজ্য হবে।</translation> <translation id="2738330467931008676">পিক-আপের ঠিকানা বেছে নিন</translation> <translation id="2740531572673183784">ঠিক আছে</translation> <translation id="2742870351467570537">নির্বাচিত আইটেমগুলি সরান</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb index 00326962..223f88c 100644 --- a/components/strings/components_strings_bs.xtb +++ b/components/strings/components_strings_bs.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Dodirnite senzor da platite</translation> <translation id="2728127805433021124">Certifikat poslužitelja potpisan je slabim algoritmom potpisa.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Pokrenuti dijagnostiku povezivosti<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ako omogućite ove funkcije, možete izgubiti podatke preglednika ili - ugroziti sopstvenu sigurnost ili privatnost. Omogućene funkcije se primjenjuju na sve - korisnike ovog preglednika.</translation> <translation id="2738330467931008676">Izaberite adresu preuzimanja</translation> <translation id="2740531572673183784">Uredu</translation> <translation id="2742870351467570537">Ukloni odabrane stavke</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index 132a5e0..60027e2 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">Toca el sensor per pagar</translation> <translation id="2728127805433021124">El certificat del servidor està signat mitjançant un algoritme de signatura dèbil.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Executar el Diagnòstic de connectivitat<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">En activar aquestes funcions, podries perdre dades del navegador o posar en perill la teva seguretat o privadesa. Les funcions activades s'apliquen a tots els usuaris d'aquest navegador.</translation> <translation id="2738330467931008676">Tria l'adreça de recollida</translation> <translation id="2740531572673183784">D'acord</translation> <translation id="2742870351467570537">Suprimeix els elements seleccionats</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index 8b74a04..f99bbb7 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">Dotkněte se senzoru, abyste zaplatili</translation> <translation id="2728127805433021124">Certifikát serveru je podepsán slabým algoritmem.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Spustit Diagnostiku připojení<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Aktivací těchto funkcí byste mohli přijít o údaje v prohlížeči nebo ohrozit svoji bezpečnost nebo soukromí. Aktivace funkcí se vztahuje na všechny uživatele tohoto prohlížeče.</translation> <translation id="2738330467931008676">Vybrat adresu vyzvednutí</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Odstranit vybrané položky</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index bdfa5c6..338513ac 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Rør ved sensoren for at betale</translation> <translation id="2728127805433021124">Serverens certifikat er signeret ved hjælp af en svag signaturalgoritme.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Køre Diagnosticering af forbindelse<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Hvis du aktiverer disse funktioner, kan du miste browserdata eller - kompromittere din sikkerhed eller dit privatliv. Aktiverede funktioner gælder for alle - brugere i denne browser.</translation> <translation id="2738330467931008676">Vælg afhentningsadresse</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Fjern valgte elementer</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index ac80c53..2efdad5 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">Berühren Sie zum Bezahlen den Sensor</translation> <translation id="2728127805433021124">Das Serverzertifikat ist mit einem schwachen Signaturalgorithmus signiert.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Verbindungsdiagnose ausführen<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Wenn Sie diese Funktionen aktivieren, verlieren Sie unter Umständen Browserdaten oder gefährden Ihre Sicherheit oder Ihre Privatsphäre. Aktivierte Funktionen werden für alle Nutzer dieses Browsers angewendet.</translation> <translation id="2738330467931008676">Abholadresse auswählen</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Ausgewählte Einträge entfernen</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb index 5423e18..a244a1e 100644 --- a/components/strings/components_strings_el.xtb +++ b/components/strings/components_strings_el.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Αγγίξτε τον αισθητήρα για την πληρωμή</translation> <translation id="2728127805433021124">Το πιστοποιητικό του διακομιστή είναι υπογεγραμμένο με έναν αδύναμο αλγόριθμο υπογραφής.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Να εκτελέσετε τα Διαγνωστικά στοιχεία συνδεσιμότητας<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ενεργοποιώντας αυτές τις λειτουργίες, μπορεί να χάσετε δεδομένα του προγράμματος περιήγησης ή - να θέσετε σε κίνδυνο την ασφάλεια ή το απόρρητό σας. Οι ενεργοποιημένες λειτουργίες ισχύουν για - όλους τους χρήστες αυτού του προγράμματος περιήγησης.</translation> <translation id="2738330467931008676">Επιλογή διεύθυνσης παραλαβής</translation> <translation id="2740531572673183784">ΟK</translation> <translation id="2742870351467570537">Κατάργηση επιλεγμένων στοιχείων</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index 4b6a744c..a8f34b5 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -494,9 +494,6 @@ <translation id="272451190272506600">Touch sensor to pay</translation> <translation id="2728127805433021124">Server's certificate is signed using a weak signature algorithm.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Running Connectivity Diagnostics<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">By enabling these features, you could lose browser data or - compromise your security or privacy. Enabled features apply to all - users of this browser.</translation> <translation id="2738330467931008676">Choose pickup address</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Remove selected items</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index f3b876a..a0e52249 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">Sensor táctil para pagar</translation> <translation id="2728127805433021124">El certificado del servidor está firmado con un algoritmo de firma no seguro.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Ejecución del Diagnóstico de conectividad<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Si habilitas estas funciones, es posible que pierdas datos de navegación o pongas en riesgo tu seguridad o privacidad. Las funciones habilitadas se aplican a todos los usuarios de este navegador.</translation> <translation id="2738330467931008676">Elegir dirección de retiro</translation> <translation id="2740531572673183784">Aceptar</translation> <translation id="2742870351467570537">Eliminar elementos seleccionados</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index e6804e40..7c8df38 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Toca el sensor para pagar</translation> <translation id="2728127805433021124">El certificado del servidor está firmado con un algoritmo de firma no seguro.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Ejecutar Diagnóstico de conectividad<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Si habilitas estas funciones, podrías perder los datos de navegación o - poner en riesgo tu seguridad o privacidad. Las funciones habilitadas se aplican a todos - los usuarios de este navegador.</translation> <translation id="2738330467931008676">Seleccionar dirección de recogida</translation> <translation id="2740531572673183784">Aceptar</translation> <translation id="2742870351467570537">Eliminar elementos seleccionados</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index 7af60d72..a0037f50 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -494,9 +494,6 @@ <translation id="272451190272506600">Maksmiseks puudutage andurit</translation> <translation id="2728127805433021124">Serveri sertifikaat on allkirjastatud nõrga allkirjaalgoritmiga.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Ühenduvusdiagnostika käitamine<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Nende funktsioonide lubamisel võivad sirvimisandmed kaotsi minna või - teie turvalisus või privaatsus võib ohtu sattuda. Lubatud funktsioonid on - saadaval kõigile selle brauseri kasutajatele.</translation> <translation id="2738330467931008676">Valige kättesaamisaadress</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Eemalda valitud üksused</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb index 01faffc..dbf2927b 100644 --- a/components/strings/components_strings_eu.xtb +++ b/components/strings/components_strings_eu.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">Ordaintzeko, sakatu sentsorea</translation> <translation id="2728127805433021124">Zerbitzariaren ziurtagiria segurua ez den sinadura-algoritmo batekin dago sinatuta.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Konexioen diagnostikoak abiarazten<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Eginbide hauek gaituz gero, baliteke arakatzaileko datuak galtzea, edo segurtasuna edo pribatutasuna arriskuan jartzea. Arakatzailea darabilten pertsona guztiek izango dituzte erabilgarri gaitzen diren eginbideak.</translation> <translation id="2738330467931008676">Aukeratu jasotze-helbidea</translation> <translation id="2740531572673183784">Ados</translation> <translation id="2742870351467570537">Kendu hautatutako elementuak</translation> @@ -2198,6 +2197,7 @@ <translation id="9128870381267983090">Konektatu sarera</translation> <translation id="9137013805542155359">Ikusi jatorrizkoa</translation> <translation id="9141013498910525015">Kudeatu helbideak</translation> +<translation id="9144951720726881238">Iraungitze-data:</translation> <translation id="9148088599418889305">Aukeratu bidalketa-metodoa</translation> <translation id="9148507642005240123">&Desegin editatzea</translation> <translation id="9150045010208374699">Erabili zure kamera</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index 16f06f0..e9312d3 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -495,7 +495,6 @@ <translation id="272451190272506600">برای پرداخت، حسگر را لمس کنید</translation> <translation id="2728127805433021124">گواهی سرور با استفاده از یک الگوریتم امضای ضعیف امضا شده است.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />در حال اجرای عیبیابی اتصال<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">با فعال کردن این ویژگیها، ممکن است دادههای محصول مرور را از دست بدهید یا امنیت یا حریمخصوصیتان را بهخطر بیندازید. ویژگیهای فعالشده برای همه کاربران این مرورگر اعمال میشود.</translation> <translation id="2738330467931008676">انتخاب نشانی تحویل گرفتن</translation> <translation id="2740531572673183784">تأیید</translation> <translation id="2742870351467570537">حذف موارد انتخابی</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb index d696d6b..2861fb5 100644 --- a/components/strings/components_strings_fi.xtb +++ b/components/strings/components_strings_fi.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Maksa koskettamalla tunnistinta</translation> <translation id="2728127805433021124">Palvelimen varmenne on allekirjoitettu heikolla allekirjoitusalgoritmilla.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />yhteysdiagnostiikkaa<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Jos otat nämä ominaisuudet käyttöön, voit menettää selaustietoja tai - vaarantaa tietosuojasi tai yksityisyytesi. Ominaisuuksien käyttöönotto koskee kaikkia - selaimen käyttäjiä.</translation> <translation id="2738330467931008676">Valitse noutopaikan osoite</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Poista valitut kohteet</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index 06ea4bb..e415bfb 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Pindutin ang sensor para magbayad</translation> <translation id="2728127805433021124">Nilagdaan ang certificate ng server gamit ang mahinang algorithm ng lagda.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Magpatakbo ng Connectivity Diagnostics<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Sa pamamagitan ng pag-enable sa mga feature na ito, puwedeng mawala ang data sa iyong browser o - makompromiso ang seguridad o privacy mo. Nalalapat ang mga naka-enable na feature sa lahat - ng user ng browser na ito.</translation> <translation id="2738330467931008676">Pumili ng Address sa Pag-pick up</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Alisin ang mga napiling item</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb index 7c30e8b2..f5c5551 100644 --- a/components/strings/components_strings_fr-CA.xtb +++ b/components/strings/components_strings_fr-CA.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">Touchez le capteur pour payer</translation> <translation id="2728127805433021124">Le certificat du serveur a été signé avec un algorithme de signature faible.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />d'exécuter Connectivity Diagnostics<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">En activant ces fonctionnalités, vous risquez de perdre les données du navigateur ou de compromettre votre sécurité ou votre confidentialité. Les fonctionnalités activées s'appliquent à tous les utilisateurs de ce navigateur.</translation> <translation id="2738330467931008676">Choisir une adresse de ramassage</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Supprimer les éléments sélectionnés</translation> @@ -2203,6 +2202,7 @@ <translation id="9128870381267983090">Connexion au réseau</translation> <translation id="9137013805542155359">Afficher l'original</translation> <translation id="9141013498910525015">Gérer les adresses</translation> +<translation id="9144951720726881238">Date d'expiration :</translation> <translation id="9148088599418889305">Choisir un mode d'expédition</translation> <translation id="9148507642005240123">&Annuler la modification</translation> <translation id="9150045010208374699">Utiliser votre caméra</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index 5e611a1..af9f807 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -495,7 +495,6 @@ <translation id="272451190272506600">Appuyez sur le capteur pour payer</translation> <translation id="2728127805433021124">Le certificat du serveur a été signé avec un algorithme de signature faible.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Exécuter les diagnostics de connectivité<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">En activant ces fonctionnalités, vous risquez de perdre les données de navigation, ou de compromettre votre sécurité ou votre vie privée. Les fonctionnalités activées s'appliquent à tous les utilisateurs de ce navigateur.</translation> <translation id="2738330467931008676">Sélectionner une adresse d'enlèvement</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Supprimer les éléments sélectionnés</translation> @@ -610,6 +609,7 @@ <translation id="3212623355668894776">Fermez toutes les fenêtres en mode Invité pour que votre activité de navigation soit supprimée de cet appareil.</translation> <translation id="3215092763954878852">Impossible d'utiliser WebAuthn</translation> <translation id="3218181027817787318">Valeur relative</translation> +<translation id="3223287115535306850">Indicateur de lancement de l'appli</translation> <translation id="3225919329040284222">Le serveur dispose d'un certificat qui ne répond pas aux exigences intégrées. Celles-ci sont incluses dans certains sites Web très sécurisés afin de vous protéger.</translation> <translation id="3226128629678568754">Veuillez appuyer sur le bouton d'actualisation pour renvoyer les données nécessaires au chargement de la page.</translation> <translation id="3226387218769101247">Vignettes</translation> @@ -684,6 +684,7 @@ <translation id="3447884698081792621">Afficher le certificat (émis par <ph name="ISSUER" />)</translation> <translation id="3452404311384756672">Intervalle de récupération : </translation> <translation id="3453962258458347894">Nombre de nouvelles tentatives</translation> +<translation id="3454555520521576458">Redimensionnable</translation> <translation id="3456231139987291353">Number-11 (enveloppe)</translation> <translation id="3461266716147554923"><ph name="URL" /> souhaite voir le texte et les images copiés dans le presse-papiers</translation> <translation id="3461824795358126837">Surligneur</translation> @@ -1017,6 +1018,7 @@ <translation id="4677585247300749148"><ph name="URL" /> souhaite répondre aux événements d'accessibilité</translation> <translation id="467809019005607715">Google Slides</translation> <translation id="4680804919228900307">Vous venez de saisir votre mot de passe sur un site trompeur. Chromium vous recommande de vérifier vos mots de passe enregistrés pour <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> et <ph name="WEBSITE_3" />, ainsi que les autres sites pour lesquels vous utilisez ce mot de passe actuellement.</translation> +<translation id="468314109939257734">Afficher votre numéro de carte virtuelle</translation> <translation id="4690462567478992370">Arrêter d'utiliser un certificat non valide</translation> <translation id="4691835149146451662">Architecture-A (enveloppe)</translation> <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation> @@ -1926,6 +1928,7 @@ <translation id="8057711352706143257">Le logiciel "<ph name="SOFTWARE_NAME" />" n'est pas configuré correctement. En général, la désinstallation de "<ph name="SOFTWARE_NAME" />" permet de remédier à la situation. <ph name="FURTHER_EXPLANATION" /></translation> <translation id="8066955247577885446">Désolé, un problème est survenu.</translation> <translation id="8067872629359326442">Vous venez de saisir votre mot de passe sur un site trompeur. Chromium peut vous aider. Pour modifier votre mot de passe et informer Google que votre compte a peut-être été piraté, cliquez sur "Protéger le compte".</translation> +<translation id="8070439594494267500">Icône de l'appli</translation> <translation id="8074253406171541171">10x13 (enveloppe)</translation> <translation id="8075898834294118863">Gérer les paramètres du site</translation> <translation id="8078141288243656252">Impossible d'ajouter des annotations si le document a pivoté</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb index 7a7dee7..568eef1b 100644 --- a/components/strings/components_strings_gl.xtb +++ b/components/strings/components_strings_gl.xtb
@@ -494,7 +494,6 @@ <translation id="272451190272506600">Toca o sensor para pagar</translation> <translation id="2728127805433021124">O certificado do servidor está asinado cun algoritmo de sinatura débil.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Executar diagnósticos de conectividade<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ao activar estas funcións, poderías perder os datos do navegador ou poñer en perigo a túa seguranza ou privacidade. As funcións activadas aplícanse a todos os usuarios deste navegador.</translation> <translation id="2738330467931008676">Escoller enderezo de recollida</translation> <translation id="2740531572673183784">Aceptar</translation> <translation id="2742870351467570537">Eliminar elementos seleccionados</translation> @@ -2211,6 +2210,7 @@ <translation id="9128870381267983090">Conectarse á rede</translation> <translation id="9137013805542155359">Mostrar orixinal</translation> <translation id="9141013498910525015">Xestionar enderezos</translation> +<translation id="9144951720726881238">Data de vencemento:</translation> <translation id="9148088599418889305">Escoller método de envío</translation> <translation id="9148507642005240123">&Desfacer modificación</translation> <translation id="9150045010208374699">Utilizar a túa cámara</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index 4b27dc9..da057f5b 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -492,9 +492,6 @@ <translation id="272451190272506600">ચુકવણી કરવા માટે સેન્સરને સ્પર્શ કરો</translation> <translation id="2728127805433021124">સર્વરનું પ્રમાણપત્ર એક નબળા સહી ઍલ્ગોરિધમનો ઉપયોગ કરીને સહીિત કરેલું છે.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />કનેક્ટિવિટી ડાયગ્નોસ્ટિક્સ ચલાવી રહ્યાં છે<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">આ સુવિધાઓ ચાલુ કરવાથી, તમે બ્રાઉઝરનો ડેટા ગુમાવશો અથવા - તમારી સુરક્ષા કે પ્રાઇવસી સાથે સમાધાન કરશો. ચાલુ કરેલી સુવિધાઓ આ બ્રાઉઝરના બધા - વપરાશકર્તાઓ માટે લાગુ છે.</translation> <translation id="2738330467931008676">પિકઅપ માટેનું સરનામું પસંદ કરો</translation> <translation id="2740531572673183784">બરાબર, સમજાઇ ગયું</translation> <translation id="2742870351467570537">પસંદ કરેલી આઇટમ્સને દૂર કરો</translation> @@ -609,6 +606,7 @@ <translation id="3212623355668894776">તમામ અતિથિ વિન્ડો બંધ કરો જેથી આ ડિવાઇસમાંથી તમારી બ્રાઉઝિંગ પ્રવૃત્તિ ડિલીટ કરવામાં આવે.</translation> <translation id="3215092763954878852">WebAuthnનો ઉપયોગ કરી શક્યાં નથી</translation> <translation id="3218181027817787318">સંબંધિત</translation> +<translation id="3223287115535306850">ઍપ લૉન્ચ કરનારું થ્રોબર</translation> <translation id="3225919329040284222">સર્વર એક પ્રમાણપત્ર પ્રસ્તુત કરે છે જે બિલ્ટ-ઇન અપેક્ષાઓ સાથે મેળ ખાતું નથી. આ અપેક્ષાઓમાં તમને સુરક્ષિત રાખવા માટે અમુક ચોક્કસ, ઉચ્ચ-સુરક્ષા વેબસાઇટ્સનો સમાવેશ થાય છે.</translation> <translation id="3226128629678568754">પૃષ્ઠને લોડ કરવા માટે જરૂરી ડેટા ફરીથી સબમિટ કરવા માટે ફરીથી લોડ કરો બટન દબાવો.</translation> <translation id="3226387218769101247">થંબનેલ</translation> @@ -681,6 +679,7 @@ <translation id="3447884698081792621">(<ph name="ISSUER" /> દ્વારા રજૂ થયેલ) પ્રમાણપત્ર બતાવો</translation> <translation id="3452404311384756672">આનયન અંતરાલ:</translation> <translation id="3453962258458347894">ફરી વાર કરી શકાતા પ્રયાસોની સંખ્યા</translation> +<translation id="3454555520521576458">કદમાં ફેરફાર કરી શકાય એવી ઍપ</translation> <translation id="3456231139987291353">નંબર-11 (એન્વલપ)</translation> <translation id="3461266716147554923"><ph name="URL" /> ક્લિપબોર્ડ પર કૉપિ કરેલ ટેક્સ્ટ અને છબીઓને જોવા માંગે છે</translation> <translation id="3461824795358126837">હાઇલાઇટર</translation> @@ -1014,6 +1013,7 @@ <translation id="4677585247300749148"><ph name="URL" /> ઍક્સેસિબિલિટી ઇવેન્ટનો જવાબ આપવા માગે છે</translation> <translation id="467809019005607715">Google Slides</translation> <translation id="4680804919228900307">હમણાં જ કોઈ છેતરામણી સાઇટ પર તમે તમારો પાસવર્ડ દાખલ કર્યો. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> અને હવે તમે આ પાસવર્ડનો જ્યાં ઉપયોગ કરતા હો તે અન્ય સાઇટ પરના તમે સાચવેલા પાસવર્ડ ચેક કરવાનો Chromium સુઝાવ આપે છે.</translation> +<translation id="468314109939257734">તમારો વર્ચ્યુઅલ કાર્ડ નંબર જુઓ</translation> <translation id="4690462567478992370">અમાન્ય પ્રમાણપત્રનો ઉપયોગ કરવાનું બંધ કરો</translation> <translation id="4691835149146451662">સ્થાપત્ય-A (એન્વલપ)</translation> <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation> @@ -1918,6 +1918,7 @@ <translation id="8057711352706143257">"<ph name="SOFTWARE_NAME" />"ની ગોઠવણી યોગ્ય રીતે કરવામાં આવી નથી. સામાન્ય રીતે "<ph name="SOFTWARE_NAME" />"ને અનઇન્સ્ટૉલ કરવાથી સમસ્યા હલ થઈ જાય છે. <ph name="FURTHER_EXPLANATION" /></translation> <translation id="8066955247577885446">માફ કરશો, કંઈક ખોટું થયું.</translation> <translation id="8067872629359326442">હમણાં જ કોઈ છેતરામણી સાઇટ પર તમે તમારો પાસવર્ડ દાખલ કર્યો. Chromium સહાય કરી શકે છે. તમારો પાસવર્ડ બદલવા માટે અને Googleને એ જાણ કરવા માટે કે તમારું એકાઉન્ટ જોખમમાં હોઈ શકે છે, એકાઉન્ટ સુરક્ષિત કરો પર ક્લિક કરો.</translation> +<translation id="8070439594494267500">ઍપનું આઇકન</translation> <translation id="8074253406171541171">10x13 (એન્વલપ)</translation> <translation id="8075898834294118863">સાઇટ સેટિંગ મેનેજ કરો</translation> <translation id="8078141288243656252">ફેરવેલ હોય ત્યારે એનોટેટ કરી શકતા નથી</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index 2f98809..5d982d9 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -496,7 +496,6 @@ <translation id="272451190272506600">पैसे चुकाने के लिए सेंसर को छूएं</translation> <translation id="2728127805433021124">सर्वर का प्रमाणपत्र कमज़ोर एल्गोरिद्म का उपयोग करके हस्ताक्षरित किया गया है.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />नेटवर्क कनेक्टिविटी चलाकर देखें<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">इन सुविधाओं को चालू करके, आप ब्राउज़र डेटा खो सकते हैं या आपकी सुरक्षा या निजता से समझौता हो सकता है. चालू की गई सुविधाएं इस ब्राउज़र के सभी उपयोगकर्ताओं पर लागू होती हैं.</translation> <translation id="2738330467931008676">पिकअप का पता चुनें</translation> <translation id="2740531572673183784">ठीक है</translation> <translation id="2742870351467570537">चयनित आइटम निकालें</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb index df2df3fe..53180c4 100644 --- a/components/strings/components_strings_hr.xtb +++ b/components/strings/components_strings_hr.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Dodirnite senzor za plaćanje</translation> <translation id="2728127805433021124">Certifikat poslužitelja potpisan je slabim algoritmom potpisa.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />pokrenuti Dijagnostiku povezivosti<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Omogućivanjem tih značajki mogli biste izgubiti podatke preglednika ili - ugroziti svoju sigurnost ili privatnost. Omogućene značajke primjenjuju se na sve - korisnike ovog preglednika.</translation> <translation id="2738330467931008676">Odaberite adresu preuzimanja</translation> <translation id="2740531572673183784">U redu</translation> <translation id="2742870351467570537">Ukloni odabrane stavke</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb index 705359a..1502a42 100644 --- a/components/strings/components_strings_hu.xtb +++ b/components/strings/components_strings_hu.xtb
@@ -495,7 +495,6 @@ <translation id="272451190272506600">A fizetéshez érintse meg az ujjlenyomat-érzékelőt</translation> <translation id="2728127805433021124">A szerver tanúsítványa gyenge aláírási algoritmussal van aláírva.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Kapcsolódási diagnosztika futtatása<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ha engedélyezi ezeket a funkciókat, előfordulhat, hogy elvesznek a böngészési adatok, illetve veszélyeztetheti biztonságát és személyes adatait. Az engedélyezett funkciók a böngésző minden felhasználójára vonatkoznak.</translation> <translation id="2738330467931008676">Átvételi cím kiválasztása</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">A kijelölt elemek eltávolítása</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb index 777ef7f..4ef2ce4 100644 --- a/components/strings/components_strings_hy.xtb +++ b/components/strings/components_strings_hy.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Վճարելու համար հպեք սենսորին</translation> <translation id="2728127805433021124">Սերվերի վկայագիրը ստորագրված է ստորագրության թույլ ալգորիթմով:</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Գործարկել կապակցման ախտորոշումը<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Միացնելով այս գործառույթները՝ դուք կարող եք կորցնել դիտարկիչի տվյալները կամ - խոցելի դարձնել ձեր անվտանգությունն ու գաղտնիությունը: Միացված գործառույթները կիրառվում են - դիտարկիչի բոլոր օգտատերերի նկատմամբ:</translation> <translation id="2738330467931008676">Ընտրեք ստացման հասցեն</translation> <translation id="2740531572673183784">Եղավ</translation> <translation id="2742870351467570537">Հեռացնել ընտրված կետերը</translation> @@ -2214,6 +2211,7 @@ <translation id="9128870381267983090">Կապակցեք ցանցին</translation> <translation id="9137013805542155359">Ցույց տալ բնօրինակը</translation> <translation id="9141013498910525015">Կառավարել հասցեները</translation> +<translation id="9144951720726881238">Սպառման ամսաթիվը՝</translation> <translation id="9148088599418889305">Ընտրեք առաքման եղանակը</translation> <translation id="9148507642005240123">&Հետարկել փոփոխումը</translation> <translation id="9150045010208374699">Օգտագործել տեսախցիկը</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index 5b870563..4a227ef2 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -491,9 +491,6 @@ <translation id="272451190272506600">Sentuh sensor untuk membayar</translation> <translation id="2728127805433021124">Sertifikat server ditandai menggunakan algoritme yang lemah.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Jalankan Diagnostik Konektivitas<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Jika mengaktifkan fitur ini, Anda dapat kehilangan data browser atau - membahayakan keamanan atau privasi Anda. Fitur yang diaktifkan berlaku bagi semua - pengguna browser ini.</translation> <translation id="2738330467931008676">Pilih Alamat Pengambilan</translation> <translation id="2740531572673183784">Oke</translation> <translation id="2742870351467570537">Hapus item yang dipilih</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb index 88cce51..8585e763 100644 --- a/components/strings/components_strings_is.xtb +++ b/components/strings/components_strings_is.xtb
@@ -496,9 +496,6 @@ <translation id="272451190272506600">Snertu skynjarann til að greiða</translation> <translation id="2728127805433021124">Vottorð þjónsins er undirritað með ótraustu undirritunarreikniriti.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Keyrir greiningu á tengigetu<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Með því að kveikja á þessum eiginleikum gætirðu glatað vafragögnum eða - ógnað öryggi þínu eða persónuvernd. Virkir eiginleikar eiga við um alla - notendur þessa vafra.</translation> <translation id="2738330467931008676">Velja heimilisfang til að sækja</translation> <translation id="2740531572673183784">Í lagi</translation> <translation id="2742870351467570537">Fjarlægja valin atriði</translation> @@ -2215,6 +2212,7 @@ <translation id="9128870381267983090">Tengjast neti</translation> <translation id="9137013805542155359">Sýna frumtexta</translation> <translation id="9141013498910525015">Stjórna heimilisföngum</translation> +<translation id="9144951720726881238">Lokadagsetning:</translation> <translation id="9148088599418889305">Velja sendingarmáta</translation> <translation id="9148507642005240123">Aft&urkalla breytingu</translation> <translation id="9150045010208374699">Nota myndavélina þína</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb index 4d8cddc..280c21f3 100644 --- a/components/strings/components_strings_it.xtb +++ b/components/strings/components_strings_it.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Tocca il sensore per pagare</translation> <translation id="2728127805433021124">Il certificato del server è stato firmato utilizzando un algoritmo di firma debole.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Eseguire lo strumento Diagnostica della connettività<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Se attivi queste funzioni, potresti perdere i dati del browser oppure - compromettere la sicurezza o la privacy. Le funzioni attivate vengono applicate per tutti - gli utenti di questo browser.</translation> <translation id="2738330467931008676">Scegli l'indirizzo di ritiro</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Rimuovi gli elementi selezionati</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index 8d1f9e108..3c6cf59 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">כדי לשלם, יש לגעת בחיישן</translation> <translation id="2728127805433021124">האישור של השרת נחתם באמצעות אלגוריתם של חתימה חלשה.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />מפעיל את אבחון הקישוריות<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">הפעלת התכונות האלה עלולה לגרום לאובדן נתוני גלישה או - לפגיעה באבטחה או בפרטיות שלך. התכונות המופעלות משפיעות על כל מי - שמשתמש בדפדפן הזה.</translation> <translation id="2738330467931008676">בחירת כתובת לאיסוף</translation> <translation id="2740531572673183784">אישור</translation> <translation id="2742870351467570537">הסרת הפריטים שנבחרו</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb index a9507c5..1cef6bb1 100644 --- a/components/strings/components_strings_ja.xtb +++ b/components/strings/components_strings_ja.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">センサーをタップして支払います</translation> <translation id="2728127805433021124">サーバーの証明書は脆弱な署名アルゴリズムを使用して署名されています。</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />接続診断ツールを実行する<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">これらの機能を有効にすると、ブラウザのデータが失われたり、セキュリティやプライバシーが侵害されたりする可能性があります。有効にした機能は、このブラウザのすべてのユーザーに適用されます。</translation> <translation id="2738330467931008676">受け取り場所の住所を選択</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">選択したアイテムを削除</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb index 610418a..e3e4852 100644 --- a/components/strings/components_strings_ka.xtb +++ b/components/strings/components_strings_ka.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">გადასახდელად შეეხეთ სენსორს</translation> <translation id="2728127805433021124">სერვერის სერტიფიკატი ხელმოწერილია სუსტი ხელმოწერის ალგორითმის გამოყენებით.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />კავშირის დიაგნოსტიკის ხელსაწყოს გაშვება<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ამ ფუნქციების ჩართვით თქვენ შეიძლება დაკარგოთ ბრაუზერის მონაცემები ან საფრთხე შეუქმნათ თქვენს უსაფრთხოებასა თუ კონფიდენციალურობას. ჩართული ფუნქციები ხელმისაწვდომი იქნება ამ ბრაუზერის ყველა მომხმარებლისთვის.</translation> <translation id="2738330467931008676">წამოღების მისამართის არჩევა</translation> <translation id="2740531572673183784">კარგი</translation> <translation id="2742870351467570537">არჩეული ელემენტების წაშლა</translation> @@ -2203,6 +2202,7 @@ <translation id="9128870381267983090">ქსელთან დაკავშირება</translation> <translation id="9137013805542155359">ორიგინალის ჩვენება</translation> <translation id="9141013498910525015">მისამართების მართვა</translation> +<translation id="9144951720726881238">მოქმედების ვადის გასვლის თარიღი:</translation> <translation id="9148088599418889305">მიწოდების მეთოდის არჩევა</translation> <translation id="9148507642005240123">რედაქტირების &მოქმედების გაუქმება</translation> <translation id="9150045010208374699">გამოიყენეთ თქვენი კამერა</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb index 8d44fe3..39f6ab8 100644 --- a/components/strings/components_strings_kk.xtb +++ b/components/strings/components_strings_kk.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Төлеу үшін датчикті түртіңіз.</translation> <translation id="2728127805433021124">Сервер сертификаты әлсіз қолтаңба алгоритмін пайдалану арқылы қол қойылған.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Connectivity Diagnostics құралын қосу<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Бұл функцияларды қоссаңыз, браузер деректері жоғалады немесе - қауіпсіздігіңізге не құпиялылығыңызға қауіп төнеді. Қосылған - функциялар браузердің барлық пайдаланушысына қатысты қолданылады.</translation> <translation id="2738330467931008676">Алып кету мекенжайын таңдау</translation> <translation id="2740531572673183784">Жарайды</translation> <translation id="2742870351467570537">Таңдалған элементтерді жою</translation> @@ -2213,6 +2210,7 @@ <translation id="9128870381267983090">Желіге қосылу</translation> <translation id="9137013805542155359">Түпнұсқаны көрсету</translation> <translation id="9141013498910525015">Мекенжайларды басқару</translation> +<translation id="9144951720726881238">Жарамдылық мерзімі:</translation> <translation id="9148088599418889305">Жөнелту әдісін таңдау</translation> <translation id="9148507642005240123">&Өзгерту әрекетін кері қайтару</translation> <translation id="9150045010208374699">Камераңызды пайдалану</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb index 64a67eb77e..750da244 100644 --- a/components/strings/components_strings_km.xtb +++ b/components/strings/components_strings_km.xtb
@@ -498,9 +498,6 @@ <translation id="272451190272506600">ប៉ះឧបករណ៍ចាប់សញ្ញា ដើម្បីបង់ប្រាក់</translation> <translation id="2728127805433021124">វិញ្ញាបនប័ត្រម៉ាស៊ីនមេត្រូវបានចុះហេត្ថលេខាដោយប្រើនីតិវិធីដោះស្រាយហត្ថលេខាខ្សោយ។</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />កំពុងដំណើរការការវិភាគការតភ្ជាប់<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ប្រសិនបើបើកមុខងារទាំងនេះ នោះអ្នកអាចបាត់បង់ទិន្នន័យរបស់កម្មវិធីរុករកតាមអ៊ីនធឺណិត ឬ - ប៉ះពាល់ដល់សុវត្ថិភាព ឬឯកជនភាពរបស់អ្នក។ មុខងារដែលបានបើកអនុវត្តចំពោះ - អ្នកប្រើប្រាស់កម្មវិធីរុករកតាមអ៊ីនធឺណិតនេះទាំងអស់។</translation> <translation id="2738330467931008676">ជ្រើសរើសអាសយដ្ឋានទទួល</translation> <translation id="2740531572673183784">យល់ព្រម</translation> <translation id="2742870351467570537">ដកធាតុដែលបានជ្រើសរើសចេញ</translation> @@ -2219,6 +2216,7 @@ <translation id="9128870381267983090">ភ្ជាប់ទៅបណ្តាញ</translation> <translation id="9137013805542155359">បង្ហាញប្រភពដើម</translation> <translation id="9141013498910525015">គ្រប់គ្រងអាសយដ្ឋាន</translation> +<translation id="9144951720726881238">កាលបរិច្ឆេទផុតកំណត់៖</translation> <translation id="9148088599418889305">ជ្រើសរើសមធ្យោបាយដឹកជញ្ជូនតាមប្រៃសណីយ៍</translation> <translation id="9148507642005240123">បកក្រោយការកែប្រែ</translation> <translation id="9150045010208374699">ប្រើកាមេរ៉ារបស់អ្នក</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb index 03bd954d..e1bd9b9 100644 --- a/components/strings/components_strings_kn.xtb +++ b/components/strings/components_strings_kn.xtb
@@ -490,7 +490,6 @@ <translation id="272451190272506600">ಪಾವತಿಸಲು ಸೆನ್ಸರ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ</translation> <translation id="2728127805433021124">ಕ್ಷೀಣವಾದ ಸಹಿ ಅಲ್ಗಾರಿದಮ್ ಬಳಸಿಕೊಂಡು ಸರ್ವರ್ನ ಪ್ರಮಾಣಪತ್ರಕ್ಕೆ ಸಹಿ ಮಾಡಲಾಗಿದೆ.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />ಸಂಪರ್ಕ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್ ರನ್ ಆಗುತ್ತಿದೆ<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ಈ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ, ನೀವು ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು ಅಥವಾ ನಿಮ್ಮ ಸುರಕ್ಷತೆ ಅಥವಾ ಗೌಪ್ಯತೆಗೆ ಧಕ್ಕೆ ಉಂಟಾಗಬಹುದು. ಸಕ್ರಿಯಗೊಳಿಸಲಾದ ವೈಶಿಷ್ಟ್ಯಗಳು ಈ ಬ್ರೌಸರ್ ಬಳಸುವ ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗೆ ಅನ್ವಯವಾಗುತ್ತವೆ.</translation> <translation id="2738330467931008676">ಪಿಕಪ್ ವಿಳಾಸವನ್ನು ಆರಿಸಿ</translation> <translation id="2740531572673183784">ಸರಿ</translation> <translation id="2742870351467570537">ಆಯ್ಕೆಮಾಡಿದ ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index 570d4bb..e36a400 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">센서를 터치하여 결제</translation> <translation id="2728127805433021124">서버의 인증서가 안전성이 낮은 서명 알고리즘을 사용하여 서명되어 있습니다.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />연결 진단 프로그램 실행<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">다음 기능을 사용 설정하면 브라우저 데이터가 손실되거나 보안이 악화되거나 개인정보가 유출될 수도 있습니다. 사용 설정된 기능은 이 브라우저의 모든 사용자에게 적용됩니다.</translation> <translation id="2738330467931008676">수령 주소 선택</translation> <translation id="2740531572673183784">확인</translation> <translation id="2742870351467570537">선택한 항목 삭제</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb index 8d70d69..f57398e 100644 --- a/components/strings/components_strings_ky.xtb +++ b/components/strings/components_strings_ky.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Төлөө үчүн сенсорду басыңыз</translation> <translation id="2728127805433021124">Сервердин тастыктамасына чабал колтамга алгоритми кол койгон.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Туташуу мүчүлүштүгүн аныктоону иштетиңиз<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Бул функцияларды иштетүү менен серептөө дайын-даректериңизди - жоготуп, коопсуздугуңузга же купуялыгыңызга залакасын тийгизип ала жаздадыңыз. Иштетилген функциялар серепчидеги бардык - колдонуучуларга колдонулат.</translation> <translation id="2738330467931008676">Алып кете турган жердин дарегин тандоо</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Тандалган нерселерди алып салуу</translation> @@ -2213,6 +2210,7 @@ <translation id="9128870381267983090">Тармакка туташуу</translation> <translation id="9137013805542155359">Түпверсиясын көрсөтүү</translation> <translation id="9141013498910525015">Даректерди башкаруу</translation> +<translation id="9144951720726881238">Мөөнөтү аяктай турган күн:</translation> <translation id="9148088599418889305">Жеткирүү ыкмасын тандаңыз</translation> <translation id="9148507642005240123">Түзөтүүнү &жасабоо</translation> <translation id="9150045010208374699">Камераңызды колдонуңуз</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb index d3a8258..c2c5e66 100644 --- a/components/strings/components_strings_lo.xtb +++ b/components/strings/components_strings_lo.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">ແຕະເຊັນເຊີເພື່ອຈ່າຍ</translation> <translation id="2728127805433021124">ໃບຢັ້ງຢືນຂອງເຊີບເວີໄດ້ຮັບການລົງລາຍເຊັນດ້ວຍການໃຊ້ຂັ້ນຕອນການລົງລາຍເຊັນອ່ອນແອ</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />ກຳລັງເປີດໃຊ້ Connectivity Diagnostics<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ໂດຍການເປີດນຳໃຊ້ຄຸນສົມບັດເຫຼົ່ານີ້, ທ່ານອາດຈະສູນເສຍຂໍ້ມູນໂປຣແກຣມທ່ອງເວັບ ຫຼື - ເຮັດໃຫ້ຄວາມປອດໄພ ຫຼື ຄວາມເປັນສ່ວນຕົວຂອງທ່ານມີຄວາມສ່ຽງ. ຄຸນສົມບັດທີ່ເປີດໃຊ້ແລ້ວຈະນຳໃຊ້ກັບຜູ້ໃຊ້ - ທຸກຄົນຂອງໂປຣແກຣມທ່ອງເວັບນີ້.</translation> <translation id="2738330467931008676">ເລືອກທີ່ຢູ່ບ່ອນຮັບເຄື່ອງ</translation> <translation id="2740531572673183784">ຕົກລົງ</translation> <translation id="2742870351467570537">ເອົາລາຍການທີ່ເລືອກອອກ</translation> @@ -2214,6 +2211,7 @@ <translation id="9128870381267983090">ເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍ</translation> <translation id="9137013805542155359">ສະແດງຕົ້ນສະບັບ</translation> <translation id="9141013498910525015">ຈັດການທີ່ຢູ່</translation> +<translation id="9144951720726881238">ວັນທີໝົດອາຍຸ:</translation> <translation id="9148088599418889305">ເລືອກວິທີການຈັດສົ່ງ</translation> <translation id="9148507642005240123">ປ່ຽນກັບຄືນຄໍາສັ່ງແກ້ໄຂ</translation> <translation id="9150045010208374699">ໃຊ້ກ້ອງຖ່າຍຮູບຂອງທ່ານ</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index 3334f0e0..a5d145c 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Palieskite jutiklį, kad sumokėtumėte</translation> <translation id="2728127805433021124">Serverio sertifikatas pasirašytas naudojant nepatikimą parašo algoritmą.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Paleistas ryšio diagnostikos įrankis<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Įgalinus šias funkcijas gali būti prarasti naršymo duomenys arba - pažeistas jūsų privatumas ar sauga. Įgalintos funkcijos taikomos visiems - šios naršyklės naudotojams.</translation> <translation id="2738330467931008676">Pasirinkti paėmimo adresą</translation> <translation id="2740531572673183784">Gerai</translation> <translation id="2742870351467570537">Pašalinti pasirinktus elementus</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index ef887db..2ba855e 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -495,7 +495,6 @@ <translation id="272451190272506600">Pieskarieties sensoram, lai samaksātu.</translation> <translation id="2728127805433021124">Servera sertifikāts ir parakstīts, izmantojot vāju paraksta algoritmu.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Palaist savienojamības diagnostiku<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ja iespējosiet šīs funkcijas, var tikt zaudēti pārlūkošanas dati vai apdraudēta jūsu datu drošība un konfidencialitāte. Iespējotās funkcijas būs aktīvas visiem šī pārlūka lietotājiem.</translation> <translation id="2738330467931008676">Izvēlēties saņemšanas adresi</translation> <translation id="2740531572673183784">Labi</translation> <translation id="2742870351467570537">Noņemt atlasītos vienumus</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb index 0a1a7aa2..c745f19 100644 --- a/components/strings/components_strings_mk.xtb +++ b/components/strings/components_strings_mk.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Допрете го сензорот за да платите</translation> <translation id="2728127805433021124">Сертификатот на серверот е потпишан со слаб алгоритам за потпишување.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />да извршите дијагностика на поврзливоста<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Со овозможување на функцииве, може да изгубите податоци од прелистувачот или - да ја компромитирате вашата безбедност или приватност. Овозможените функции ќе важат за сите - корисници на прелистувачов.</translation> <translation id="2738330467931008676">Изберете адреса за подигнување</translation> <translation id="2740531572673183784">Во ред</translation> <translation id="2742870351467570537">Отстрани избрани ставки</translation> @@ -2214,6 +2211,7 @@ <translation id="9128870381267983090">Поврзете се на мрежа</translation> <translation id="9137013805542155359">Покажи оригинална страница</translation> <translation id="9141013498910525015">Управувајте со адресите</translation> +<translation id="9144951720726881238">Датум на истекување:</translation> <translation id="9148088599418889305">Изберете начин на испорака</translation> <translation id="9148507642005240123">&Врати уредување</translation> <translation id="9150045010208374699">Користи ја камерата</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index e6d8fb5..5d1ee62 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -489,9 +489,8 @@ <translation id="2715612312510870559"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ക്രമീകരണത്തിൽ നിങ്ങളുടെ പേയ്മെന്റുകളും ക്രെഡിറ്റ് കാർഡ് വിവരങ്ങളും മാനേജ് ചെയ്യാൻ 'Tab' അമർത്തുക, തുടർന്ന് 'Enter' അമർത്തുക</translation> <translation id="2721148159707890343">അഭ്യർത്ഥന വിജയിച്ചു</translation> <translation id="272451190272506600">പണമടയ്ക്കാൻ സെൻസറിൽ സ്പർശിക്കുക</translation> -<translation id="2728127805433021124">ഒരു ദുർബ്ബല സിഗ്നേച്ചർ അൽഗോരിതം ഉപയോഗിച്ച് സെർവറിന്റെ സർട്ടിഫിക്കറ്റ് സൈൻ ചെയ്തു.</translation> +<translation id="2728127805433021124">ഒരു ദുർബ്ബല സിഗ്നേച്ചർ ആൽഗരിതം ഉപയോഗിച്ച് സെർവറിന്റെ സർട്ടിഫിക്കറ്റ് സൈൻ ചെയ്തു.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />കണക്റ്റിവിറ്റി ഡയഗണോസ്റ്റിക്സ് റൺ ചെയ്യുന്നു<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ഈ ഫീച്ചറുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിലൂടെ, നിങ്ങളുടെ ബ്രൗസർ ഡാറ്റ നഷ്ടമാകുകയോ സുരക്ഷയ്ക്കോ സ്വകാര്യതയ്ക്കോ ഭീഷണി ഉയരുകയോ ചെയ്തേക്കാം. ഈ ബ്രൗസറിന്റെ എല്ലാ ഉപയോക്താക്കൾക്കും പ്രവർത്തനക്ഷമമാക്കിയ ഫീച്ചറുകൾ ബാധകമാണ്.</translation> <translation id="2738330467931008676">പിക്കപ്പ് വിലാസം തിരഞ്ഞെടുക്കുക</translation> <translation id="2740531572673183784">ശരി</translation> <translation id="2742870351467570537">തിരഞ്ഞെടുത്ത ഇനങ്ങള് നീക്കംചെയ്യുക</translation> @@ -605,6 +604,7 @@ <translation id="3212623355668894776">ഈ ഉപകരണത്തിൽ നിന്ന് നിങ്ങളുടെ ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി ഇല്ലാതാക്കാൻ എല്ലാ അതിഥി വിൻഡോകളും അടയ്ക്കുക.</translation> <translation id="3215092763954878852">WebAuthn ഉപയോഗിക്കാനായില്ല</translation> <translation id="3218181027817787318">റിലേറ്റീവ്</translation> +<translation id="3223287115535306850">ആപ്പ് ലോഞ്ച് ചെയ്യൽ ത്രോബർ</translation> <translation id="3225919329040284222">ബിൽട്ട്-ഇൻ പ്രതീക്ഷകള്ക്ക് പൊരുത്തപ്പെടാത്ത സര്ട്ടിഫിക്കറ്റാണ് സെര്വര് അവതരിപ്പിച്ചത്. നിങ്ങളെ സംരക്ഷിക്കുന്നതിലേക്കായുള്ള നിശ്ചിത, ഉന്നത-സുരക്ഷാ വെബ്സൈറ്റുകൾക്കായാണ് ഈ പ്രതീക്ഷകൾ ഉൾപ്പെടുത്തിയിരിക്കുന്നത്.</translation> <translation id="3226128629678568754">പേജ് ലോഡ് ചെയ്യുന്നതിനാവശ്യമായ ഡാറ്റ വീണ്ടും സമർപ്പിക്കാൻ വീണ്ടും ലോഡ് ചെയ്യുക ബട്ടൺ അമർത്തുക.</translation> <translation id="3226387218769101247">ലഘുചിത്രങ്ങൾ</translation> @@ -660,7 +660,7 @@ <translation id="3402261774528610252">ഈ സൈറ്റ് ലോഡ് ചെയ്യാൻ ഉപയോഗിച്ച കണക്ഷൻ ഉപയോഗിച്ചത് TLS 1.0 അല്ലെങ്കിൽ TLS 1.1 പതിപ്പാണ്, ഇവ അവസാനിപ്പിച്ചതും ഭാവിയിൽ പ്രവർത്തനരഹിതമാക്കപ്പെടുന്നതും ആണ്. പ്രവർത്തനരഹിതം ആയിക്കഴിഞ്ഞാൽ, ഈ സൈറ്റ് ലോഡ് ചെയ്യുന്നതിൽ നിന്ന് ഉപയോക്താക്കളെ തടയും. TLS 1.2 അല്ലെങ്കിൽ അതിന് ശേഷമുള്ള പതിപ്പ് സെർവർ പ്രവർത്തനക്ഷമമാക്കണം.</translation> <translation id="3409896703495473338">സുരക്ഷാ ക്രമീകരണം മാനേജ് ചെയ്യുക</translation> <translation id="3414952576877147120">വലുപ്പം:</translation> -<translation id="3417660076059365994">നിങ്ങൾ അപ്ലോഡ് ചെയ്യുന്ന ഫയലുകൾ വിശകലനം ചെയ്യുന്നതിന് Google ക്ലൗഡിലേക്കോ മൂന്നാം കക്ഷികൾക്കോ അയയ്ക്കുന്നു. ഉദാഹരണത്തിന്, സെൻസിറ്റീവായിട്ടുള്ള വ്യക്തിപരമായ ഡാറ്റയോ മാൽവേറോ ഉണ്ടോയെന്നറിയാൻ അവ സ്കാൻ ചെയ്തേക്കാം.</translation> +<translation id="3417660076059365994">നിങ്ങൾ അപ്ലോഡ് ചെയ്യുന്ന ഫയലുകൾ വിശകലനം ചെയ്യുന്നതിന് Google ക്ലൗഡിലേക്കോ മൂന്നാം കക്ഷികൾക്കോ അയയ്ക്കുന്നു. ഉദാഹരണത്തിന്, സെൻസിറ്റീവായിട്ടുള്ള വ്യക്തിപരമായ ഡാറ്റയോ മാൽവെയറോ ഉണ്ടോയെന്നറിയാൻ അവ സ്കാൻ ചെയ്തേക്കാം.</translation> <translation id="3422248202833853650">ഇടം സൃഷ്ടിക്കാൻ മറ്റ് പ്രോഗ്രാമുകളിൽ നിന്ന് പുറത്തുകടക്കുന്നത് പരീക്ഷിക്കൂ.</translation> <translation id="3422472998109090673"><ph name="HOST_NAME" /> നിലവിൽ ലഭ്യമല്ല.</translation> <translation id="3423742043356668186">സിസ്റ്റം വ്യക്തമാക്കിയത്</translation> @@ -678,6 +678,7 @@ <translation id="3447884698081792621">സർട്ടിഫിക്കറ്റ് (<ph name="ISSUER" /> ഇഷ്യൂ ചെയ്തത്) കാണിക്കുക</translation> <translation id="3452404311384756672">ഇടവേള ലഭ്യമാക്കുക:</translation> <translation id="3453962258458347894">ശ്രമങ്ങളുടെ എണ്ണം</translation> +<translation id="3454555520521576458">വലുപ്പം മാറ്റാവുന്നത്</translation> <translation id="3456231139987291353">നമ്പർ-11 (എന്വലപ്പ്)</translation> <translation id="3461266716147554923">ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തിയിട്ടുള്ള ടെക്സ്റ്റും ചിത്രങ്ങളും കാണാൻ <ph name="URL" /> ആഗ്രഹിക്കുന്നു</translation> <translation id="3461824795358126837">ഹൈലൈറ്റർ</translation> @@ -1009,6 +1010,7 @@ <translation id="4677585247300749148">പ്രവേശനക്ഷമതാ ഇവന്റുകളോട് പ്രതികരിക്കാൻ <ph name="URL" /> ആഗ്രഹിക്കുന്നു</translation> <translation id="467809019005607715">Google Slides</translation> <translation id="4680804919228900307">വഞ്ചനാപരമായ സൈറ്റിൽ നിങ്ങൾ ഇപ്പോൾ പാസ്വേഡ് നൽകി. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, കൂടാതെ നിങ്ങൾ ഇപ്പോൾ ഈ പാസ്വേഡ് ഉപയോഗിക്കുന്ന മറ്റ് സൈറ്റുകൾ എന്നിവയ്ക്കായി നിങ്ങളുടെ സംരക്ഷിച്ച പാസ്വേഡുകൾ പരിശോധിക്കാൻ Chromium നിർദ്ദേശിക്കുന്നു.</translation> +<translation id="468314109939257734">നിങ്ങളുടെ വെർച്വൽ കാർഡ് നമ്പർ കാണുക</translation> <translation id="4690462567478992370">അസാധുവായ ഒരു സർട്ടിഫിക്കറ്റ് ഉപയോഗിക്കുന്നത് നിർത്തുക</translation> <translation id="4691835149146451662">ആര്ക്കിടെക്ച്ചര്-A (എൻവലപ്പ്)</translation> <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation> @@ -1572,7 +1574,7 @@ <translation id="6794951432696553238">Windows Hello ഉപയോഗിച്ച് നിങ്ങളുടെ കാർഡുകൾ ഇപ്പോൾ മുതൽ വേഗത്തിൽ സ്ഥിരീകരിക്കുക</translation> <translation id="681021252041861472">ഇത് പൂരിപ്പിക്കേണ്ടതുണ്ട്</translation> <translation id="6810899417690483278">ഇഷ്ടാനുസൃതമാക്കൽ ഐഡി</translation> -<translation id="6825578344716086703">നിങ്ങൾ <ph name="DOMAIN" /> എന്നതിൽ എത്താൻ ശ്രമിച്ചു, പക്ഷേ ഒരു ദുർബലമായ സിഗ്നേച്ചർ അൽഗരിതം ഉപയോഗിച്ച് ഒപ്പിട്ട ഒരു സർട്ടിഫിക്കറ്റ് സെർവർ നൽകി. ഇതിനർത്ഥം സെർവർ നൽകിയ സുരക്ഷാ ക്രെഡൻഷ്യലുകൾ വ്യാജമാകാമെന്നും നിങ്ങൾ ഉദ്ദേശിച്ച സെർവർ ആയിരിക്കില്ല എന്നുമാണ് (നിങ്ങൾ ആക്രമണകാരിയുമായിട്ടാകാം ആശയവിനിമയം നടത്തുന്നത്).</translation> +<translation id="6825578344716086703">നിങ്ങൾ <ph name="DOMAIN" /> എന്നതിൽ എത്താൻ ശ്രമിച്ചു, പക്ഷേ ഒരു ദുർബലമായ സിഗ്നേച്ചർ ആൽഗരിതം ഉപയോഗിച്ച് ഒപ്പിട്ട ഒരു സർട്ടിഫിക്കറ്റ് സെർവർ നൽകി. ഇതിനർത്ഥം സെർവർ നൽകിയ സുരക്ഷാ ക്രെഡൻഷ്യലുകൾ വ്യാജമാകാമെന്നും നിങ്ങൾ ഉദ്ദേശിച്ച സെർവർ ആയിരിക്കില്ല എന്നുമാണ് (നിങ്ങൾ ആക്രമണകാരിയുമായിട്ടാകാം ആശയവിനിമയം നടത്തുന്നത്).</translation> <translation id="6826993739343257035">AR അനുവദിക്കണോ?</translation> <translation id="6831043979455480757">Translate</translation> <translation id="6839929833149231406">ഏരിയ</translation> @@ -1614,7 +1616,7 @@ <translation id="6975012522936652259">വഞ്ചനാപരമായ സൈറ്റിൽ നിങ്ങൾ ഇപ്പോൾ പാസ്വേഡ് നൽകി. നിങ്ങൾ ഈ പാസ്വേഡ് ഉപയോഗിക്കുന്ന <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, മറ്റ് സൈറ്റുകൾ എന്നിവയിലേക്ക് പോയി, ഇപ്പോൾ തന്നെ അത് മാറ്റാൻ Chromium ശുപാർശ ചെയ്യുന്നു.</translation> <translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">മ്യൂട്ട് ചെയ്യുക (ഡിഫോൾട്ട്)</translation> -<translation id="6979983982287291980">നിങ്ങൾ ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകൾ വിശകലനം ചെയ്യുന്നതിന് Google ക്ലൗഡിലേക്കോ മൂന്നാം കക്ഷികൾക്കോ അയയ്ക്കുന്നു. ഉദാഹരണത്തിന്, സെൻസിറ്റീവായിട്ടുള്ള വ്യക്തിപരമായ ഡാറ്റയോ മാൽവേറോ ഉണ്ടോയെന്നറിയാൻ അവ സ്കാൻ ചെയ്തേക്കാം.</translation> +<translation id="6979983982287291980">നിങ്ങൾ ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകൾ വിശകലനം ചെയ്യുന്നതിന് Google ക്ലൗഡിലേക്കോ മൂന്നാം കക്ഷികൾക്കോ അയയ്ക്കുന്നു. ഉദാഹരണത്തിന്, സെൻസിറ്റീവായിട്ടുള്ള വ്യക്തിപരമായ ഡാറ്റയോ മാൽവെയറോ ഉണ്ടോയെന്നറിയാൻ അവ സ്കാൻ ചെയ്തേക്കാം.</translation> <translation id="6989763994942163495">വിപുലമായ ക്രമീകരണങ്ങൾ കാണിക്കുക...</translation> <translation id="6993898126790112050">6x9 (എൻവലപ്പ്)</translation> <translation id="6996312675313362352"><ph name="ORIGINAL_LANGUAGE" /> എല്ലായ്പ്പോഴും വിവർത്തനം ചെയ്യുക</translation> @@ -1911,6 +1913,7 @@ <translation id="8057711352706143257">"<ph name="SOFTWARE_NAME" />" ശരിയായി കോൺഫിഗർ ചെയ്തിട്ടില്ല. സാധാരണഗതിയിൽ "<ph name="SOFTWARE_NAME" />" അൺഇൻസ്റ്റാൾ ചെയ്യുന്നതിലൂടെ ഈ പ്രശ്നം പരിഹരിക്കാം. <ph name="FURTHER_EXPLANATION" /></translation> <translation id="8066955247577885446">ക്ഷമിക്കണം, എന്തോ കുഴപ്പമുണ്ടായി.</translation> <translation id="8067872629359326442">വഞ്ചനാപരമായ സൈറ്റിൽ നിങ്ങൾ ഇപ്പോൾ പാസ്വേഡ് നൽകി. Chromium-ന് സഹായിക്കാനാവും. നിങ്ങളുടെ പാസ്വേഡ് മാറ്റാനും നിങ്ങളുടെ അക്കൗണ്ട് അപകടത്തിലായിരിക്കാമെന്ന് Google-നെ അറിയിക്കാനും 'അക്കൗണ്ട് പരിരക്ഷിക്കുക' ക്ലിക്ക് ചെയ്യുക.</translation> +<translation id="8070439594494267500">ആപ്പ് ഐക്കൺ</translation> <translation id="8074253406171541171">10x13 (എൻവലപ്പ്)</translation> <translation id="8075898834294118863">സൈറ്റ് ക്രമീകരണം മാനേജ് ചെയ്യുക</translation> <translation id="8078141288243656252">തിരിക്കുമ്പോൾ അനോട്ടേറ്റ് ചെയ്യാനാവില്ല</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb index 665e8a5..b8d9c383 100644 --- a/components/strings/components_strings_mn.xtb +++ b/components/strings/components_strings_mn.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Төлбөр төлөхийн тулд мэдрэгчид хүрнэ үү</translation> <translation id="2728127805433021124">Серверийн гэрчилгээнд сул гарын үсгийн алгоритмаар нэвтэрч байна.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Холболтын оношилгоог ажиллуулж байна<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Эдгээр онцлогийг идэвхжүүлснээр та хөтчийн өгөгдлийг алдах эсвэл - аюулгүй байдал болон нууцлалаа алдаж болзошгүй. Идэвхжүүлсэн онцлог энэ хөтчийн бүх - хэрэглэгчид хэрэгжинэ.</translation> <translation id="2738330467931008676">Авах хаяг сонгох</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Сонгосон зүйлсийг устга</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index 12af04d..e4658cec 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -492,9 +492,6 @@ <translation id="272451190272506600">पैसे देण्यासाठी सेन्सरला स्पर्श करा</translation> <translation id="2728127805433021124">एक कमकुवत स्वाक्षरी अल्गोरिदम वापरून सर्व्हरचे सर्टिफिकेट साइन केले आहे.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />कनेक्टिव्हिटी निदान चालविणे<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ही वैशिष्ट्ये सुरू केल्याने, तुम्ही ब्राउझर डेटा गमावू शकता किंवा - तुमची सुरक्षितता किंवा गोपनीयता धोक्यात असू शकते. सुरू केलेली वैशिष्ट्ये या - ब्राउझरच्या सर्व वापरकर्त्यांना लागू होतात.</translation> <translation id="2738330467931008676">पिकअप पत्ता निवडा</translation> <translation id="2740531572673183784">ठीक आहे</translation> <translation id="2742870351467570537">निवडलेले आयटम काढून टाका</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb index 85c3fd9..0502ef7 100644 --- a/components/strings/components_strings_ms.xtb +++ b/components/strings/components_strings_ms.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Sentuh penderia untuk bayar</translation> <translation id="2728127805433021124">Sijil pelayan ditandatangani menggunakan algoritma tandatangan yang lemah.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Jalankan Diagnostik Sambungan<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Langkah mendayakan ciri ini mungkin akan menyebabkan anda kehilangan data penyemak imbas atau - menjejaskan keselamatan atau privasi anda. Ciri yang didayakan digunakan untuk semua - pengguna penyemak imbas ini.</translation> <translation id="2738330467931008676">Pilih Alamat Pengambilan</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Buang item yang dipilih</translation> @@ -2216,6 +2213,7 @@ <translation id="9128870381267983090">Sambung ke rangkaian</translation> <translation id="9137013805542155359">Paparkan asal</translation> <translation id="9141013498910525015">Urus alamat</translation> +<translation id="9144951720726881238">Tarikh tamat tempoh:</translation> <translation id="9148088599418889305">Pilih Kaedah Penghantaran</translation> <translation id="9148507642005240123">&Buat asal edit</translation> <translation id="9150045010208374699">Gunakan kamera anda</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb index f2fce73..a55e838 100644 --- a/components/strings/components_strings_my.xtb +++ b/components/strings/components_strings_my.xtb
@@ -497,9 +497,6 @@ <translation id="272451190272506600">ငွေပေးချေရန် အာရုံခံစနစ်ကို ထိပါ</translation> <translation id="2728127805433021124">ဆာဗာ၏ လက်မှတ်ကို အားနည်းသည့် လက်မှတ် အယ်လ်ဂိုရီသမ်ကို သုံးပြီး ထိုးထားသည်။</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />ချိတ်ဆက်မှုဆိုင်ရာ ပြဿနာရှာဖွေမှု ပြုလုပ်ပါ<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ဤဝန်ဆောင်မှုများကို ဖွင့်ခြင်းအားဖြင့် ဘရောင်ဇာဒေတာများ ဆုံးရှုံးသွားနိုင်သည် သို့မဟုတ် - သင့်လုံခြုံရေး သို့မဟုတ် ပုဂ္ဂိုလ်ရေးအတွက် အန္တရာယ်ရှိနိုင်သည်။ ဖွင့်ထားသည့် ဝန်ဆောင်မှုများသည် ဤဘရောင်ဇာကို - အသုံးပြုသူများအားလုံးသို့ သက်ရောက်မှုရှိပါသည်။</translation> <translation id="2738330467931008676">လာယူမည့်လိပ်စာ ရွေးရန်</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">ရွေးချယ်ထားသည့် အရာများ ဖယ်ရှား</translation> @@ -2214,6 +2211,7 @@ <translation id="9128870381267983090">ကွန်ယက်သို့ ချိတ်ဆက်ပါ</translation> <translation id="9137013805542155359">မူရင်းအား ပြ</translation> <translation id="9141013498910525015">လိပ်စာများ စီမံရန်</translation> +<translation id="9144951720726881238">သက်တမ်းကုန်ဆုံးရက်-</translation> <translation id="9148088599418889305">ပစ္စည်းပို့နည်းလမ်း ရွေးရန်</translation> <translation id="9148507642005240123">&တည်းဖြတ်မှုကို တစ်ဆင့်နောက်ပြန်ရန်</translation> <translation id="9150045010208374699">သင့်ကင်မရာအား အသုံးပြုမည်</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb index 5c2ce44..c4f408ca 100644 --- a/components/strings/components_strings_ne.xtb +++ b/components/strings/components_strings_ne.xtb
@@ -489,9 +489,6 @@ <translation id="272451190272506600">भुक्तानी गर्न सेन्सरमा छुनुहोस्</translation> <translation id="2728127805433021124">सर्भरको प्रमाणपत्र एक कमजोर हस्ताक्षर अल्गोरिदम प्रयोग गर्दै हस्ताक्षर गरिएको छ।</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />जडान सम्बन्धी निदान चलाएर हेर्नुहोस्<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">यी सुविधाहरू सक्षम पारेर तपाईं ब्राउजरसम्बन्धी डेटा गुमाउन वा आफ्नो सुरक्षा वा - गोपनीयतालाई जोखिममा पार्न सक्नुहुन्छ। सक्षम पारिएका सुविधाहरू यो ब्राउजरका - सबै प्रयोगकर्ताहरूमा लागू हुन्छन्।</translation> <translation id="2738330467931008676">पिकअप गर्ने ठेगाना छनौट गर्नुहोस्</translation> <translation id="2740531572673183784">ठिक छ</translation> <translation id="2742870351467570537">चयन गरिएका वस्तुहरू हटाउनुहोस्</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index a022740..c3cdd2f 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -490,7 +490,6 @@ <translation id="272451190272506600">Raak de sensor aan om te betalen</translation> <translation id="2728127805433021124">Het certificaat van de server is ondertekend met een zwak ondertekeningsalgoritme.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Verbindingsdiagnose uitvoeren<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Als je deze functies aanzet, kun je browsegegevens kwijtraken of je veiligheid of privacy in gevaar brengen. Aangezette functies zijn van toepassing op alle gebruikers van deze browser.</translation> <translation id="2738330467931008676">Ophaaladres kiezen</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Geselecteerde items verwijderen</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index 5b29178e2..82585e9b 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Trykk på sensoren for å betale</translation> <translation id="2728127805433021124">Tjenerens sertifikat er signert med en usikker signaturalgoritme.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Kjør Tilkoblingsdiagnostikk<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Hvis du slår på disse funksjonene, kan du miste nettlesingsdata eller -sette sikkerheten eller personvernet på spill. Funksjoner som er slått på, gjelder for alle -brukere av denne nettleseren.</translation> <translation id="2738330467931008676">Velg henteadresse</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Fjern valgte elementer</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb index 9e1b425..84a564d 100644 --- a/components/strings/components_strings_or.xtb +++ b/components/strings/components_strings_or.xtb
@@ -488,7 +488,6 @@ <translation id="272451190272506600">ଦେୟ ଦେବାକୁ ସେନ୍ସର୍କୁ ସ୍ପର୍ଶ କରନ୍ତୁ</translation> <translation id="2728127805433021124">ଏକ ଦୁର୍ବଳ ଦସ୍ତଖତ ଥିବା ଅଲ୍ଗୋଦରିଦିମ୍ ବ୍ୟବହାର କରି ସର୍ଭର୍ର ସାର୍ଟିଫିକେଟ୍ ସାଇନ୍ କରାଯାଇଛି।</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />ଚାଲୁଥିବା ସଂଯୋଜନା ଡାଇଗ୍ନୋଷ୍ଟିକ୍ସ<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ଏହି ଫିଚର୍ଗୁଡ଼ିକୁ ସକ୍ଷମ କରିବା ଦ୍ୱାରା, ଆପଣ ହୁଏତ ବ୍ରାଉଜର୍ ଡାଟା ହରାଇ ପାରନ୍ତି କିମ୍ବା ଆପଣଙ୍କର ସୁରକ୍ଷା କିମ୍ବା ଗୋପନୀୟତା ଚୋରି ହୋଇପାରେ। ସକ୍ଷମ କରାଯାଇଥିବା ଫିଚର୍ଗୁଡ଼ିକ ଏହି ବ୍ରାଉଜର୍ର ସମସ୍ତ ଉପଯୋଗକର୍ତ୍ତାମାନଙ୍କ ପାଇଁ ଲାଗୁ ହୋଇଥାଏ।</translation> <translation id="2738330467931008676">ପିକ୍ଅପ୍ ଠିକଣା ବାଛନ୍ତୁ</translation> <translation id="2740531572673183784">ଠିକ୍ ଅଛି</translation> <translation id="2742870351467570537">ଚୟନ କରାଯାଇଥିବା ଆଇଟମ୍ଗୁଡ଼ିକୁ କାଢ଼ନ୍ତୁ</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb index 96f8938..c73a23b7 100644 --- a/components/strings/components_strings_pa.xtb +++ b/components/strings/components_strings_pa.xtb
@@ -488,8 +488,6 @@ <translation id="272451190272506600">ਭੁਗਤਾਨ ਕਰਨ ਲਈ ਸੈਂਸਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ</translation> <translation id="2728127805433021124">ਸਰਵਰ ਦਾ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਇੱਕ ਕਮਜ਼ੋਰ ਹਸਤਾਖਰ ਅਲਗੋਰਿਦਮ ਵਰਤਦੇ ਹੋਏ ਸਾਈਨ ਹੋਇਆ ਹੈ।</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />ਕਨੈਕਟੀਵਿਟੀ ਨਿਦਾਨ ਚਲਾਇਆ ਜਾ ਰਿਹਾ ਹੈ<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ਇਹਨਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਚਾਲੂ ਕਰਕੇ, ਤੁਸੀਂ ਬ੍ਰਾਊਜ਼ਰ ਡਾਟਾ ਗੁਆ ਸਕਦੇ ਹੋ ਜਾਂ - ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਜਾਂ ਪਰਦੇਦਾਰੀ ਨਾਲ ਛੇੜਛਾੜ ਹੋ ਸਕਦੀ ਹੈ। ਚਾਲੂ ਕੀਤੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਇਸ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਸਾਰੇ ਵਰਤੋਂਕਾਰਾਂ 'ਤੇ ਲਾਗੂ ਹੁੰਦੀਆਂ ਹਨ।</translation> <translation id="2738330467931008676">ਪਿਕਅੱਪ ਪਤਾ ਚੁਣੋ</translation> <translation id="2740531572673183784">ਠੀਕ</translation> <translation id="2742870351467570537">ਚੁਣੀਆਂ ਗਈਆਂ ਆਈਟਮਾਂ ਹਟਾਓ</translation> @@ -602,6 +600,7 @@ <translation id="3212623355668894776">ਸਾਰੀਆਂ ਮਹਿਮਾਨ ਵਿੰਡੋਆਂ ਨੂੰ ਬੰਦ ਕਰੋ ਤਾਂ ਜੋ ਤੁਹਾਡੀ ਬ੍ਰਾਊਜ਼ਿੰਗ ਸਰਗਰਮੀ ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਮਿਟਾਇਆ ਜਾ ਸਕੇ।</translation> <translation id="3215092763954878852">WebAuthn ਨੂੰ ਨਹੀਂ ਵਰਤ ਸਕਦੇ</translation> <translation id="3218181027817787318">ਸੰਬੰਧਿਤ</translation> +<translation id="3223287115535306850">ਐਪ ਲਾਂਚਿੰਗ ਥਰੋਬਰ</translation> <translation id="3225919329040284222">ਸਰਵਰ ਨੇ ਇੱਕ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਪੇਸ਼ ਕੀਤਾ ਸੀ ਜੋ ਪਹਿਲਾਂ ਤੋਂ ਮੌਜੂਦ ਅਨੁਮਾਨਾਂ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ। ਇਹ ਅਨੁਮਾਨਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ ਤਾਂ ਕਿ ਉੱਚ-ਸੁਰੱਖਿਆ ਵਾਲੀਆਂ ਵੈੱਬਸਾਈਟਾਂ ਦੀ ਰੱਖਿਆ ਕੀਤੀ ਜਾਵੇ।</translation> <translation id="3226128629678568754">ਪੰਨਾ ਲੋਡ ਕਰਨ ਲਈ ਲੋੜੀਂਦਾ ਡਾਟਾ ਮੁੜ ਸਪੁਰਦ ਕਰਨ ਲਈ ਰੀਲੋਡ ਬਟਨ ਦਬਾਓ।</translation> <translation id="3226387218769101247">ਲਘੂ-ਚਿੱਤਰ</translation> @@ -675,6 +674,7 @@ <translation id="3447884698081792621">ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦਿਖਾਓ (<ph name="ISSUER" /> ਵੱਲੋਂ ਜਾਰੀ ਕੀਤਾ ਗਿਆ)</translation> <translation id="3452404311384756672">ਅੰਤਰਾਲ ਪ੍ਰਾਪਤ ਕਰੋ:</translation> <translation id="3453962258458347894">ਮੁੜ-ਕੋਸ਼ਿਸ਼ਾਂ ਦੀ ਗਿਣਤੀ</translation> +<translation id="3454555520521576458">ਆਕਾਰ ਬਦਲਣਯੋਗ</translation> <translation id="3456231139987291353">ਨੰਬਰ-11 (ਲਿਫ਼ਾਫ਼ਾ)</translation> <translation id="3461266716147554923"><ph name="URL" /> ਦੀ ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕੀਤੇ ਚਿੱਤਰ ਅਤੇ ਲਿਖਤ ਨੂੰ ਦੇਖਣ ਦੀ ਇੱਛਾ ਹੈ</translation> <translation id="3461824795358126837">ਉਜਾਗਰਕਰਤਾ</translation> @@ -1001,6 +1001,7 @@ <translation id="4677585247300749148"><ph name="URL" /> ਦੀ ਪਹੁੰਚਯੋਗਤਾ ਇਵੈਂਟਾਂ 'ਤੇ ਪ੍ਰਤਿਕਿਰਿਆ ਕਰਨ ਦੀ ਇੱਛਾ ਹੈ</translation> <translation id="467809019005607715">Google Slides</translation> <translation id="4680804919228900307">ਤੁਸੀਂ ਹੁਣੇ-ਹੁਣੇ ਕਿਸੇ ਭਰਮਪੂਰਨ ਸਾਈਟ 'ਤੇ ਆਪਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕੀਤਾ ਹੈ। Chromium ਵੱਲੋਂ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ਅਤੇ ਉਹਨਾਂ ਹੋਰ ਸਾਈਟਾਂ 'ਤੇ ਆਪਣੇ ਰੱਖਿਅਤ ਪਾਸਵਰਡਾਂ ਨੂੰ ਜਾਂਚਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਿੱਥੇ ਹੁਣ ਤੁਸੀਂ ਇਹ ਪਾਸਵਰਡ ਵਰਤਦੇ ਹੋ।</translation> +<translation id="468314109939257734">ਆਪਣਾ ਆਭਾਸੀ ਕਾਰਡ ਨੰਬਰ ਦੇਖੋ</translation> <translation id="4690462567478992370">ਅਵੈਧ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵਰਤਣਾ ਬੰਦ ਕਰੋ</translation> <translation id="4691835149146451662">Architecture-A (ਲਿਫ਼ਾਫ਼ਾ)</translation> <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation> @@ -1904,6 +1905,7 @@ <translation id="8057711352706143257">"<ph name="SOFTWARE_NAME" />" ਦੀ ਸਹੀ ਢੰਗ ਨਾਲ ਰੂਪ-ਰੇਖਾ ਬਦਲੀ ਨਹੀਂ ਗਈ ਹੈ। ਆਮ ਤੌਰ 'ਤੇ "<ph name="SOFTWARE_NAME" />" ਨੂੰ ਅਣਸਥਾਪਤ ਕਰਨ 'ਤੇ ਸਮੱਸਿਆ ਠੀਕ ਹੋ ਜਾਂਦੀ ਹੈ। <ph name="FURTHER_EXPLANATION" /></translation> <translation id="8066955247577885446">ਮਾਫ਼ ਕਰਨਾ, ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ।</translation> <translation id="8067872629359326442">ਤੁਸੀਂ ਹੁਣੇ-ਹੁਣੇ ਕਿਸੇ ਭਰਮਪੂਰਨ ਸਾਈਟ 'ਤੇ ਆਪਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕੀਤਾ ਹੈ। Chromium ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ। ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲਣ ਅਤੇ ਆਪਣੇ ਖਾਤੇ ਦੇ ਜੋਖਮ ਵਿੱਚ ਹੋਣ ਬਾਰੇ Google ਨੂੰ ਸੂਚਿਤ ਕਰਨ ਲਈ, 'ਖਾਤੇ ਦੀ ਸੁਰੱਖਿਆ ਕਰੋ' 'ਤੇ ਕਲਿੱਕ ਕਰੋ।</translation> +<translation id="8070439594494267500">ਐਪ ਪ੍ਰਤੀਕ</translation> <translation id="8074253406171541171">10x13 (ਲਿਫ਼ਾਫ਼ਾ)</translation> <translation id="8075898834294118863">ਸਾਈਟ ਸੈਟਿੰਗਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation> <translation id="8078141288243656252">ਘੁਮਾਉਣ 'ਤੇ ਐਨੋਟੇਟ ਨਹੀਂ ਕਰ ਸਕਦੇ</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index 4659ab1..fee8104 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -491,9 +491,6 @@ <translation id="272451190272506600">Aby zapłacić, dotknij czytnika</translation> <translation id="2728127805433021124">Certyfikat serwera został podpisany przy użyciu słabego algorytmu podpisu.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Uruchomienie diagnostyki połączeń<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Włączenie tych funkcji może spowodować utratę danych z przeglądarki - oraz narazić bezpieczeństwo i prywatność użytkowników. - Funkcje są włączane dla wszystkich użytkowników tej przeglądarki.</translation> <translation id="2738330467931008676">Wybierz adres odbioru</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Usuń wybrane elementy</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb index e52d93c..2c54b15 100644 --- a/components/strings/components_strings_pt-BR.xtb +++ b/components/strings/components_strings_pt-BR.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">Toque no sensor para pagar</translation> <translation id="2728127805433021124">O certificado do servidor é assinado com um algoritmo de assinatura fraco.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Executar o Diagnóstico de Conectividade<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ativando esses recursos, você pode perder dados do navegador ou comprometer sua segurança ou privacidade. Os recursos ativados se aplicam a todos os usuários desse navegador.</translation> <translation id="2738330467931008676">Escolher endereço de retirada</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Remover itens selecionados</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb index 2aeb831..abf625e 100644 --- a/components/strings/components_strings_pt-PT.xtb +++ b/components/strings/components_strings_pt-PT.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Toque no sensor para pagar.</translation> <translation id="2728127805433021124">O certificado do servidor foi assinado utilizando um algoritmo de assinatura fraco.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Executar o Diagnóstico de conetividade<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ao ativar estas funcionalidades, pode perder dados do navegador ou - comprometer a sua segurança ou privacidade. As funcionalidades ativadas aplicam-se a todos - os utilizadores deste navegador.</translation> <translation id="2738330467931008676">Escolher endereço de levantamento</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Remover itens seleccionados</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index 265a833..20d033c1 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -495,7 +495,6 @@ <translation id="272451190272506600">Atinge senzorul pentru a plăti</translation> <translation id="2728127805433021124">Certificatul serverului este semnat utilizând un algoritm de semnătură slab.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />să rulezi Diagnostice conectivitate<ph name="END_LINK" />;</translation> -<translation id="2734544361860335147">Dacă activezi aceste funcții, ai putea pierde date din browser sau ți-ai putea compromite siguranța ori confidențialitatea. Funcțiile activate se aplică tuturor utilizatorilor acestui browser.</translation> <translation id="2738330467931008676">Alege adresa de preluare</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Elimină elementele selectate</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb index 62e6fa6..388a871b 100644 --- a/components/strings/components_strings_ru.xtb +++ b/components/strings/components_strings_ru.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">Для оплаты коснитесь сканера отпечатков пальцев</translation> <translation id="2728127805433021124">Сертификат сервера подписан с использованием ненадежного алгоритма.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Выполните диагностику подключения<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Используя эти функции, вы можете потерять данные браузера, а также подвергаете риску свою безопасность и конфиденциальность. Если включить их, они будут действовать для всех пользователей браузера.</translation> <translation id="2738330467931008676">Выбрать адрес получения</translation> <translation id="2740531572673183784">ОК</translation> <translation id="2742870351467570537">Удалить выбранные элементы</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb index 103dda0..067431f 100644 --- a/components/strings/components_strings_si.xtb +++ b/components/strings/components_strings_si.xtb
@@ -495,7 +495,6 @@ <translation id="272451190272506600">ගෙවීමට සංවේදකය ස්පර්ශ කරන්න</translation> <translation id="2728127805433021124">සේවාදායකයේ සහතිකය දුර්වල අත්සන් ඇල්ගොරිතමයක් භාවිතයෙන් සන් කර ඇත.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />සම්බන්ධතා දෝෂහරණ ධාවනය කරමින්<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">මෙම විශේෂාංග සබල කිරීමෙන්, ඔබට බ්රවුසර දත්ත අහිමි වීමට හෝ ඔබේ ආරක්ෂාව හෝ පෞද්ගලිකත්වය අන් සතු වීමට හැකි ය. සබල කළ විශේෂාංග මෙම බ්රවුසරයේ සියලුම පරිශීලකයින්ට යෙදේ.</translation> <translation id="2738330467931008676">නංවා ගැනීමේ ලිපිනය තෝරාගන්න</translation> <translation id="2740531572673183784">හරි</translation> <translation id="2742870351467570537">තේරූ අයිතම ඉවත් කරන්න</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index d2fd13e9..ef0baf0 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">Dotknite sa senzora a zaplaťte</translation> <translation id="2728127805433021124">Certifikát servera je podpísaný pomocou slabého podpisového algoritmu.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Spustiť nástroj Diagnostika konektivity<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ak aktivujete tieto funkcie, môžete prísť o dáta prehliadania alebo ohroziť zabezpečenie či súkromie. Funkcie sa aktivujú všetkým používateľom tohto prehliadača.</translation> <translation id="2738330467931008676">Zvoliť adresu vyzdvihnutia</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Odstrániť vybraté položky</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb index d174af0..224d31a 100644 --- a/components/strings/components_strings_sl.xtb +++ b/components/strings/components_strings_sl.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Dotaknite se tipala, če želite plačati</translation> <translation id="2728127805433021124">Strežnikovo potrdilo je podpisano s šibkim podpisnim algoritmom.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Izvajanje orodja Diagnostika povezljivosti<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Če omogočite te funkcije, lahko izgubite podatke brskalnika oziroma - ogrozite svojo varnost ali zasebnost. Omogočene funkcije veljajo za vse - uporabnike tega brskalnika.</translation> <translation id="2738330467931008676">Izbira naslova za prevzem</translation> <translation id="2740531572673183784">V redu</translation> <translation id="2742870351467570537">Odstrani izbrane elemente</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb index dfb6244..84a1638 100644 --- a/components/strings/components_strings_sq.xtb +++ b/components/strings/components_strings_sq.xtb
@@ -494,7 +494,6 @@ <translation id="272451190272506600">Prek sensorët për të paguar</translation> <translation id="2728127805433021124">Certifikata e serverit është nënshkruar duke përdorur një algoritëm të dobët nënshkrimi.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Po ekzekuton diagnostikimin e lidhjes<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Duke aktivizuar këto veçori, mund të humbësh të dhënat e shfletuesit ose të komprometosh sigurinë ose privatësinë tënde. Veçoritë e aktivizuara zbatohen për të gjithë përdoruesit e këtij shfletuesi.</translation> <translation id="2738330467931008676">Zgjidh adresën e marrjes</translation> <translation id="2740531572673183784">Në rregull</translation> <translation id="2742870351467570537">Hiq artikujt e zgjedhur</translation> @@ -2208,6 +2207,7 @@ <translation id="9128870381267983090">Lidhu me rrjetin</translation> <translation id="9137013805542155359">Shfaq origjinalin</translation> <translation id="9141013498910525015">Menaxho adresat</translation> +<translation id="9144951720726881238">Data e skadimit:</translation> <translation id="9148088599418889305">Zgjidh mënyrën e dërgimit</translation> <translation id="9148507642005240123">&Zhbëje redaktimin</translation> <translation id="9150045010208374699">Përdor kamerën</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb index 6ccfcd92..d40dcd2 100644 --- a/components/strings/components_strings_sr-Latn.xtb +++ b/components/strings/components_strings_sr-Latn.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Dodirnite senzor da biste platili</translation> <translation id="2728127805433021124">Sertifikat servera je potpisan slabim algoritmom.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />da pokrenete dijagnostiku veze<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ako omogućite ove funkcije, možete da izgubite podatke pregledača - ili da ugrozite sopstvenu bezbednost ili privatnost. Omogućene funkcije se primenjuju - na sve korisnike ovog pregledača.</translation> <translation id="2738330467931008676">Odaberite adresu preuzimanja</translation> <translation id="2740531572673183784">Potvrdi</translation> <translation id="2742870351467570537">Ukloni izabrane stavke</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index 043acbae..9f148bd6 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Додирните сензор да бисте платили</translation> <translation id="2728127805433021124">Сертификат сервера је потписан слабим алгоритмом.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />да покренете дијагностику везе<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ако омогућите ове функције, можете да изгубите податке прегледача - или да угрозите сопствену безбедност или приватност. Омогућене функције се примењују - на све кориснике овог прегледача.</translation> <translation id="2738330467931008676">Одаберите адресу преузимања</translation> <translation id="2740531572673183784">Потврди</translation> <translation id="2742870351467570537">Уклони изабране ставке</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb index 31d0a95..8d86007 100644 --- a/components/strings/components_strings_sv.xtb +++ b/components/strings/components_strings_sv.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Placera fingret på sensorn för att betala</translation> <translation id="2728127805433021124">Serverns certifikat är signerat med en svag signaturalgoritm.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />att köra anslutningsdiagnostik<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Om du aktiverar dessa funktioner kan du förlora webbinformation. - Detta kan även utgöra en säkerhetsrisk eller äventyra din sekretess. De aktiverade funktionerna gäller för alla - användare av webbläsaren.</translation> <translation id="2738330467931008676">Välj hämtningsadress</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Ta bort valda objekt</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb index ed0ca69..7253934 100644 --- a/components/strings/components_strings_sw.xtb +++ b/components/strings/components_strings_sw.xtb
@@ -494,9 +494,6 @@ <translation id="272451190272506600">Gusa kitambuzi ili ulipe</translation> <translation id="2728127805433021124">Cheti cha seva kimetiwa sahihi kwa kutumia algoriti dhaifu ya sahihi.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Inaendesha Zana ya Kuchunguza Muunganisho<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Kwa kuwasha vipengele hivi, unaweza kupoteza data ya kivinjari au - kutelekeza usalama na faragha yako. Vipengele vilivyowashwa huathiri - watumiaji wote wa kivinjari hiki.</translation> <translation id="2738330467931008676">Chagua Anwani ya Mahali pa Kuchukulia Bidhaa</translation> <translation id="2740531572673183784">Sawa</translation> <translation id="2742870351467570537">Ondoa vipengee vilivyochaguliwa</translation> @@ -2210,6 +2207,7 @@ <translation id="9128870381267983090">Unganisha kwenye mtandao</translation> <translation id="9137013805542155359">Onyesha asili</translation> <translation id="9141013498910525015">Dhibiti anwani</translation> +<translation id="9144951720726881238">Tarehe ya mwisho wa matumizi:</translation> <translation id="9148088599418889305">Chagua Mbinu ya Usafirishaji</translation> <translation id="9148507642005240123">Tendua kuhariri</translation> <translation id="9150045010208374699">Tumia kamera yako</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index fc6b55ca..3d2fdfc2 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -492,7 +492,6 @@ <translation id="272451190272506600">பேமெண்ட் செய்ய சென்சாரைத் தொடவும்</translation> <translation id="2728127805433021124">சேவையகச் சான்றிதழ் ஒரு வலுவற்ற கையொப்ப அல்காரிதமைப் பயன்படுத்தி கையொப்பமிடப்பட்டுள்ளது.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />கனெக்டிவிட்டி டயக்னஸ்டிக்ஸ் கருவியை இயக்கவும்<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">இந்த அம்சங்களை இயக்கினால் நீங்கள் உலாவிய தரவை இழக்கக்கூடும், உங்கள் பாதுகாப்பு அல்லது தனியுரிமையில் சிக்கல் ஏற்படக்கூடும். இயக்கிய அம்சங்கள் இந்த உலாவியின் எல்லாப் பயனர்களுக்கும் பொருந்தும்.</translation> <translation id="2738330467931008676">பிக்அப் முகவரியைத் தேர்வு செய்</translation> <translation id="2740531572673183784">சரி</translation> <translation id="2742870351467570537">தேர்ந்தெடுத்த உருப்படிகளை அகற்றுக</translation> @@ -604,6 +603,7 @@ <translation id="3212623355668894776">உங்கள் உலாவல் செயல்பாட்டை இந்தச் சாதனத்திலிருந்து நீக்க, கெஸ்ட் சாளரங்கள் அனைத்தையும் மூடவும்.</translation> <translation id="3215092763954878852">WebAuthnனைப் பயன்படுத்த முடியவில்லை</translation> <translation id="3218181027817787318">சார்புடையது</translation> +<translation id="3223287115535306850">ஆப்ஸ் துவக்கி லோடிங் ஐகான்</translation> <translation id="3225919329040284222">உள்ளமைந்த எதிர்பார்ப்புகளுடன் பொருந்தாத சான்றிதழை சேவையகம் வழங்கியது. சில உயர்-பாதுகாப்பு வலைத்தளங்களில் உங்களைப் பாதுகாக்கவே இந்த எதிர்பார்ப்புகள் சேர்க்கப்படுகின்றன.</translation> <translation id="3226128629678568754">பக்கத்தை ஏற்ற தேவைப்படும் தரவை மறுமுறைச் சமர்ப்பிப்பதற்கு மீண்டும் ஏற்று என்ற பொத்தானை அழுத்துக.</translation> <translation id="3226387218769101247">சிறுபடங்கள்</translation> @@ -677,6 +677,7 @@ <translation id="3447884698081792621">சான்றிதழைக் காட்டு (வழங்கியது: <ph name="ISSUER" />)</translation> <translation id="3452404311384756672">எடுப்பதற்கான இடைவேளை:</translation> <translation id="3453962258458347894">மீண்டும் முயலும் எண்ணிக்கை</translation> +<translation id="3454555520521576458">அளவு மாறக்கூடியது</translation> <translation id="3456231139987291353">Number-11 (என்வலப்)</translation> <translation id="3461266716147554923">கிளிப்போர்டுக்கு நகலெடுத்த உரையையும் படங்களையும், <ph name="URL" /> என்ற இணைப்பு பார்க்க விரும்புகிறது</translation> <translation id="3461824795358126837">ஹைலைட்டர்</translation> @@ -1009,6 +1010,7 @@ <translation id="4677585247300749148">அணுகல்தன்மை நிகழ்வுகளுக்கு, <ph name="URL" /> பதிலளிக்க விரும்புகிறது</translation> <translation id="467809019005607715">Google Slides</translation> <translation id="4680804919228900307">மோசடி செய்யும் தளத்தில் உங்கள் கடவுச்சொல்லை உள்ளிட்டுள்ளீர்கள். இந்தக் கடவுச்சொல்லைப் பயன்படுத்தும் <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ஆகியவற்றுக்கும் பிற தளங்களுக்கும் சென்று அங்கு சேமித்துள்ள கடவுச்சொற்களைச் சரிபார்க்கும்படி Chromium பரிந்துரைக்கிறது.</translation> +<translation id="468314109939257734">உங்கள் விர்ச்சுவல் கார்டு எண்ணைக் காட்டும்</translation> <translation id="4690462567478992370">தவறான சான்றிதழைப் பயன்படுத்துவதை நிறுத்து</translation> <translation id="4691835149146451662">Architecture-A (என்வலப்)</translation> <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation> @@ -1912,6 +1914,7 @@ <translation id="8057711352706143257">"<ph name="SOFTWARE_NAME" />" மென்பொருள் சரியாக உள்ளமைக்கப்படவில்லை. வழக்கமாக, "<ph name="SOFTWARE_NAME" />"ஐ நிறுவல் நீக்கினால் சிக்கல் சரியாகிவிடும். <ph name="FURTHER_EXPLANATION" /></translation> <translation id="8066955247577885446">ஏதோ தவறாகிவிட்டது.</translation> <translation id="8067872629359326442">மோசடிசெய்யும் இணையதளத்தில் உங்கள் கடவுச்சொல்லை உள்ளிட்டுள்ளீர்கள். இதில் Chromium உங்களுக்கு உதவலாம். உங்கள் கடவுச்சொல்லை மாற்றுவதற்கும் உங்களின் கணக்கு ஆபத்தில் இருக்கக்கூடும் என்பதை Googleளுக்குத் தெரியப்படுத்துவதற்கும் 'கணக்கைப் பாதுகாத்திடு' என்பதைக் கிளிக் செய்யுங்கள்.</translation> +<translation id="8070439594494267500">ஆப்ஸ் ஐகான்</translation> <translation id="8074253406171541171">10x13 (என்வலப்)</translation> <translation id="8075898834294118863">தள அமைப்புகளை நிர்வகியுங்கள்</translation> <translation id="8078141288243656252">சுழற்றப்பட்டுள்ளபோது ஆவணத்தில் விரிவுரையைச் சேர்க்க முடியாது</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 4805c29..1d8d7286 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -494,7 +494,6 @@ <translation id="272451190272506600">చెల్లించడానికి సెన్సార్ను తాకండి</translation> <translation id="2728127805433021124">సర్వర్ ప్రమాణపత్రం బలహీన సంతకం అల్గారిథమ్ను ఉపయోగించి సంతకం చేయబడింది.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />కనెక్టివిటీ సమస్య విశ్లేషణలను అమలు చేయడం<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ఈ ఫీచర్లను ప్రారంభించడం ద్వారా మీరు బ్రౌజర్ డేటాను కోల్పోవచ్చు లేదా మీ భద్రత లేదా గోప్యత ప్రమాదంలో పడవచ్చు. ప్రారంభించబడిన ఫీచర్లు ఈ బ్రౌజర్లోని వినియోగదారులందరికీ వర్తిస్తాయి.</translation> <translation id="2738330467931008676">పికప్ చిరునామాను ఎంచుకోండి</translation> <translation id="2740531572673183784">సరే</translation> <translation id="2742870351467570537">ఎంచుకున్న అంశాలను తీసివేయండి</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index 19e5021..6a310abab 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">แตะเซ็นเซอร์เพื่อจ่าย</translation> <translation id="2728127805433021124">ใบรับรองของเซิร์ฟเวอร์ถูกเซ็นชื่อด้วยอัลกอริทึมลายเซ็นที่ไม่รัดกุม</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />เรียกใช้การวินิจฉัยการเชื่อมต่อ<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">การเปิดใช้ฟีเจอร์เหล่านี้อาจทำให้คุณสูญเสียข้อมูลในเบราว์เซอร์หรือทำให้เกิดความเสี่ยงต่อความปลอดภัยหรือความเป็นส่วนตัว ฟีเจอร์ที่เปิดใช้จะมีผลกับผู้ใช้ทั้งหมดของเบราว์เซอร์นี้</translation> <translation id="2738330467931008676">เลือกที่อยู่สำหรับรับสินค้า</translation> <translation id="2740531572673183784">ตกลง</translation> <translation id="2742870351467570537">นำรายการที่เลือกออก </translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb index 2f10b8da6..6a63946 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -492,7 +492,6 @@ <translation id="272451190272506600">Ödeme için sensöre dokunun</translation> <translation id="2728127805433021124">Sunucunun sertifikası, zayıf bir imza algoritması kullanılarak imzalanmış.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Bağlantı Teşhislerini Çalıştırma<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Bu özellikleri etkinleştirdiğinizde tarayıcı verilerinizi kaybedebilir veya güvenliğinizden ya da gizliliğinizden ödün verebilirsiniz. Etkinleştirilen özellikler, bu tarayıcının tüm kullanıcıları için geçerli olur.</translation> <translation id="2738330467931008676">Alınacağı Adres Seç</translation> <translation id="2740531572673183784">Tamam</translation> <translation id="2742870351467570537">Seçilen öğeleri kaldır</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb index e9a34a9..273cf1bf2 100644 --- a/components/strings/components_strings_uk.xtb +++ b/components/strings/components_strings_uk.xtb
@@ -495,7 +495,6 @@ <translation id="272451190272506600">Щоб оплатити, торкніться датчика</translation> <translation id="2728127805433021124">Сертифікат сервера підписано з використанням слабкого алгоритму підпису.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />провести діагностику з’єднання<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Увімкнувши ці функції, ви можете втратити дані веб-перегляду або створити загрозу безпеці чи конфіденційності. Увімкнені функції діють для всіх користувачів веб-переглядача.</translation> <translation id="2738330467931008676">Вибрати адресу отримання</translation> <translation id="2740531572673183784">OK</translation> <translation id="2742870351467570537">Видалити вибрані елементи</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index 8cc1e43..1635634 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -493,10 +493,6 @@ <translation id="272451190272506600">ادائیگی کرنے کے لیے سینسر کو ٹچ کریں</translation> <translation id="2728127805433021124">سرور کا سرٹیفیکیٹ ایک کمزور دستخط الگورتھم استعمال کر کے دستخط کیا ہوا ہے۔</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />کنیکٹوٹی کی تشخیصات چلانے کی<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">ان خصوصیات کو فعال کر کے، آپ براؤزر ڈیٹا سے محروم ہو سکتے ہیں یا - آپ کو سیکیورٹی یا رازداری سے متعلق خطرہ لاحق ہو سکتا ہے۔ -فعال خصوصیات اس براؤزر کے سبھی - صارفین پر لاگو ہوتی ہیں۔</translation> <translation id="2738330467931008676">پک اپ کا پتہ منتخب کریں</translation> <translation id="2740531572673183784">ٹھیک ہے</translation> <translation id="2742870351467570537">منتخب کردہ آئٹمز ہٹائیں</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb index 216759db..c130c19 100644 --- a/components/strings/components_strings_uz.xtb +++ b/components/strings/components_strings_uz.xtb
@@ -494,9 +494,6 @@ <translation id="272451190272506600">Toʻlash uchun sensorga tegining</translation> <translation id="2728127805433021124">Server sertifikati kuchsiz imzo algoritmi yordamida imzolangan.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Aloqa diagnostikasini ishga tushiring<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Bu funksiyalar yoqilsa, brauzer tarixi, xavfsizlik - va maxfiylik sozlamalari oʻchib ketishi mumkin. Bu funksiyalar brauzerning - barcha foydalanuvchilari uchun yoqiladi.</translation> <translation id="2738330467931008676">Olib ketish manzilini tanlang</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Tanlangan elementlarni o‘chirish</translation> @@ -2208,6 +2205,7 @@ <translation id="9128870381267983090">Tarmoqqa ulanish</translation> <translation id="9137013805542155359">Asl tilda ko‘rsatish</translation> <translation id="9141013498910525015">Manzillarni boshqarish</translation> +<translation id="9144951720726881238">Tugash muddati:</translation> <translation id="9148088599418889305">Yetkazib berish usulini tanlang</translation> <translation id="9148507642005240123">&Tahrirni bekor qilish</translation> <translation id="9150045010208374699">Kameradan foydalanish</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb index 9093abc..fb753cb 100644 --- a/components/strings/components_strings_vi.xtb +++ b/components/strings/components_strings_vi.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Chạm vào cảm biến để thanh toán</translation> <translation id="2728127805433021124">Chứng chỉ của máy chủ đã được ký bằng thuật toán chữ ký yếu.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Chạy Chẩn đoán kết nối<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Khi bật các tính năng này, dữ liệu trên trình duyệt có thể bị mất hoặc - tính bảo mật/quyền riêng tư của bạn có thể bị xâm phạm. Các tính năng được bật sẽ áp dụng cho tất cả - người dùng trình duyệt này.</translation> <translation id="2738330467931008676">Chọn địa chỉ nhận hàng</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Xóa các mục đã chọn</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index 0371edb2..5c73ccf 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">触摸传感器即可付款</translation> <translation id="2728127805433021124">服务器的证书是使用弱签名算法进行签名的。</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />运行网络连接诊断<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">启用这些功能可能会致使您丢失浏览数据,或者致使您的安全或隐私受到威胁。此操作会为该浏览器的所有用户启用这些功能。</translation> <translation id="2738330467931008676">选择取货地址</translation> <translation id="2740531572673183784">确定</translation> <translation id="2742870351467570537">移除所选项</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb index 65e8335..8871e400 100644 --- a/components/strings/components_strings_zh-HK.xtb +++ b/components/strings/components_strings_zh-HK.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">輕觸感應器即可付款</translation> <translation id="2728127805433021124">伺服器憑證以防護力較弱的簽章演算法簽署。</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />執行連線診斷<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">啟用這些功能有可能令您失去瀏覽資料,或導致您的安全或私隱受到威脅,並將套用至此瀏覽器的所有使用者。</translation> <translation id="2738330467931008676">選擇取貨地址</translation> <translation id="2740531572673183784">確定</translation> <translation id="2742870351467570537">移除選取的項目</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index 330bdcf..724ac4da 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -491,7 +491,6 @@ <translation id="272451190272506600">請輕觸感應器進行付款</translation> <translation id="2728127805433021124">伺服器憑證是以防護力較弱的簽章演算法進行簽署。</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />執行連線診斷<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">啟用這些功能可能會造成瀏覽器資料遺失,或導致你的安全性或隱私權面臨威脅。這個瀏覽器的所有使用者都會套用你所啟用的功能。</translation> <translation id="2738330467931008676">選擇取件地址</translation> <translation id="2740531572673183784">確定</translation> <translation id="2742870351467570537">移除選取的項目</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb index e97d2bf..bf735fb 100644 --- a/components/strings/components_strings_zu.xtb +++ b/components/strings/components_strings_zu.xtb
@@ -495,9 +495,6 @@ <translation id="272451190272506600">Thinta inzwa ukuze ukhokhe</translation> <translation id="2728127805433021124">Isitifiketi seseva sisayinwe kusetshenziswa i-algorithm yesiginesha ebuthaka.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Iqalisa ukuxilongwa kokuxhumeka<ph name="END_LINK" /></translation> -<translation id="2734544361860335147">Ngokunika amandla lezi zici, ungalahlekelwa idatha yesiphequluli noma - wonakalise ukuvikelwa kwakho noma ubumfihlo. Izici ezifakiwe zisebenza kubo bonke - abasebenzisi balesi siphequluli.</translation> <translation id="2738330467931008676">Khetha ikheli lokulandwa</translation> <translation id="2740531572673183784">Ok</translation> <translation id="2742870351467570537">Susa izinto ezikhethiwe</translation> @@ -2211,6 +2208,7 @@ <translation id="9128870381267983090">Xhuma kunethiwekhi</translation> <translation id="9137013805542155359">Bonisa okwangempela</translation> <translation id="9141013498910525015">Phatha amakheli</translation> +<translation id="9144951720726881238">Idethi yokuphelelwa isikhathi:</translation> <translation id="9148088599418889305">Khetha indlela yokuthunyelwa</translation> <translation id="9148507642005240123">&Hlehlisa ukuhlela</translation> <translation id="9150045010208374699">Sebenzisa ikhamela yakho</translation>
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc index 6859d4b..ab2b1e28 100644 --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
@@ -122,7 +122,9 @@ VerifiedRulesetDealer::Handle* dealer_handle, content::WebContents* web_contents) : content::WebContentsObserver(web_contents), - receiver_(web_contents, this), + receiver_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()), dealer_handle_(dealer_handle), database_manager_(std::move(database_manager)), profile_interaction_manager_(
diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc index 503f230..2eb67a4 100644 --- a/components/subresource_filter/core/common/indexed_ruleset.cc +++ b/components/subresource_filter/core/common/indexed_ruleset.cc
@@ -54,12 +54,12 @@ // RulesetIndexer -------------------------------------------------------------- -const int RulesetIndexer::kIndexedFormatVersion = 30; +const int RulesetIndexer::kIndexedFormatVersion = 31; // This static assert is meant to catch cases where // url_pattern_index::kUrlPatternIndexFormatVersion is incremented without // updating RulesetIndexer::kIndexedFormatVersion. -static_assert(url_pattern_index::kUrlPatternIndexFormatVersion == 9, +static_assert(url_pattern_index::kUrlPatternIndexFormatVersion == 10, "kUrlPatternIndexFormatVersion has changed, make sure you've " "also updated RulesetIndexer::kIndexedFormatVersion above.");
diff --git a/components/url_pattern_index/flat/url_pattern_index.fbs b/components/url_pattern_index/flat/url_pattern_index.fbs index a8ed7d0..6266de71 100644 --- a/components/url_pattern_index/flat/url_pattern_index.fbs +++ b/components/url_pattern_index/flat/url_pattern_index.fbs
@@ -70,6 +70,7 @@ PATCH, POST, PUT, + NON_HTTP // Note: Update the default value for `request_methods` field in UrlRule, on // adding/removing values from this enum. } @@ -87,7 +88,7 @@ element_types : ushort = 8191; // A bitmask of RequestMethod. Equals RequestMethod_ANY by default. - request_methods : ushort = 127; + request_methods : ushort = 255; // A bitmask of ActivationType. Disables all activation types by default. activation_types : ubyte = 0;
diff --git a/components/url_pattern_index/url_pattern_index.h b/components/url_pattern_index/url_pattern_index.h index 7d47a18..8716fa2 100644 --- a/components/url_pattern_index/url_pattern_index.h +++ b/components/url_pattern_index/url_pattern_index.h
@@ -85,7 +85,7 @@ // Increase this value when introducing an incompatible change to the // UrlPatternIndex schema (flat/url_pattern_index.fbs). url_pattern_index // clients can use this as a signal to rebuild rulesets. -constexpr int kUrlPatternIndexFormatVersion = 9; +constexpr int kUrlPatternIndexFormatVersion = 10; // The class used to construct an index over the URL patterns of a set of URL // rules. The rules themselves need to be converted to FlatBuffers format by the
diff --git a/components/viz/PRESUBMIT.py b/components/viz/PRESUBMIT.py index b5076ac..e80b05a 100644 --- a/components/viz/PRESUBMIT.py +++ b/components/viz/PRESUBMIT.py
@@ -4,8 +4,6 @@ """Top-level presubmit script for components/viz.""" -USE_PYTHON3 = True - def CheckChangeOnUpload(input_api, output_api): import sys original_sys_path = sys.path
diff --git a/components/viz/service/display/direct_renderer.cc b/components/viz/service/display/direct_renderer.cc index b58bdb39..b6b55e3 100644 --- a/components/viz/service/display/direct_renderer.cc +++ b/components/viz/service/display/direct_renderer.cc
@@ -701,7 +701,7 @@ auto new_polygon = std::make_unique<DrawPolygon>( *it, gfx::RectF(quad.visible_rect), quad.shared_quad_state->quad_to_target_transform, next_polygon_id++); - if (new_polygon->points().size() > 2u) { + if (new_polygon->normal().LengthSquared() > 0.0) { poly_list.push_back(std::move(new_polygon)); } continue;
diff --git a/components/viz/service/surfaces/surface.cc b/components/viz/service/surfaces/surface.cc index 97950a2..b3470c3d 100644 --- a/components/viz/service/surfaces/surface.cc +++ b/components/viz/service/surfaces/surface.cc
@@ -255,6 +255,16 @@ } else { pending_frame_data_ = FrameData(std::move(frame), frame_index); + auto traced_value = std::make_unique<base::trace_event::TracedValue>(); + traced_value->BeginArray("Pending"); + for (auto& it : activation_dependencies_) + traced_value->AppendString(it.ToString()); + traced_value->EndArray(); + TRACE_EVENT_NESTABLE_ASYNC_BEGIN2( + "viz", "SurfaceQueuedPending", TRACE_ID_LOCAL(this), "LocalSurfaceId", + surface_info_.id().ToString(), "ActivationDependencies", + std::move(traced_value)); + deadline_->Set(ResolveFrameDeadline(pending_frame_data_->frame)); if (deadline_->HasDeadlinePassed()) { ActivatePendingFrameForDeadline(); @@ -264,15 +274,6 @@ // that client, leading to the group being unblocked. for (auto* it : blocking_allocation_groups_) it->AckLastestActiveUnAckedFrame(); - auto traced_value = std::make_unique<base::trace_event::TracedValue>(); - traced_value->BeginArray("Pending"); - for (auto& it : activation_dependencies_) - traced_value->AppendString(it.ToString()); - traced_value->EndArray(); - TRACE_EVENT_NESTABLE_ASYNC_BEGIN2( - "viz", "SurfaceQueuedPending", TRACE_ID_LOCAL(this), "LocalSurfaceId", - surface_info_.id().ToString(), "ActivationDependencies", - std::move(traced_value)); result = QueueFrameResult::ACCEPTED_PENDING; } }
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc index e822e5de..6222c0e3 100644 --- a/content/browser/browser_context.cc +++ b/content/browser/browser_context.cc
@@ -65,6 +65,9 @@ namespace { +using perfetto::protos::pbzero::ChromeBrowserContext; +using perfetto::protos::pbzero::ChromeTrackEvent; + void SaveSessionStateOnIOThread(AppCacheServiceImpl* appcache_service) { appcache_service->set_force_keep_session_state(); } @@ -78,33 +81,23 @@ } // namespace BrowserContext::BrowserContext() { - TRACE_EVENT("shutdown", "BrowserContext::BrowserContext", - [&](perfetto::EventContext ctx) { - auto* event = - ctx.event<perfetto::protos::pbzero::ChromeTrackEvent>(); - event->set_chrome_browser_context()->set_ptr( - reinterpret_cast<uint64_t>(this)); - }); - TRACE_EVENT_NESTABLE_ASYNC_BEGIN1("shutdown", "Browser.BrowserContext", this, - "browser_context", - static_cast<void*>(this)); - impl_ = std::make_unique<Impl>(this); + TRACE_EVENT("shutdown", "BrowserContext::BrowserContext", + ChromeTrackEvent::kChromeBrowserContext, *this); + TRACE_EVENT_BEGIN("shutdown", "Browser.BrowserContext", + perfetto::Track::FromPointer(this), + ChromeTrackEvent::kChromeBrowserContext, *this); } BrowserContext::~BrowserContext() { TRACE_EVENT("shutdown", "BrowserContext::~BrowserContext", - [&](perfetto::EventContext ctx) { - auto* event = - ctx.event<perfetto::protos::pbzero::ChromeTrackEvent>(); - event->set_chrome_browser_context()->set_ptr( - reinterpret_cast<uint64_t>(this)); - }); + ChromeTrackEvent::kChromeBrowserContext, *this); + + // End for ASYNC event "Browser.BrowserContext". + TRACE_EVENT_END("shutdown", perfetto::Track::FromPointer(this), + ChromeTrackEvent::kChromeBrowserContext, *this); impl_.reset(); - - TRACE_EVENT_NESTABLE_ASYNC_END1("shutdown", "Browser.BrowserContext", this, - "browser_context", static_cast<void*>(this)); } DownloadManager* BrowserContext::GetDownloadManager() { @@ -348,6 +341,12 @@ dict.Add("id", impl()->UniqueId()); } +void BrowserContext::WriteIntoTrace( + perfetto::TracedProto<ChromeBrowserContext> proto) { + if (impl()) + proto->set_id(impl()->UniqueId()); +} + ////////////////////////////////////////////////////////////////////////////// // The //content embedder can override the methods below to change or extend // how the //content layer interacts with a BrowserContext. The code below
diff --git a/content/browser/browser_main_runner_impl.cc b/content/browser/browser_main_runner_impl.cc index fde9208..4edb502 100644 --- a/content/browser/browser_main_runner_impl.cc +++ b/content/browser/browser_main_runner_impl.cc
@@ -169,7 +169,7 @@ main_loop_->PreShutdown(); // Finalize the startup tracing session if it is still active. - StartupTracingController::GetInstance().WaitUntilStopped(); + StartupTracingController::GetInstance().ShutdownAndWaitForStopIfNeeded(); { // The trace event has to stay between profiler creation and destruction.
diff --git a/content/browser/child_process_launcher.cc b/content/browser/child_process_launcher.cc index 65099d93..ecc8ee0e 100644 --- a/content/browser/child_process_launcher.cc +++ b/content/browser/child_process_launcher.cc
@@ -16,6 +16,7 @@ #include "base/process/launch.h" #include "base/process/process_metrics.h" #include "base/time/time.h" +#include "base/tracing/protos/chrome_track_event.pbzero.h" #include "build/build_config.h" #include "content/public/browser/child_process_launcher_utils.h" #include "content/public/common/content_features.h" @@ -29,6 +30,28 @@ using internal::ChildProcessLauncherHelper; +void ChildProcessLauncherPriority::WriteIntoTrace( + perfetto::TracedProto< + perfetto::protos::pbzero::ChildProcessLauncherPriority> proto) { + proto->set_is_backgrounded(is_background()); + proto->set_has_pending_views(boost_for_pending_views); + +#if defined(OS_ANDROID) + using PriorityProto = perfetto::protos::pbzero::ChildProcessLauncherPriority; + switch (importance) { + case ChildProcessImportance::IMPORTANT: + proto->set_importance(PriorityProto::IMPORTANCE_IMPORTANT); + break; + case ChildProcessImportance::NORMAL: + proto->set_importance(PriorityProto::IMPORTANCE_NORMAL); + break; + case ChildProcessImportance::MODERATE: + proto->set_importance(PriorityProto::IMPORTANCE_MODERATE); + break; + } +#endif +} + #if defined(OS_ANDROID) bool ChildProcessLauncher::Client::CanUseWarmUpConnection() { return true;
diff --git a/content/browser/child_process_launcher.h b/content/browser/child_process_launcher.h index 7b299d9..7517fb03 100644 --- a/content/browser/child_process_launcher.h +++ b/content/browser/child_process_launcher.h
@@ -23,6 +23,7 @@ #include "content/public/browser/child_process_termination_info.h" #include "content/public/common/result_codes.h" #include "mojo/public/cpp/system/invitation.h" +#include "third_party/perfetto/include/perfetto/tracing/traced_proto.h" #if defined(OS_ANDROID) #include "content/public/browser/android/child_process_importance.h" @@ -32,6 +33,14 @@ class CommandLine; } +namespace perfetto { +namespace protos { +namespace pbzero { +class ChildProcessLauncherPriority; +} +} // namespace protos +} // namespace perfetto + namespace content { class SandboxedProcessLauncherDelegate; @@ -88,6 +97,10 @@ return !(*this == other); } + void WriteIntoTrace( + perfetto::TracedProto< + perfetto::protos::pbzero::ChildProcessLauncherPriority> proto); + // Prefer |is_background()| to inspecting these fields individually (to ensure // all logic uses the same notion of "backgrounded").
diff --git a/content/browser/conversions/conversion_host.cc b/content/browser/conversions/conversion_host.cc index e288bd75..5052901 100644 --- a/content/browser/conversions/conversion_host.cc +++ b/content/browser/conversions/conversion_host.cc
@@ -76,7 +76,9 @@ std::unique_ptr<ConversionManager::Provider> conversion_manager_provider) : WebContentsObserver(web_contents), conversion_manager_provider_(std::move(conversion_manager_provider)), - receiver_(web_contents, this) { + receiver_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) { // TODO(csharrison): When https://crbug.com/1051334 is resolved, add a DCHECK // that the kConversionMeasurement feature is enabled. }
diff --git a/content/browser/display_cutout/display_cutout_host_impl.cc b/content/browser/display_cutout/display_cutout_host_impl.cc index 1640ec834..285d4eb 100644 --- a/content/browser/display_cutout/display_cutout_host_impl.cc +++ b/content/browser/display_cutout/display_cutout_host_impl.cc
@@ -14,7 +14,10 @@ namespace content { DisplayCutoutHostImpl::DisplayCutoutHostImpl(WebContentsImpl* web_contents) - : receivers_(web_contents, this), web_contents_impl_(web_contents) {} + : receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()), + web_contents_impl_(web_contents) {} DisplayCutoutHostImpl::~DisplayCutoutHostImpl() = default;
diff --git a/content/browser/media/media_capabilities_browsertest.cc b/content/browser/media/media_capabilities_browsertest.cc index 6caa63b..71f37b9c 100644 --- a/content/browser/media/media_capabilities_browsertest.cc +++ b/content/browser/media/media_capabilities_browsertest.cc
@@ -172,8 +172,8 @@ } }; -// Fails on Linux: http://crbug.com/1220321. -#if defined(OS_LINUX) +// Fails on Linux and Chrome OS: http://crbug.com/1220321. +#if defined(OS_LINUX) || defined(OS_CHROMEOS) #define MAYBE_CommonVideoDecodeTypes DISABLED_CommonVideoDecodeTypes #else #define MAYBE_CommonVideoDecodeTypes CommonVideoDecodeTypes @@ -372,8 +372,8 @@ /*spatial_rendering*/ true)); } -// Fails on Linux: http://crbug.com/1220321. -#if defined(OS_LINUX) +// Fails on Linux and Chrome OS: http://crbug.com/1220321. +#if defined(OS_LINUX) || defined(OS_CHROMEOS) #define MAYBE_VideoTypesWithDynamicRange DISABLED_VideoTypesWithDynamicRange #else #define MAYBE_VideoTypesWithDynamicRange VideoTypesWithDynamicRange
diff --git a/content/browser/navigation_subresource_loader_params.h b/content/browser/navigation_subresource_loader_params.h index 0cc3345..62c18479 100644 --- a/content/browser/navigation_subresource_loader_params.h +++ b/content/browser/navigation_subresource_loader_params.h
@@ -7,8 +7,8 @@ #include "base/memory/weak_ptr.h" #include "content/common/content_export.h" -#include "content/common/prefetched_signed_exchange_info.mojom.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" +#include "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom.h" #include "third_party/blink/public/mojom/service_worker/controller_service_worker.mojom.h" namespace content { @@ -50,7 +50,7 @@ // navigation was served from the cache, |prefetched_signed_exchanges| // contains the all prefetched signed exchanges and they will be passed to the // renderer. - std::vector<mojom::PrefetchedSignedExchangeInfoPtr> + std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr> prefetched_signed_exchanges; };
diff --git a/content/browser/net/cross_origin_embedder_policy_reporter.cc b/content/browser/net/cross_origin_embedder_policy_reporter.cc index f506654..4efe4bc 100644 --- a/content/browser/net/cross_origin_embedder_policy_reporter.cc +++ b/content/browser/net/cross_origin_embedder_policy_reporter.cc
@@ -30,13 +30,16 @@ const GURL& context_url, const absl::optional<std::string>& endpoint, const absl::optional<std::string>& report_only_endpoint, + const base::UnguessableToken& reporting_source, const net::NetworkIsolationKey& network_isolation_key) : storage_partition_(storage_partition), context_url_(context_url), endpoint_(endpoint), report_only_endpoint_(report_only_endpoint), + reporting_source_(reporting_source), network_isolation_key_(network_isolation_key) { DCHECK(storage_partition_); + DCHECK(!reporting_source_.is_empty()); } CrossOriginEmbedderPolicyReporter::~CrossOriginEmbedderPolicyReporter() =
diff --git a/content/browser/net/cross_origin_embedder_policy_reporter.h b/content/browser/net/cross_origin_embedder_policy_reporter.h index 14f0902..4504271 100644 --- a/content/browser/net/cross_origin_embedder_policy_reporter.h +++ b/content/browser/net/cross_origin_embedder_policy_reporter.h
@@ -42,6 +42,7 @@ const GURL& context_url, const absl::optional<std::string>& endpoint, const absl::optional<std::string>& report_only_endpoint, + const base::UnguessableToken& reporting_source, const net::NetworkIsolationKey& network_isolation_key); ~CrossOriginEmbedderPolicyReporter() override; CrossOriginEmbedderPolicyReporter(const CrossOriginEmbedderPolicyReporter&) = @@ -85,6 +86,7 @@ const GURL context_url_; const absl::optional<std::string> endpoint_; const absl::optional<std::string> report_only_endpoint_; + const base::UnguessableToken reporting_source_; const net::NetworkIsolationKey network_isolation_key_; mojo::ReceiverSet<network::mojom::CrossOriginEmbedderPolicyReporter>
diff --git a/content/browser/net/cross_origin_embedder_policy_reporter_unittest.cc b/content/browser/net/cross_origin_embedder_policy_reporter_unittest.cc index 8a14c47..ad409769 100644 --- a/content/browser/net/cross_origin_embedder_policy_reporter_unittest.cc +++ b/content/browser/net/cross_origin_embedder_policy_reporter_unittest.cc
@@ -188,9 +188,9 @@ TEST_F(CrossOriginEmbedderPolicyReporterTest, NullEndpointsForCorp) { const GURL kContextUrl("https://example.com/path"); - CrossOriginEmbedderPolicyReporter reporter(storage_partition(), kContextUrl, - absl::nullopt, absl::nullopt, - net::NetworkIsolationKey()); + CrossOriginEmbedderPolicyReporter reporter( + storage_partition(), kContextUrl, absl::nullopt, absl::nullopt, + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.QueueCorpViolationReport(GURL("https://www1.example.com/y"), RequestDestination::kEmpty, @@ -205,8 +205,10 @@ TEST_F(CrossOriginEmbedderPolicyReporterTest, BasicCorp) { const GURL kContextUrl("https://example.com/path"); const auto kNetworkIsolationKey = net::NetworkIsolationKey::CreateTransient(); + const auto kReportingSource = base::UnguessableToken::Create(); CrossOriginEmbedderPolicyReporter reporter(storage_partition(), kContextUrl, - "e1", "e2", kNetworkIsolationKey); + "e1", "e2", kReportingSource, + kNetworkIsolationKey); reporter.QueueCorpViolationReport( GURL("https://www1.example.com/x#foo?bar=baz"), @@ -238,7 +240,8 @@ TEST_F(CrossOriginEmbedderPolicyReporterTest, UserAndPassForCorp) { const GURL kContextUrl("https://example.com/path"); CrossOriginEmbedderPolicyReporter reporter( - storage_partition(), kContextUrl, "e1", "e2", net::NetworkIsolationKey()); + storage_partition(), kContextUrl, "e1", "e2", + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.QueueCorpViolationReport(GURL("https://u:p@www1.example.com/x"), RequestDestination::kImage, @@ -269,9 +272,9 @@ mojo::PendingRemote<blink::mojom::ReportingObserver> observer_remote; TestObserver observer(observer_remote.InitWithNewPipeAndPassReceiver()); - CrossOriginEmbedderPolicyReporter reporter(storage_partition(), kContextUrl, - absl::nullopt, absl::nullopt, - net::NetworkIsolationKey()); + CrossOriginEmbedderPolicyReporter reporter( + storage_partition(), kContextUrl, absl::nullopt, absl::nullopt, + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.BindObserver(std::move(observer_remote)); reporter.QueueCorpViolationReport(GURL("https://u:p@www1.example.com/x"), RequestDestination::kImage, @@ -301,7 +304,8 @@ TEST_F(CrossOriginEmbedderPolicyReporterTest, Clone) { const GURL kContextUrl("https://example.com/path"); CrossOriginEmbedderPolicyReporter reporter( - storage_partition(), kContextUrl, "e1", "e2", net::NetworkIsolationKey()); + storage_partition(), kContextUrl, "e1", "e2", + base::UnguessableToken::Create(), net::NetworkIsolationKey()); mojo::Remote<network::mojom::CrossOriginEmbedderPolicyReporter> remote; reporter.Clone(remote.BindNewPipeAndPassReceiver()); @@ -334,9 +338,9 @@ TEST_F(CrossOriginEmbedderPolicyReporterTest, NullEndpointsForNavigation) { const GURL kContextUrl("https://example.com/path"); - CrossOriginEmbedderPolicyReporter reporter(storage_partition(), kContextUrl, - absl::nullopt, absl::nullopt, - net::NetworkIsolationKey()); + CrossOriginEmbedderPolicyReporter reporter( + storage_partition(), kContextUrl, absl::nullopt, absl::nullopt, + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.QueueNavigationReport(GURL("https://www1.example.com/y"), /*report_only=*/false); @@ -349,7 +353,8 @@ TEST_F(CrossOriginEmbedderPolicyReporterTest, BasicNavigation) { const GURL kContextUrl("https://example.com/path"); CrossOriginEmbedderPolicyReporter reporter( - storage_partition(), kContextUrl, "e1", "e2", net::NetworkIsolationKey()); + storage_partition(), kContextUrl, "e1", "e2", + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.QueueNavigationReport(GURL("https://www1.example.com/x#foo?bar=baz"), /*report_only=*/false); @@ -377,9 +382,9 @@ mojo::PendingRemote<blink::mojom::ReportingObserver> observer_remote; TestObserver observer(observer_remote.InitWithNewPipeAndPassReceiver()); - CrossOriginEmbedderPolicyReporter reporter(storage_partition(), kContextUrl, - absl::nullopt, absl::nullopt, - net::NetworkIsolationKey()); + CrossOriginEmbedderPolicyReporter reporter( + storage_partition(), kContextUrl, absl::nullopt, absl::nullopt, + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.BindObserver(std::move(observer_remote)); reporter.QueueNavigationReport(GURL("https://www1.example.com/x#foo?bar=baz"), /*report_only=*/false); @@ -406,7 +411,8 @@ TEST_F(CrossOriginEmbedderPolicyReporterTest, UserAndPassForNavigation) { const GURL kContextUrl("https://example.com/path"); CrossOriginEmbedderPolicyReporter reporter( - storage_partition(), kContextUrl, "e1", "e2", net::NetworkIsolationKey()); + storage_partition(), kContextUrl, "e1", "e2", + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.QueueNavigationReport(GURL("https://u:p@www1.example.com/x"), /*report_only=*/false); reporter.QueueNavigationReport(GURL("https://u:p@www2.example.com/y"), @@ -431,9 +437,9 @@ TEST_F(CrossOriginEmbedderPolicyReporterTest, NullEndpointsForWorkerInitialization) { const GURL kContextUrl("https://example.com/path"); - CrossOriginEmbedderPolicyReporter reporter(storage_partition(), kContextUrl, - absl::nullopt, absl::nullopt, - net::NetworkIsolationKey()); + CrossOriginEmbedderPolicyReporter reporter( + storage_partition(), kContextUrl, absl::nullopt, absl::nullopt, + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.QueueWorkerInitializationReport( GURL("https://www1.example.com/x.js"), @@ -448,7 +454,8 @@ TEST_F(CrossOriginEmbedderPolicyReporterTest, BasicWorkerInitialization) { const GURL kContextUrl("https://example.com/path"); CrossOriginEmbedderPolicyReporter reporter( - storage_partition(), kContextUrl, "e1", "e2", net::NetworkIsolationKey()); + storage_partition(), kContextUrl, "e1", "e2", + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.QueueWorkerInitializationReport( GURL("https://www1.example.com/x.js"), @@ -478,9 +485,9 @@ mojo::PendingRemote<blink::mojom::ReportingObserver> observer_remote; TestObserver observer(observer_remote.InitWithNewPipeAndPassReceiver()); - CrossOriginEmbedderPolicyReporter reporter(storage_partition(), kContextUrl, - absl::nullopt, absl::nullopt, - net::NetworkIsolationKey()); + CrossOriginEmbedderPolicyReporter reporter( + storage_partition(), kContextUrl, absl::nullopt, absl::nullopt, + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.BindObserver(std::move(observer_remote)); reporter.QueueWorkerInitializationReport( GURL("https://www1.example.com/x.js#foo?bar=baz"), @@ -510,7 +517,8 @@ UserAndPassForWorkerInitialization) { const GURL kContextUrl("https://example.com/path"); CrossOriginEmbedderPolicyReporter reporter( - storage_partition(), kContextUrl, "e1", "e2", net::NetworkIsolationKey()); + storage_partition(), kContextUrl, "e1", "e2", + base::UnguessableToken::Create(), net::NetworkIsolationKey()); reporter.QueueWorkerInitializationReport( GURL("https://u:p@www1.example.com/x.js"), /*report_only=*/false);
diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/content/browser/net/cross_origin_opener_policy_reporter.cc index 3f4ded2..1b3e19e6 100644 --- a/content/browser/net/cross_origin_opener_policy_reporter.cc +++ b/content/browser/net/cross_origin_opener_policy_reporter.cc
@@ -139,12 +139,16 @@ const GURL& context_url, const GURL& context_referrer_url, const network::CrossOriginOpenerPolicy& coop, + const base::UnguessableToken& reporting_source, const net::NetworkIsolationKey& network_isolation_key) : storage_partition_(storage_partition), context_url_(context_url), context_referrer_url_(SanitizedURL(context_referrer_url)), coop_(coop), - network_isolation_key_(network_isolation_key) {} + reporting_source_(reporting_source), + network_isolation_key_(network_isolation_key) { + DCHECK(!reporting_source_.is_empty()); +} CrossOriginOpenerPolicyReporter::~CrossOriginOpenerPolicyReporter() = default;
diff --git a/content/browser/net/cross_origin_opener_policy_reporter.h b/content/browser/net/cross_origin_opener_policy_reporter.h index 7029ea03..d8ebf0b 100644 --- a/content/browser/net/cross_origin_opener_policy_reporter.h +++ b/content/browser/net/cross_origin_opener_policy_reporter.h
@@ -37,6 +37,7 @@ const GURL& context_url, const GURL& context_referrer_url, const network::CrossOriginOpenerPolicy& coop, + const base::UnguessableToken& reporting_source, const net::NetworkIsolationKey& network_isolation_key); ~CrossOriginOpenerPolicyReporter(); CrossOriginOpenerPolicyReporter(const CrossOriginOpenerPolicyReporter&) = @@ -89,6 +90,7 @@ const GURL context_url_; const std::string context_referrer_url_; const network::CrossOriginOpenerPolicy coop_; + const base::UnguessableToken reporting_source_; const net::NetworkIsolationKey network_isolation_key_; mojo::UniqueReceiverSet<network::mojom::CrossOriginOpenerPolicyReporter>
diff --git a/content/browser/net/cross_origin_opener_policy_reporter_unittest.cc b/content/browser/net/cross_origin_opener_policy_reporter_unittest.cc index 8e66c661..6d4c1dc 100644 --- a/content/browser/net/cross_origin_opener_policy_reporter_unittest.cc +++ b/content/browser/net/cross_origin_opener_policy_reporter_unittest.cc
@@ -73,6 +73,9 @@ const TestNetworkContext& network_context() const { return network_context_; } const GURL& context_url() const { return context_url_; } const network::CrossOriginOpenerPolicy& coop() const { return coop_; } + const base::UnguessableToken& reporting_source() const { + return reporting_source_; + } const net::NetworkIsolationKey& network_isolation_key() const { return network_isolation_key_; } @@ -81,7 +84,7 @@ std::unique_ptr<CrossOriginOpenerPolicyReporter> GetReporter() { return std::make_unique<CrossOriginOpenerPolicyReporter>( storage_partition(), context_url(), GURL("https://referrer.com/?a#b"), - coop(), network_isolation_key_); + coop(), reporting_source(), network_isolation_key_); } private: @@ -90,6 +93,8 @@ TestStoragePartition storage_partition_; GURL context_url_; network::CrossOriginOpenerPolicy coop_; + const base::UnguessableToken reporting_source_ = + base::UnguessableToken::Create(); const net::NetworkIsolationKey network_isolation_key_ = net::NetworkIsolationKey::CreateTransient(); };
diff --git a/content/browser/renderer_host/cross_origin_opener_policy_status.cc b/content/browser/renderer_host/cross_origin_opener_policy_status.cc index aa98c8e0..9858d02 100644 --- a/content/browser/renderer_host/cross_origin_opener_policy_status.cc +++ b/content/browser/renderer_host/cross_origin_opener_policy_status.cc
@@ -165,9 +165,13 @@ StoragePartition* storage_partition = frame_tree_node_->current_frame_host() ->GetProcess() ->GetStoragePartition(); + // TODO(crbug.com/1209057): This should not create a new reporting source + // token. The navigation request should have a token which is used here, and + // is either migrated to the document when it loads, or updated in the COOP + // reporter to the document's source token instead. auto response_reporter = std::make_unique<CrossOriginOpenerPolicyReporter>( storage_partition, response_url, response_referrer_url, response_coop, - network_isolation_key); + base::UnguessableToken::Create(), network_isolation_key); CrossOriginOpenerPolicyReporter* previous_reporter = use_current_document_coop_reporter_ ? frame_tree_node_->current_frame_host()->coop_reporter()
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc index 7bcc562..ec767d43 100644 --- a/content/browser/renderer_host/delegated_frame_host.cc +++ b/content/browser/renderer_host/delegated_frame_host.cc
@@ -219,6 +219,10 @@ const viz::LocalSurfaceId& new_local_surface_id, const gfx::Size& new_dip_size, cc::DeadlinePolicy deadline_policy) { + TRACE_EVENT2("viz", "DelegatedFrameHost::EmbedSurface", "surface_id", + new_local_surface_id.ToString(), "deadline_policy", + deadline_policy.ToString()); + const viz::SurfaceId* primary_surface_id = client_->DelegatedFrameHostGetLayer()->GetSurfaceId(); @@ -242,7 +246,13 @@ // time user switches back to it the page is blank. This is preferred to // showing contents of old size. Don't call EvictDelegatedFrame to avoid // races when dragging tabs across displays. See https://crbug.com/813157. - if (surface_dip_size_ != current_frame_size_in_dip_) { + // + // An empty |current_frame_size_in_dip_| indicates this renderer has never + // been made visible. This is the case for pre-rendered contents. Don't use + // the primary id as fallback since it's guaranteed to have no content. See + // crbug.com/1218238. + if (!current_frame_size_in_dip_.IsEmpty() && + surface_dip_size_ != current_frame_size_in_dip_) { client_->DelegatedFrameHostGetLayer()->SetOldestAcceptableFallback( new_primary_surface_id); }
diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc index 7981df9..53cdf6039 100644 --- a/content/browser/renderer_host/navigation_controller_impl.cc +++ b/content/browser/renderer_host/navigation_controller_impl.cc
@@ -100,6 +100,7 @@ #include "third_party/blink/public/common/history/session_history_constants.h" #include "third_party/blink/public/common/mime_util/mime_util.h" #include "third_party/blink/public/common/page_state/page_state_serialization.h" +#include "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom.h" #include "url/url_constants.h" namespace content { @@ -3506,7 +3507,7 @@ absl::nullopt /* appcache_host_id */, blink::mojom::WasActivatedOption::kUnknown, base::UnguessableToken::Create() /* navigation_token */, - std::vector<mojom::PrefetchedSignedExchangeInfoPtr>(), + std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr>(), #if defined(OS_ANDROID) std::string(), /* data_url_as_string */ #endif
diff --git a/content/browser/renderer_host/navigation_controller_impl_browsertest.cc b/content/browser/renderer_host/navigation_controller_impl_browsertest.cc index 3f5ec9c3..239edd9 100644 --- a/content/browser/renderer_host/navigation_controller_impl_browsertest.cc +++ b/content/browser/renderer_host/navigation_controller_impl_browsertest.cc
@@ -7273,9 +7273,9 @@ // which is the URL that initiated the client redirect. EXPECT_EQ(entry->GetOriginalRequestURL(), start_url); - // The referrer is |start_url| (the previous URL) since the fragment - // navigation is considered a client-side redirect. - ExpectReferrerWithDefaultPolicy(entry, start_url); + // No referrer (same as the referrer used for loading the document) since + // the refererrer doesn't change on same-document navigations. + ExpectReferrerWithDefaultPolicy(entry, GURL()); } { @@ -7306,9 +7306,9 @@ // which is the URL that initiated the client redirect. EXPECT_EQ(entry->GetOriginalRequestURL(), fragment_url); - // The referrer is |fragment_url| (the previous URL) since the fragment - // navigation is considered a client-side redirect. - ExpectReferrerWithDefaultPolicy(entry, fragment_url); + // No referrer (same as the referrer used for loading the document) since + // the refererrer doesn't change on same-document navigations. + ExpectReferrerWithDefaultPolicy(entry, GURL()); } { @@ -7334,9 +7334,8 @@ // is also the final URL. EXPECT_EQ(entry->GetOriginalRequestURL(), fragment_url_2); - // No referrer since for same-document navigations that aren't categorized - // as client redirects, the original referrer that loaded the document - // is used. + // No referrer (same as the referrer used for loading the document) since + // the refererrer doesn't change on same-document navigations. ExpectReferrerWithDefaultPolicy(entry, GURL()); } @@ -7368,9 +7367,8 @@ // is also the final URL. EXPECT_EQ(entry->GetOriginalRequestURL(), fragment_url_3); - // No referrer since for same-document navigations that aren't categorized - // as client redirects, the original referrer that loaded the document - // is used. + // No referrer (same as the referrer used for loading the document) since + // the refererrer doesn't change on same-document navigations. ExpectReferrerWithDefaultPolicy(entry, GURL()); } } @@ -7441,9 +7439,10 @@ EXPECT_EQ(frame_entry->redirect_chain()[0], iframe_url); EXPECT_EQ(frame_entry->redirect_chain()[1], fragment_url); - // The referrer is |iframe_url| (the previous URL) since the fragment - // navigation is considered a client-side redirect. - ExpectReferrerWithDefaultPolicy(frame_entry.get(), iframe_url); + // The referrer is the main frame's URL (same as the referrer used for + // loading the document) since the refererrer doesn't change on + // same-document navigations. + ExpectReferrerWithDefaultPolicy(frame_entry.get(), start_url); } GURL fragment_url_2(embedded_test_server()->GetURL("/title1.html#bar")); @@ -7469,8 +7468,9 @@ EXPECT_EQ(frame_entry->redirect_chain().size(), 1u); EXPECT_EQ(frame_entry->redirect_chain()[0], fragment_url_2); - // The referrer is the main frame's URL since the fragment navigation is - // started by a link click in the main frame. + // The referrer is the main frame's URL (same as the referrer used for + // loading the document) since the refererrer doesn't change on + // same-document navigations. ExpectReferrerWithDefaultPolicy(frame_entry.get(), start_url); } @@ -8518,9 +8518,10 @@ // which is the URL that initiated the client redirect. EXPECT_EQ(entry->GetOriginalRequestURL(), client_redirect_target_url); - // The referrer is |client_redirect_target_url| (the previous URL) since the - // fragment navigation is considered a client-side redirect. - ExpectReferrerWithDefaultPolicy(entry, client_redirect_target_url); + // The referrer is |client_redirecting_url| (same as the referrer used for + // loading the document) since the referrer doesn't change on same-document + // navigations. + ExpectReferrerWithDefaultPolicy(entry, client_redirecting_url); } } @@ -8569,9 +8570,10 @@ // which is the URL that initiated the client redirect. EXPECT_EQ(entry->GetOriginalRequestURL(), client_redirecting_url); - // The referrer is |client_redirecting_url| since the navigation is a - // client-side redirect. - ExpectReferrerWithDefaultPolicy(entry, client_redirecting_url); + // No referrer since the navigation started as a browser-initiated + // navigation, and the client redirect that happened afterwards is a + // same-document navigation, which won't change the referrer. + ExpectReferrerWithDefaultPolicy(entry, GURL()); } { @@ -8601,9 +8603,9 @@ // which is the URL that initiated the client redirect. EXPECT_EQ(entry->GetOriginalRequestURL(), client_redirect_target_url); - // The referrer is |client_redirect_target_url| (the previous URL) since the - // fragment navigation is considered a client-side redirect. - ExpectReferrerWithDefaultPolicy(entry, client_redirect_target_url); + // No referrer (same as the referrer used for loading the document) since + // the refererrer doesn't change on same-document navigations. + ExpectReferrerWithDefaultPolicy(entry, GURL()); } }
diff --git a/content/browser/renderer_host/navigation_entry_impl.cc b/content/browser/renderer_host/navigation_entry_impl.cc index 25fea46..b5b6925 100644 --- a/content/browser/renderer_host/navigation_entry_impl.cc +++ b/content/browser/renderer_host/navigation_entry_impl.cc
@@ -32,6 +32,7 @@ #include "services/metrics/public/cpp/ukm_source_id.h" #include "third_party/blink/public/common/page_state/page_state_serialization.h" #include "third_party/blink/public/mojom/frame/frame.mojom.h" +#include "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom.h" #include "ui/gfx/text_elider.h" #if defined(OS_ANDROID) @@ -815,7 +816,7 @@ should_clear_history_list(), mojom::NavigationTiming::New(), absl::nullopt, blink::mojom::WasActivatedOption::kUnknown, base::UnguessableToken::Create(), - std::vector<mojom::PrefetchedSignedExchangeInfoPtr>(), + std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr>(), #if defined(OS_ANDROID) std::string(), #endif
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc index a96e9ab..ea70333f 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc
@@ -134,6 +134,7 @@ #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom.h" #include "third_party/blink/public/mojom/frame/frame_owner_element_type.mojom-shared.h" #include "third_party/blink/public/mojom/loader/mixed_content.mojom.h" +#include "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom.h" #include "third_party/blink/public/mojom/service_worker/service_worker_provider.mojom.h" #include "third_party/blink/public/mojom/web_feature/web_feature.mojom.h" #include "third_party/blink/public/platform/resource_request_blocked_reason.h" @@ -888,8 +889,9 @@ std::unique_ptr<NavigationRequest> navigation_request(new NavigationRequest( frame_tree_node, std::move(common_params), std::move(navigation_params), std::move(commit_params), browser_initiated, - false /* from_begin_navigation */, false /* is_for_commit */, frame_entry, - entry, std::move(navigation_ui_data), std::move(blob_url_loader_factory), + false /* from_begin_navigation */, + false /* is_synchronous_renderer_commit */, frame_entry, entry, + std::move(navigation_ui_data), std::move(blob_url_loader_factory), mojo::NullAssociatedRemote(), nullptr /* prefetched_signed_exchange_cache */, nullptr /* web_bundle_handle_tracker */, @@ -954,7 +956,7 @@ blink::mojom::WasActivatedOption::kUnknown, /*navigation_token=*/base::UnguessableToken::Create(), /*prefetched_signed_exchanges=*/ - std::vector<mojom::PrefetchedSignedExchangeInfoPtr>(), + std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr>(), #if defined(OS_ANDROID) /*data_url_as_string=*/std::string(), #endif @@ -989,7 +991,7 @@ std::move(commit_params), false, // browser_initiated true, // from_begin_navigation - false, // is_for_commit + false, // is_synchronous_renderer_commit nullptr, // frame_entry entry, nullptr, // navigation_ui_data @@ -1072,7 +1074,7 @@ mojom::NavigationTiming::New(), absl::nullopt /* appcache_host_id */, blink::mojom::WasActivatedOption::kUnknown, base::UnguessableToken::Create() /* navigation_token */, - std::vector<mojom::PrefetchedSignedExchangeInfoPtr>(), + std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr>(), #if defined(OS_ANDROID) std::string() /* data_url_as_string */, #endif @@ -1097,7 +1099,8 @@ std::unique_ptr<NavigationRequest> navigation_request(new NavigationRequest( frame_tree_node, std::move(common_params), std::move(begin_params), std::move(commit_params), false /* browser_initiated */, - false /* from_begin_navigation */, true /* is_for_commit */, + false /* from_begin_navigation */, + true /* is_synchronous_renderer_commit */, nullptr /* frame_navigation_entry */, nullptr /* navigation_entry */, nullptr /* navigation_ui_data */, nullptr /* blob_url_loader_factory */, mojo::NullAssociatedRemote(), @@ -1120,7 +1123,7 @@ navigation_request->coep_reporter_ = std::move(coep_reporter); navigation_request->isolation_info_for_subresources_ = isolation_info_for_subresources; - navigation_request->StartNavigation(true); + navigation_request->StartNavigation(); DCHECK(navigation_request->IsNavigationStarted()); return navigation_request; @@ -1137,7 +1140,7 @@ mojom::CommitNavigationParamsPtr commit_params, bool browser_initiated, bool from_begin_navigation, - bool is_for_commit, + bool is_synchronous_renderer_commit, const FrameNavigationEntry* frame_entry, NavigationEntryImpl* entry, std::unique_ptr<NavigationUIData> navigation_ui_data, @@ -1150,7 +1153,7 @@ int initiator_process_id, bool was_opener_suppressed) : frame_tree_node_(frame_tree_node), - is_for_commit_(is_for_commit), + is_synchronous_renderer_commit_(is_synchronous_renderer_commit), common_params_(std::move(common_params)), begin_params_(std::move(begin_params)), commit_params_(std::move(commit_params)), @@ -1362,7 +1365,7 @@ net::HttpRequestHeaders headers; // Only add specific headers when creating a NavigationRequest before the // network request is made, not at commit time. - if (!is_for_commit) { + if (!is_synchronous_renderer_commit) { BrowserContext* browser_context = controller->GetBrowserContext(); ClientHintsControllerDelegate* client_hints_delegate = browser_context->GetClientHintsControllerDelegate(); @@ -1568,7 +1571,7 @@ if (net_error != net::OK) { // Create a navigation handle so that the correct error code can be set on // it by OnRequestFailedInternal(). - StartNavigation(false); + StartNavigation(); OnRequestFailedInternal(network::URLLoaderCompletionStatus(net_error), false /* skip_throttles */, absl::nullopt /* error_page_content */, @@ -1584,7 +1587,7 @@ LegacyProtocolInSubresourceCheckResult::BLOCK_REQUEST) { // Create a navigation handle so that the correct error code can be set on // it by OnRequestFailedInternal(). - StartNavigation(false); + StartNavigation(); OnRequestFailedInternal( network::URLLoaderCompletionStatus(net::ERR_ABORTED), false /* skip_throttles */, absl::nullopt /* error_page_content */, @@ -1595,7 +1598,7 @@ return; } - StartNavigation(false); + StartNavigation(); if (CheckAboutSrcDoc() == AboutSrcDocCheckResult::BLOCK_REQUEST) { OnRequestFailedInternal( @@ -1732,8 +1735,9 @@ SetState(WAITING_FOR_RENDERER_RESPONSE); } -void NavigationRequest::StartNavigation(bool is_for_commit) { - DCHECK(frame_tree_node_->navigation_request() == this || is_for_commit); +void NavigationRequest::StartNavigation() { + DCHECK(frame_tree_node_->navigation_request() == this || + is_synchronous_renderer_commit_); FrameTreeNode* frame_tree_node = frame_tree_node_; if (blink::features::IsPrerender2Enabled()) { @@ -1784,7 +1788,7 @@ // Finally, add the current URL to the vector of redirects. // Note: for NavigationRequests created at commit time, the current URL has // been added to |commit_params_->redirects|, so don't add it a second time. - if (!is_for_commit) { + if (!is_synchronous_renderer_commit_) { if (!common_params_->base_url_for_data_url.is_empty()) { // If this is a loadDataWithBaseURL/loadDataAsStringWithBaseUrl // navigation, use the base URL instead of the data: URL used for commit. @@ -2026,6 +2030,7 @@ storage_partition, common_params_->url, cross_origin_embedder_policy_.reporting_endpoint, cross_origin_embedder_policy_.report_only_reporting_endpoint, + render_frame_host_->GetFrameToken().value(), isolation_info_for_subresources_.network_isolation_key()); } @@ -5432,7 +5437,7 @@ dict.Add("frame_tree_node", frame_tree_node_); dict.Add("browser_initiated", commit_params_->is_browser_initiated); dict.Add("from_begin_navigation", from_begin_navigation_); - dict.Add("is_for_commit", is_for_commit_); + dict.Add("is_synchronous_renderer_commit", is_synchronous_renderer_commit_); dict.Add("reload_type", reload_type_); dict.Add("state", state_); dict.Add("navigation_type", common_params_->navigation_type); @@ -5942,7 +5947,7 @@ void NavigationRequest::SetIsOverridingUserAgent(bool override_ua) { // Only add specific headers when creating a NavigationRequest before the // network request is made, not at commit time. - if (is_for_commit_) + if (is_synchronous_renderer_commit_) return; // This code assumes it is only called from DidStartNavigation().
diff --git a/content/browser/renderer_host/navigation_request.h b/content/browser/renderer_host/navigation_request.h index e89b034..581843d 100644 --- a/content/browser/renderer_host/navigation_request.h +++ b/content/browser/renderer_host/navigation_request.h
@@ -455,10 +455,8 @@ // Notifies the NavigatorDelegate the navigation started. This should be // called after any previous NavigationRequest for the FrameTreeNode has been - // destroyed. |is_for_commit| should only be true when creating a - // NavigationRequest at commit time (this happens for renderer-initiated - // same-document navigations). - void StartNavigation(bool is_for_commit); + // destroyed. + void StartNavigation(); void set_on_start_checks_complete_closure_for_testing( base::OnceClosure closure) { @@ -928,7 +926,7 @@ mojom::CommitNavigationParamsPtr commit_params, bool browser_initiated, bool from_begin_navigation, - bool is_for_commit, + bool is_synchronous_renderer_commit, const FrameNavigationEntry* frame_navigation_entry, NavigationEntryImpl* navitation_entry, std::unique_ptr<NavigationUIData> navigation_ui_data, @@ -1356,8 +1354,12 @@ // Never null. The pointee node owns this navigation request instance. FrameTreeNode* const frame_tree_node_; - // Value of |is_for_commit| supplied to the constructor. - const bool is_for_commit_; + // Used for short-lived NavigationRequest created at DidCommit time for the + // purpose of committing navigation that were not driven by the browser + // process. This is used in only two cases: + // - same-document navigation initiated by the renderer process. + // - the synchronous about:blank navigation. + const bool is_synchronous_renderer_commit_; // Invariant: At least one of |loader_| or |render_frame_host_| is null. RenderFrameHostImpl* render_frame_host_ = nullptr;
diff --git a/content/browser/renderer_host/navigation_request_unittest.cc b/content/browser/renderer_host/navigation_request_unittest.cc index da3d9c12..e242672 100644 --- a/content/browser/renderer_host/navigation_request_unittest.cc +++ b/content/browser/renderer_host/navigation_request_unittest.cc
@@ -76,15 +76,12 @@ } void TearDown() override { - // Release the |request_| before destroying the WebContents, to match - // the WebContentsObserverConsistencyChecker expectations. - request_.reset(); RenderViewHostImplTestHarness::TearDown(); } void CancelDeferredNavigation( NavigationThrottle::ThrottleCheckResult result) { - request_->CancelDeferredNavigationInternal(result); + GetNavigationRequest()->CancelDeferredNavigationInternal(result); } // Helper function to call WillStartRequest on |handle|. If this function @@ -96,11 +93,11 @@ // It's safe to use base::Unretained since the NavigationRequest is owned by // the NavigationRequestTest. - request_->set_complete_callback_for_testing( + GetNavigationRequest()->set_complete_callback_for_testing( base::BindOnce(&NavigationRequestTest::UpdateThrottleCheckResult, base::Unretained(this))); - request_->WillStartRequest(); + GetNavigationRequest()->WillStartRequest(); } // Helper function to call WillRedirectRequest on |handle|. If this function @@ -114,13 +111,13 @@ // It's safe to use base::Unretained since the NavigationRequest is owned by // the NavigationRequestTest. - request_->set_complete_callback_for_testing( + GetNavigationRequest()->set_complete_callback_for_testing( base::BindOnce(&NavigationRequestTest::UpdateThrottleCheckResult, base::Unretained(this))); - request_->WillRedirectRequest(GURL(), - WebExposedIsolationInfo::CreateNonIsolated(), - nullptr /* post_redirect_process */); + GetNavigationRequest()->WillRedirectRequest( + GURL(), WebExposedIsolationInfo::CreateNonIsolated(), + nullptr /* post_redirect_process */); } // Helper function to call WillFailRequest on |handle|. If this function @@ -131,15 +128,15 @@ const absl::optional<net::SSLInfo> ssl_info = absl::nullopt) { was_callback_called_ = false; callback_result_ = NavigationThrottle::DEFER; - request_->set_net_error(net_error_code); + GetNavigationRequest()->set_net_error(net_error_code); // It's safe to use base::Unretained since the NavigationRequest is owned by // the NavigationRequestTest. - request_->set_complete_callback_for_testing( + GetNavigationRequest()->set_complete_callback_for_testing( base::BindOnce(&NavigationRequestTest::UpdateThrottleCheckResult, base::Unretained(this))); - request_->WillFailRequest(); + GetNavigationRequest()->WillFailRequest(); } // Whether the callback was called. @@ -150,7 +147,9 @@ return callback_result_; } - NavigationRequest::NavigationState state() { return request_->state(); } + NavigationRequest::NavigationState state() { + return GetNavigationRequest()->state(); + } bool call_counts_match(TestNavigationThrottle* throttle, int start, @@ -172,10 +171,10 @@ TestNavigationThrottle* CreateTestNavigationThrottle( NavigationThrottle::ThrottleCheckResult result) { TestNavigationThrottle* test_throttle = - new TestNavigationThrottle(request_.get()); + new TestNavigationThrottle(GetNavigationRequest()); test_throttle->SetResponseForAllMethods(TestNavigationThrottle::SYNCHRONOUS, result); - request_->RegisterThrottleForTesting( + GetNavigationRequest()->RegisterThrottleForTesting( std::unique_ptr<TestNavigationThrottle>(test_throttle)); return test_throttle; } @@ -202,7 +201,7 @@ auto commit_params = CreateCommitNavigationParams(); commit_params->frame_policy = main_test_rfh()->frame_tree_node()->pending_frame_policy(); - request_ = NavigationRequest::CreateBrowserInitiated( + auto request = NavigationRequest::CreateBrowserInitiated( main_test_rfh()->frame_tree_node(), std::move(common_params), std::move(commit_params), false /* browser-initiated */, false /* was_opener_suppressed */, nullptr /* initiator_frame_token */, @@ -210,7 +209,9 @@ std::string() /* extra_headers */, nullptr /* frame_entry */, nullptr /* entry */, nullptr /* post_body */, nullptr /* navigation_ui_data */, absl::nullopt /* impression */); - request_->StartNavigation(true); + main_test_rfh()->frame_tree_node()->CreatedNavigationRequest( + std::move(request)); + GetNavigationRequest()->StartNavigation(); } private: @@ -224,7 +225,11 @@ return true; } - std::unique_ptr<NavigationRequest> request_; + // This must be called after CreateNavigationHandle(). + NavigationRequest* GetNavigationRequest() { + return main_test_rfh()->frame_tree_node()->navigation_request(); + } + bool was_callback_called_ = false; NavigationThrottle::ThrottleCheckResult callback_result_; };
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index b6fd3855..a0b5dce11 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -6148,7 +6148,7 @@ std::make_unique<CrossOriginOpenerPolicyReporter>( GetProcess()->GetStoragePartition(), GetLastCommittedURL(), params->referrer->url, main_frame->cross_origin_opener_policy(), - isolation_info_.network_isolation_key())); + frame_token_.value(), isolation_info_.network_isolation_key())); } mojo::PendingAssociatedRemote<mojom::Frame> pending_frame_remote; @@ -9093,7 +9093,7 @@ GetProcess()->GetStoragePartition(), url, cross_origin_embedder_policy_.reporting_endpoint, cross_origin_embedder_policy_.report_only_reporting_endpoint, - isolation_info.network_isolation_key()); + frame_token_.value(), isolation_info.network_isolation_key()); } std::unique_ptr<WebBundleNavigationInfo> web_bundle_navigation_info; if (is_same_document && web_bundle_handle_ &&
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 6fcb172..a15dc1bf 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -68,6 +68,8 @@ #include "base/trace_event/memory_dump_manager.h" #include "base/trace_event/memory_dump_provider.h" #include "base/trace_event/trace_event.h" +#include "base/trace_event/typed_macros.h" +#include "base/tracing/protos/chrome_track_event.pbzero.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "cc/base/switches.h" @@ -292,6 +294,8 @@ namespace { +using perfetto::protos::pbzero::ChromeTrackEvent; + // Stores the maximum number of renderer processes the content module can // create. Only applies if it is set to a non-zero value. size_t g_max_renderer_count_override = 0; @@ -1712,11 +1716,12 @@ instance_weak_factory_(absl::in_place, this), shutdown_exit_code_(-1) { CHECK(!browser_context->ShutdownStarted()); - TRACE_EVENT2("shutdown", "RenderProcessHostImpl", "render_process_host", this, - "id", GetID()); - TRACE_EVENT_NESTABLE_ASYNC_BEGIN2("shutdown", "Browser.RenderProcessHostImpl", - this, "render_process_host", this, - "browser_context", browser_context_); + TRACE_EVENT("shutdown", "RenderProcessHostImpl", + ChromeTrackEvent::kRenderProcessHost, *this); + TRACE_EVENT_BEGIN("shutdown", "Browser.RenderProcessHostImpl", + perfetto::Track::FromPointer(this), + ChromeTrackEvent::kRenderProcessHost, *this); + widget_helper_ = new RenderWidgetHelper(); ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetID(), browser_context); @@ -1826,8 +1831,8 @@ } RenderProcessHostImpl::~RenderProcessHostImpl() { - TRACE_EVENT2("shutdown", "~RenderProcessHostImpl", "render_process_host", - this, "id", GetID()); + TRACE_EVENT("shutdown", "~RenderProcessHostImpl", + ChromeTrackEvent::kRenderProcessHost, *this); DCHECK_CURRENTLY_ON(BrowserThread::UI); #ifndef NDEBUG DCHECK(is_self_deleted_) @@ -1858,16 +1863,19 @@ if (cleanup_network_service_plugin_exceptions_upon_destruction_) RemoveNetworkServicePluginExceptions(GetID()); - TRACE_EVENT_NESTABLE_ASYNC_END1("shutdown", "Cleanup in progress", this, - "render_process_host", this); - TRACE_EVENT_NESTABLE_ASYNC_END1("shutdown", "Browser.RenderProcessHostImpl", - this, "render_process_host", this); // Manually delete here in order to avoid DeleteOnIOThread trait when // kProcessHostOnUI is enabled. if (base::FeatureList::IsEnabled(features::kProcessHostOnUI) && gpu_client_) { delete gpu_client_.release(); } + + // "Cleanup in progress" + TRACE_EVENT_END("shutdown", perfetto::Track::FromPointer(this), + ChromeTrackEvent::kRenderProcessHost, *this); + // "Browser.RenderProcessHostImpl" + TRACE_EVENT_END("shutdown", perfetto::Track::FromPointer(this), + ChromeTrackEvent::kRenderProcessHost, *this); } bool RenderProcessHostImpl::Init() { @@ -2381,6 +2389,22 @@ .ToString()); } +void RenderProcessHostImpl::WriteIntoTrace( + perfetto::TracedProto<perfetto::protos::pbzero::RenderProcessHost> proto) { + int id = GetID(); + proto->set_id(id); + proto->set_process_lock(ChildProcessSecurityPolicyImpl::GetInstance() + ->GetProcessLock(id) + .ToString()); + browser_context_->WriteIntoTrace( + proto.WriteNestedMessage<perfetto::protos::pbzero::RenderProcessHost:: + FieldMetadata_BrowserContext>()); + + // TODO(ssid): Consider moving this to ChildProcessLauncher proto field. + if (child_process_launcher_) + proto->set_child_process_id(child_process_launcher_->GetProcess().Pid()); +} + void RenderProcessHostImpl::RegisterMojoInterfaces() { auto registry = std::make_unique<service_manager::BinderRegistry>(); @@ -2817,9 +2841,8 @@ } void RenderProcessHostImpl::DisableKeepAliveRefCount() { - TRACE_EVENT2("shutdown", "RenderProcessHostImpl::DisableKeepAliveRefCount", - "browser_context", browser_context_, "render_process_host", - this); + TRACE_EVENT("shutdown", "RenderProcessHostImpl::DisableKeepAliveRefCount", + ChromeTrackEvent::kRenderProcessHost, *this); DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -2887,16 +2910,26 @@ void RenderProcessHostImpl::AddRoute(int32_t routing_id, IPC::Listener* listener) { - TRACE_EVENT2("shutdown", "RenderProcessHostImpl::AddRoute", - "render_process_host", this, "routing_id", routing_id); + TRACE_EVENT("shutdown", "RenderProcessHostImpl::AddRoute", + ChromeTrackEvent::kRenderProcessHost, *this, + [&](perfetto::EventContext ctx) { + auto* proto = ctx.event<ChromeTrackEvent>() + ->set_render_process_host_listener_changed(); + proto->set_routing_id(routing_id); + }); CHECK(!listeners_.Lookup(routing_id)) << "Found Routing ID Conflict: " << routing_id; listeners_.AddWithID(listener, routing_id); } void RenderProcessHostImpl::RemoveRoute(int32_t routing_id) { - TRACE_EVENT2("shutdown", "RenderProcessHostImpl::RemoveRoute", - "render_process_host", this, "routing_id", routing_id); + TRACE_EVENT("shutdown", "RenderProcessHostImpl::RemoveRoute", + ChromeTrackEvent::kRenderProcessHost, *this, + [&](perfetto::EventContext ctx) { + auto* proto = ctx.event<ChromeTrackEvent>() + ->set_render_process_host_listener_changed(); + proto->set_routing_id(routing_id); + }); DCHECK(listeners_.Lookup(routing_id) != nullptr); listeners_.Remove(routing_id); Cleanup(); @@ -3772,8 +3805,8 @@ } void RenderProcessHostImpl::Cleanup() { - TRACE_EVENT1("shutdown", "RenderProcessHostImpl::Cleanup", - "render_process_host", this); + TRACE_EVENT("shutdown", "RenderProcessHostImpl::Cleanup", + ChromeTrackEvent::kRenderProcessHost, *this); DCHECK_CURRENTLY_ON(BrowserThread::UI); // Keep the one renderer thread around forever in single process mode. if (run_renderer_in_process()) @@ -3785,10 +3818,9 @@ // been made, and guarantee that the RenderProcessHostDestroyed observer // callback is always the last callback fired. if (within_process_died_observer_) { - TRACE_EVENT1( - "shutdown", - "RenderProcessHostImpl::Cleanup : within_process_died_observer", - "render_process_host", this); + TRACE_EVENT("shutdown", + "RenderProcessHostImpl::Cleanup : within_process_died_observer", + ChromeTrackEvent::kRenderProcessHost, *this); delayed_cleanup_needed_ = true; return; } @@ -3804,23 +3836,32 @@ // Until there are no other owners of this object, we can't delete // ourselves. if (!listeners_.IsEmpty()) { - TRACE_EVENT2("shutdown", "RenderProcessHostImpl::Cleanup : Has listeners.", - "render_process_host", this, "listener_count", - listeners_.size()); + TRACE_EVENT( + "shutdown", "RenderProcessHostImpl::Cleanup : Has listeners.", + ChromeTrackEvent::kRenderProcessHost, *this, + [&](perfetto::EventContext ctx) { + auto* proto = + ctx.event<ChromeTrackEvent>()->set_render_process_host_cleanup(); + proto->set_listener_count(listeners_.size()); + }); return; } else if (keep_alive_ref_count_ != 0) { - TRACE_EVENT2("shutdown", - "RenderProcessHostImpl::Cleanup : Have keep_alive_ref.", - "render_process_host", this, "keep_alive_ref_count_", - keep_alive_ref_count_); + TRACE_EVENT( + "shutdown", "RenderProcessHostImpl::Cleanup : Have keep_alive_ref.", + ChromeTrackEvent::kRenderProcessHost, *this, + [&](perfetto::EventContext ctx) { + auto* proto = + ctx.event<ChromeTrackEvent>()->set_render_process_host_cleanup(); + proto->set_keep_alive_ref_count(keep_alive_ref_count_); + }); return; } - TRACE_EVENT1("shutdown", "RenderProcessHostImpl::Cleanup : Starting cleanup.", - "render_process_host", this); - TRACE_EVENT_NESTABLE_ASYNC_BEGIN2("shutdown", "Cleanup in progress", this, - "render_process_host", this, - "browser_context", browser_context_); + TRACE_EVENT("shutdown", "RenderProcessHostImpl::Cleanup : Starting cleanup.", + ChromeTrackEvent::kRenderProcessHost, *this); + TRACE_EVENT_BEGIN("shutdown", "Cleanup in progress", + perfetto::Track::FromPointer(this), + ChromeTrackEvent::kRenderProcessHost, *this); if (is_initialized_) { GetIOThreadTaskRunner({})->PostTask( @@ -3995,19 +4036,26 @@ // static void RenderProcessHostImpl::RegisterHost(int host_id, RenderProcessHost* host) { - TRACE_EVENT2("shutdown", "RenderProcessHostImpl::RegisterHost", - "render_process_host", host, "host_id", host_id); + TRACE_EVENT( + "shutdown", "RenderProcessHostImpl::RegisterHost", + [&](perfetto::EventContext ctx) { + ctx.event<ChromeTrackEvent>()->set_render_process_host()->set_id( + host_id); + }); GetAllHosts().AddWithID(host, host_id); } // static void RenderProcessHostImpl::UnregisterHost(int host_id) { RenderProcessHost* host = GetAllHosts().Lookup(host_id); - TRACE_EVENT2("shutdown", "RenderProcessHostImpl::UnregisterHost", - "render_process_host", host, "host_id", host_id); - if (!host) return; + TRACE_EVENT( + "shutdown", "RenderProcessHostImpl::UnregisterHost", + [&](perfetto::EventContext ctx) { + ctx.event<ChromeTrackEvent>()->set_render_process_host()->set_id( + host_id); + }); GetAllHosts().Remove(host_id); @@ -4896,9 +4944,9 @@ priority_.is_background() != priority.is_background(); const bool visibility_state_changed = priority_.visible != priority.visible; - TRACE_EVENT2("renderer_host", "RenderProcessHostImpl::UpdateProcessPriority", - "should_background", priority.is_background(), - "has_pending_views", priority.boost_for_pending_views); + TRACE_EVENT("renderer_host", "RenderProcessHostImpl::UpdateProcessPriority", + ChromeTrackEvent::kRenderProcessHost, *this, + ChromeTrackEvent::kChildProcessLauncherPriority, priority); priority_ = priority; // Control the background state from the browser process, otherwise the task @@ -4909,13 +4957,6 @@ if (!run_renderer_in_process()) { DCHECK(child_process_launcher_.get()); DCHECK(!child_process_launcher_->IsStarting()); - // Make sure to keep the pid in the trace so we can tell which process is - // being modified. - TRACE_EVENT2( - "renderer_host", - "RenderProcessHostImpl::UpdateProcessPriority.SetProcessPriority", - "pid", child_process_launcher_->GetProcess().Pid(), - "priority_is_background", priority.is_background()); child_process_launcher_->SetProcessPriority(priority_); }
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h index c48483c..fdee545 100644 --- a/content/browser/renderer_host/render_process_host_impl.h +++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -84,6 +84,7 @@ #include "third_party/blink/public/mojom/plugins/plugin_registry.mojom-forward.h" #include "third_party/blink/public/mojom/push_messaging/push_messaging.mojom-forward.h" #include "third_party/blink/public/mojom/webdatabase/web_database.mojom-forward.h" +#include "third_party/perfetto/include/perfetto/tracing/traced_proto.h" #include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h" #include "ui/gfx/gpu_memory_buffer.h" @@ -104,6 +105,14 @@ class SystemTracingService; } +namespace perfetto { +namespace protos { +namespace pbzero { +class RenderProcessHost; +} +} // namespace protos +} // namespace perfetto + namespace viz { class GpuClient; } @@ -296,6 +305,9 @@ child_process_activity_time_ = base::TimeTicks::Now(); } + void WriteIntoTrace( + perfetto::TracedProto<perfetto::protos::pbzero::RenderProcessHost> proto); + // Return the set of previously stored frame tokens for a |new_routing_id|. // The frame tokens were stored on the IO thread via the // RenderMessageFilter::GenerateFrameRoutingID mojo call. Returns false if
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h index ea2aee1..e61f495c 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.h +++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -485,6 +485,8 @@ WebContentsViewReparent); FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraTest, TakeFallbackContent); FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraTest, + TakeFallbackContentForPrerender); + FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraTest, DiscardDelegatedFrames); FRIEND_TEST_ALL_PREFIXES(SitePerProcessHitTestBrowserTest, ScrollOOPIFEditableElement);
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc index a90ac41..ff0204a 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -159,8 +159,7 @@ namespace content { void InstallDelegatedFrameHostClient( - RenderWidgetHostViewAura* render_widget_host_view, - std::unique_ptr<DelegatedFrameHostClient> delegated_frame_host_client); + RenderWidgetHostViewAura* render_widget_host_view); const viz::LocalSurfaceId kArbitraryLocalSurfaceId( 1, @@ -229,25 +228,11 @@ size_t processed_touch_event_count_; }; -class FakeDelegatedFrameHostClientAura : public DelegatedFrameHostClientAura { - public: - explicit FakeDelegatedFrameHostClientAura( - RenderWidgetHostViewAura* render_widget_host_view) - : DelegatedFrameHostClientAura(render_widget_host_view) {} - ~FakeDelegatedFrameHostClientAura() override = default; - - private: - DISALLOW_COPY_AND_ASSIGN(FakeDelegatedFrameHostClientAura); -}; - class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura { public: FakeRenderWidgetHostViewAura(RenderWidgetHost* widget) - : RenderWidgetHostViewAura(widget), - delegated_frame_host_client_( - new FakeDelegatedFrameHostClientAura(this)) { - InstallDelegatedFrameHostClient( - this, base::WrapUnique(delegated_frame_host_client_)); + : RenderWidgetHostViewAura(widget) { + InstallDelegatedFrameHostClient(this); } ~FakeRenderWidgetHostViewAura() override = default; @@ -294,7 +279,6 @@ FakeWindowEventDispatcher* dispatcher_; private: - FakeDelegatedFrameHostClientAura* delegated_frame_host_client_; DISALLOW_COPY_AND_ASSIGN(FakeRenderWidgetHostViewAura); }; @@ -391,9 +375,10 @@ FrameTree* frame_tree, RenderWidgetHostDelegate* delegate, AgentSchedulingGroupHost& agent_scheduling_group, - int32_t routing_id) { - return new MockRenderWidgetHostImpl(frame_tree, delegate, - agent_scheduling_group, routing_id); + int32_t routing_id, + bool hidden) { + return new MockRenderWidgetHostImpl( + frame_tree, delegate, agent_scheduling_group, routing_id, hidden); } MockWidgetInputHandler* input_handler() { return &input_handler_; } @@ -422,13 +407,14 @@ MockRenderWidgetHostImpl(FrameTree* frame_tree, RenderWidgetHostDelegate* delegate, AgentSchedulingGroupHost& agent_scheduling_group, - int32_t routing_id) + int32_t routing_id, + bool hidden) : RenderWidgetHostImpl(frame_tree, /*self_owned=*/true, delegate, agent_scheduling_group, routing_id, - /*hidden=*/false, + hidden, /*renderer_initiated_creation=*/false, std::make_unique<FrameTokenMessageQueue>()) { BindWidgetInterfaces(mojo::AssociatedRemote<blink::mojom::WidgetHost>() @@ -493,9 +479,7 @@ 0); } - static void InstallDelegatedFrameHostClient( - RenderWidgetHostViewAura* view, - std::unique_ptr<DelegatedFrameHostClient> delegated_frame_host_client) { + static void InstallDelegatedFrameHostClient(RenderWidgetHostViewAura* view) { // Follow RWHVAura code that does not create DelegateFrameHost when there is // no valid frame sink id. if (!view->frame_sink_id_.is_valid()) @@ -506,12 +490,12 @@ false /* should_register_frame_sink_id */); } - FakeRenderWidgetHostViewAura* CreateView() { + FakeRenderWidgetHostViewAura* CreateView(bool hidden = false) { int32_t routing_id = process_host_->GetNextRoutingID(); delegates_.push_back(std::make_unique<MockRenderWidgetHostDelegate>()); auto* widget_host = MockRenderWidgetHostImpl::Create( GetFrameTree(), delegates_.back().get(), *agent_scheduling_group_host_, - routing_id); + routing_id, hidden); delegates_.back()->set_widget_host(widget_host); return new FakeRenderWidgetHostViewAura(widget_host); @@ -553,7 +537,7 @@ delegates_.push_back(std::make_unique<MockRenderWidgetHostDelegate>()); parent_host_ = MockRenderWidgetHostImpl::Create( GetFrameTree(), delegates_.back().get(), *agent_scheduling_group_host_, - routing_id); + routing_id, /*hidden = */ false); delegates_.back()->set_widget_host(parent_host_); parent_view_ = new RenderWidgetHostViewAura(parent_host_); @@ -731,10 +715,9 @@ }; void InstallDelegatedFrameHostClient( - RenderWidgetHostViewAura* render_widget_host_view, - std::unique_ptr<DelegatedFrameHostClient> delegated_frame_host_client) { + RenderWidgetHostViewAura* render_widget_host_view) { RenderWidgetHostViewAuraTest::InstallDelegatedFrameHostClient( - render_widget_host_view, std::move(delegated_frame_host_client)); + render_widget_host_view); } // TODO(mohsen): Consider moving these tests to OverscrollControllerTest if @@ -3233,7 +3216,7 @@ delegates_.push_back(base::WrapUnique(new MockRenderWidgetHostDelegate)); hosts[i] = MockRenderWidgetHostImpl::Create( GetFrameTree(), delegates_.back().get(), *agent_scheduling_group_host_, - routing_id); + routing_id, /*hidden = */ false); delegates_.back()->set_widget_host(hosts[i]); views[i] = new FakeRenderWidgetHostViewAura(hosts[i]); @@ -3355,7 +3338,7 @@ delegates_.push_back(base::WrapUnique(new MockRenderWidgetHostDelegate)); hosts[i] = MockRenderWidgetHostImpl::Create( GetFrameTree(), delegates_.back().get(), *agent_scheduling_group_host_, - routing_id); + routing_id, /*hidden = */ false); delegates_.back()->set_widget_host(hosts[i]); hosts[i]->BindWidgetInterfaces( @@ -5654,6 +5637,7 @@ aura::client::ParentWindowWithContext( view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), gfx::Rect()); + view_->SetSize(gfx::Size(50, 30)); view_->Show(); view_->Hide(); view_->SetSize(gfx::Size(54, 32)); @@ -5710,6 +5694,42 @@ DestroyView(view2); } +// Check that TakeFallbackContentFrom() copies the fallback SurfaceId and +// background color from the previous view to the new view if the new view is +// for a pre-rendered page which is loaded as hidden. +TEST_F(RenderWidgetHostViewAuraTest, TakeFallbackContentForPrerender) { + FakeRenderWidgetHostViewAura* old_view = CreateView(/*hidden = */ false); + old_view->InitAsChild(nullptr); + aura::client::ParentWindowWithContext( + old_view->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), + gfx::Rect()); + old_view->Show(); + ASSERT_TRUE(old_view->IsShowing()); + ASSERT_TRUE( + old_view->delegated_frame_host_client_->DelegatedFrameHostIsVisible()); + old_view->SetSize(gfx::Size(50, 50)); + + // Initialize the view as hidden. + FakeRenderWidgetHostViewAura* prerender_view = CreateView(/*hidden = */ true); + prerender_view->InitAsChild(nullptr); + aura::client::ParentWindowWithContext( + prerender_view->GetNativeView(), + parent_view_->GetNativeView()->GetRootWindow(), gfx::Rect()); + ASSERT_FALSE(prerender_view->IsShowing()); + ASSERT_FALSE(prerender_view->delegated_frame_host_client_ + ->DelegatedFrameHostIsVisible()); + prerender_view->SetSize(gfx::Size(50, 50)); + ASSERT_FALSE(prerender_view->window_->layer()->GetOldestAcceptableFallback()); + + prerender_view->TakeFallbackContentFrom(old_view); + ASSERT_TRUE(prerender_view->window_->layer()->GetOldestAcceptableFallback()); + EXPECT_EQ(old_view->window_->layer()->GetSurfaceId()->ToSmallestId(), + *(prerender_view->window_->layer()->GetOldestAcceptableFallback())); + + DestroyView(prerender_view); + DestroyView(old_view); +} + // This class provides functionality to test a RenderWidgetHostViewAura // instance which has been hooked up to a test RenderViewHost instance and // a WebContents instance. @@ -5927,7 +5947,8 @@ return MockRenderWidgetHostImpl::Create( GetFrameTree(), render_widget_host_delegate(), agent_scheduling_group_host, - agent_scheduling_group_host.GetProcess()->GetNextRoutingID()); + agent_scheduling_group_host.GetProcess()->GetNextRoutingID(), + /*hidden = */ false); } TestRenderWidgetHostView* CreateViewForProcess(
diff --git a/content/browser/screen_orientation/screen_orientation_provider.cc b/content/browser/screen_orientation/screen_orientation_provider.cc index 7ce9170..cc668e3 100644 --- a/content/browser/screen_orientation/screen_orientation_provider.cc +++ b/content/browser/screen_orientation/screen_orientation_provider.cc
@@ -22,7 +22,9 @@ ScreenOrientationProvider::ScreenOrientationProvider(WebContents* web_contents) : WebContentsObserver(web_contents), lock_applied_(false), - receivers_(web_contents, this) {} + receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) {} ScreenOrientationProvider::~ScreenOrientationProvider() = default;
diff --git a/content/browser/service_worker/embedded_worker_instance.cc b/content/browser/service_worker/embedded_worker_instance.cc index 117e82da..04c21abd 100644 --- a/content/browser/service_worker/embedded_worker_instance.cc +++ b/content/browser/service_worker/embedded_worker_instance.cc
@@ -333,6 +333,7 @@ owner_version_->cross_origin_embedder_policy()->reporting_endpoint, owner_version_->cross_origin_embedder_policy() ->report_only_reporting_endpoint, + owner_version_->reporting_source(), // TODO(https://crbug.com/1147281): This is the NetworkIsolationKey of // a top-level browsing context, which shouldn't be use for // ServiceWorkers used in iframes. @@ -893,6 +894,7 @@ owner_version_->cross_origin_embedder_policy()->reporting_endpoint, owner_version_->cross_origin_embedder_policy() ->report_only_reporting_endpoint, + owner_version_->reporting_source(), // TODO(https://crbug.com/1147281): This is the NetworkIsolationKey of a // top-level browsing context, which shouldn't be use for ServiceWorkers // used in iframes.
diff --git a/content/browser/tracing/startup_tracing_browsertest.cc b/content/browser/tracing/startup_tracing_browsertest.cc index 6266c43..da4bc9a 100644 --- a/content/browser/tracing/startup_tracing_browsertest.cc +++ b/content/browser/tracing/startup_tracing_browsertest.cc
@@ -336,6 +336,14 @@ CheckOutput(GetExpectedPath(), GetOutputType()); } +// TODO(ssid): Fix the flaky tests, probably the same reason as +// crbug.com/1041392. +IN_PROC_BROWSER_TEST_P(StartupTracingTest, DISABLED_ContinueAtShutdown) { + EXPECT_TRUE(NavigateToURL(shell(), GetTestUrl("", "title1.html"))); + StartupTracingController::GetInstance() + .set_continue_on_shutdown_for_testing(); +} + class EmergencyStopTracingTest : public StartupTracingTest {}; INSTANTIATE_TEST_SUITE_P(
diff --git a/content/browser/tracing/startup_tracing_controller.cc b/content/browser/tracing/startup_tracing_controller.cc index 7cc95b6..5957d39 100644 --- a/content/browser/tracing/startup_tracing_controller.cc +++ b/content/browser/tracing/startup_tracing_controller.cc
@@ -511,6 +511,15 @@ run_loop.Run(); } +void StartupTracingController::ShutdownAndWaitForStopIfNeeded() { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + + if (should_continue_on_shutdown_) + return; + + WaitUntilStopped(); +} + // static void StartupTracingController::EmergencyStop() { if (GetIOThreadTaskRunner({})->RunsTasksInCurrentSequence()) {
diff --git a/content/browser/tracing/startup_tracing_controller.h b/content/browser/tracing/startup_tracing_controller.h index fcbbc4d28..492a036c 100644 --- a/content/browser/tracing/startup_tracing_controller.h +++ b/content/browser/tracing/startup_tracing_controller.h
@@ -31,6 +31,7 @@ void StartIfNeeded(); void WaitUntilStopped(); + void ShutdownAndWaitForStopIfNeeded(); // By default, a trace is written into a temporary file which then is renamed, // however this can lead to data loss when the browser process crashes. @@ -68,6 +69,10 @@ bool is_finished_for_testing() const { return state_ == State::kStopped; } + void set_continue_on_shutdown_for_testing() { + should_continue_on_shutdown_ = true; + } + private: void Stop(base::OnceClosure on_finished_callback); @@ -92,6 +97,8 @@ std::string default_basename_; bool basename_for_test_set_ = false; + // Used for testing only + bool should_continue_on_shutdown_ = false; TempFilePolicy temp_file_policy_ = TempFilePolicy::kUseTemporaryFile; };
diff --git a/content/browser/web_contents_receiver_set_browsertest.cc b/content/browser/web_contents_receiver_set_browsertest.cc index 063ce838..c168b3e 100644 --- a/content/browser/web_contents_receiver_set_browsertest.cc +++ b/content/browser/web_contents_receiver_set_browsertest.cc
@@ -28,14 +28,6 @@ const char kTestHost1[] = "foo.com"; const char kTestHost2[] = "bar.com"; -class WebContentsReceiverSetBrowserTest : public ContentBrowserTest { - public: - void SetUpOnMainThread() override { - host_resolver()->AddRule(kTestHost1, "127.0.0.1"); - host_resolver()->AddRule(kTestHost2, "127.0.0.1"); - } -}; - class TestInterfaceBinder : public WebContentsReceiverSetTestBinder< mojom::BrowserAssociatedInterfaceTestDriver> { public: @@ -56,10 +48,22 @@ DISALLOW_COPY_AND_ASSIGN(TestInterfaceBinder); }; +} // namespace + +class WebContentsReceiverSetBrowserTest : public ContentBrowserTest { + public: + void SetUpOnMainThread() override { + host_resolver()->AddRule(kTestHost1, "127.0.0.1"); + host_resolver()->AddRule(kTestHost2, "127.0.0.1"); + } +}; + class TestFrameInterfaceBinder : public mojom::WebContentsFrameReceiverSetTest { public: explicit TestFrameInterfaceBinder(WebContents* web_contents) - : receivers_(web_contents, this) {} + : receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) {} ~TestFrameInterfaceBinder() override {} private: @@ -70,8 +74,6 @@ receivers_; }; -} // namespace - IN_PROC_BROWSER_TEST_F(WebContentsReceiverSetBrowserTest, OverrideForTesting) { EXPECT_TRUE(NavigateToURL(shell(), GURL("data:text/html,ho hum"))); @@ -79,7 +81,8 @@ // request handler. auto* web_contents = static_cast<WebContentsImpl*>(shell()->web_contents()); WebContentsFrameReceiverSet<mojom::BrowserAssociatedInterfaceTestDriver> - frame_receivers(web_contents, nullptr); + frame_receivers(web_contents, nullptr, + content::WebContentsFrameReceiverSetPassKey()); // Now override the binder for this interface. It quits |run_loop| whenever // an incoming pending receiver is received.
diff --git a/content/browser/web_package/prefetched_signed_exchange_cache.cc b/content/browser/web_package/prefetched_signed_exchange_cache.cc index 0708a52f..458f208 100644 --- a/content/browser/web_package/prefetched_signed_exchange_cache.cc +++ b/content/browser/web_package/prefetched_signed_exchange_cache.cc
@@ -466,7 +466,7 @@ public: PrefetchedNavigationLoaderInterceptor( std::unique_ptr<const PrefetchedSignedExchangeCacheEntry> exchange, - std::vector<mojom::PrefetchedSignedExchangeInfoPtr> info_list) + std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr> info_list) : exchange_(std::move(exchange)), info_list_(std::move(info_list)) {} ~PrefetchedNavigationLoaderInterceptor() override {} @@ -559,7 +559,7 @@ State state_ = State::kInitial; const std::unique_ptr<const PrefetchedSignedExchangeCacheEntry> exchange_; - std::vector<mojom::PrefetchedSignedExchangeInfoPtr> info_list_; + std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr> info_list_; base::WeakPtrFactory<PrefetchedNavigationLoaderInterceptor> weak_factory_{ this}; @@ -752,7 +752,7 @@ headers_size_total); } -std::vector<mojom::PrefetchedSignedExchangeInfoPtr> +std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr> PrefetchedSignedExchangeCache::GetInfoListForNavigation( const PrefetchedSignedExchangeCacheEntry& main_exchange, const base::Time& verification_time, @@ -766,7 +766,7 @@ url::Origin::Create(main_exchange.inner_url()); const auto inner_url_header_integrity_map = GetAllowedAltSXG(main_exchange); - std::vector<mojom::PrefetchedSignedExchangeInfoPtr> info_list; + std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr> info_list; EntryMap::iterator exchanges_it = exchanges_.begin(); while (exchanges_it != exchanges_.end()) { const std::unique_ptr<const PrefetchedSignedExchangeCacheEntry>& exchange = @@ -810,7 +810,7 @@ new SubresourceSignedExchangeURLLoaderFactory( pending_loader_factory.InitWithNewPipeAndPassReceiver(), exchange->Clone(), request_initiator_origin_lock); - info_list.emplace_back(mojom::PrefetchedSignedExchangeInfo::New( + info_list.emplace_back(blink::mojom::PrefetchedSignedExchangeInfo::New( exchange->outer_url(), *exchange->header_integrity(), exchange->inner_url(), exchange->inner_response().Clone(), std::move(pending_loader_factory)));
diff --git a/content/browser/web_package/prefetched_signed_exchange_cache.h b/content/browser/web_package/prefetched_signed_exchange_cache.h index c1da977..0484b4a 100644 --- a/content/browser/web_package/prefetched_signed_exchange_cache.h +++ b/content/browser/web_package/prefetched_signed_exchange_cache.h
@@ -11,8 +11,8 @@ #include "base/observer_list.h" #include "content/browser/web_package/prefetched_signed_exchange_cache_entry.h" #include "content/common/content_export.h" -#include "content/common/prefetched_signed_exchange_info.mojom.h" #include "net/base/hash_value.h" +#include "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom.h" #include "url/gurl.h" namespace net { @@ -80,7 +80,8 @@ // |main_exchange|'s inner response and which outer URL's origin is same as // the origin of |main_exchange|'s outer URL. Note that this method erases // expired entries in |exchanges_|. - std::vector<mojom::PrefetchedSignedExchangeInfoPtr> GetInfoListForNavigation( + std::vector<blink::mojom::PrefetchedSignedExchangeInfoPtr> + GetInfoListForNavigation( const PrefetchedSignedExchangeCacheEntry& main_exchange, const base::Time& now, int frame_tree_node_id,
diff --git a/content/browser/worker_host/dedicated_worker_host.cc b/content/browser/worker_host/dedicated_worker_host.cc index 40cfb8a3..cc964bea 100644 --- a/content/browser/worker_host/dedicated_worker_host.cc +++ b/content/browser/worker_host/dedicated_worker_host.cc
@@ -319,7 +319,7 @@ worker_process_host_->GetStoragePartition(), final_response_url, worker_cross_origin_embedder_policy_->reporting_endpoint, worker_cross_origin_embedder_policy_->report_only_reporting_endpoint, - isolation_info_.network_isolation_key()); + reporting_source_, isolation_info_.network_isolation_key()); // TODO(crbug.com/1197041): Bind the receiver of ReportingObserver to the // worker in the renderer process.
diff --git a/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc b/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc index fe8d86e..9a11a015 100644 --- a/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc +++ b/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc
@@ -43,7 +43,8 @@ auto coep_reporter = std::make_unique<CrossOriginEmbedderPolicyReporter>( RenderFrameHostImpl::FromID(render_frame_host_id) ->GetStoragePartition(), - GURL(), absl::nullopt, absl::nullopt, net::NetworkIsolationKey()); + GURL(), absl::nullopt, absl::nullopt, base::UnguessableToken::Create(), + net::NetworkIsolationKey()); mojo::MakeSelfOwnedReceiver( std::make_unique<DedicatedWorkerHostFactoryImpl>(
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn index e70a3ce..c819dc9 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn
@@ -445,7 +445,6 @@ "native_types.mojom", "navigation_client.mojom", "navigation_params.mojom", - "prefetched_signed_exchange_info.mojom", "render_accessibility.mojom", "render_message_filter.mojom", "renderer.mojom", @@ -595,10 +594,6 @@ mojom = "content.mojom.PageTransition" cpp = "::ui::PageTransition" }, - { - mojom = "content.mojom.SHA256HashValue" - cpp = "::net::SHA256HashValue" - }, ] traits_headers = [ "//content/common/content_param_traits.h",
diff --git a/content/common/content_param_traits.cc b/content/common/content_param_traits.cc index e029c8a..a10d52f 100644 --- a/content/common/content_param_traits.cc +++ b/content/common/content_param_traits.cc
@@ -335,33 +335,6 @@ l->append(")"); } -void ParamTraits<net::SHA256HashValue>::Write(base::Pickle* m, - const param_type& p) { - m->WriteData(reinterpret_cast<const char*>(p.data), sizeof(p.data)); -} - -bool ParamTraits<net::SHA256HashValue>::Read(const base::Pickle* m, - base::PickleIterator* iter, - param_type* r) { - const char* data; - int data_length; - if (!iter->ReadData(&data, &data_length)) { - NOTREACHED(); - return false; - } - if (data_length != sizeof(r->data)) { - NOTREACHED(); - return false; - } - memcpy(r->data, data, sizeof(r->data)); - return true; -} - -void ParamTraits<net::SHA256HashValue>::Log(const param_type& p, - std::string* l) { - l->append("<SHA256HashValue>"); -} - } // namespace IPC // Generate param traits write methods.
diff --git a/content/common/content_param_traits.h b/content/common/content_param_traits.h index 2fa056c9..cf4ec5fa 100644 --- a/content/common/content_param_traits.h +++ b/content/common/content_param_traits.h
@@ -18,7 +18,6 @@ #include "cc/ipc/cc_param_traits_macros.h" #include "content/common/content_param_traits_macros.h" #include "ipc/ipc_mojo_param_traits.h" -#include "net/base/hash_value.h" #include "ui/accessibility/ax_mode.h" namespace blink { @@ -116,16 +115,6 @@ static void Log(const param_type& p, std::string* l); }; -template <> -struct CONTENT_EXPORT ParamTraits<net::SHA256HashValue> { - typedef net::SHA256HashValue param_type; - static void Write(base::Pickle* m, const param_type& p); - static bool Read(const base::Pickle* m, - base::PickleIterator* iter, - param_type* r); - static void Log(const param_type& p, std::string* l); -}; - } // namespace IPC #endif // CONTENT_COMMON_CONTENT_PARAM_TRAITS_H_
diff --git a/content/common/navigation_params.mojom b/content/common/navigation_params.mojom index c69c0a7..2ea6ecbe 100644 --- a/content/common/navigation_params.mojom +++ b/content/common/navigation_params.mojom
@@ -4,7 +4,6 @@ module content.mojom; -import "content/common/prefetched_signed_exchange_info.mojom"; import "mojo/public/mojom/base/string16.mojom"; import "mojo/public/mojom/base/time.mojom"; import "mojo/public/mojom/base/unguessable_token.mojom"; @@ -23,6 +22,7 @@ import "third_party/blink/public/mojom/loader/mixed_content.mojom"; import "third_party/blink/public/mojom/loader/referrer.mojom"; import "third_party/blink/public/mojom/navigation/navigation_policy.mojom"; +import "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom"; import "third_party/blink/public/mojom/navigation/was_activated_option.mojom"; import "third_party/blink/public/mojom/page/page.mojom"; import "third_party/blink/public/mojom/permissions_policy/permissions_policy.mojom"; @@ -407,7 +407,7 @@ // Prefetched signed exchanges. Used when SignedExchangeSubresourcePrefetch // feature is enabled. - array<PrefetchedSignedExchangeInfo> prefetched_signed_exchanges; + array<blink.mojom.PrefetchedSignedExchangeInfo> prefetched_signed_exchanges; // The real content of the data: URL. Only used in Android WebView for // implementing LoadDataWithBaseUrl API method to circumvent the restriction
diff --git a/content/common/navigation_params_mojom_traits.h b/content/common/navigation_params_mojom_traits.h index e87028b..a8175fc 100644 --- a/content/common/navigation_params_mojom_traits.h +++ b/content/common/navigation_params_mojom_traits.h
@@ -5,17 +5,17 @@ #ifndef CONTENT_COMMON_NAVIGATION_PARAMS_MOJOM_TRAITS_H_ #define CONTENT_COMMON_NAVIGATION_PARAMS_MOJOM_TRAITS_H_ -#include "content/common/prefetched_signed_exchange_info.mojom.h" #include "mojo/public/cpp/bindings/clone_traits.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" +#include "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom.h" namespace mojo { template <> -struct CloneTraits<content::mojom::PrefetchedSignedExchangeInfoPtr, true> { - static content::mojom::PrefetchedSignedExchangeInfoPtr Clone( - const content::mojom::PrefetchedSignedExchangeInfoPtr& input) { - return content::mojom::PrefetchedSignedExchangeInfo::New( +struct CloneTraits<blink::mojom::PrefetchedSignedExchangeInfoPtr, true> { + static blink::mojom::PrefetchedSignedExchangeInfoPtr Clone( + const blink::mojom::PrefetchedSignedExchangeInfoPtr& input) { + return blink::mojom::PrefetchedSignedExchangeInfo::New( mojo::Clone(input->outer_url), mojo::Clone(input->header_integrity), mojo::Clone(input->inner_url), mojo::Clone(input->inner_response), mojo::PendingRemote<network::mojom::URLLoaderFactory>());
diff --git a/content/public/browser/OWNERS b/content/public/browser/OWNERS index d3d84033..7042359 100644 --- a/content/public/browser/OWNERS +++ b/content/public/browser/OWNERS
@@ -1,2 +1,4 @@ # Note: don't add new owners here. Only content/OWNERS review public changes to # ensure consistency and that the public API guidelines are followed closely. +per-file web_contents_receiver_set.h=file://ipc/SECURITY_OWNERS +per-file web_contents_receiver_set.h=set noparent
diff --git a/content/public/browser/browser_context.h b/content/public/browser/browser_context.h index e42b740..2d9cc0c 100644 --- a/content/public/browser/browser_context.h +++ b/content/public/browser/browser_context.h
@@ -25,6 +25,7 @@ #include "third_party/blink/public/mojom/blob/blob.mojom-forward.h" #include "third_party/blink/public/mojom/push_messaging/push_messaging.mojom-forward.h" #include "third_party/blink/public/mojom/push_messaging/push_messaging_status.mojom-forward.h" +#include "third_party/perfetto/include/perfetto/tracing/traced_proto.h" #include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h" #if !defined(OS_ANDROID) @@ -61,6 +62,14 @@ class VariationsClient; } // namespace variations +namespace perfetto { +namespace protos { +namespace pbzero { +class ChromeBrowserContext; +} +} // namespace protos +} // namespace perfetto + namespace content { class BackgroundFetchDelegate; @@ -270,6 +279,11 @@ // Write a representation of this object into a trace. void WriteIntoTrace(perfetto::TracedValue context); + // Write a representation of this object into tracing proto. + void WriteIntoTrace( + perfetto::TracedProto<perfetto::protos::pbzero::ChromeBrowserContext> + context); + ////////////////////////////////////////////////////////////////////////////// // The //content embedder can override the methods below to change or extend // how the //content layer interacts with a BrowserContext.
diff --git a/content/public/browser/web_contents_receiver_set.h b/content/public/browser/web_contents_receiver_set.h index de0eec9..c373078 100644 --- a/content/public/browser/web_contents_receiver_set.h +++ b/content/public/browser/web_contents_receiver_set.h
@@ -18,10 +18,56 @@ #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h" +class ChromePasswordManagerClient; +class EmbeddedSearchClientFactoryImpl; +class LiteVideoObserver; +class OfflinePageTabHelper; +class PluginObserver; +class SearchEngineTabHelper; +class SupervisedUserNavigationObserver; +class SyncEncryptionKeysTabHelper; + +namespace android_webview { +class AwRenderViewHostExt; +} +namespace chrome_browser_net { +class NetErrorTabHelper; +} +namespace extensions { +class ExtensionFrameHost; +class ChromeWebViewPermissionHelperDelegate; +} // namespace extensions +namespace offline_pages { +class OfflinePageTabHelper; +} +namespace page_load_metrics { +class MetricsWebContentsObserver; +} +namespace pdf { +class PDFWebContentsHelper; +} +namespace printing { +class PrintManager; +} +namespace security_interstitials { +class SecurityInterstitialTabHelper; +} +namespace subresource_redirect { +class SubresourceRedirectObserver; +} +namespace subresource_filter { +class ContentSubresourceFilterThrottleManager; +} + namespace content { +class ConversionHost; +class DisplayCutoutHostImpl; class RenderFrameHost; +class ScreenOrientationProvider; +class TestFrameInterfaceBinder; class WebContentsImpl; +class WebContentsReceiverSetBrowserTest; // Base class for something which owns a mojo::AssociatedReceiverSet on behalf // of a WebContents. See WebContentsFrameReceiverSet<T> below. @@ -65,6 +111,47 @@ DISALLOW_COPY_AND_ASSIGN(WebContentsReceiverSet); }; +// The use of WebContentsFrameReceiverSet is restricted because it bypasses +// security review of the IPC bindings. See https://crbug.com/1213679 for +// details. +// +// This does not use base::PassKey<T> because it's not possible to create a +// union of types for use in a template parameter, so using it would require +// duplicating the WebContentsFrameReceiverSet constructor many times (one for +// each friend below). This empty class is a bit simpler. +// +// New instances SHOULD NOT be added. +// TODO(crbug.com/1213679): Remove WebContentsFrameReceiverSet. +class WebContentsFrameReceiverSetPassKey { + private: + WebContentsFrameReceiverSetPassKey() = default; + + friend class ::ChromePasswordManagerClient; + friend class ::EmbeddedSearchClientFactoryImpl; + friend class ::LiteVideoObserver; + friend class ::PluginObserver; + friend class ::SearchEngineTabHelper; + friend class ::SupervisedUserNavigationObserver; + friend class ::SyncEncryptionKeysTabHelper; + friend class ::android_webview::AwRenderViewHostExt; + friend class ::chrome_browser_net::NetErrorTabHelper; + friend class ::extensions::ChromeWebViewPermissionHelperDelegate; + friend class ::extensions::ExtensionFrameHost; + friend class ::offline_pages::OfflinePageTabHelper; + friend class ::page_load_metrics::MetricsWebContentsObserver; + friend class ::pdf::PDFWebContentsHelper; + friend class ::printing::PrintManager; + friend class ::security_interstitials::SecurityInterstitialTabHelper; + friend class ::subresource_filter::ContentSubresourceFilterThrottleManager; + friend class ::subresource_redirect::SubresourceRedirectObserver; + friend class ConversionHost; + friend class DisplayCutoutHostImpl; + friend class ScreenOrientationProvider; + friend class TestFrameInterfaceBinder; + FRIEND_TEST_ALL_PREFIXES(WebContentsReceiverSetBrowserTest, + OverrideForTesting); +}; + // Owns a set of Channel-associated interface receivers with frame context on // message dispatch. // @@ -110,7 +197,9 @@ template <typename Interface> class WebContentsFrameReceiverSet : public WebContentsReceiverSet { public: - WebContentsFrameReceiverSet(WebContents* web_contents, Interface* impl) + WebContentsFrameReceiverSet(WebContents* web_contents, + Interface* impl, + WebContentsFrameReceiverSetPassKey pass_key) : WebContentsReceiverSet(web_contents, Interface::Name_), binder_(this, web_contents, impl) { SetBinder(&binder_);
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 148c76bd..0daa8f7 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -4439,7 +4439,8 @@ ui::PageTransition transition, const blink::ParsedPermissionsPolicy& permissions_policy_header, const blink::DocumentPolicyFeatureState& document_policy_header, - const absl::optional<base::UnguessableToken>& embedding_token) { + const absl::optional<base::UnguessableToken>& embedding_token, + bool is_same_document_navigation) { WebDocumentLoader* document_loader = frame_->GetDocumentLoader(); const WebURLResponse& response = document_loader->GetResponse(); @@ -4525,8 +4526,10 @@ params->app_history_key = item.GetAppHistoryKey().Utf8(); // If the page contained a client redirect (meta refresh, document.loc...), - // set the referrer appropriately. - if (document_loader->IsClientRedirect()) { + // set the referrer appropriately, except for same-document navigations where + // the referrer that was initially used to load the document should be used, + // same as all other same-document navigations. + if (document_loader->IsClientRedirect() && !is_same_document_navigation) { // TODO(https://crbug.com/1131832): Remove referrer from // DidCommitProvisionalLoadParams, which also removes the need to save the // redirect chain in the renderer. @@ -4721,7 +4724,7 @@ // load committing. auto params = MakeDidCommitProvisionalLoadParams( commit_type, transition, permissions_policy_header, - document_policy_header, embedding_token); + document_policy_header, embedding_token, !!same_document_params); if (same_document_params) { GetFrameHost()->DidCommitSameDocumentNavigation(
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index f3b25881..37d336d9 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -961,7 +961,8 @@ ui::PageTransition transition, const blink::ParsedPermissionsPolicy& permissions_policy_header, const blink::DocumentPolicyFeatureState& document_policy_header, - const absl::optional<base::UnguessableToken>& embedding_token); + const absl::optional<base::UnguessableToken>& embedding_token, + bool is_same_document_navigation); // Updates the navigation history depending on the passed parameters. // This could result either in the creation of a new entry or a modification
diff --git a/extensions/browser/api/declarative_net_request/indexed_ruleset_format_version_unittest.cc b/extensions/browser/api/declarative_net_request/indexed_ruleset_format_version_unittest.cc index 06392a0..ccc93b4 100644 --- a/extensions/browser/api/declarative_net_request/indexed_ruleset_format_version_unittest.cc +++ b/extensions/browser/api/declarative_net_request/indexed_ruleset_format_version_unittest.cc
@@ -153,7 +153,7 @@ EXPECT_EQ(StripCommentsAndWhitespace(kFlatbufferSchemaExpected), StripCommentsAndWhitespace(flatbuffer_schema)) << "Schema change detected; update this test and the schema version."; - EXPECT_EQ(21, GetIndexedRulesetFormatVersionForTesting()) + EXPECT_EQ(22, GetIndexedRulesetFormatVersionForTesting()) << "Update this test if you update the schema version."; }
diff --git a/extensions/browser/api/declarative_net_request/request_params.cc b/extensions/browser/api/declarative_net_request/request_params.cc index c8384507..682df21 100644 --- a/extensions/browser/api/declarative_net_request/request_params.cc +++ b/extensions/browser/api/declarative_net_request/request_params.cc
@@ -65,8 +65,12 @@ } // Maps an HTTP request method string to flat_rule::RequestMethod. -// TODO(kzar): Return `flat_rule::RequestMethod_NONE` for non-HTTP requests. -flat_rule::RequestMethod GetRequestMethod(const std::string& method) { +// Returns `flat::RequestMethod_NON_HTTP` for non-HTTP(s) requests. +flat_rule::RequestMethod GetRequestMethod(bool http_or_https, + const std::string& method) { + if (!http_or_https) + return flat_rule::RequestMethod_NON_HTTP; + using net::HttpRequestHeaders; static const base::NoDestructor< base::flat_map<base::StringPiece, flat_rule::RequestMethod>> @@ -173,7 +177,7 @@ : url(&info.url), first_party_origin(info.initiator.value_or(url::Origin())), element_type(GetElementType(info.web_request_type)), - method(GetRequestMethod(info.method)), + method(GetRequestMethod(info.url.SchemeIsHTTPOrHTTPS(), info.method)), parent_routing_id(info.parent_routing_id), embedder_conditions_matcher(base::BindRepeating(DoEmbedderConditionsMatch, info.frame_data.tab_id)) {
diff --git a/extensions/browser/api/declarative_net_request/utils.cc b/extensions/browser/api/declarative_net_request/utils.cc index c39792fe..7388e11 100644 --- a/extensions/browser/api/declarative_net_request/utils.cc +++ b/extensions/browser/api/declarative_net_request/utils.cc
@@ -43,12 +43,12 @@ // url_pattern_index.fbs. Whenever an extension with an indexed ruleset format // version different from the one currently used by Chrome is loaded, the // extension ruleset will be reindexed. -constexpr int kIndexedRulesetFormatVersion = 21; +constexpr int kIndexedRulesetFormatVersion = 22; // This static assert is meant to catch cases where // url_pattern_index::kUrlPatternIndexFormatVersion is incremented without // updating kIndexedRulesetFormatVersion. -static_assert(url_pattern_index::kUrlPatternIndexFormatVersion == 9, +static_assert(url_pattern_index::kUrlPatternIndexFormatVersion == 10, "kUrlPatternIndexFormatVersion has changed, make sure you've " "also updated kIndexedRulesetFormatVersion above.");
diff --git a/extensions/browser/extension_frame_host.cc b/extensions/browser/extension_frame_host.cc index e4e58fe..25222de 100644 --- a/extensions/browser/extension_frame_host.cc +++ b/extensions/browser/extension_frame_host.cc
@@ -13,7 +13,10 @@ namespace extensions { ExtensionFrameHost::ExtensionFrameHost(content::WebContents* web_contents) - : web_contents_(web_contents), receivers_(web_contents, this) {} + : web_contents_(web_contents), + receivers_(web_contents, + this, + content::WebContentsFrameReceiverSetPassKey()) {} ExtensionFrameHost::~ExtensionFrameHost() = default;
diff --git a/extensions/common/api/declarative_net_request.idl b/extensions/common/api/declarative_net_request.idl index c77ffbd..8c6a20c 100644 --- a/extensions/common/api/declarative_net_request.idl +++ b/extensions/common/api/declarative_net_request.idl
@@ -261,7 +261,10 @@ // List of HTTP request methods which the rule can match. An empty list is // not allowed. - // Note: Non HTTP requests are considered to have the "get" request method. + // + // Note: Specifying a <code>requestMethods</code> rule condition will also + // exclude non-HTTP(s) requests, whereas specifying + // <code>excludedRequestMethods</code> will not. RequestMethod[]? requestMethods; // List of request methods which the rule won't match. Only one of
diff --git a/google_apis/test/embedded_setup_chromeos.html b/google_apis/test/embedded_setup_chromeos.html index 5f16521..e493484 100644 --- a/google_apis/test/embedded_setup_chromeos.html +++ b/google_apis/test/embedded_setup_chromeos.html
@@ -9,7 +9,8 @@ gaia.chromeOSLogin.parent_webview_ = undefined; gaia.chromeOSLogin.parent_webview_url_ = undefined; gaia.chromeOSLogin.initialized_ = false; -gaia.chromeOSLogin.sendImplicitServices = true; +gaia.chromeOSLogin.shouldSendImplicitServices = true; +gaia.chromeOSLogin.shouldSendCloseView = true; const urlParams = new URLSearchParams(window.location.search); const useNativeNavigation = !!urlParams.get('use_native_navigation'); @@ -138,7 +139,7 @@ services = []; } else { console.warn("Services are not set for testing."); - if (gaia.chromeOSLogin.sendImplicitServices) + if (gaia.chromeOSLogin.shouldSendImplicitServices) services = [] } @@ -152,6 +153,8 @@ } if (services) gaia.chromeOSLogin.sendUserInfo(services); + if (gaia.chromeOSLogin.shouldSendCloseView) + gaia.chromeOSLogin.sendCloseView(); history.pushState({}, "", window.location.pathname + "#close"); } };
diff --git a/gpu/command_buffer/service/raster_decoder.cc b/gpu/command_buffer/service/raster_decoder.cc index 97098091..13e2159d 100644 --- a/gpu/command_buffer/service/raster_decoder.cc +++ b/gpu/command_buffer/service/raster_decoder.cc
@@ -21,6 +21,7 @@ #include "base/logging.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" +#include "base/time/time.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" #include "cc/paint/paint_cache.h" @@ -303,6 +304,107 @@ base::flat_map<gpu::Mailbox, SharedImageReadAccess> read_accessors_; }; +class RasterCommandsCompletedQuery : public QueryManager::Query { + public: + RasterCommandsCompletedQuery( + scoped_refptr<SharedContextState> shared_context_state, + QueryManager* manager, + GLenum target, + scoped_refptr<gpu::Buffer> buffer, + QuerySync* sync) + : Query(manager, target, std::move(buffer), sync), + shared_context_state_(std::move(shared_context_state)) {} + + // Overridden from QueryManager::Query: + void Begin() override { + DCHECK(!begin_time_); + MarkAsActive(); + begin_time_.emplace(base::TimeTicks::Now()); + } + + void End(base::subtle::Atomic32 submit_count) override { + DCHECK(begin_time_); + + AddToPendingQueue(submit_count); + finished_ = false; + + auto* gr_context = shared_context_state_->gr_context(); + GrFlushInfo info; + info.fFinishedProc = RasterCommandsCompletedQuery::FinishedProc; + auto weak_ptr = weak_ptr_factory_.GetWeakPtr(); + info.fFinishedContext = + new base::WeakPtr<RasterCommandsCompletedQuery>(weak_ptr); + gr_context->flush(info); + } + + void QueryCounter(base::subtle::Atomic32 submit_count) override { + NOTREACHED(); + } + + void Pause() override { MarkAsPaused(); } + + void Resume() override { MarkAsActive(); } + + void Process(bool did_finish) override { + DCHECK(begin_time_); + if (!finished_) + return; + const base::TimeDelta elapsed = base::TimeTicks::Now() - *begin_time_; + MarkAsCompleted(elapsed.InMicroseconds()); + begin_time_.reset(); + } + + void Destroy(bool have_context) override { + if (!IsDeleted()) + MarkAsDeleted(); + } + + protected: + ~RasterCommandsCompletedQuery() override = default; + + private: + static void FinishedProc(void* context) { + auto* weak_ptr = + reinterpret_cast<base::WeakPtr<RasterCommandsCompletedQuery>*>(context); + if (*weak_ptr) + (*weak_ptr)->finished_ = true; + delete weak_ptr; + } + + const scoped_refptr<SharedContextState> shared_context_state_; + absl::optional<base::TimeTicks> begin_time_; + bool finished_ = false; + base::WeakPtrFactory<RasterCommandsCompletedQuery> weak_ptr_factory_{this}; +}; + +class RasterQueryManager : public QueryManager { + public: + explicit RasterQueryManager( + scoped_refptr<SharedContextState> shared_context_state) + : shared_context_state_(std::move(shared_context_state)) {} + ~RasterQueryManager() override = default; + + Query* CreateQuery(GLenum target, + GLuint client_id, + scoped_refptr<gpu::Buffer> buffer, + QuerySync* sync) override { + if (target == GL_COMMANDS_COMPLETED_CHROMIUM && + shared_context_state_->gr_context()) { + auto query = base::MakeRefCounted<RasterCommandsCompletedQuery>( + shared_context_state_, this, target, std::move(buffer), sync); + std::pair<QueryMap::iterator, bool> result = + queries_.insert(std::make_pair(client_id, query)); + DCHECK(result.second); + return query.get(); + } + return QueryManager::CreateQuery(target, client_id, std::move(buffer), + sync); + } + + private: + const scoped_refptr<SharedContextState> shared_context_state_; +}; + } // namespace // RasterDecoderImpl uses two separate state trackers (gpu::gles2::ContextState @@ -785,7 +887,7 @@ std::unique_ptr<Validators> validators_; SharedImageRepresentationFactory shared_image_representation_factory_; - std::unique_ptr<QueryManager> query_manager_; + std::unique_ptr<RasterQueryManager> query_manager_; gles2::GLES2Util util_; @@ -990,7 +1092,7 @@ CHECK_GL_ERROR(); - query_manager_ = std::make_unique<QueryManager>(); + query_manager_ = std::make_unique<RasterQueryManager>(shared_context_state_); if (attrib_helper.enable_oop_rasterization) { if (!features().chromium_raster_transport) {
diff --git a/ios/build/tools/convert_gn_xcodeproj.py b/ios/build/tools/convert_gn_xcodeproj.py index 20c03beb..43f3acc 100755 --- a/ios/build/tools/convert_gn_xcodeproj.py +++ b/ios/build/tools/convert_gn_xcodeproj.py
@@ -31,6 +31,14 @@ LLDBINIT_PATH = '$(PROJECT_DIR)/.lldbinit' +PRODUCT_TYPES_WITH_SCHEME = { + 'com.apple.product-type.app-extension', + 'com.apple.product-type.application', + 'com.apple.product-type.bundle.ui-testing', + 'com.apple.product-type.framework', +} + + class Template(string.Template): """A subclass of string.Template that changes delimiter.""" @@ -219,10 +227,7 @@ # Create scheme files for application, extensions and framework targets. if isa == 'PBXNativeTarget': product_type = value['productType'] - if product_type not in ( - 'com.apple.product-type.app-extension', - 'com.apple.product-type.application', - 'com.apple.product-type.framework'): + if product_type not in PRODUCT_TYPES_WITH_SCHEME: continue if schemes_template is None:
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd index c178c5d..7d5d9ea 100644 --- a/ios/chrome/app/strings/ios_strings.grd +++ b/ios/chrome/app/strings/ios_strings.grd
@@ -873,9 +873,6 @@ <message name="IDS_IOS_FIRST_RUN_SYNC_SCREEN_CONTENT" desc="Content string on the sync screen presented to the user on First Run [iOS only]"> Google may use your history to personalize Search and other Google services </message> - <message name="IDS_IOS_FIRST_RUN_SYNC_SCREEN_CONTENT_MINOR_MODE" desc="Content string on the sync screen presented to the user on First Run for minor and family link users [iOS only]"> - Google may use your history to personalize Search and other Google services - </message> <message name="IDS_IOS_FIRST_RUN_SYNC_SCREEN_ADVANCE_SETTINGS" desc="Label of the button which open advance sync settings screen [iOS only]"> Choose What to Sync </message>
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_FIRST_RUN_SYNC_SCREEN_CONTENT_MINOR_MODE.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_FIRST_RUN_SYNC_SCREEN_CONTENT_MINOR_MODE.png.sha1 deleted file mode 100644 index 19b7174..0000000 --- a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_FIRST_RUN_SYNC_SCREEN_CONTENT_MINOR_MODE.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -4b8ac1f5788334f2fa3217e8efca968be65b5df9 \ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb index 79c74bc..3ca9b87 100644 --- a/ios/chrome/app/strings/resources/ios_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Installeer Google Drive</translation> <translation id="5083464117946352670">Kan nie lêergrootte bepaal nie.</translation> <translation id="5090832849094901128">As hierdie wagwoord uitgevee word, sal jou rekening op <ph name="WEBSITE" /> nie uitgevee word nie.</translation> +<translation id="5092117651143801290">Jy kan bladsye stoor om later of vanlyn te lees. Chrome sal vra of jy lang bladsye wil stoor.</translation> <translation id="5094827893301452931">Twiet is voltooi.</translation> <translation id="5118764316110575523">Af</translation> <translation id="5127805178023152808">Sinkronisering is af</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Vind in bladsy …</translation> <translation id="8574235780160508979">Chrome se diensbepalings verander op 31 Maart. <ph name="BEGIN_LINK" />Lees asseblief<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Af</translation> +<translation id="8590913940444621808">Moet nooit vra nie</translation> <translation id="8591976964826315682">Blokkeer derdepartywebkoekies in incognito</translation> <translation id="8605219856220328675">Maak oortjie toe.</translation> <translation id="8620640915598389714">Redigeer</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb index 8a89b1d4..54aebf63 100644 --- a/ios/chrome/app/strings/resources/ios_strings_am.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Driveን ጫን</translation> <translation id="5083464117946352670">የፋይል መጠን ማወቅ አልተቻለም።</translation> <translation id="5090832849094901128">ይህን የይለፍ ቃል መሰረዝ <ph name="WEBSITE" /> ላይ መለያዎን አይሰርዘውም።</translation> +<translation id="5092117651143801290">በኋላ ላይ ወይም ከመስመር ውጭ ለማንበብ ገጾችን ማስቀመጥ ይችላሉ። Chrome ረጃጅም ገጾችን ለማስቀመጥ እንደሚፈልጉ ይጠይቃል።</translation> <translation id="5094827893301452931">Tweet ተጠናቅቋል።</translation> <translation id="5118764316110575523">ጠፍቷል</translation> <translation id="5127805178023152808">አመሳስል ጠፍቷል</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">በዚህ ገጽ ውስጥ አግኝ...</translation> <translation id="8574235780160508979">የChrome አገልግሎት ውል ማርች 31 ላይ ይቀየራል። <ph name="BEGIN_LINK" />እባክዎ ይገምግሙ<ph name="END_LINK" /></translation> <translation id="8588404856427128947">ጠፍቷል</translation> +<translation id="8590913940444621808">በጭራሽ አትጠይቅ</translation> <translation id="8591976964826315682">ማንነትን በማያሳውቅ ሁነታ ላይ የሦስተኛ ወገን ኩኪዎችን ያግዱ</translation> <translation id="8605219856220328675">ትር ዝጋ።</translation> <translation id="8620640915598389714">አርትዕ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb index 060ad3b..4ccb134 100644 --- a/ios/chrome/app/strings/resources/ios_strings_az.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Diski quraşdırın</translation> <translation id="5083464117946352670">Fayl ölçüsünü müəyyənləşdirmək olmur.</translation> <translation id="5090832849094901128">Bu parolu sildikdə <ph name="WEBSITE" /> saytında hesabınız silinməyəcək.</translation> +<translation id="5092117651143801290">Sonra və ya oflayn oxumaq üçün səhifələri yadda saxlaya bilərsiniz. Chrome uzun səhifələri saxlamaq istəyib-istəmədiyinizi soruşacaq.</translation> <translation id="5094827893301452931">Tweet tamamlandı.</translation> <translation id="5118764316110575523">Deaktiv</translation> <translation id="5127805178023152808">Sinx deaktivdir</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Səhifədə tapın...</translation> <translation id="8574235780160508979">Chrome’un Xidmət Şərtləri 31 martda dəyişəcək. <ph name="BEGIN_LINK" />Nəzərdən keçirin<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Deaktiv</translation> +<translation id="8590913940444621808">Heç vaxt soruşmayın</translation> <translation id="8591976964826315682">Anonim rejimdə üçüncü tərəf kukilərini bloklayın</translation> <translation id="8605219856220328675">Paneli qapadın.</translation> <translation id="8620640915598389714">Redaktə edin</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb index 2c4097b..299e499 100644 --- a/ios/chrome/app/strings/resources/ios_strings_be.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Усталяваць Google Дыск</translation> <translation id="5083464117946352670">Не ўдалося вызначыць памер файла.</translation> <translation id="5090832849094901128">Пры выдаленні гэтага пароля ўліковы запіс на сайце <ph name="WEBSITE" /> не выдаліцца.</translation> +<translation id="5092117651143801290">Захоўвайце старонкі, каб вяртацца да іх пазней або чытаць іх без падключэння да інтэрнэту. Перш чым захоўваць доўгія старонкі, Chrome будзе адпраўляць вам запыт.</translation> <translation id="5094827893301452931">Твіт апублікаваны.</translation> <translation id="5118764316110575523">Выключана</translation> <translation id="5127805178023152808">Сінхранізацыя выключана</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Знайсці на старонцы...</translation> <translation id="8574235780160508979">Умовы выкарыстання Chrome зменяцца 31 сакавіка. <ph name="BEGIN_LINK" />Азнаёмцеся з імі<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Выключаны</translation> +<translation id="8590913940444621808">Ніколі не пытацца</translation> <translation id="8591976964826315682">Блакіраваць староннія файлы cookie у рэжыме інкогніта</translation> <translation id="8605219856220328675">Закрыць укладку.</translation> <translation id="8620640915598389714">Змяніць</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb index c6bd961..b19ef12 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instaliraj Google Disk</translation> <translation id="5083464117946352670">Nije moguće utvrditi veličinu fajla.</translation> <translation id="5090832849094901128">Brisanjem ove lozinke se neće izbrisati vaš račun na web lokaciji <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Možete sačuvati stranice da ih čitate kasnije ili offline. Chrome će vas pitati želite li sačuvati duge stranice.</translation> <translation id="5094827893301452931">Tweet je završen.</translation> <translation id="5118764316110575523">Isključeno</translation> <translation id="5127805178023152808">Sinkronizacija je isključena</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Pronađi na stranici…</translation> <translation id="8574235780160508979">Chromeovi Uslovi korištenja usluge će se promijeniti 31. marta. <ph name="BEGIN_LINK" />Pročitajte<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Isključeno</translation> +<translation id="8590913940444621808">Nikada ne pitaj</translation> <translation id="8591976964826315682">Blokiraj kolačiće trećih strana u anonimnom načinu rada</translation> <translation id="8605219856220328675">Zatvaranje kartice.</translation> <translation id="8620640915598389714">Uredi</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index 3ff9b9a..f9c4ae3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instal. de Google Drive</translation> <translation id="5083464117946352670">No es determina mida fitxer.</translation> <translation id="5090832849094901128">Encara que suprimeixis aquesta contrasenya, no se suprimirà el teu compte a <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Pots desar pàgines per llegir-les més endavant o sense connexió. Chrome et demanarà si vols desar les pàgines llargues.</translation> <translation id="5094827893301452931">S'ha completat el tuit.</translation> <translation id="5118764316110575523">Desactivat</translation> <translation id="5127805178023152808">Sincronització desactivada</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Cerca a la pàgina...</translation> <translation id="8574235780160508979">Les condicions del servei de Chrome canviaran el 31 de març. <ph name="BEGIN_LINK" />Revisa-les<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Desactivada</translation> +<translation id="8590913940444621808">No ho demanis mai</translation> <translation id="8591976964826315682">Bloqueja les galetes de tercers en mode d'incògnit</translation> <translation id="8605219856220328675">Tanca la pestanya.</translation> <translation id="8620640915598389714">Edita</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb index 49e91f3..3592284 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalace Disku Google</translation> <translation id="5083464117946352670">Velikost souboru nelze zjistit.</translation> <translation id="5090832849094901128">Odstraněním tohoto hesla nesmažete svůj účet na webu <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Stránky si můžete uložit a přečíst si je později nebo v režimu offline. U dlouhých stránek se vás Chrome zeptá.</translation> <translation id="5094827893301452931">Tweet byl odeslán.</translation> <translation id="5118764316110575523">Vypnuto</translation> <translation id="5127805178023152808">Synchronizace je vypnuta</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Hledat na stránce...</translation> <translation id="8574235780160508979">Smluvní podmínky prohlížeče Chrome se 31. března změní. <ph name="BEGIN_LINK" />Prohlédnout nové smluvní podmínky<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Vypnuto</translation> +<translation id="8590913940444621808">Nikdy se neptat</translation> <translation id="8591976964826315682">V anonymním režimu blokovat soubory cookie třetích stran</translation> <translation id="8605219856220328675">Zavřít kartu</translation> <translation id="8620640915598389714">Upravit</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb index f4a6a00..76a59ff 100644 --- a/ios/chrome/app/strings/resources/ios_strings_da.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Installer Google Drev</translation> <translation id="5083464117946352670">Kan ikke fastslå filstørrelse.</translation> <translation id="5090832849094901128">Fjernelse af denne adgangskode sletter ikke din konto på <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Du kan gemme sider, som du vil læse senere, eller når du er offline. Chrome spørger dig, om du vil gemme lange sider.</translation> <translation id="5094827893301452931">Indlæg delt på Twitter.</translation> <translation id="5118764316110575523">Fra</translation> <translation id="5127805178023152808">Synkronisering er slået fra</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Find på siden...</translation> <translation id="8574235780160508979">Servicevilkårene for Chrome ændres den 31. marts <ph name="BEGIN_LINK" />Gennemgå dem<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Fra</translation> +<translation id="8590913940444621808">Spørg aldrig</translation> <translation id="8591976964826315682">Bloker tredjepartscookies i inkognito</translation> <translation id="8605219856220328675">Luk fane.</translation> <translation id="8620640915598389714">Rediger</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb index 7d5ae52..7bd709d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_el.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Εγκατάσταση Google Drive</translation> <translation id="5083464117946352670">Αδύν.προσδ.μεγέθους αρχείου.</translation> <translation id="5090832849094901128">Η κατάργηση αυτού του κωδικού πρόσβασης δεν θα διαγράψει τον λογαριασμό σας στον ιστότοπο <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Μπορείτε να αποθηκεύετε σελίδες για ανάγνωση αργότερα ή εκτός σύνδεσης. Το Chrome θα σας ρωτήσει αν θέλετε να αποθηκεύσετε μεγάλες σελίδες.</translation> <translation id="5094827893301452931">Το Tweet ολοκληρώθηκε.</translation> <translation id="5118764316110575523">Ανενεργό</translation> <translation id="5127805178023152808">Ο συγχρονισμός είναι απενεργοποιημένος</translation> @@ -758,6 +759,7 @@ <translation id="8548878600947630424">Εύρεση στη σελίδα...</translation> <translation id="8574235780160508979">Οι Όροι Παροχής Υπηρεσιών του Chrome θα αλλάξουν στις 31 Μαρτίου. <ph name="BEGIN_LINK" />Αναθεωρήστε το περιεχόμενο<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Ανενεργό</translation> +<translation id="8590913940444621808">Να μην ερωτώμαι</translation> <translation id="8591976964826315682">Αποκλεισμός cookie τρίτου μέρους στην ανώνυμη περιήγηση</translation> <translation id="8605219856220328675">Κλείσιμο καρτέλας.</translation> <translation id="8620640915598389714">Επεξεργασία</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb index 1e2b497..0073704 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalar Google Drive</translation> <translation id="5083464117946352670">Tamaño de archivo desconocido</translation> <translation id="5090832849094901128">Si borras esta contraseña, no se quitará tu cuenta de <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Puedes guardar páginas para leerlas más tarde o sin conexión. Chrome te preguntará si deseas guardar páginas extensas.</translation> <translation id="5094827893301452931">Tweet publicado</translation> <translation id="5118764316110575523">No</translation> <translation id="5127805178023152808">La sincronización está desactivada.</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Buscar en la página...</translation> <translation id="8574235780160508979">El 31 de marzo, cambiarán las Condiciones del Servicio de Chrome. <ph name="BEGIN_LINK" />Revísalas<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Apagada</translation> +<translation id="8590913940444621808">Nunca preguntar</translation> <translation id="8591976964826315682">Bloquear cookies de terceros en modo Incógnito</translation> <translation id="8605219856220328675">Cierra la pestaña.</translation> <translation id="8620640915598389714">Editar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index 150b2b0..053fa3b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalar Google Drive</translation> <translation id="5083464117946352670">Tamaño de archivo desconocido.</translation> <translation id="5090832849094901128">Aunque quites esta contraseña, no se eliminará tu cuenta de <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Puedes guardar páginas para leerlas más tarde o sin conexión. Chrome te preguntará si quieres guardar las páginas largas.</translation> <translation id="5094827893301452931">Tuit enviado</translation> <translation id="5118764316110575523">Desactivado</translation> <translation id="5127805178023152808">La sincronización está desactivada</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Buscar en la página...</translation> <translation id="8574235780160508979">Los Términos del Servicio de Chrome cambiarán el 31 de marzo. <ph name="BEGIN_LINK" />Revísalos<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Desactivada</translation> +<translation id="8590913940444621808">No preguntar nunca</translation> <translation id="8591976964826315682">Bloquear cookies de terceros en incógnito</translation> <translation id="8605219856220328675">Cerrar pestaña.</translation> <translation id="8620640915598389714">Editar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb index ef02caf..8c6f6f7f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_et.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Installi Google Drive</translation> <translation id="5083464117946352670">Failisuurust ei saa tuvastada.</translation> <translation id="5090832849094901128">Selle parooli eemaldamisel ei kustutata teie kontot saidil <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Saate lehed salvestada, et neid hiljem või võrguühenduseta lugeda. Kui soovite salvestada pikka lehte, palub Chrome teilt enne salvestamist kinnitada.</translation> <translation id="5094827893301452931">Säuts on valmis.</translation> <translation id="5118764316110575523">Väljas</translation> <translation id="5127805178023152808">Sünkroonimine on välja lülitatud</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Otsi lehelt ...</translation> <translation id="8574235780160508979">Chrome'i teenusetingimused muutuvad 31. märtsil. <ph name="BEGIN_LINK" />Vaadake need üle<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Väljas</translation> +<translation id="8590913940444621808">Ära küsi kunagi</translation> <translation id="8591976964826315682">Blokeeri kolmanda osapoole küpsisefailid inkognito režiimis</translation> <translation id="8605219856220328675">Sule vaheleht.</translation> <translation id="8620640915598389714">Muuda</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb index 67571e9..380d027e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalatu Google Drive</translation> <translation id="5083464117946352670">Ezin da zehaztu fitxategiaren tamaina.</translation> <translation id="5090832849094901128">Pasahitza ezabatzen baduzu ere, ez da ezabatuko <ph name="WEBSITE" /> webguneko kontua.</translation> +<translation id="5092117651143801290">Orriak gorde ditzakezu, geroago edo konexiorik ez daukazunean irakurtzeko. Orri luzeak gorde nahi dituzun galdetuko dizu Chrome-k.</translation> <translation id="5094827893301452931">Txio egin da.</translation> <translation id="5118764316110575523">Desaktibatuta</translation> <translation id="5127805178023152808">Sinkronizazioa desaktibatuta dago</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Bilatu orrian…</translation> <translation id="8574235780160508979">Chrome-ren Zerbitzu-baldintzak martxoaren 31n aldatuko dira. <ph name="BEGIN_LINK" />Irakur itzazu<ph name="END_LINK" />.</translation> <translation id="8588404856427128947">Itzalita</translation> +<translation id="8590913940444621808">Ez galdetu inoiz</translation> <translation id="8591976964826315682">Blokeatu hirugarrenen cookieak ezkutuko moduan</translation> <translation id="8605219856220328675">Itxi fitxa.</translation> <translation id="8620640915598389714">Editatu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb index ed30f3c..47490dd 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">نصب Google Drive</translation> <translation id="5083464117946352670">تعیین اندازه فایل ممکن نیست.</translation> <translation id="5090832849094901128">حذف این گذرواژه باعث حذف شدن حساب شما در <ph name="WEBSITE" /> نمیشود.</translation> +<translation id="5092117651143801290">میتوانید صفحهها را برای خواندن در فرصتی دیگر یا در حالت آفلاین ذخیره کنید. Chrome از شما میپرسد آیا میخواهید صفحات طولانی را ذخیره کنید.</translation> <translation id="5094827893301452931">Tweet انجام شد.</translation> <translation id="5118764316110575523">خاموش</translation> <translation id="5127805178023152808">همگامسازی خاموش است</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">یافتن در صفحه…</translation> <translation id="8574235780160508979">«شرایط خدمات» Chrome، ۳۱ مارس تغییر میکند. <ph name="BEGIN_LINK" />لطفاً بازبینی کنید<ph name="END_LINK" /></translation> <translation id="8588404856427128947">خاموش</translation> +<translation id="8590913940444621808">هرگز سؤال نشود</translation> <translation id="8591976964826315682">مسدود کردن کوکیهای شخص ثالث در «حالت ناشناس»</translation> <translation id="8605219856220328675">بستن برگه</translation> <translation id="8620640915598389714">ویرایش</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb index ce38a0b..6dc8585 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Asenna Google Drive</translation> <translation id="5083464117946352670">Tiedostokokoa ei voi määrittää</translation> <translation id="5090832849094901128">Vaikka poistat salasanan, tiliäsi (<ph name="WEBSITE" />) ei poisteta.</translation> +<translation id="5092117651143801290">Voit tallentaa sivuja luettavaksi myöhemmin tai ilman verkkoyhteyttä. Chrome kysyy, haluatko tallentaa pitkiä sivuja.</translation> <translation id="5094827893301452931">Tweet julkaistu.</translation> <translation id="5118764316110575523">Pois päältä</translation> <translation id="5127805178023152808">Synkronointi on pois päältä</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Haku sivulta...</translation> <translation id="8574235780160508979">Chromen käyttöehdot muuttuvat 31.3. <ph name="BEGIN_LINK" />Lue ehdot<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Pois päältä</translation> +<translation id="8590913940444621808">Älä kysy ikinä</translation> <translation id="8591976964826315682">Estä kolmannen osapuolen evästeet incognito-tilassa</translation> <translation id="8605219856220328675">Sulje välilehti.</translation> <translation id="8620640915598389714">Muokkaa</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb index 0b0fa61..65f755b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Installer Google Disque</translation> <translation id="5083464117946352670">Imposs. déterm. taille fichier</translation> <translation id="5090832849094901128">Supprimer ce mot de passe ne supprimera pas également votre compte sur <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Vous pouvez enregistrer des pages afin de les lire plus tard ou de les lire hors ligne. Chrome vous demandera si vous voulez enregistrer les longues pages.</translation> <translation id="5094827893301452931">Gazouillis terminé.</translation> <translation id="5118764316110575523">Désactivé</translation> <translation id="5127805178023152808">La synchronisation est désactivée</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Rechercher sur la page…</translation> <translation id="8574235780160508979">Les conditions d'utilisation de Chrome changeront le 31 mars. <ph name="BEGIN_LINK" />Veuillez les consulter<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Désactivée</translation> +<translation id="8590913940444621808">Ne jamais demander</translation> <translation id="8591976964826315682">Bloquer les témoins tiers en navigation privée</translation> <translation id="8605219856220328675">Fermer l'onglet.</translation> <translation id="8620640915598389714">Modifier</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb index cbf86f6..2e9a6e4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Installer Google Drive</translation> <translation id="5083464117946352670">Impos. déterm. taille fichier.</translation> <translation id="5090832849094901128">La suppression de ce mot de passe n'entraînera pas celle de votre compte sur <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Vous pouvez enregistrer des pages pour les lire plus tard ou hors connexion. Chrome vous demandera si vous voulez enregistrer les longues pages.</translation> <translation id="5094827893301452931">Tweet publié.</translation> <translation id="5118764316110575523">Désactivé</translation> <translation id="5127805178023152808">La synchronisation est désactivée.</translation> @@ -758,6 +759,7 @@ <translation id="8548878600947630424">Rechercher sur la page…</translation> <translation id="8574235780160508979">Les conditions d'utilisation de Chrome vont changer le 31 mars. <ph name="BEGIN_LINK" />Veuillez consulter les modifications<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Éteinte</translation> +<translation id="8590913940444621808">Ne jamais demander</translation> <translation id="8591976964826315682">Bloquer les cookies tiers en mode navigation privée</translation> <translation id="8605219856220328675">Fermer l'onglet</translation> <translation id="8620640915598389714">Modifier</translation> @@ -805,6 +807,7 @@ <translation id="9094033019050270033">Modifier le mot de passe</translation> <translation id="9100610230175265781">Veuillez saisir la phrase secrète.</translation> <translation id="9107664647686727385">Pour vérifier la présence de mots de passe compromis</translation> +<translation id="9124387962554796433">Google peut utiliser votre historique pour personnaliser la recherche et d'autres services Google.</translation> <translation id="9137526406337347448">Google Services</translation> <translation id="9148126808321036104">Nouvelle connexion</translation> <translation id="9152539721251340337">Créer un code QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb index 10c2b01..27b2bac 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalar Google Drive</translation> <translation id="5083464117946352670">Imposible determinar tamaño.</translation> <translation id="5090832849094901128">Ao eliminar este contrasinal non se eliminará a túa conta de <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Podes gardar páxinas para lelas máis tarde ou sen conexión. Chrome preguntarache se queres gardar páxinas longas.</translation> <translation id="5094827893301452931">Completouse o chío.</translation> <translation id="5118764316110575523">Non</translation> <translation id="5127805178023152808">A sincronización está desactivada</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Buscar na páxina...</translation> <translation id="8574235780160508979">As Condicións de servizo de Chrome cambiarán o 31 de marzo. <ph name="BEGIN_LINK" />Revísaas<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Desactivada</translation> +<translation id="8590913940444621808">Non preguntar nunca</translation> <translation id="8591976964826315682">Bloquear cookies de terceiros no modo de incógnito</translation> <translation id="8605219856220328675">Pechar pestana.</translation> <translation id="8620640915598389714">Editar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb index a8af31f..3b09e00 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -802,6 +802,7 @@ <translation id="9094033019050270033">પાસવર્ડ અપડેટ કરો</translation> <translation id="9100610230175265781">પાસફ્રેઝ આવશ્યક છે</translation> <translation id="9107664647686727385">ચેડાં કરાયેલા પાસવર્ડ ચેક કરો</translation> +<translation id="9124387962554796433">Search અને Googleની અન્ય સેવાઓને મનપસંદ બનાવવા માટે, Google તમારા ઇતિહાસનો ઉપયોગ કરી શકે છે.</translation> <translation id="9137526406337347448">Google સેવાઓ</translation> <translation id="9148126808321036104">ફરીથી સાઇન ઇન કરો </translation> <translation id="9152539721251340337">QR કોડ બનાવો</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb index df1a3f9..513bb4e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google डिस्क इंस्टॉल करें</translation> <translation id="5083464117946352670">फ़ाइल आकार तय नहीं हो पा रहा.</translation> <translation id="5090832849094901128">इस पासवर्ड को मिटाने से, आपका <ph name="WEBSITE" /> वाला खाता नहीं मिटेगा.</translation> +<translation id="5092117651143801290">आप पेजों को, बाद में या ऑफ़लाइन पढ़ने के लिए सेव कर सकते हैं. आपसे Chrome पर पूछा जाएगा कि क्या आप लंबे (ज़्यादा जानकारी वाले) पेजों को सेव करना चाहते हैं.</translation> <translation id="5094827893301452931">ट्वीट पूरा हुआ.</translation> <translation id="5118764316110575523">बंद है</translation> <translation id="5127805178023152808">समन्वयन बंद है</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">पेज में ढूंढें...</translation> <translation id="8574235780160508979">Chrome की सेवा की शर्तें 31 मार्च से बदलने वाली हैं. <ph name="BEGIN_LINK" />कृपया ध्यान से पढ़ें<ph name="END_LINK" /></translation> <translation id="8588404856427128947">बंद है</translation> +<translation id="8590913940444621808">कभी ना पूछें</translation> <translation id="8591976964826315682">गुप्त मोड में तीसरे पक्ष की कुकी ब्लॉक करें</translation> <translation id="8605219856220328675">टैब बंद करें.</translation> <translation id="8620640915598389714">बदलाव करें</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb index 46d8df4..d37d9a9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instaliraj Google disk</translation> <translation id="5083464117946352670">Veličina datoteke nije utvrđena.</translation> <translation id="5090832849094901128">Brisanjem zaporke neće se izbrisati vaš račun na <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Stranice možete spremati da biste ih čitali kasnije ili izvanmrežno. Chrome će vas pitati želite li spremiti dugačke stranice.</translation> <translation id="5094827893301452931">Tweet je dovršen.</translation> <translation id="5118764316110575523">Isključeno</translation> <translation id="5127805178023152808">Sinkronizacija je isključena</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Traženje na stranici...</translation> <translation id="8574235780160508979">Chromeovi Uvjeti pružanja usluge mijenjaju se 31. ožujka. <ph name="BEGIN_LINK" />Pregledajte<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Isključeno</translation> +<translation id="8590913940444621808">Nikad ne pitaj</translation> <translation id="8591976964826315682">Blokiranje kolačića trećih strana u anonimnom načinu</translation> <translation id="8605219856220328675">Zatvori karticu.</translation> <translation id="8620640915598389714">Uredi</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb index 46a1d60..53a25182 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Drive telepítése</translation> <translation id="5083464117946352670">A fájlméret ismeretlen.</translation> <translation id="5090832849094901128">A jelszó eltávolításával nem törli fiókját a következő domainről: <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Mentheti az oldalakat későbbi vagy offline állapotban való olvasásra. Hosszú oldalak esetén a Chrome rákérdez, hogy szeretné-e menteni őket.</translation> <translation id="5094827893301452931">A Tweet kész.</translation> <translation id="5118764316110575523">Ki</translation> <translation id="5127805178023152808">Szinkronizálás kikapcsolva</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Keresés az oldalon...</translation> <translation id="8574235780160508979">A Chrome Általános Szerződési Feltételei március 31-én módosulnak. <ph name="BEGIN_LINK" />Kérjük, tekintse meg<ph name="END_LINK" />.</translation> <translation id="8588404856427128947">Kikapcsolva</translation> +<translation id="8590913940444621808">Ne kérdezzen rá</translation> <translation id="8591976964826315682">Harmadik felektől származó cookie-k letiltása Inkognitó módban</translation> <translation id="8605219856220328675">Lap bezárása.</translation> <translation id="8620640915598389714">Szerkesztés</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb index 6723d2f..a44b881 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Տեղադրել Google Drive-ը</translation> <translation id="5083464117946352670">Չհաջողվեց որոշել ֆայլի չափը:</translation> <translation id="5090832849094901128">Եթե հեռացնեք այս գաղտնաբառը, ձեր հաշիվը չի ջնջվի <ph name="WEBSITE" /> կայքից։</translation> +<translation id="5092117651143801290">Դուք կարող եք պահել էջերը՝ ավելի ուշ կամ անցանց ռեժիմում կարդալու համար։ Chrome-ում երկար նյութերը պահելուց առաջ ձեզ կառաջարկվի հաստատել այդ գործողությունը։</translation> <translation id="5094827893301452931">Twitter-ում տարածումն ավարտվեց:</translation> <translation id="5118764316110575523">Անջատված է</translation> <translation id="5127805178023152808">Համաժամացումն անջատված է</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Գտնել էջում…</translation> <translation id="8574235780160508979">Chrome-ի օգտագործման պայմանները կթարմացվեն մարտի 31-ին: <ph name="BEGIN_LINK" />Ծանոթանալ փոփոխություններին<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Անջատված է</translation> +<translation id="8590913940444621808">Երբեք չհարցնել</translation> <translation id="8591976964826315682">Արգելափակել կողմնակի կայքերի քուքիները ինկոգնիտո ռեժիմում</translation> <translation id="8605219856220328675">Փակել ներդիրը:</translation> <translation id="8620640915598389714">Փոփոխել</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb index c5d31584..09120d7 100644 --- a/ios/chrome/app/strings/resources/ios_strings_id.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instal Google Drive</translation> <translation id="5083464117946352670">Tidak dapat menentukan ukuran file.</translation> <translation id="5090832849094901128">Menghapus sandi ini tidak akan menghapus akun Anda di <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Anda dapat menyimpan halaman untuk dibaca nanti atau saat offline. Chrome akan menanyakan apakah Anda ingin menyimpan halaman panjang.</translation> <translation id="5094827893301452931">Tweet selesai.</translation> <translation id="5118764316110575523">Nonaktif</translation> <translation id="5127805178023152808">Sinkronisasi nonaktif</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Cari di halaman...</translation> <translation id="8574235780160508979">Persyaratan Layanan Chrome akan berubah pada 31 Maret. <ph name="BEGIN_LINK" />Harap tinjau<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Nonaktif</translation> +<translation id="8590913940444621808">Jangan Tanya</translation> <translation id="8591976964826315682">Blokir Cookie Pihak Ketiga dalam Mode Samaran</translation> <translation id="8605219856220328675">Tutup tab.</translation> <translation id="8620640915598389714">Edit</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb index dd0ac4fe..0523d9a0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_is.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Setja upp Google Drive</translation> <translation id="5083464117946352670">Ekki var hægt að ákvarða skráarstærð.</translation> <translation id="5090832849094901128">Reikningnum þínum á <ph name="WEBSITE" /> verður ekki eytt þótt þessu aðgangsorði verði eytt.</translation> +<translation id="5092117651143801290">Þú getur vistað síður til að lesa þær síðar eða án nettengingar. Chrome spyr þig hvort þú viljir vista langar síður.</translation> <translation id="5094827893301452931">Tíst birt.</translation> <translation id="5118764316110575523">Slökkt</translation> <translation id="5127805178023152808">Slökkt er á samstillingu</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Finna á síðu...</translation> <translation id="8574235780160508979">Þjónustuskilmálar Chrome breytast 31. mars. <ph name="BEGIN_LINK" />Kynntu þér þá<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Slökkt</translation> +<translation id="8590913940444621808">Aldrei spyrja</translation> <translation id="8591976964826315682">Loka á fótspor þriðju aðila í huliðsstillingu</translation> <translation id="8605219856220328675">Loka flipa.</translation> <translation id="8620640915598389714">Breyta</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb index aa3318a..27faf9f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Installa Google Drive</translation> <translation id="5083464117946352670">Impossibile stabilire le dimensioni del file.</translation> <translation id="5090832849094901128">L'eliminazione di questa password non comporta l'eliminazione del tuo account su <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Puoi salvare le pagine da leggere in un secondo momento o quando sei offline. Chrome ti chiederà se vuoi salvare le pagine lunghe.</translation> <translation id="5094827893301452931">Tweet completato.</translation> <translation id="5118764316110575523">Off</translation> <translation id="5127805178023152808">La sincronizzazione è disattivata</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Trova nella pagina...</translation> <translation id="8574235780160508979">I Termini di servizio di Chrome cambieranno il 31 marzo. <ph name="BEGIN_LINK" />Ti invitiamo a leggerli<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Non attiva</translation> +<translation id="8590913940444621808">Non chiedere mai</translation> <translation id="8591976964826315682">Blocca cookie di terze parti in modalità di navigazione in incognito</translation> <translation id="8605219856220328675">Chiudi la scheda.</translation> <translation id="8620640915598389714">Modifica</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb index 2508ad8..e6531a9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">התקנת Google Drive</translation> <translation id="5083464117946352670">גודל הקובץ אינו ידוע.</translation> <translation id="5090832849094901128">מחיקת הסיסמה הזו לא תגרום למחיקת החשבון שלך באתר <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">ניתן לשמור דפים לקריאה במועד מאוחר יותר או במצב אופליין. תתקבל שאלה מ-Chrome אם ברצונך לשמור דפים ארוכים.</translation> <translation id="5094827893301452931">הציוץ בוצע.</translation> <translation id="5118764316110575523">כבויה</translation> <translation id="5127805178023152808">סנכרון כבוי</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">חיפוש בדף...</translation> <translation id="8574235780160508979">התנאים וההגבלות של Chrome ישתנו ב-31 במרץ. <ph name="BEGIN_LINK" />יש לקרוא אותם<ph name="END_LINK" /></translation> <translation id="8588404856427128947">כבוי</translation> +<translation id="8590913940444621808">אין לשאול שוב</translation> <translation id="8591976964826315682">חסימת קובצי cookie של צד שלישי במצב אנונימי</translation> <translation id="8605219856220328675">סגירת כרטיסייה.</translation> <translation id="8620640915598389714">עריכה</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb index cb10165..1d8b60b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Drive-ის ინსტალაცია</translation> <translation id="5083464117946352670">ფაილის ზომის განსაზღვრა შეუძლებელია.</translation> <translation id="5090832849094901128">ამ პაროლის წაშლის შემთხვევაში თქვენი ანგარიში <ph name="WEBSITE" />-ზე არ წაიშლება.</translation> +<translation id="5092117651143801290">სურვილისამებრ, შეგიძლიათ შეინახოთ გვერდები მოგვიანებით ან ხაზგარეშე რეჟიმში წასაკითხად. Chrome გკითხავთ, გსურთ თუ არა გრძელი გვერდების შენახვა.</translation> <translation id="5094827893301452931">ტვიტი დასრულებულია.</translation> <translation id="5118764316110575523">გამორთული</translation> <translation id="5127805178023152808">სინქრონიზაცია გამორთულია</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">ამ გვერდზე ძიება...</translation> <translation id="8574235780160508979">Chrome-ის მომსახურების პირობები შეიცვლება 31 მარტს. <ph name="BEGIN_LINK" />გთხოვთ, გადახედოთ მათ<ph name="END_LINK" /></translation> <translation id="8588404856427128947">გამორთულია</translation> +<translation id="8590913940444621808">აღარ მკითხოთ</translation> <translation id="8591976964826315682">მესამე მხარის ქუქი-ჩანაწერების დაბლოკვა ინკოგნიტო რეჟიმში</translation> <translation id="8605219856220328675">ჩანართის დახურვა.</translation> <translation id="8620640915598389714">რედაქტირება</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb index f5d4e4b..581b9c0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Drive орнату</translation> <translation id="5083464117946352670">Файл өлшемін анықтау мүмкін емес.</translation> <translation id="5090832849094901128">Құпия сөзді жойсаңыз, <ph name="WEBSITE" /> сайтындағы есептік жазбаңыз жойылмайды.</translation> +<translation id="5092117651143801290">Беттерді сақтап, оларды кейінірек не офлайн режимде оқи аласыз. Ұзын беттерді сақтау кезінде Chrome бұл әрекетті орындау қажеттігін сұрайды.</translation> <translation id="5094827893301452931">Tweet аяқталды.</translation> <translation id="5118764316110575523">Өшірулі</translation> <translation id="5127805178023152808">Синхрондау өшірулі</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Беттен табу…</translation> <translation id="8574235780160508979">Chrome-ның Қызмет көрсету шарттары 31 наурыздан бастап өзгереді. <ph name="BEGIN_LINK" />Қарап шығыңыз<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Өшірулі</translation> +<translation id="8590913940444621808">Ешқашан сұрамау</translation> <translation id="8591976964826315682">Инкогнито режимінде үшінші тараптың cookie файлдарын бөгеу</translation> <translation id="8605219856220328675">Қойындыны жабу</translation> <translation id="8620640915598389714">Өзгерту</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb index 52cf3ab..9f6888f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">ដំឡើង Google Drive</translation> <translation id="5083464117946352670">មិនអាចដឹងពីទំហំឯកសារទេ។</translation> <translation id="5090832849094901128">ការលុបពាក្យសម្ងាត់នេះនឹងមិនលុបគណនីរបស់អ្នកនៅលើ <ph name="WEBSITE" /> ទេ។</translation> +<translation id="5092117651143801290">អ្នកអាចរក្សាទុកទំព័រ ដើម្បីអាននៅពេលក្រោយ ឬពេលគ្មានអ៊ីនធឺណិត។ Chrome នឹងសួរថាតើអ្នកចង់រក្សាទុកទំព័រវែងៗឬអត់។</translation> <translation id="5094827893301452931">ការបង្ហោះតាម Twitter រួចរាល់។</translation> <translation id="5118764316110575523">បិទ</translation> <translation id="5127805178023152808">សមកម្មបានបិទ</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">ស្វែងរកក្នុងទំព័រ...</translation> <translation id="8574235780160508979">លក្ខខណ្ឌប្រើប្រាស់របស់ Chrome នឹងផ្លាស់ប្ដូរនៅថ្ងៃទី 31 ខែមីនា។ <ph name="BEGIN_LINK" />សូមពិនិត្យមើល<ph name="END_LINK" /></translation> <translation id="8588404856427128947">បិទ</translation> +<translation id="8590913940444621808">កុំសួរឱ្យសោះ</translation> <translation id="8591976964826315682">ទប់ស្កាត់ខូគីភាគីទីបីក្នុងមុខងារឯកជន</translation> <translation id="8605219856220328675">បិទផ្ទាំង</translation> <translation id="8620640915598389714">កែសម្រួល</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb index 28c3133..1334b6bc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google ಡ್ರೈವ್ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ</translation> <translation id="5083464117946352670">ಫೈಲ್ ಗಾತ್ರವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> <translation id="5090832849094901128">ಈ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಅಳಿಸುವುದರಿಂದ <ph name="WEBSITE" /> ನಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ.</translation> +<translation id="5092117651143801290">ನೀವು ಪುಟಗಳನ್ನು ನಂತರ ಅಥವಾ ಆಫ್ಲೈನ್ನಲ್ಲಿ ಓದಲು ಉಳಿಸಬಹುದು. ನೀವು ದೀರ್ಘ ಪುಟಗಳನ್ನು ಉಳಿಸಲು ಬಯಸುತ್ತೀರಾ ಎಂದು Chrome ಕೇಳುತ್ತದೆ.</translation> <translation id="5094827893301452931">Tweet ಪೂರ್ಣಗೊಂಡಿದೆ.</translation> <translation id="5118764316110575523">ಆಫ್ ಆಗಿದೆ</translation> <translation id="5127805178023152808">ಸಿಂಕ್ ಆಫ್ ಆಗಿದೆ</translation> @@ -755,6 +756,7 @@ <translation id="8548878600947630424">ಪುಟದಲ್ಲಿ ಹುಡುಕಿ...</translation> <translation id="8574235780160508979">ಮಾರ್ಚ್ 31 ರಿಂದ Chrome ನ ಸೇವಾ ನಿಯಮಗಳು ಬದಲಾಗುತ್ತಿವೆ. <ph name="BEGIN_LINK" />ಪರಿಶೀಲಿಸಿ<ph name="END_LINK" /></translation> <translation id="8588404856427128947">ಆಫ್</translation> +<translation id="8590913940444621808">ಎಂದಿಗೂ ಕೇಳಬೇಡಿ</translation> <translation id="8591976964826315682">ಅದೃಶ್ಯ ಮೋಡ್ನಲ್ಲಿ ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation> <translation id="8605219856220328675">ಟ್ಯಾಬ್ ಮುಚ್ಚಿ.</translation> <translation id="8620640915598389714">ಎಡಿಟ್</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb index bb79e69..636f82a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Drive 설치</translation> <translation id="5083464117946352670">파일 크기를 알 수 없습니다.</translation> <translation id="5090832849094901128">비밀번호를 삭제해도 <ph name="WEBSITE" /> 계정은 삭제되지 않습니다.</translation> +<translation id="5092117651143801290">페이지를 저장하여 나중에 읽거나 오프라인 상태에서 읽을 수 있습니다. Chrome에서 장문의 페이지를 저장할지 묻는 메시지가 표시됩니다.</translation> <translation id="5094827893301452931">Tweet이 완료되었습니다.</translation> <translation id="5118764316110575523">사용 안함</translation> <translation id="5127805178023152808">동기화 사용 안함</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">페이지에서 찾기...</translation> <translation id="8574235780160508979">Chrome의 서비스 약관이 3월 31일에 변경됩니다. <ph name="BEGIN_LINK" />검토하기<ph name="END_LINK" /></translation> <translation id="8588404856427128947">사용 안함</translation> +<translation id="8590913940444621808">묻지 않음</translation> <translation id="8591976964826315682">시크릿 모드에서 타사 쿠키 차단</translation> <translation id="8605219856220328675">탭 닫기</translation> <translation id="8620640915598389714">수정</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb index 4701e10f..bb66592 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Drive'ды орнотуу</translation> <translation id="5083464117946352670">Файлдын өлчөмү аныкталбайт.</translation> <translation id="5090832849094901128">Бул сырсөздү жок кылуу менен <ph name="WEBSITE" /> аккаунтуңуз өчпөйт.</translation> +<translation id="5092117651143801290">Барактарды сактап коюп, кийинчерээк оффлайн режиминде окуй аласыз. Chrome узун барактарды сактоого уруксат сурайт.</translation> <translation id="5094827893301452931">Твиттелди.</translation> <translation id="5118764316110575523">Өчүк</translation> <translation id="5127805178023152808">Шайкештештирүү өчүк</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Беттен табуу…</translation> <translation id="8574235780160508979">Chrome’дун Тейлөө шарттары 31-марттан кийин өзгөргөнү жатат. <ph name="BEGIN_LINK" />Карап чыгыңыз<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Өчүк</translation> +<translation id="8590913940444621808">Эч качан суралбасын</translation> <translation id="8591976964826315682">Жашыруун режимде үчүнчү тараптын cookie файлдарын бөгөттөө</translation> <translation id="8605219856220328675">Өтмөктү жабуу.</translation> <translation id="8620640915598389714">Түзөтүү</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb index 0ac7ca19..9361baa 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">ຕິດຕັ້ງ Google Drive</translation> <translation id="5083464117946352670">ບໍ່ສາມາດກຳນົດຂະໜາດໄຟລ໌ໄດ້.</translation> <translation id="5090832849094901128">ການລຶບລະຫັດຜ່ານນີ້ຈະບໍ່ລຶບບັນຊີຂອງທ່ານໃນ <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">ທ່ານສາມາດບັນທຶກໜ້າຕ່າງໆໄວ້ອ່ານໃນພາຍຫຼັງ ຫຼື ອ່ານອອບລາຍໄດ້. Chrome ຈະຖາມວ່າທ່ານຕ້ອງການບັນທຶກໜ້າເວັບແບບຍາວບໍ່.</translation> <translation id="5094827893301452931">Tweet ສໍາເລັດ.</translation> <translation id="5118764316110575523">ປິດ</translation> <translation id="5127805178023152808">ຊິງຄ໌ປິດ</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">ຊອກຫາຢູ່ໃນຫນ້າ...</translation> <translation id="8574235780160508979">ຂໍ້ກຳນົດການບໍລິການຂອງ Chrome ຈະປ່ຽນແປງໃນວັນທີ 31 ເດືອນມີນາ. <ph name="BEGIN_LINK" />ກະລຸນາກວດເບິ່ງ<ph name="END_LINK" /></translation> <translation id="8588404856427128947">ປິດ</translation> +<translation id="8590913940444621808">ຢ່າຖາມອີກ</translation> <translation id="8591976964826315682">ບລັອກຄຸກກີ້ພາກສ່ວນທີສາມໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation> <translation id="8605219856220328675">ປິດແຖບ.</translation> <translation id="8620640915598389714">ແກ້ໄຂ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb index 5f30bd3..875d49c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Įdiegti „Google“ diską</translation> <translation id="5083464117946352670">Nepav. nustatyti failo dydžio.</translation> <translation id="5090832849094901128">Ištrynus šį slaptažodį jūsų paskyra svetainėje <ph name="WEBSITE" /> nebus ištrinta.</translation> +<translation id="5092117651143801290">Išsaugoję puslapius galėsite skaityti juos vėliau arba neprisijungę. „Chrome“ klaus, ar norite išsaugoti ilgus puslapius.</translation> <translation id="5094827893301452931">„Tweet“ įrašas paskelbtas.</translation> <translation id="5118764316110575523">Išjungta</translation> <translation id="5127805178023152808">Sinchronizavimas išjungtas</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Ieškoti puslapyje...</translation> <translation id="8574235780160508979">Kovo 31 dieną bus pakeistos „Chrome“ paslaugų teikimo sąlygos. <ph name="BEGIN_LINK" />Peržiūrėkite<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Išjungta</translation> +<translation id="8590913940444621808">Niekada neklausti</translation> <translation id="8591976964826315682">Blokuoti trečiųjų šalių slapukus inkognito režimu</translation> <translation id="8605219856220328675">Uždaryti skirtuką.</translation> <translation id="8620640915598389714">Redaguoti</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb index b65ca06..d2e7bb2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalēt Google disku</translation> <translation id="5083464117946352670">Nevar noteikt faila lielumu.</translation> <translation id="5090832849094901128">Izdzēšot šo paroli, netiks dzēsts jūsu konts vietnē <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Varat saglabāt lapas lasīšanai vēlāk vai bezsaistē. Pārlūkā Chrome tiks vaicāts, vai vēlaties saglabāt apjomīgas lapas.</translation> <translation id="5094827893301452931">Twitter ziņa izveidota.</translation> <translation id="5118764316110575523">Izslēgts</translation> <translation id="5127805178023152808">Sinhronizācija izslēgta</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Atrast lapā...</translation> <translation id="8574235780160508979">31. martā tiks mainīti Chrome pakalpojumu sniegšanas noteikumi. <ph name="BEGIN_LINK" />Lūdzu, pārskatiet tos<ph name="END_LINK" />.</translation> <translation id="8588404856427128947">Izslēgts</translation> +<translation id="8590913940444621808">Vairs nejautāt</translation> <translation id="8591976964826315682">Inkognito režīmā bloķēt trešo pušu sīkfailus</translation> <translation id="8605219856220328675">Aizvērt cilni.</translation> <translation id="8620640915598389714">Rediģēt</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb index b9d08a8..7f0d4942 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Инсталирајте Диск на Google</translation> <translation id="5083464117946352670">Не може да утврди големина на датотека.</translation> <translation id="5090832849094901128">Со бришењето на лозинкава нема да се избрише вашата сметка на <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Може да зачувувате страници за да ги читате подоцна или офлајн. Chrome ќе ве праша дали сакате да зачувувате долги страници.</translation> <translation id="5094827893301452931">Твитот е завршен.</translation> <translation id="5118764316110575523">Исклучено</translation> <translation id="5127805178023152808">Синхронизацијата е исклучена</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Најди во страница...</translation> <translation id="8574235780160508979">„Условите за користење“ на Chrome се менуваат на 31 март. <ph name="BEGIN_LINK" />Прегледајте ги<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Исклучена</translation> +<translation id="8590913940444621808">Никогаш не прашувај</translation> <translation id="8591976964826315682">Блокирајте колачиња од трети страни во „Инкогнито“</translation> <translation id="8605219856220328675">Затвори ја картичката.</translation> <translation id="8620640915598389714">Измени</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index 8faf3519..4f7de01 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google ഡ്രൈവ് ഇൻസ്റ്റാൾ ചെയ്യുക</translation> <translation id="5083464117946352670">ഫയൽ വലുപ്പം നിർണ്ണയിക്കാനാവില്ല.</translation> <translation id="5090832849094901128">ഈ പാസ്വേഡ് ഇല്ലാതാക്കുന്നത് <ph name="WEBSITE" /> -ലെ നിങ്ങളുടെ അക്കൗണ്ട് ഇല്ലാതാക്കില്ല.</translation> +<translation id="5092117651143801290">പിന്നീട് അല്ലെങ്കിൽ ഓഫ്ലൈനിൽ വായിക്കുന്നതിന് നിങ്ങൾക്ക് പേജുകൾ സംരക്ഷിക്കാനാകും. ദൈർഘ്യമേറിയ പേജുകൾ സംരക്ഷിക്കണോ എന്ന് Chrome നിങ്ങളോട് ചോദിക്കും.</translation> <translation id="5094827893301452931">Tweet പങ്കിടൽ പൂർത്തിയായി.</translation> <translation id="5118764316110575523">ഓഫാണ്</translation> <translation id="5127805178023152808">സമന്വയം ഓഫാണ്</translation> @@ -755,6 +756,7 @@ <translation id="8548878600947630424">പേജിൽ കണ്ടെത്തുക...</translation> <translation id="8574235780160508979">Chrome-ന്റെ സേവന നിബന്ധനകളിൽ മാർച്ച് 31-ന് മാറ്റം വരുന്നു. <ph name="BEGIN_LINK" />അവലോകനം ചെയ്യുക<ph name="END_LINK" /></translation> <translation id="8588404856427128947">ഓഫാണ്</translation> +<translation id="8590913940444621808">വീണ്ടും ചോദിക്കരുത്</translation> <translation id="8591976964826315682">അദൃശ്യ മോഡിൽ മൂന്നാം കക്ഷി കുക്കികൾ ബ്ലോക്ക് ചെയ്യുക</translation> <translation id="8605219856220328675">ടാബ് അടയ്ക്കുക.</translation> <translation id="8620640915598389714">എഡിറ്റ് ചെയ്യുക</translation> @@ -802,6 +804,7 @@ <translation id="9094033019050270033">പാസ്വേഡ് അപ്ഡേറ്റ് ചെയ്യുക</translation> <translation id="9100610230175265781">പാസ്ഫ്രെയ്സ് ആവശ്യമാണ്</translation> <translation id="9107664647686727385">അപഹരിക്കപ്പെട്ട പാസ്വേഡുകൾ കണ്ടെത്താൻ പരിശോധിക്കുക</translation> +<translation id="9124387962554796433">Search-ഉം മറ്റ് Google സേവനങ്ങളും വ്യക്തിപരമാക്കാൻ Google നിങ്ങളുടെ ചരിത്രം ഉപയോഗിച്ചേക്കാം.</translation> <translation id="9137526406337347448">Google സേവനങ്ങൾ</translation> <translation id="9148126808321036104">വീണ്ടും പ്രവേശിക്കുക</translation> <translation id="9152539721251340337">QR കോഡ് സൃഷ്ടിക്കുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index 4222d6e3..7a44369 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Pasang Google Drive</translation> <translation id="5083464117946352670">Tidak dapat menentukan saiz fail.</translation> <translation id="5090832849094901128">Pemadaman kata laluan ini tidak akan memadamkan akaun anda pada <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Anda boleh menyimpan halaman untuk dibaca kemudian atau secara luar talian. Chrome akan bertanya sama ada anda mahu menyimpan halaman panjang atau tidak.</translation> <translation id="5094827893301452931">Tweet selesai.</translation> <translation id="5118764316110575523">Mati</translation> <translation id="5127805178023152808">Penyegerakan dimatikan</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Cari dalam halaman...</translation> <translation id="8574235780160508979">Syarat Perkhidmatan Chrome akan berubah pada 31 Mac. <ph name="BEGIN_LINK" />Sila semak<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Mati</translation> +<translation id="8590913940444621808">Jangan Tanya</translation> <translation id="8591976964826315682">Sekat Kuki Pihak Ketiga dalam Inkognito</translation> <translation id="8605219856220328675">Tutup tab.</translation> <translation id="8620640915598389714">Edit</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb index 0022a705..9629c39 100644 --- a/ios/chrome/app/strings/resources/ios_strings_my.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Drive တပ်ဆင်မည်</translation> <translation id="5083464117946352670">ဖိုင်အရွယ်အစားမဆုံးဖြတ်နိုင်ပါ။</translation> <translation id="5090832849094901128">ဤစကားဝှက်ကို ဖျက်ခြင်းဖြင့် <ph name="WEBSITE" /> ရှိ သင့်အကောင့်ကို ဖျက်မည်မဟုတ်ပါ။</translation> +<translation id="5092117651143801290">စာမျက်နှာများကို နောက်မှဖတ်ရန် (သို့) အော့ဖ်လိုင်းဖတ်ရန် သိမ်းနိုင်သည်။ စာမျက်နှာအရှည်များ သိမ်းလိုခြင်း ရှိ၊ မရှိကို Chrome က မေးပါမည်။</translation> <translation id="5094827893301452931">Tweet ပြီးစီးပါပြီ။</translation> <translation id="5118764316110575523">ပိတ်ထားသည်</translation> <translation id="5127805178023152808">စင့် ပိတ်ထား၏</translation> @@ -756,6 +757,7 @@ <translation id="8548878600947630424">...စာမျက်နှာတွင်ရှာပါ</translation> <translation id="8574235780160508979">'Chrome ၏ ဝန်ဆောင်မှု စည်းမျဉ်းများ' ကို မတ် ၃၁ တွင် ပြောင်းပါမည်။ <ph name="BEGIN_LINK" />ပြန်ကြည့်ပေးပါ<ph name="END_LINK" /></translation> <translation id="8588404856427128947">ပိတ်ရန်</translation> +<translation id="8590913940444621808">ဘယ်တော့မှမမေးပါနှင့်</translation> <translation id="8591976964826315682">ရုပ်ဖျက်မုဒ်တွင် ပြင်ပအဖွဲ့၏ကွတ်ကီးများကို ပိတ်ထားရန်</translation> <translation id="8605219856220328675">တဘ်ကိုပိတ်ပါ။</translation> <translation id="8620640915598389714">ပြင်ဆင်ရန်</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb index 0421f9d6..07af0c7 100644 --- a/ios/chrome/app/strings/resources/ios_strings_no.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Installer Google Disk</translation> <translation id="5083464117946352670">Kan ikke fastslå filstørrelsen.</translation> <translation id="5090832849094901128">Sletting av dette passordet sletter ikke kontoen din på <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Du kan lagre sider for å lese dem senere eller uten nett. Chrome kommer til å spørre om du vil lagre lange sider.</translation> <translation id="5094827893301452931">Twitter-meldingen er fullført.</translation> <translation id="5118764316110575523">Av</translation> <translation id="5127805178023152808">Synkronisering er slått av</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Finn på siden</translation> <translation id="8574235780160508979">Vilkårene for bruk av Chrome endres 31. mars. <ph name="BEGIN_LINK" />Les gjennom dem<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Av</translation> +<translation id="8590913940444621808">Spør aldri</translation> <translation id="8591976964826315682">Blokkér informasjonskapsler fra tredjepart i inkognitomodus</translation> <translation id="8605219856220328675">Lukk fanen.</translation> <translation id="8620640915598389714">Endre</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb index 1cf1823..32c8a96 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -799,6 +799,7 @@ <translation id="9094033019050270033">ਪਾਸਵਰਡ ਅੱਪਡੇਟ ਕਰੋ</translation> <translation id="9100610230175265781">ਪਾਸਫਰੇਜ਼ ਲੋੜੀਂਦਾ</translation> <translation id="9107664647686727385">ਛੇੜਛਾੜ ਵਾਲੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰੋ</translation> +<translation id="9124387962554796433">Google ਤੁਹਾਡੇ ਇਤਿਹਾਸ ਦੀ ਵਰਤੋਂ Search ਅਤੇ ਹੋਰ Google ਸੇਵਾਵਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ ਕਰ ਸਕਦਾ ਹੈ।</translation> <translation id="9137526406337347448">Google ਸੇਵਾਵਾਂ</translation> <translation id="9148126808321036104">ਦੁਬਾਰਾ ਸਾਈਨ-ਇਨ ਕਰੋ</translation> <translation id="9152539721251340337">QR ਕੋਡ ਬਣਾਓ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb index 77770cf..b0d3d6b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -389,6 +389,7 @@ <translation id="5062321486222145940">Zainstaluj Dysk Google</translation> <translation id="5083464117946352670">Nie można ustalić rozmiaru pliku.</translation> <translation id="5090832849094901128">Usunięcie tego hasła nie spowoduje usunięcia Twojego konta w serwisie <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Możesz zapisywać strony do przeczytania później lub offline. Chrome zapyta, czy chcesz zapisać długie strony.</translation> <translation id="5094827893301452931">Tweet opublikowany.</translation> <translation id="5118764316110575523">Wyłączono</translation> <translation id="5127805178023152808">Synchronizacja jest wyłączona</translation> @@ -755,6 +756,7 @@ <translation id="8548878600947630424">Znajdź na stronie...</translation> <translation id="8574235780160508979">31 marca zmienią się Warunki korzystania z Chrome. <ph name="BEGIN_LINK" />Zapoznaj się z nimi<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Wyłączono</translation> +<translation id="8590913940444621808">Nigdy nie pytaj</translation> <translation id="8591976964826315682">Blokuj pliki cookie innych firm w trybie incognito</translation> <translation id="8605219856220328675">Zamknij kartę</translation> <translation id="8620640915598389714">Edytuj</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb index 95a315ca..31e6adfa 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalar o Google Drive</translation> <translation id="5083464117946352670">Não é possível saber o tamanho do arquivo.</translation> <translation id="5090832849094901128">Remover a senha não excluirá a conta em <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Você pode salvar páginas para ler mais tarde ou off-line. O Chrome perguntará se você quer salvar páginas longas.</translation> <translation id="5094827893301452931">Tweet concluído.</translation> <translation id="5118764316110575523">Desativado</translation> <translation id="5127805178023152808">Sincronização desativada</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Encontrar na página...</translation> <translation id="8574235780160508979">Os Termos de Serviço do Chrome serão atualizados em 31 de março. <ph name="BEGIN_LINK" />Leia aqui<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Desativada</translation> +<translation id="8590913940444621808">Nunca perguntar</translation> <translation id="8591976964826315682">Bloquear cookies de terceiros na navegação anônima</translation> <translation id="8605219856220328675">Fechar guia.</translation> <translation id="8620640915598389714">Editar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb index e2ddf94..842791c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalar o Google Drive</translation> <translation id="5083464117946352670">Não é poss. deter. tam. fich.</translation> <translation id="5090832849094901128">Eliminar esta palavra-passe não elimina a sua conta em <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Pode guardar páginas para ler mais tarde ou offline. O Chrome vai perguntar-lhe se pretende guardar páginas longas.</translation> <translation id="5094827893301452931">Tweet concluído.</translation> <translation id="5118764316110575523">Desativado</translation> <translation id="5127805178023152808">A sincronização está desativada</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Localizar na página...</translation> <translation id="8574235780160508979">Os Termos de Utilização do Chrome vão ser alterados a 31 de março. <ph name="BEGIN_LINK" />Reveja-os<ph name="END_LINK" />.</translation> <translation id="8588404856427128947">Desativada</translation> +<translation id="8590913940444621808">Nunca perguntar</translation> <translation id="8591976964826315682">Bloquear cookies de terceiros na Navegação anónima</translation> <translation id="8605219856220328675">Fechar separador.</translation> <translation id="8620640915598389714">Editar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb index a186c0ad..8b77c6d8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalează Google Drive</translation> <translation id="5083464117946352670">Dimensiune fișier necunoscută.</translation> <translation id="5090832849094901128">Ștergerea acestei parole nu îți va șterge contul de pe <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Poți să salvezi pagini ca să le citești offline sau mai târziu. Chrome te va întreba dacă dorești să salvezi pagini lungi.</translation> <translation id="5094827893301452931">Tweet finalizat.</translation> <translation id="5118764316110575523">Dezactivat</translation> <translation id="5127805178023152808">Sincronizarea este dezactivată</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Găsește în pagină...</translation> <translation id="8574235780160508979">Termenii și condițiile Chrome se modifică la 31 martie. <ph name="BEGIN_LINK" />Consultați<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Stinsă</translation> +<translation id="8590913940444621808">Nu mai întreba niciodată</translation> <translation id="8591976964826315682">Blochează cookie-urile terță parte în modul incognito</translation> <translation id="8605219856220328675">Închide fila.</translation> <translation id="8620640915598389714">Editează</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb index 3c16637c..5378aaa 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Установить Google Диск</translation> <translation id="5083464117946352670">Не установлен размер файла</translation> <translation id="5090832849094901128">Это действие не приведет к удалению вашего аккаунта на сайте <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Сохраняйте страницы, чтобы прочитать их позже или в офлайн-режиме. Перед сохранением в Chrome длинных материалов вам будет предложено подтвердить это действие.</translation> <translation id="5094827893301452931">Опубликовано в Твиттере.</translation> <translation id="5118764316110575523">ВЫКЛ</translation> <translation id="5127805178023152808">Синхронизация выключена</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Найти на странице…</translation> <translation id="8574235780160508979">Условия использования Chrome будут обновлены 31 марта. Просим вас <ph name="BEGIN_LINK" />ознакомиться с изменениями<ph name="END_LINK" />.</translation> <translation id="8588404856427128947">Выключено</translation> +<translation id="8590913940444621808">Больше не спрашивать</translation> <translation id="8591976964826315682">Блокировать файлы cookie сторонних сайтов в режиме инкогнито</translation> <translation id="8605219856220328675">Закрыть вкладку.</translation> <translation id="8620640915598389714">Изменить</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb index 95f3b99..851a404 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Nainštalovať Disk Google</translation> <translation id="5083464117946352670">Nedá sa zistiť veľkosť súboru.</translation> <translation id="5090832849094901128">Odstránením tohto hesla nevymažete svoj účet na <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Stránky si môžete uložiť a prečítať neskôr alebo offline. Chrome sa vás opýta, či chcete ukladať dlhé stránky.</translation> <translation id="5094827893301452931">Tweet bol uverejnený.</translation> <translation id="5118764316110575523">Vypnuté</translation> <translation id="5127805178023152808">Synchronizácia je vypnutá</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Nájsť na stránke...</translation> <translation id="8574235780160508979">Zmluvné podmienky prehliadača Chrome sa 31. marca zmenia. <ph name="BEGIN_LINK" />Prehliadnuť si nové zmluvné podmienky<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Vypnúť</translation> +<translation id="8590913940444621808">Nikdy sa nepýtať</translation> <translation id="8591976964826315682">Blokovať súbory cookie tretích strán v režime inkognito</translation> <translation id="8605219856220328675">Zatvoriť kartu.</translation> <translation id="8620640915598389714">Upraviť</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb index 05d0707b..412fcc22 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Namesti Google Drive</translation> <translation id="5083464117946352670">Velikost datoteke ni mogoče določiti.</translation> <translation id="5090832849094901128">Če izbrišete to geslo, ne izbrišete računa na <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Strani lahko shranite, če želite brati pozneje ali brez povezave. Chrome vas bo vprašal, ali želite shraniti dolge strani.</translation> <translation id="5094827893301452931">Tvit je dokončan.</translation> <translation id="5118764316110575523">Izklopljeno</translation> <translation id="5127805178023152808">Sinhroniziranje je izklopljeno</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Najdi na strani ...</translation> <translation id="8574235780160508979">Pogoji storitve za Chrome se bodo spremenili 31. marca. <ph name="BEGIN_LINK" />Preglejte<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Izklop</translation> +<translation id="8590913940444621808">Nikoli ne vprašaj</translation> <translation id="8591976964826315682">Blokiraj piškotke drugih mest v anonimnem načinu</translation> <translation id="8605219856220328675">Close tab.</translation> <translation id="8620640915598389714">Uredi</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb index b4d7244..ef05da18 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Instalo "Diskun e Google"</translation> <translation id="5083464117946352670">Madhësia nuk mund të përcaktohet.</translation> <translation id="5090832849094901128">Fshirja e këtij fjalëkalimi nuk do ta fshijë llogarinë tënde në <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Mund t'i ruash faqet për t'i lexuar më vonë ose jashtë linje. Chrome do të të pyesë nëse do t'i ruash faqet e gjata.</translation> <translation id="5094827893301452931">Tweet përfundoi.</translation> <translation id="5118764316110575523">Joaktiv</translation> <translation id="5127805178023152808">Sinkronizimi është joaktiv</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Gjej në faqe...</translation> <translation id="8574235780160508979">Kushtet e shërbimit të Chrome ndryshojnë më 31 mars. <ph name="BEGIN_LINK" />Shqyrtoji<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Joaktiv</translation> +<translation id="8590913940444621808">Mos pyet asnjëherë</translation> <translation id="8591976964826315682">Blloko kukit e palëve të treta në modalitetin "i fshehtë"</translation> <translation id="8605219856220328675">Mbylle skedën</translation> <translation id="8620640915598389714">Redakto</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb index 808254d..84cd8567 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Installera Google Drive</translation> <translation id="5083464117946352670">Det gick inte att bestämma filstorleken.</translation> <translation id="5090832849094901128">Att ta bort det här lösenordet innebär inte att ditt konto på <ph name="WEBSITE" /> raderas.</translation> +<translation id="5092117651143801290">Du kan spara sidor som du vill läsa senare eller offline. Du får frågan om du vill spara långa sidor i Chrome.</translation> <translation id="5094827893301452931">Tweet klart.</translation> <translation id="5118764316110575523">Av</translation> <translation id="5127805178023152808">Synkronisering är av</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Hitta på sidan ...</translation> <translation id="8574235780160508979">Chromes användarvillkor ändras den 31 mars. <ph name="BEGIN_LINK" />Läs villkoren<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Av</translation> +<translation id="8590913940444621808">Fråga aldrig</translation> <translation id="8591976964826315682">Blockera cookies från tredje part i inkognitoläge</translation> <translation id="8605219856220328675">Stäng fliken.</translation> <translation id="8620640915598389714">Redigera</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb index 7d106844..f049729 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Pakua Hifadhi ya Google</translation> <translation id="5083464117946352670">Haiwezi kutambua ukubwa wa faili.</translation> <translation id="5090832849094901128">Hatua ya kufuta nenosiri hili haitafuta akaunti yako kwenye <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Unaweza kuhifadhi kurasa ili uzisome baadaye au nje ya mtandao. Chrome itakuuliza iwapo ungependa kuhifadhi kurasa ndefu.</translation> <translation id="5094827893301452931">Kutuma ujumbe kwenye Twiter kumekamilika.</translation> <translation id="5118764316110575523">Imezimwa</translation> <translation id="5127805178023152808">Usawazishaji umezimwa</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Tafuta katika ukurasa...</translation> <translation id="8574235780160508979">Sheria na Masharti ya Chrome yanabadilika tarehe 31 Machi. <ph name="BEGIN_LINK" />Tafadhali yapitie<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Imezimwa</translation> +<translation id="8590913940444621808">Usiulize Kamwe</translation> <translation id="8591976964826315682">Zuia Vidakuzi vya Tovuti Nyingine katika Hali Fiche</translation> <translation id="8605219856220328675">Funga kichupo</translation> <translation id="8620640915598389714">Badilisha</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb index e207cd4..55df55a6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -802,6 +802,7 @@ <translation id="9094033019050270033">கடவுச்சொல்லைப் புதுப்பி</translation> <translation id="9100610230175265781">கடவுச்சொற்றொடர் தேவை</translation> <translation id="9107664647686727385">களவாடப்பட்ட கடவுச்சொற்களைச் சரிபார்க்கும்</translation> +<translation id="9124387962554796433">Search மற்றும் பிற Google சேவைகளைப் பிரத்தியேகமாக்க உலாவல் விவரங்களை Google பயன்படுத்தக்கூடும்.</translation> <translation id="9137526406337347448">Google சேவைகள்</translation> <translation id="9148126808321036104">மீண்டும் உள்நுழைக</translation> <translation id="9152539721251340337">QR குறியீட்டை உருவாக்கு</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb index 21666d6..064ce4b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">ติดตั้ง Google ไดรฟ์</translation> <translation id="5083464117946352670">ไม่สามารถระบุขนาดไฟล์ได้</translation> <translation id="5090832849094901128">การลบรหัสผ่านนี้จะไม่ลบบัญชีของคุณใน <ph name="WEBSITE" /></translation> +<translation id="5092117651143801290">คุณบันทึกหน้าเว็บไว้อ่านภายหลังหรืออ่านขณะออฟไลน์ได้ Chrome จะถามว่าคุณต้องการบันทึกหน้าเว็บแบบยาวไหม</translation> <translation id="5094827893301452931">ทวีตแล้ว</translation> <translation id="5118764316110575523">ปิด</translation> <translation id="5127805178023152808">การซิงค์ปิดอยู่</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">ค้นหาในหน้าเว็บ...</translation> <translation id="8574235780160508979">ข้อกำหนดในการให้บริการของ Chrome จะมีการเปลี่ยนแปลงในวันที่ 31 มีนาคม <ph name="BEGIN_LINK" />โปรดตรวจดู<ph name="END_LINK" /></translation> <translation id="8588404856427128947">ปิด</translation> +<translation id="8590913940444621808">อย่าถามอีก</translation> <translation id="8591976964826315682">บล็อกคุกกี้ของบุคคลที่สามในโหมดไม่ระบุตัวตน</translation> <translation id="8605219856220328675">ปิดแท็บ</translation> <translation id="8620640915598389714">แก้ไข</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb index 4b20560c9..ce82f689 100644 --- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Drive'ı yükle</translation> <translation id="5083464117946352670">Dosya boyutu belirlenemiyor.</translation> <translation id="5090832849094901128">Bu şifre kaldırıldığında <ph name="WEBSITE" /> üzerindeki hesabınız silinmez.</translation> +<translation id="5092117651143801290">Sayfaları daha sonra veya çevrimdışı okumak için kaydedebilirsiniz. Chrome, uzun sayfaları kaydetmek isteyip istemediğinizi sorar.</translation> <translation id="5094827893301452931">Tweet tamamlandı.</translation> <translation id="5118764316110575523">Kapalı</translation> <translation id="5127805178023152808">Senkronizasyon kapalı</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Sayfada bul...</translation> <translation id="8574235780160508979">Chrome'un Hizmet Şartları 31 Mart'ta değişiyor. <ph name="BEGIN_LINK" />Lütfen inceleyin<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Kapalı</translation> +<translation id="8590913940444621808">Asla Sorma</translation> <translation id="8591976964826315682">Gizli modda üçüncü taraf çerezleri engelle</translation> <translation id="8605219856220328675">Sekmeyi kapat.</translation> <translation id="8620640915598389714">Düzenle</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb index 90ad196..72d57d1 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Установити Google Диск</translation> <translation id="5083464117946352670">Невідомий розмір файлу.</translation> <translation id="5090832849094901128">Якщо видалити цей пароль, ваш обліковий запис на сайті <ph name="WEBSITE" /> залишиться.</translation> +<translation id="5092117651143801290">Ви можете зберігати сторінки, щоб читати їх пізніше або в режимі офлайн. Chrome запитуватиме вас, чи зберігати довгі сторінки.</translation> <translation id="5094827893301452931">Твіт опубліковано.</translation> <translation id="5118764316110575523">Вимк.</translation> <translation id="5127805178023152808">Синхронізацію вимкнено</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Знайти на сторінці...</translation> <translation id="8574235780160508979">31 березня змінюються Умови використання Chrome. <ph name="BEGIN_LINK" />Переглянути<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Вимкнено</translation> +<translation id="8590913940444621808">Не запитувати</translation> <translation id="8591976964826315682">Блокувати файли cookie третіх сторін в анонімному режимі</translation> <translation id="8605219856220328675">Закрити вкладку.</translation> <translation id="8620640915598389714">Редагувати</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb index 4b0e836..5b9c28d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Google Drive’ni o‘rnatish</translation> <translation id="5083464117946352670">Fayl hajmi aniqlanmadi</translation> <translation id="5090832849094901128">Bu parol olib tashlangani bilan <ph name="WEBSITE" /> hisobingiz oʻchib ketmaydi.</translation> +<translation id="5092117651143801290">Sahifalarni keyinroq yoki oflayn mutolaa qilish uchun saqlashingiz mumkin. Chrome uzun sahifalar saqlanishi kerakligini soʻraydi.</translation> <translation id="5094827893301452931">Tvit joylandi.</translation> <translation id="5118764316110575523">Yoqilmagan</translation> <translation id="5127805178023152808">Sinxronizatsiya o‘chiq</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Sahifadan qidirish...</translation> <translation id="8574235780160508979">Chrome xizmat shartlari 31-mart kuni yangilanadi. <ph name="BEGIN_LINK" />Tanishib chiqing<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Yoqilmagan</translation> +<translation id="8590913940444621808">Soʻralmasin</translation> <translation id="8591976964826315682">Inkognito rejimidagi tashqi cookie fayllarni taqiqlash</translation> <translation id="8605219856220328675">Sahifani yopish</translation> <translation id="8620640915598389714">O‘zgartirish</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb index acd18f4..f4dfcbd 100644 --- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Cài đặt Google Drive</translation> <translation id="5083464117946352670">Không thể xác định kích thước tệp.</translation> <translation id="5090832849094901128">Thao tác xóa mật khẩu này sẽ không xóa tài khoản của bạn trên <ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Bạn có thể lưu các trang để đọc vào lúc khác hoặc khi không có kết nối mạng. Chrome sẽ hỏi xem bạn có muốn lưu các trang dài hay không.</translation> <translation id="5094827893301452931">Đã đăng lên Twitter.</translation> <translation id="5118764316110575523">Đang tắt</translation> <translation id="5127805178023152808">Tính năng đồng bộ hóa đang tắt</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Tìm trong trang...</translation> <translation id="8574235780160508979">Điều khoản dịch vụ của Chrome sẽ thay đổi từ ngày 31 tháng 3. <ph name="BEGIN_LINK" />Vui lòng xem các điều khoản mới này<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Đang tắt</translation> +<translation id="8590913940444621808">Đừng bao giờ hỏi</translation> <translation id="8591976964826315682">Chặn cookie của bên thứ ba ở chế độ ẩn danh</translation> <translation id="8605219856220328675">Đóng thẻ.</translation> <translation id="8620640915598389714">Chỉnh sửa</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb index 1371805..8ddbee5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">安装Google云端硬盘</translation> <translation id="5083464117946352670">无法确定文件大小。</translation> <translation id="5090832849094901128">删除此密码不会删除您在 <ph name="WEBSITE" /> 上的帐号。</translation> +<translation id="5092117651143801290">您可保存页面以供日后/离线阅读。Chrome 会询问您是否要保存篇幅较长的页面。</translation> <translation id="5094827893301452931">Tweet 信息发布已完成。</translation> <translation id="5118764316110575523">已关闭</translation> <translation id="5127805178023152808">同步功能已关闭</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">在网页中查找...</translation> <translation id="8574235780160508979">Chrome 的《服务条款》将于 3 月 31 日变更。<ph name="BEGIN_LINK" />请查阅<ph name="END_LINK" /></translation> <translation id="8588404856427128947">已关闭</translation> +<translation id="8590913940444621808">永不询问</translation> <translation id="8591976964826315682">在无痕模式下阻止第三方 Cookie</translation> <translation id="8605219856220328675">关闭标签页。</translation> <translation id="8620640915598389714">编辑</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb index 27daa554..4c37cea 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">安裝 Google 雲端硬碟</translation> <translation id="5083464117946352670">無法確定檔案大小。</translation> <translation id="5090832849094901128">刪除此密碼不會刪除您在 <ph name="WEBSITE" /> 的帳戶。</translation> +<translation id="5092117651143801290">您可儲存網頁,以便稍後或離線閱讀。Chrome 將會詢問您是否要儲存長篇幅網頁。</translation> <translation id="5094827893301452931">已順利發布到 Twitter。</translation> <translation id="5118764316110575523">關閉</translation> <translation id="5127805178023152808">同步處理已停用</translation> @@ -755,6 +756,7 @@ <translation id="8548878600947630424">從網頁中尋找…</translation> <translation id="8574235780160508979">Chrome 的《服務條款》將於 3 月 31 日變更。<ph name="BEGIN_LINK" />請查看詳情<ph name="END_LINK" /></translation> <translation id="8588404856427128947">閂</translation> +<translation id="8590913940444621808">永不詢問</translation> <translation id="8591976964826315682">在無痕模式中封鎖第三方 Cookie</translation> <translation id="8605219856220328675">關閉分頁</translation> <translation id="8620640915598389714">編輯</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb index d0ddf25..0607ede3d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">安裝 Google 雲端硬碟</translation> <translation id="5083464117946352670">無法確定檔案大小。</translation> <translation id="5090832849094901128">刪除這組密碼並不會刪除你的 <ph name="WEBSITE" /> 帳戶。</translation> +<translation id="5092117651143801290">你可以儲存頁面以便稍後閱讀或離線閱讀。Chrome 會詢問是否要儲存篇幅較長的頁面。</translation> <translation id="5094827893301452931">已順利發布到 Twitter。</translation> <translation id="5118764316110575523">關閉</translation> <translation id="5127805178023152808">同步功能已停用</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">在網頁中尋找...</translation> <translation id="8574235780160508979">Chrome 的服務條款將於 3 月 31 日變更。<ph name="BEGIN_LINK" />請查看新版條款<ph name="END_LINK" /></translation> <translation id="8588404856427128947">關閉</translation> +<translation id="8590913940444621808">一律不詢問</translation> <translation id="8591976964826315682">在無痕模式中封鎖第三方 Cookie</translation> <translation id="8605219856220328675">關閉分頁。</translation> <translation id="8620640915598389714">編輯</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb index 78e5750..31cbf6c1 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -391,6 +391,7 @@ <translation id="5062321486222145940">Faka ku-Google Drayivu</translation> <translation id="5083464117946352670">Ayikwazi ukucacisa usayizi wefayela.</translation> <translation id="5090832849094901128">Ukususa le phasiwedi ngeke kususe i-akhawunti yakho ku-<ph name="WEBSITE" />.</translation> +<translation id="5092117651143801290">Ungalondoloza amakhasi ukuze uwafunde ngemuva kwesikhathi noma lapho ungaxhunyiwe kwi-inthanethi. I-Chrome izokubuza ukuthi uyafuna yini ulondoloza amakhasi amade.</translation> <translation id="5094827893301452931">I-Tweet iqedile.</translation> <translation id="5118764316110575523">Valiwe</translation> <translation id="5127805178023152808">Ukuvumelanisa kuvaliwe</translation> @@ -757,6 +758,7 @@ <translation id="8548878600947630424">Thola kukhasi....</translation> <translation id="8574235780160508979">Imigomo yesevisi ye-Chrome iyashintsha ngomhla kaMashi 31. <ph name="BEGIN_LINK" />Sicela ubuyekeze<ph name="END_LINK" /></translation> <translation id="8588404856427128947">Valiwe</translation> +<translation id="8590913940444621808">Ungalokothi ubuze</translation> <translation id="8591976964826315682">Vimba Amakhukhi Wenkampani Yangaphandle ku-Incognito</translation> <translation id="8605219856220328675">Vala ithebhu.</translation> <translation id="8620640915598389714">Hlela</translation>
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 3f90ffc..a46b01c32 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
@@ -50,6 +50,7 @@ #include "ios/chrome/browser/signin/account_consistency_service_factory.h" #include "ios/chrome/browser/signin/account_reconcilor_factory.h" #include "ios/chrome/browser/signin/authentication_service_factory.h" +#import "ios/chrome/browser/signin/chrome_account_manager_service_factory.h" #include "ios/chrome/browser/signin/identity_manager_factory.h" #include "ios/chrome/browser/signin/signin_browser_state_info_updater_factory.h" #include "ios/chrome/browser/signin/signin_client_factory.h" @@ -115,6 +116,7 @@ BreadcrumbManagerKeyedServiceFactory::GetInstance(); BrowserDownloadServiceFactory::GetInstance(); BrowsingDataRemoverFactory::GetInstance(); + ChromeAccountManagerServiceFactory::GetInstance(); ChromePasswordProtectionServiceFactory::GetInstance(); ConsentAuditorFactory::GetInstance(); DeviceSharingManagerFactory::GetInstance();
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index df5eeb5..d8024f0b 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -208,6 +208,16 @@ base::size(kDefaultBrowserFullscreenPromoCTAExperimentOpenLinks), nullptr}}; +const FeatureEntry::FeatureParam + kDefaultBrowserFullscreenPromoExperimentRemindMeLater[] = { + {kDefaultBrowserFullscreenPromoExperimentRemindMeGroupParam, "true"}}; +const FeatureEntry::FeatureVariation + kDefaultBrowserFullscreenPromoExperimentVariations[] = { + {"Remind me later", + kDefaultBrowserFullscreenPromoExperimentRemindMeLater, + base::size(kDefaultBrowserFullscreenPromoExperimentRemindMeLater), + nullptr}}; + const FeatureEntry::FeatureParam kDefaultPromoTailoredIOS[] = { {kDefaultPromoTailoredVariantIOSParam, "true"}}; const FeatureEntry::FeatureParam kDefaultPromoTailoredSafe[] = { @@ -620,7 +630,10 @@ flag_descriptions::kDefaultBrowserFullscreenPromoExperimentName, flag_descriptions::kDefaultBrowserFullscreenPromoExperimentDescription, flags_ui::kOsIos, - FEATURE_VALUE_TYPE(kDefaultBrowserFullscreenPromoExperiment)}, + FEATURE_WITH_PARAMS_VALUE_TYPE( + kDefaultBrowserFullscreenPromoExperiment, + kDefaultBrowserFullscreenPromoExperimentVariations, + "IOSDefaultBrowserFullscreenPromoExperiment")}, {"ios-shared-highlighting-color-change", flag_descriptions::kIOSSharedHighlightingColorChangeName, flag_descriptions::kIOSSharedHighlightingColorChangeDescription, @@ -817,7 +830,6 @@ // allowed, otherwise they will be ignored in Beta and Stable. Add them to // the |allowed_experimental_policies| array. [allowed_experimental_policies addObjectsFromArray:@[ - base::SysUTF8ToNSString(policy::key::kNTPContentSuggestionsEnabled), ]]; [testing_policies addEntriesFromDictionary:@{
diff --git a/ios/chrome/browser/safe_browsing/fake_safe_browsing_service.mm b/ios/chrome/browser/safe_browsing/fake_safe_browsing_service.mm index 46f9159..d09ae2e5 100644 --- a/ios/chrome/browser/safe_browsing/fake_safe_browsing_service.mm +++ b/ios/chrome/browser/safe_browsing/fake_safe_browsing_service.mm
@@ -5,9 +5,11 @@ #include "ios/chrome/browser/safe_browsing/fake_safe_browsing_service.h" #include "base/callback_helpers.h" +#include "base/task/post_task.h" #include "components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h" #include "components/safe_browsing/core/db/test_database_manager.h" #import "ios/chrome/browser/safe_browsing/url_checker_delegate_impl.h" +#include "ios/web/public/thread/web_task_traits.h" #include "ios/web/public/thread/web_thread.h" #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" @@ -31,6 +33,7 @@ []() { return static_cast<web::WebState*>(nullptr); }), /*real_time_lookup_enabled=*/false, /*can_rt_check_subresource_url=*/false, + base::CreateSingleThreadTaskRunner({web::WebThread::UI}), /*url_lookup_service_on_ui=*/nullptr) {} ~FakeSafeBrowsingUrlCheckerImpl() override = default;
diff --git a/ios/chrome/browser/safe_browsing/safe_browsing_service_impl.mm b/ios/chrome/browser/safe_browsing/safe_browsing_service_impl.mm index 485254af..93650d28 100644 --- a/ios/chrome/browser/safe_browsing/safe_browsing_service_impl.mm +++ b/ios/chrome/browser/safe_browsing/safe_browsing_service_impl.mm
@@ -120,6 +120,7 @@ request_destination, url_checker_delegate_, web_state->CreateDefaultGetter(), can_perform_full_url_lookup, /*can_rt_check_subresource_url=*/false, + base::CreateSingleThreadTaskRunner({web::WebThread::UI}), url_lookup_service ? url_lookup_service->GetWeakPtr() : nullptr); }
diff --git a/ios/chrome/browser/signin/BUILD.gn b/ios/chrome/browser/signin/BUILD.gn index c527f51..f14d863 100644 --- a/ios/chrome/browser/signin/BUILD.gn +++ b/ios/chrome/browser/signin/BUILD.gn
@@ -16,6 +16,10 @@ "authentication_service_delegate.h", "authentication_service_factory.h", "authentication_service_factory.mm", + "chrome_account_manager_service.h", + "chrome_account_manager_service.mm", + "chrome_account_manager_service_factory.h", + "chrome_account_manager_service_factory.mm", "chrome_identity_service_observer_bridge.h", "chrome_identity_service_observer_bridge.mm", "constants.h",
diff --git a/ios/chrome/browser/signin/authentication_service.mm b/ios/chrome/browser/signin/authentication_service.mm index 332495dd..19388dc 100644 --- a/ios/chrome/browser/signin/authentication_service.mm +++ b/ios/chrome/browser/signin/authentication_service.mm
@@ -14,6 +14,7 @@ #include "components/pref_registry/pref_registry_syncable.h" #include "components/prefs/pref_service.h" #import "components/signin/ios/browser/features.h" +#import "components/signin/public/base/signin_pref_names.h" #include "components/signin/public/identity_manager/account_info.h" #include "components/signin/public/identity_manager/device_accounts_synchronizer.h" #import "components/signin/public/identity_manager/primary_account_mutator.h" @@ -100,6 +101,16 @@ delegate_ = std::move(delegate); initialized_ = true; + // The preference |kSigninAllowed| is not available for pre-MICE users. Except + // for policy exceptions pre-MICE users cannot choose to be in a permanently + // not signed-in state (ie. kSigninAllowed = false). + // If a user sets the preference in MICE and then is rolled back to a pre-MICE + // state, they will be returned to the default state (ie. kSigninAllowed = + // true). + if (!signin::IsMobileIdentityConsistencyEnabled()) { + pref_service_->ClearPref(prefs::kSigninAllowed); + } + MigrateAccountsStoredInPrefsIfNeeded(); HandleForgottenIdentity(nil, true /* should_prompt */);
diff --git a/ios/chrome/browser/signin/chrome_account_manager_service.h b/ios/chrome/browser/signin/chrome_account_manager_service.h new file mode 100644 index 0000000..2a52fdb5 --- /dev/null +++ b/ios/chrome/browser/signin/chrome_account_manager_service.h
@@ -0,0 +1,27 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_SIGNIN_CHROME_ACCOUNT_MANAGER_SERVICE_H_ +#define IOS_CHROME_BROWSER_SIGNIN_CHROME_ACCOUNT_MANAGER_SERVICE_H_ + +#import <Foundation/Foundation.h> + +#include "components/keyed_service/core/keyed_service.h" + +class PrefService; + +// Service that provides Chrome identities. +class ChromeAccountManagerService : public KeyedService { + public: + // Initializes the service. + explicit ChromeAccountManagerService(PrefService* pref_service); + ChromeAccountManagerService(const ChromeAccountManagerService&) = delete; + ChromeAccountManagerService& operator=(const ChromeAccountManagerService&) = + delete; + + // KeyedService implementation. + void Shutdown() override; +}; + +#endif // IOS_CHROME_BROWSER_SIGNIN_CHROME_ACCOUNT_MANAGER_SERVICE_H_
diff --git a/ios/chrome/browser/signin/chrome_account_manager_service.mm b/ios/chrome/browser/signin/chrome_account_manager_service.mm new file mode 100644 index 0000000..c9a77812 --- /dev/null +++ b/ios/chrome/browser/signin/chrome_account_manager_service.mm
@@ -0,0 +1,20 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/signin/chrome_account_manager_service.h" + +#include "ios/chrome/browser/browser_state/chrome_browser_state.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#include "base/check.h" + +ChromeAccountManagerService::ChromeAccountManagerService( + PrefService* pref_service) { + DCHECK(pref_service); +} + +void ChromeAccountManagerService::Shutdown() {}
diff --git a/ios/chrome/browser/signin/chrome_account_manager_service_factory.h b/ios/chrome/browser/signin/chrome_account_manager_service_factory.h new file mode 100644 index 0000000..d6d28d8 --- /dev/null +++ b/ios/chrome/browser/signin/chrome_account_manager_service_factory.h
@@ -0,0 +1,39 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_SIGNIN_CHROME_ACCOUNT_MANAGER_SERVICE_FACTORY_H_ +#define IOS_CHROME_BROWSER_SIGNIN_CHROME_ACCOUNT_MANAGER_SERVICE_FACTORY_H_ + +#include "base/no_destructor.h" +#include "components/keyed_service/ios/browser_state_keyed_service_factory.h" + +class ChromeBrowserState; +class ChromeAccountManagerService; + +// Singleton that owns all ChromeAccountManagerServices and associates them with +// ChromeBrowserState. +class ChromeAccountManagerServiceFactory + : public BrowserStateKeyedServiceFactory { + public: + ChromeAccountManagerServiceFactory(const BrowserStateKeyedServiceFactory&) = + delete; + ChromeAccountManagerServiceFactory& operator=( + const BrowserStateKeyedServiceFactory&) = delete; + + static ChromeAccountManagerService* GetForBrowserState( + ChromeBrowserState* browser_state); + static ChromeAccountManagerServiceFactory* GetInstance(); + + private: + friend class base::NoDestructor<ChromeAccountManagerServiceFactory>; + + ChromeAccountManagerServiceFactory(); + ~ChromeAccountManagerServiceFactory() override; + + // ChromeAccountManagerServiceFactory implementation. + std::unique_ptr<KeyedService> BuildServiceInstanceFor( + web::BrowserState* context) const override; +}; + +#endif // IOS_CHROME_BROWSER_SIGNIN_CHROME_ACCOUNT_MANAGER_SERVICE_FACTORY_H_
diff --git a/ios/chrome/browser/signin/chrome_account_manager_service_factory.mm b/ios/chrome/browser/signin/chrome_account_manager_service_factory.mm new file mode 100644 index 0000000..7a6daf2f --- /dev/null +++ b/ios/chrome/browser/signin/chrome_account_manager_service_factory.mm
@@ -0,0 +1,43 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/signin/chrome_account_manager_service_factory.h" + +#include "components/keyed_service/ios/browser_state_dependency_manager.h" +#include "ios/chrome/browser/browser_state/chrome_browser_state.h" +#import "ios/chrome/browser/signin/chrome_account_manager_service.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +ChromeAccountManagerService* +ChromeAccountManagerServiceFactory::GetForBrowserState( + ChromeBrowserState* browser_state) { + return static_cast<ChromeAccountManagerService*>( + GetInstance()->GetServiceForBrowserState(browser_state, true)); +} + +ChromeAccountManagerServiceFactory* +ChromeAccountManagerServiceFactory::GetInstance() { + static base::NoDestructor<ChromeAccountManagerServiceFactory> instance; + return instance.get(); +} + +ChromeAccountManagerServiceFactory::ChromeAccountManagerServiceFactory() + : BrowserStateKeyedServiceFactory( + "ChromeAccountManagerService", + BrowserStateDependencyManager::GetInstance()) {} + +ChromeAccountManagerServiceFactory::~ChromeAccountManagerServiceFactory() = + default; + +std::unique_ptr<KeyedService> +ChromeAccountManagerServiceFactory::BuildServiceInstanceFor( + web::BrowserState* context) const { + ChromeBrowserState* browser_state = + ChromeBrowserState::FromBrowserState(context); + return std::make_unique<ChromeAccountManagerService>( + browser_state->GetPrefs()); +}
diff --git a/ios/chrome/browser/ui/authentication/signin/signin_coordinator_egtest.mm b/ios/chrome/browser/ui/authentication/signin/signin_coordinator_egtest.mm index 954781d..cbfec8c4 100644 --- a/ios/chrome/browser/ui/authentication/signin/signin_coordinator_egtest.mm +++ b/ios/chrome/browser/ui/authentication/signin/signin_coordinator_egtest.mm
@@ -603,12 +603,13 @@ assertWithMatcher:grey_notVisible()]; } -// Tests that the sign-in coordinator isn't started when sign-in is disabled. -- (void)testSigninDisabled { +// Tests that the sign-in coordinator isn't started when sign-in is disabled by +// policy. +- (void)testSigninDisabledByPolicy { // Disable browser sign-in only after the "Sign in to Chrome" button is // visible. [ChromeEarlGreyUI openSettingsMenu]; - [ChromeEarlGrey setBoolValue:NO forUserPref:prefs::kSigninAllowed]; + [ChromeEarlGrey setBoolValue:NO forUserPref:prefs::kSigninAllowedByPolicy]; // Verify the sign-in view isn't showing. id<GREYMatcher> signin_matcher = StaticTextWithAccessibilityLabelId( @@ -617,7 +618,7 @@ assertWithMatcher:grey_notVisible()]; // Prefs clean-up. - [ChromeEarlGrey setBoolValue:YES forUserPref:prefs::kSigninAllowed]; + [ChromeEarlGrey setBoolValue:YES forUserPref:prefs::kSigninAllowedByPolicy]; } @end
diff --git a/ios/chrome/browser/ui/authentication/signin/signin_utils.mm b/ios/chrome/browser/ui/authentication/signin/signin_utils.mm index f40c7cb1..c1a8eb2 100644 --- a/ios/chrome/browser/ui/authentication/signin/signin_utils.mm +++ b/ios/chrome/browser/ui/authentication/signin/signin_utils.mm
@@ -162,6 +162,8 @@ } bool IsSigninAllowed(const PrefService* prefs) { + DCHECK(signin::IsMobileIdentityConsistencyEnabled() || + prefs->GetBoolean(prefs::kSigninAllowed)); return prefs->GetBoolean(prefs::kSigninAllowed) && prefs->GetBoolean(prefs::kSigninAllowedByPolicy); }
diff --git a/ios/chrome/browser/ui/authentication/signin/signin_utils_unittest.mm b/ios/chrome/browser/ui/authentication/signin/signin_utils_unittest.mm index a89b752..3ed61f1 100644 --- a/ios/chrome/browser/ui/authentication/signin/signin_utils_unittest.mm +++ b/ios/chrome/browser/ui/authentication/signin/signin_utils_unittest.mm
@@ -244,8 +244,12 @@ chrome_browser_state_.get(), version_1_0)); } -// signin::IsSigninAllowed should respect the kSigninAllowed pref. +// signin::IsSigninAllowed should respect the kSigninAllowed pref with MICE +// enabled. TEST_F(SigninUtilsTest, TestSigninAllowedPref) { + base::test::ScopedFeatureList scoped_feature; + scoped_feature.InitAndEnableFeature(signin::kMobileIdentityConsistency); + ios::FakeChromeIdentityService::GetInstanceFromChromeProvider() ->AddIdentities(@[ @"foo", @"bar" ]); // Sign-in is allowed by default. @@ -359,4 +363,16 @@ chrome_browser_state_.get(), version_1_0)); } +// signin::IsSigninAllowed should not use kSigninAllowed pref when MICE is +// disabled. +TEST_F(SigninUtilsTest, TestSigninAllowedPrefPreMICE) { + base::test::ScopedFeatureList scoped_feature; + scoped_feature.InitAndDisableFeature(signin::kMobileIdentityConsistency); + + ios::FakeChromeIdentityService::GetInstanceFromChromeProvider() + ->AddIdentities(@[ @"foo", @"bar" ]); + // Sign-in is allowed by default. + EXPECT_TRUE(signin::IsSigninAllowed(chrome_browser_state_.get()->GetPrefs())); +} + } // namespace
diff --git a/ios/chrome/browser/ui/authentication/signin_promo_view_mediator_unittest.mm b/ios/chrome/browser/ui/authentication/signin_promo_view_mediator_unittest.mm index 7b0d52d..d60bdf5f 100644 --- a/ios/chrome/browser/ui/authentication/signin_promo_view_mediator_unittest.mm +++ b/ios/chrome/browser/ui/authentication/signin_promo_view_mediator_unittest.mm
@@ -422,7 +422,7 @@ TestChromeBrowserState::Builder builder; builder.SetPrefService(CreatePrefService()); std::unique_ptr<TestChromeBrowserState> browser_state = builder.Build(); - browser_state->GetPrefs()->SetBoolean(prefs::kSigninAllowed, false); + browser_state->GetPrefs()->SetBoolean(prefs::kSigninAllowedByPolicy, false); EXPECT_FALSE([SigninPromoViewMediator shouldDisplaySigninPromoViewWithAccessPoint:signin_metrics::AccessPoint:: ACCESS_POINT_RECENT_TABS
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm b/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm index ddcc76ac..188b1c3 100644 --- a/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm +++ b/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm
@@ -236,8 +236,16 @@ [[EarlGrey selectElementWithMatcher:ManualFallbackProfilesTableViewMatcher()] assertWithMatcher:grey_notVisible()]; + // TODO(crbug.com/1220724): iOS 15 phones seem to act more like iPads now, + // dismissing the keyboard when tapping on the option above. Confirm that this + // is expected and either fix, or remove this comment. + BOOL isIOS15 = NO; + if (@available(iOS 15, *)) { + isIOS15 = YES; + } + // Verify the status of the icons. - if ([ChromeEarlGrey isIPadIdiom]) { + if ([ChromeEarlGrey isIPadIdiom] || isIOS15) { // Hidden on iPad. [[EarlGrey selectElementWithMatcher:ManualFallbackProfilesIconMatcher()] assertWithMatcher:grey_notVisible()];
diff --git a/ios/chrome/browser/ui/default_promo/default_browser_utils.h b/ios/chrome/browser/ui/default_promo/default_browser_utils.h index 0d7cf1e..7f33b52 100644 --- a/ios/chrome/browser/ui/default_promo/default_browser_utils.h +++ b/ios/chrome/browser/ui/default_promo/default_browser_utils.h
@@ -39,6 +39,9 @@ // The feature parameter to indicate the switch arm. extern const char kDefaultBrowserFullscreenPromoCTAExperimentSwitchParam[]; +// The feature parameter to activate the remind me later button. +extern const char kDefaultBrowserFullscreenPromoExperimentRemindMeGroupParam[]; + // Indicates if the tailored variant "Built for iOS" is enabled. It is not // mutually exclusive with other tailored promos. extern const char kDefaultPromoTailoredVariantIOSParam[];
diff --git a/ios/chrome/browser/ui/default_promo/default_browser_utils.mm b/ios/chrome/browser/ui/default_promo/default_browser_utils.mm index 1e62eb78..4d7112b 100644 --- a/ios/chrome/browser/ui/default_promo/default_browser_utils.mm +++ b/ios/chrome/browser/ui/default_promo/default_browser_utils.mm
@@ -65,9 +65,6 @@ NSString* const kRemindMeLaterPromoActionInteraction = @"remindMeLaterPromoActionInteraction"; -const char kDefaultBrowserFullscreenPromoExperimentRemindMeGroupParam[] = - "show_remind_me_later"; - const char kDefaultBrowserFullscreenPromoExperimentChangeStringsGroupParam[] = "show_switch_description"; @@ -152,6 +149,9 @@ const char kDefaultPromoTailoredVariantTabsParam[] = "variant_tabs_enabled"; +const char kDefaultBrowserFullscreenPromoExperimentRemindMeGroupParam[] = + "show_remind_me_later"; + void LogLikelyInterestedDefaultBrowserUserActivity(DefaultPromoType type) { NSString* key = NSUserDefaultKeyForType(type); NSDate* date = [NSDate date];
diff --git a/ios/chrome/browser/ui/first_run/first_run_screen_view_controller.h b/ios/chrome/browser/ui/first_run/first_run_screen_view_controller.h index 9dacd41..7c1a8f3 100644 --- a/ios/chrome/browser/ui/first_run/first_run_screen_view_controller.h +++ b/ios/chrome/browser/ui/first_run/first_run_screen_view_controller.h
@@ -51,9 +51,6 @@ // NO. @property(nonatomic, assign) BOOL scrollToEndMandatory; -// YES if an unified button style applies to all buttons. -@property(nonatomic, assign) BOOL unifiedButtonStyle; - @end #endif // IOS_CHROME_BROWSER_UI_FIRST_RUN_FIRST_RUN_SCREEN_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/first_run/first_run_screen_view_controller.mm b/ios/chrome/browser/ui/first_run/first_run_screen_view_controller.mm index a24b221..3529a2a 100644 --- a/ios/chrome/browser/ui/first_run/first_run_screen_view_controller.mm +++ b/ios/chrome/browser/ui/first_run/first_run_screen_view_controller.mm
@@ -38,7 +38,6 @@ constexpr CGFloat kContentMaxWidth = 327; constexpr CGFloat kMoreArrowMargin = 4; constexpr CGFloat kPreviousContentVisibleOnScroll = 0.15; -constexpr CGFloat kVerticalButtonSpacing = 10; } // namespace @@ -216,11 +215,6 @@ constant:-extraBottomMargin], ]]; - // Add vertical spacing to buttons if they are applying the same style. - if (self.unifiedButtonStyle) { - actionStackView.spacing = kVerticalButtonSpacing; - } - // Also constrain the width layout guide to a maximum constant, but at a lower // priority so that it only applies in compact screens. NSLayoutConstraint* contentLayoutGuideWidthConstraint = @@ -254,9 +248,8 @@ self.didReachBottom = YES; } else { NSDictionary* textAttributes = @{ - NSForegroundColorAttributeName : self.unifiedButtonStyle - ? [UIColor colorNamed:kBlueColor] - : [UIColor colorNamed:kSolidButtonTextColor], + NSForegroundColorAttributeName : + [UIColor colorNamed:kSolidButtonTextColor], NSFontAttributeName : [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline] }; @@ -414,13 +407,6 @@ _primaryActionButton.titleEdgeInsets = UIEdgeInsetsMake(0, kMoreArrowMargin, 0, kMoreArrowMargin); _primaryActionButton.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail; - - if (self.unifiedButtonStyle) { - [_primaryActionButton - setBackgroundColor:[UIColor colorNamed:kBlueHaloColor]]; - [_primaryActionButton setTitleColor:[UIColor colorNamed:kBlueColor] - forState:UIControlStateNormal]; - } [_primaryActionButton addTarget:self action:@selector(didTapPrimaryActionButton) forControlEvents:UIControlEventTouchUpInside]; @@ -461,26 +447,18 @@ accessibilityIdentifier:(NSString*)accessibilityIdentifier { UIButton* button = [UIButton buttonWithType:UIButtonTypeSystem]; [button setTitle:buttonText forState:UIControlStateNormal]; - [button setTitleColor:[UIColor colorNamed:kBlueColor] - forState:UIControlStateNormal]; button.contentEdgeInsets = UIEdgeInsetsMake(kButtonVerticalInsets, 0, kButtonVerticalInsets, 0); + [button setBackgroundColor:[UIColor clearColor]]; + UIColor* titleColor = [UIColor colorNamed:kBlueColor]; + [button setTitleColor:titleColor forState:UIControlStateNormal]; + button.titleLabel.font = + [UIFont preferredFontForTextStyle:UIFontTextStyleBody]; button.translatesAutoresizingMaskIntoConstraints = NO; button.titleLabel.adjustsFontForContentSizeCategory = YES; button.accessibilityIdentifier = accessibilityIdentifier; button.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail; - if (self.unifiedButtonStyle) { - [button setBackgroundColor:[UIColor colorNamed:kBlueHaloColor]]; - button.titleLabel.font = - [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline]; - button.layer.cornerRadius = kPrimaryButtonCornerRadius; - } else { - [button setBackgroundColor:[UIColor clearColor]]; - button.titleLabel.font = - [UIFont preferredFontForTextStyle:UIFontTextStyleBody]; - } - if (@available(iOS 13.4, *)) { button.pointerInteractionEnabled = YES; button.pointerStyleProvider = CreateOpaqueButtonPointerStyleProvider();
diff --git a/ios/chrome/browser/ui/first_run/sync/sync_screen_coordinator.mm b/ios/chrome/browser/ui/first_run/sync/sync_screen_coordinator.mm index d85ea92..fcf62c6 100644 --- a/ios/chrome/browser/ui/first_run/sync/sync_screen_coordinator.mm +++ b/ios/chrome/browser/ui/first_run/sync/sync_screen_coordinator.mm
@@ -77,7 +77,6 @@ self.viewController = [[SyncScreenViewController alloc] init]; self.viewController.delegate = self; - self.viewController.unifiedButtonStyle = self.isMinorMode; // Setup mediator. self.mediator = [[SyncScreenMediator alloc] @@ -161,13 +160,4 @@ [self.delegate skipAll]; } -#pragma mark - Private - -// Returns whether a minor mode UI needs to be shown. -- (BOOL)isMinorMode { - // TODO(crbug.com/1205783): check if the user account is a minor/family link - // account - return NO; -} - @end
diff --git a/ios/chrome/browser/ui/first_run/sync/sync_screen_view_controller.mm b/ios/chrome/browser/ui/first_run/sync/sync_screen_view_controller.mm index e0247fc2..ee93ce8 100644 --- a/ios/chrome/browser/ui/first_run/sync/sync_screen_view_controller.mm +++ b/ios/chrome/browser/ui/first_run/sync/sync_screen_view_controller.mm
@@ -71,17 +71,10 @@ label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote]; label.numberOfLines = 0; label.textColor = [UIColor colorNamed:kGrey600Color]; - label.textAlignment = NSTextAlignmentCenter; label.translatesAutoresizingMaskIntoConstraints = NO; label.adjustsFontForContentSizeCategory = YES; - - if (self.unifiedButtonStyle) { - label.text = l10n_util::GetNSString( - IDS_IOS_FIRST_RUN_SYNC_SCREEN_CONTENT_MINOR_MODE); - } else { - label.text = l10n_util::GetNSString(IDS_IOS_FIRST_RUN_SYNC_SCREEN_CONTENT); - } + label.text = l10n_util::GetNSString(IDS_IOS_FIRST_RUN_SYNC_SCREEN_CONTENT); return label; }
diff --git a/ios/chrome/browser/ui/first_run/welcome/checkbox_button.mm b/ios/chrome/browser/ui/first_run/welcome/checkbox_button.mm index 09d18a759..775f56c 100644 --- a/ios/chrome/browser/ui/first_run/welcome/checkbox_button.mm +++ b/ios/chrome/browser/ui/first_run/welcome/checkbox_button.mm
@@ -18,6 +18,11 @@ // Default corner radius for the button shape. const CGFloat kDefaultCornerRadius = 8; +// Tha alpha to apply when the button is highlighted. +const CGFloat kHighlightedAlpha = 0.8; +// The duration of the animation when adding / removing transparency. +const CGFloat kAnimationDuration = 0.25; + } // namespace @interface CheckboxButton () @@ -109,4 +114,14 @@ return self.label.text; } +- (void)setHighlighted:(BOOL)highlighted { + __weak __typeof(self) weakSelf = self; + CGFloat targetAlpha = highlighted ? kHighlightedAlpha : 1.0; + [UIView animateWithDuration:kAnimationDuration + animations:^{ + weakSelf.alpha = targetAlpha; + }]; + [super setHighlighted:highlighted]; +} + @end
diff --git a/ios/chrome/browser/ui/settings/BUILD.gn b/ios/chrome/browser/ui/settings/BUILD.gn index 1430a91..4fc4c7e 100644 --- a/ios/chrome/browser/ui/settings/BUILD.gn +++ b/ios/chrome/browser/ui/settings/BUILD.gn
@@ -324,6 +324,7 @@ "//ios/chrome/browser/sync", "//ios/chrome/browser/sync:test_support", "//ios/chrome/browser/translate", + "//ios/chrome/browser/ui/authentication/cells", "//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/icons", "//ios/chrome/browser/ui/settings:constants",
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 f8c47be..cb67e4e 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
@@ -328,7 +328,7 @@ - (void)testSigninDisabledByPolicy { // Disable browser sign-in. [self setUpSigninDisabledEnterprisePolicy]; - [ChromeEarlGrey setBoolValue:NO forUserPref:prefs::kSigninAllowed]; + [ChromeEarlGrey setBoolValue:NO forUserPref:prefs::kSigninAllowedByPolicy]; // Open Google services settings and verify the sign-in cell shows the // "sign-in disabled" text. @@ -354,7 +354,7 @@ assertWithMatcher:grey_nil()]; // Prefs clean-up. - [ChromeEarlGrey setBoolValue:YES forUserPref:prefs::kSigninAllowed]; + [ChromeEarlGrey setBoolValue:YES forUserPref:prefs::kSigninAllowedByPolicy]; [[NSUserDefaults standardUserDefaults] removeObjectForKey:kPolicyLoaderIOSConfigurationKey]; }
diff --git a/ios/chrome/browser/ui/settings/settings_table_view_controller.mm b/ios/chrome/browser/ui/settings/settings_table_view_controller.mm index 311e196..a23a360 100644 --- a/ios/chrome/browser/ui/settings/settings_table_view_controller.mm +++ b/ios/chrome/browser/ui/settings/settings_table_view_controller.mm
@@ -547,6 +547,9 @@ AuthenticationServiceFactory::GetForBrowserState(_browserState); // If sign-in is disabled there should not be a sign-in promo. if (!signin::IsSigninAllowed(_browserState->GetPrefs())) { + // Ensure that the user sign-in state always reflects the sign-in allowed + // preference. + DCHECK(!authService->IsAuthenticated()); item = signin::IsSigninAllowedByPolicy(_browserState->GetPrefs()) ? [self signinDisabledTextItem] : [self signinDisabledByPolicyTextItem];
diff --git a/ios/chrome/browser/ui/settings/settings_table_view_controller_mice_unittest.mm b/ios/chrome/browser/ui/settings/settings_table_view_controller_mice_unittest.mm index 7b9fe5a..42b8aa0 100644 --- a/ios/chrome/browser/ui/settings/settings_table_view_controller_mice_unittest.mm +++ b/ios/chrome/browser/ui/settings/settings_table_view_controller_mice_unittest.mm
@@ -9,6 +9,7 @@ #include "components/password_manager/core/browser/password_manager_test_utils.h" #include "components/password_manager/core/browser/test_password_store.h" #import "components/signin/ios/browser/features.h" +#import "components/signin/public/base/signin_pref_names.h" #import "components/sync/driver/mock_sync_service.h" #import "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #import "ios/chrome/browser/main/test_browser.h" @@ -26,6 +27,7 @@ #import "ios/chrome/browser/ui/commands/command_dispatcher.h" #import "ios/chrome/browser/ui/settings/settings_table_view_controller_constants.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_detail_icon_item.h" +#import "ios/chrome/browser/ui/table_view/cells/table_view_image_item.h" #import "ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.h" #import "ios/chrome/grit/ios_chromium_strings.h" #import "ios/chrome/grit/ios_strings.h" @@ -268,6 +270,25 @@ ASSERT_EQ(nil, sync_item.detailText); } +// Verifies that the sign-in setting item is replaced by the managed sign-in +// item if sign-in is disabled through the "Allow Chrome Sign-in" option. +TEST_F(SettingsTableViewControllerMICETest, SigninDisabled) { + chrome_browser_state_->GetPrefs()->SetBoolean(prefs::kSigninAllowed, false); + CreateController(); + CheckController(); + + NSArray* signin_items = [controller().tableViewModel + itemsInSectionWithIdentifier:SettingsSectionIdentifier:: + SettingsSectionIdentifierSignIn]; + ASSERT_EQ(1U, signin_items.count); + + TableViewImageItem* signin_item = + static_cast<TableViewImageItem*>(signin_items[0]); + ASSERT_NSEQ(signin_item.title, + l10n_util::GetNSString(IDS_IOS_NOT_SIGNED_IN_SETTING_TITLE)); + ASSERT_NE(signin_item.image, nil); +} + // Verifies that the Sync icon displays the off state (with OFF in detail text) // when the user has not agreed on sync. This case is possible when using MICE // web sign-in.
diff --git a/ios/chrome/browser/ui/settings/settings_table_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/settings_table_view_controller_unittest.mm index 4ded20a..6d973df 100644 --- a/ios/chrome/browser/ui/settings/settings_table_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/settings/settings_table_view_controller_unittest.mm
@@ -27,6 +27,7 @@ #import "ios/chrome/browser/sync/sync_service_factory.h" #import "ios/chrome/browser/sync/sync_setup_service_factory.h" #import "ios/chrome/browser/sync/sync_setup_service_mock.h" +#import "ios/chrome/browser/ui/authentication/cells/table_view_signin_promo_item.h" #import "ios/chrome/browser/ui/commands/application_commands.h" #import "ios/chrome/browser/ui/commands/browser_commands.h" #import "ios/chrome/browser/ui/commands/browsing_data_commands.h" @@ -229,22 +230,3 @@ ASSERT_NSEQ(signin_item.detailText, l10n_util::GetNSString(IDS_IOS_SETTINGS_SIGNIN_DISABLED)); } - -// Verifies that the sign-in setting item is replaced by the managed sign-in -// item if sign-in is disabled through the "Allow Chrome Sign-in" option. -TEST_F(SettingsTableViewControllerTest, SigninDisabled) { - chrome_browser_state_->GetPrefs()->SetBoolean(prefs::kSigninAllowed, false); - CreateController(); - CheckController(); - - NSArray* signin_items = [controller().tableViewModel - itemsInSectionWithIdentifier:SettingsSectionIdentifier:: - SettingsSectionIdentifierSignIn]; - ASSERT_EQ(1U, signin_items.count); - - TableViewImageItem* signin_item = - static_cast<TableViewImageItem*>(signin_items[0]); - ASSERT_NSEQ(signin_item.title, - l10n_util::GetNSString(IDS_IOS_NOT_SIGNED_IN_SETTING_TITLE)); - ASSERT_NE(signin_item.image, nil); -}
diff --git a/ios/chrome/browser/ui/toolbar/toolbar_egtest.mm b/ios/chrome/browser/ui/toolbar/toolbar_egtest.mm index 02c5e89..456e913 100644 --- a/ios/chrome/browser/ui/toolbar/toolbar_egtest.mm +++ b/ios/chrome/browser/ui/toolbar/toolbar_egtest.mm
@@ -360,7 +360,7 @@ grey_descendant( grey_accessibilityLabel(@"a")), grey_kindOfClassName(@"OmniboxPopupRowCell"), - nil)] + grey_sufficientlyVisible(), nil)] assertWithMatcher:grey_sufficientlyVisible()]; [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] @@ -370,7 +370,7 @@ grey_descendant( grey_accessibilityLabel(@"ab")), grey_kindOfClassName(@"OmniboxPopupRowCell"), - nil)] + grey_sufficientlyVisible(), nil)] assertWithMatcher:grey_sufficientlyVisible()]; [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] @@ -380,7 +380,7 @@ grey_descendant( grey_accessibilityLabel(@"abC")), grey_kindOfClassName(@"OmniboxPopupRowCell"), - nil)] + grey_sufficientlyVisible(), nil)] assertWithMatcher:grey_sufficientlyVisible()]; [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] @@ -390,7 +390,7 @@ grey_descendant( grey_accessibilityLabel(@"abC1")), grey_kindOfClassName(@"OmniboxPopupRowCell"), - nil)] + grey_sufficientlyVisible(), nil)] assertWithMatcher:grey_sufficientlyVisible()]; [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] @@ -400,7 +400,7 @@ grey_descendant( grey_accessibilityLabel(@"abC12")), grey_kindOfClassName(@"OmniboxPopupRowCell"), - nil)] + grey_sufficientlyVisible(), nil)] assertWithMatcher:grey_sufficientlyVisible()]; [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] @@ -410,7 +410,7 @@ grey_descendant( grey_accessibilityLabel(@"abC12@")), grey_kindOfClassName(@"OmniboxPopupRowCell"), - nil)] + grey_sufficientlyVisible(), nil)] assertWithMatcher:grey_sufficientlyVisible()]; [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] @@ -420,7 +420,7 @@ grey_descendant( grey_accessibilityLabel(@"abC12@{")), grey_kindOfClassName(@"OmniboxPopupRowCell"), - nil)] + grey_sufficientlyVisible(), nil)] assertWithMatcher:grey_sufficientlyVisible()]; [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] @@ -430,7 +430,7 @@ grey_descendant( grey_accessibilityLabel(@"abC12@{#")), grey_kindOfClassName(@"OmniboxPopupRowCell"), - nil)] + grey_sufficientlyVisible(), nil)] assertWithMatcher:grey_sufficientlyVisible()]; id<GREYMatcher> cancelButton =
diff --git a/ios/web/test/web_int_test.mm b/ios/web/test/web_int_test.mm index 5595d41..f937c32b 100644 --- a/ios/web/test/web_int_test.mm +++ b/ios/web/test/web_int_test.mm
@@ -19,6 +19,7 @@ #error "This file requires ARC support." #endif +using base::test::ios::kWaitForClearBrowsingDataTimeout; using base::test::ios::kWaitForPageLoadTimeout; using base::test::ios::WaitUntilConditionOrTimeout; @@ -151,9 +152,10 @@ remove_data(); } - base::test::ios::WaitUntilCondition(^bool { - return data_removed; - }); + EXPECT_TRUE( + WaitUntilConditionOrTimeout(kWaitForClearBrowsingDataTimeout, ^{ + return data_removed; + })); } NSInteger WebIntTest::GetIndexOfNavigationItem(
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc index 45ac8ac..2e0b3628 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc
@@ -728,7 +728,7 @@ // (APO), driver, and hardware. // https://docs.microsoft.com/en-us/windows/win32/api/audioclient/ne-audioclient-audclnt_streamoptions const base::Feature MEDIA_EXPORT kWasapiRawAudioCapture{ - "WASAPIRawAudioCapture", base::FEATURE_DISABLED_BY_DEFAULT}; + "WASAPIRawAudioCapture", base::FEATURE_ENABLED_BY_DEFAULT}; #endif // defined(OS_WIN)
diff --git a/media/formats/webm/webm_cluster_parser.cc b/media/formats/webm/webm_cluster_parser.cc index 1907980..9d192f81 100644 --- a/media/formats/webm/webm_cluster_parser.cc +++ b/media/formats/webm/webm_cluster_parser.cc
@@ -645,8 +645,7 @@ void WebMClusterParser::Track::ExtractReadyBuffers( const DecodeTimestamp before_timestamp) { DCHECK(ready_buffers_.empty()); - DCHECK(DecodeTimestamp() <= before_timestamp); - DCHECK(kNoDecodeTimestamp() != before_timestamp); + DCHECK(kNoDecodeTimestamp() < before_timestamp); if (buffers_.empty()) return; @@ -755,9 +754,8 @@ // WebMClusterParser::OnBlock() gives MEDIA_LOG and parse error on decreasing // block timecode detection within a cluster. Therefore, we should not see // those here. - DecodeTimestamp previous_buffers_timestamp = buffers_.empty() ? - DecodeTimestamp() : buffers_.back()->GetDecodeTimestamp(); - CHECK(previous_buffers_timestamp <= buffer->GetDecodeTimestamp()); + CHECK(buffers_.empty() || + buffers_.back()->GetDecodeTimestamp() <= buffer->GetDecodeTimestamp()); base::TimeDelta duration = buffer->duration(); if (duration < base::TimeDelta() || duration == kNoTimestamp) { @@ -842,8 +840,7 @@ } else { ready_buffer_upper_bound_ = std::min(audio_.GetReadyUpperBound(), video_.GetReadyUpperBound()); - DCHECK(DecodeTimestamp() <= ready_buffer_upper_bound_); - DCHECK(kNoDecodeTimestamp() != ready_buffer_upper_bound_); + DCHECK(kNoDecodeTimestamp() < ready_buffer_upper_bound_); } // Prepare each track's ready buffers for retrieval.
diff --git a/media/formats/webm/webm_cluster_parser_unittest.cc b/media/formats/webm/webm_cluster_parser_unittest.cc index 0d8bfaf6..989632f 100644 --- a/media/formats/webm/webm_cluster_parser_unittest.cc +++ b/media/formats/webm/webm_cluster_parser_unittest.cc
@@ -1011,6 +1011,94 @@ ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo, block_count)); } +// Verify the parser can handle block timestamps that are negative +// relative-to-cluster and to absolute time. With BlockDurations provided, there +// is no buffer duration estimation, and the ready-buffer extraction bounds are +// always maximal, for both a partial cluster and a full cluster parse. +TEST_F(WebMClusterParserTest, + ParseClusterWithNegativeBlockTimestampsAndWithBlockDurations) { + InSequence s; + + EXPECT_LT(kTestAudioFrameDefaultDurationInMs, 23); + EXPECT_LT(kTestVideoFrameDefaultDurationInMs, 33); + + const BlockInfo kBlockInfo[] = { + {kVideoTrackNum, -33, 10, false, NULL, 0, false}, + {kAudioTrackNum, -23, 5, false, NULL, 0, false}, + }; + + int block_count = base::size(kBlockInfo); + // Using 0 for cluster timecode will make each of the blocks, above, use a + // negative relative timecode to achieve the desired negative block + // timestamps. + std::unique_ptr<Cluster> cluster(CreateCluster(0, kBlockInfo, block_count)); + + // Send slightly less than the full cluster so all but the last block is + // parsed. None should be held aside for duration estimation prior to end of + // cluster detection because all blocks have BlockDurations. + int result = parser_->Parse(cluster->data(), cluster->size() - 1); + EXPECT_GT(result, 0); + EXPECT_LT(result, cluster->size()); + ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo, block_count - 1)); + + parser_->Reset(); + + // Now parse a whole cluster to verify that all the blocks will get parsed. + result = parser_->Parse(cluster->data(), cluster->size()); + EXPECT_EQ(cluster->size(), result); + ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo, block_count)); +} + +// Verify the parser can handle block timestamps that are negative +// relative-to-cluster and to absolute time. With neither BlockDurations nor +// DefaultDuration provided, all blocks' durations are derived from interblock +// timestamps in the track or estimated for the last block in the each track in +// the cluster, requiring holding back the last block in each track (unless the +// cluster is fully parsed to completion) so it can get estimated duration based +// on the next block in that track in the cluster. The ready-buffer extraction +// methods are driven by the test block to have negative upper-bounds in the +// partial-block parse in this case. +TEST_F(WebMClusterParserTest, + ParseClusterWithNegativeBlockTimestampsAndWithoutDurations) { + InSequence s; + + // Simple blocks, used here, include no block duration information. + const BlockInfo kBlockInfo[] = { + {kVideoTrackNum, -68, 33, true, NULL, 0, false}, + {kAudioTrackNum, -48, 23, true, NULL, 0, false}, + {kVideoTrackNum, -35, 33, true, NULL, 0, false}, + {kAudioTrackNum, -25, 23, true, NULL, 0, false}, + }; + + int block_count = base::size(kBlockInfo); + // Using 0 for cluster timecode will make each of the blocks, above, use a + // negative relative timecode to achieve the desired negative block + // timestamps. + std::unique_ptr<Cluster> cluster(CreateCluster(0, kBlockInfo, block_count)); + + // Send slightly less than the full cluster so all but the last block is + // parsed. Only the first video block should be readable from the parser since + // the second video is held back still (not yet at end of cluster) and the + // first audio is held back still (no second block parsed fully yet and not + // yet at end of cluster). + int result = parser_->Parse(cluster->data(), cluster->size() - 1); + EXPECT_GT(result, 0); + EXPECT_LT(result, cluster->size()); + ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo, block_count - 3)); + + parser_->Reset(); + + // Now parse a whole cluster to verify that all the blocks will get parsed and + // have estimated durations applied correctly. Implementation applies audio + // block estimations before video block estimations upon reaching the end of + // the cluster, hence the expected order of MEDIA_LOGs here. + EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(23)); + EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(33)); + result = parser_->Parse(cluster->data(), cluster->size()); + EXPECT_EQ(cluster->size(), result); + ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo, block_count)); +} + TEST_F(WebMClusterParserTest, ParseDegenerateClusterYieldsHardcodedEstimatedDurations) { const BlockInfo kBlockInfo[] = {
diff --git a/printing/backend/mojom/print_backend.mojom b/printing/backend/mojom/print_backend.mojom index c035efe..9e4bedc 100644 --- a/printing/backend/mojom/print_backend.mojom +++ b/printing/backend/mojom/print_backend.mojom
@@ -63,7 +63,7 @@ bool color_default = false; ColorModel color_model = kUnknownColorModel; ColorModel bw_model = kUnknownColorModel; - array<Paper> papers; + array<Paper> papers; // Duplicates allowed. array<Paper> user_defined_papers; Paper default_paper; array<gfx.mojom.Size> dpis; // Duplicates allowed.
diff --git a/printing/backend/mojom/print_backend_mojom_traits.cc b/printing/backend/mojom/print_backend_mojom_traits.cc index 8ef4e9a..21f4f34 100644 --- a/printing/backend/mojom/print_backend_mojom_traits.cc +++ b/printing/backend/mojom/print_backend_mojom_traits.cc
@@ -221,7 +221,7 @@ return false; } - // There should not be duplicates in any of the arrays. + // There should not be duplicates in certain arrays. DuplicateChecker<printing::mojom::DuplexMode> duplex_modes_dup_checker; if (duplex_modes_dup_checker.HasDuplicates(out->duplex_modes)) { DLOG(ERROR) << "Duplicate duplex_modes detected."; @@ -229,13 +229,6 @@ } DuplicateChecker<printing::PrinterSemanticCapsAndDefaults::Paper> - papers_dup_checker; - if (papers_dup_checker.HasDuplicates(out->papers)) { - DLOG(ERROR) << "Duplicate papers detected."; - return false; - } - - DuplicateChecker<printing::PrinterSemanticCapsAndDefaults::Paper> user_defined_papers_dup_checker; if (user_defined_papers_dup_checker.HasDuplicates(out->user_defined_papers)) { DLOG(ERROR) << "Duplicate user_defined_papers detected.";
diff --git a/printing/backend/mojom/print_backend_mojom_traits_unittest.cc b/printing/backend/mojom/print_backend_mojom_traits_unittest.cc index b4f2fe8..f4944fa 100644 --- a/printing/backend/mojom/print_backend_mojom_traits_unittest.cc +++ b/printing/backend/mojom/print_backend_mojom_traits_unittest.cc
@@ -297,15 +297,6 @@ EXPECT_FALSE(mojo::test::SerializeAndDeserialize< mojom::PrinterSemanticCapsAndDefaults>(input, output)); - // Use a paper with same name but different size. - PrinterSemanticCapsAndDefaults::Paper paper_a4_prime = kPaperA4; - paper_a4_prime.size_um = kPaperLetter.size_um; - input = GenerateSamplePrinterSemanticCapsAndDefaults(); - input.papers = {kPaperA4, kPaperLetter, kPaperLedger, paper_a4_prime}; - - EXPECT_FALSE(mojo::test::SerializeAndDeserialize< - mojom::PrinterSemanticCapsAndDefaults>(input, output)); - input = GenerateSamplePrinterSemanticCapsAndDefaults(); input.user_defined_papers = {kPaperLetter, kPaperLetter}; @@ -342,6 +333,21 @@ mojom::PrinterSemanticCapsAndDefaults>(input, output)); EXPECT_EQ(kDuplicateDpis, output.dpis); + + // Duplicate papers are known to be possible, seen with the Konica Minolta + // 4750 Series PS driver. + // Use a paper with same name but different size. + PrinterSemanticCapsAndDefaults::Paper paper_a4_prime = kPaperA4; + paper_a4_prime.size_um = kPaperLetter.size_um; + input = GenerateSamplePrinterSemanticCapsAndDefaults(); + const PrinterSemanticCapsAndDefaults::Papers kDuplicatePapers{ + kPaperA4, kPaperLetter, kPaperLedger, paper_a4_prime}; + input.papers = kDuplicatePapers; + + EXPECT_TRUE(mojo::test::SerializeAndDeserialize< + mojom::PrinterSemanticCapsAndDefaults>(input, output)); + + EXPECT_EQ(kDuplicatePapers, output.papers); } } // namespace printing
diff --git a/remoting/resources/remoting_strings_eu.xtb b/remoting/resources/remoting_strings_eu.xtb index 03e052e..1d9ea1c2 100644 --- a/remoting/resources/remoting_strings_eu.xtb +++ b/remoting/resources/remoting_strings_eu.xtb
@@ -37,7 +37,7 @@ <translation id="2676780859508944670">Lanean…</translation> <translation id="2699970397166997657">Chromoting</translation> <translation id="2758123043070977469">Arazo bat izan da autentifikatzean. Hasi berriro saioa.</translation> -<translation id="2803375539583399270">Idatzi PIN kodea</translation> +<translation id="2803375539583399270">Idatzi PINa</translation> <translation id="2919669478609886916">Gailua beste erabiltzaile batekin partekatzen ari zara. Partekatzen jarraitu nahi duzu?</translation> <translation id="2939145106548231838">Autentifikatu ostalariaren aurrean</translation> <translation id="3027681561976217984">Ukipen modua</translation> @@ -100,7 +100,7 @@ <translation id="5397086374758643919">Chrome-ren Urruneko pantaila eginbidearen ostalariaren desinstalatzailea</translation> <translation id="5419418238395129586">Azken konexioa: <ph name="DATE" /></translation> <translation id="544077782045763683">Ostalaria itzali da.</translation> -<translation id="5601503069213153581">PIN kodea</translation> +<translation id="5601503069213153581">PINa</translation> <translation id="5690427481109656848">Google LLC</translation> <translation id="5708869785009007625">Mahaigaina <ph name="USER" /> erabiltzailearekin partekatzen ari zara.</translation> <translation id="5750083143895808682"><ph name="EMAIL_ADDRESS" /> gisa hasi duzu saioa.</translation> @@ -139,7 +139,7 @@ <translation id="7434397035092923453">Sarbidea ukatu zaio bezero honi: <ph name="CLIENT_USERNAME" />.</translation> <translation id="7444276978508498879">Konektatutako bezeroa: <ph name="CLIENT_USERNAME" />.</translation> <translation id="7526139040829362392">Aldatu kontua</translation> -<translation id="7628469622942688817">Gogoratu nire PIN kodea gailu honetan.</translation> +<translation id="7628469622942688817">Gogoratu nire PINa gailu honetan.</translation> <translation id="7649070708921625228">Laguntza</translation> <translation id="7658239707568436148">Utzi</translation> <translation id="7665369617277396874">Gehitu kontu bat</translation>
diff --git a/services/video_capture/lacros/video_frame_handler_proxy_lacros.h b/services/video_capture/lacros/video_frame_handler_proxy_lacros.h index 3162ede..b186515 100644 --- a/services/video_capture/lacros/video_frame_handler_proxy_lacros.h +++ b/services/video_capture/lacros/video_frame_handler_proxy_lacros.h
@@ -13,7 +13,6 @@ #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" -#include "services/video_capture/public/mojom/scoped_access_permission.mojom.h" #include "services/video_capture/public/mojom/video_frame_handler.mojom.h" namespace video_capture {
diff --git a/storage/browser/file_system/obfuscated_file_util_unittest.cc b/storage/browser/file_system/obfuscated_file_util_unittest.cc index 5681e95..4f87e85 100644 --- a/storage/browser/file_system/obfuscated_file_util_unittest.cc +++ b/storage/browser/file_system/obfuscated_file_util_unittest.cc
@@ -161,6 +161,11 @@ quota_status_(blink::mojom::QuotaStatusCode::kUnknown), usage_(-1) {} + ObfuscatedFileUtilTest(const ObfuscatedFileUtilTest&) = delete; + ObfuscatedFileUtilTest& operator=(const ObfuscatedFileUtilTest&) = delete; + + ~ObfuscatedFileUtilTest() override = default; + bool is_incognito() { return GetParam() == TestMode::kIncognito; } void SetUp() override { @@ -245,10 +250,11 @@ // and obfuscated_file_util_. // Use this for tests which need to run in multiple origins; we need a test // helper per origin. - SandboxFileSystemTestHelper* NewFileSystem(const Origin& origin, - FileSystemType type) { - SandboxFileSystemTestHelper* file_system = - new SandboxFileSystemTestHelper(origin, type); + std::unique_ptr<SandboxFileSystemTestHelper> NewFileSystem( + const Origin& origin, + FileSystemType type) { + auto file_system = + std::make_unique<SandboxFileSystemTestHelper>(origin, type); file_system->SetUp(file_system_context_); return file_system; @@ -306,7 +312,7 @@ } bool PathExists(const FileSystemURL& url) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); base::File::Info file_info; base::FilePath platform_path; base::File::Error error = @@ -315,7 +321,7 @@ } int64_t GetPathSize(const FileSystemURL& url) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); base::File::Info file_info; base::FilePath platform_path; EXPECT_EQ( @@ -346,7 +352,7 @@ } void CheckFile(const FileSystemURL& url) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); base::FilePath local_path; EXPECT_EQ(base::File::FILE_OK, ofu()->GetLocalFilePath(context.get(), url, &local_path)); @@ -541,7 +547,7 @@ base::Time last_access_time = base::Time::Now(); base::Time last_modified_time = base::Time::Now(); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); EXPECT_EQ( base::File::FILE_OK, ofu()->Touch(context.get(), url, last_access_time, last_modified_time)); @@ -633,14 +639,14 @@ } void ClearTimestamp(const FileSystemURL& url) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); EXPECT_EQ(base::File::FILE_OK, ofu()->Touch(context.get(), url, base::Time(), base::Time())); EXPECT_EQ(base::Time(), GetModifiedTime(url)); } base::Time GetModifiedTime(const FileSystemURL& url) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); base::FilePath data_path; base::File::Info file_info; context = NewContext(nullptr); @@ -799,9 +805,6 @@ MockFileChangeObserver change_observer_; ChangeObserverList change_observers_; base::WeakPtrFactory<ObfuscatedFileUtilTest> weak_factory_{this}; - - private: - DISALLOW_COPY_AND_ASSIGN(ObfuscatedFileUtilTest); }; INSTANTIATE_TEST_SUITE_P(All, @@ -811,7 +814,7 @@ TEST_P(ObfuscatedFileUtilTest, TestCreateAndDeleteFile) { FileSystemURL url = CreateURLFromUTF8("fake/file"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); bool created; base::File::Error result = @@ -899,7 +902,7 @@ TEST_P(ObfuscatedFileUtilTest, TestTruncate) { bool created = false; FileSystemURL url = CreateURLFromUTF8("file"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, ofu()->Truncate(context.get(), url, 4)); @@ -985,8 +988,8 @@ EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, ofu()->Truncate(LimitedContext(1234).get(), url, 1234)); } else { - EXPECT_EQ(base::File::FILE_OK, - ofu()->DeleteFile(NewContext(nullptr).get(), url)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); + EXPECT_EQ(base::File::FILE_OK, ofu()->DeleteFile(context.get(), url)); } ASSERT_EQ(0, ComputeTotalFileSize()); } @@ -994,7 +997,7 @@ TEST_P(ObfuscatedFileUtilTest, TestEnsureFileExists) { FileSystemURL url = CreateURLFromUTF8("fake/file"); bool created = false; - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, ofu()->EnsureFileExists(context.get(), url, &created)); EXPECT_TRUE(change_observer()->HasNoChange()); @@ -1047,7 +1050,7 @@ } TEST_P(ObfuscatedFileUtilTest, TestDirectoryOps) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); bool exclusive = false; bool recursive = false; @@ -1188,7 +1191,7 @@ } TEST_P(ObfuscatedFileUtilTest, TestReadDirectory) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); bool exclusive = true; bool recursive = true; FileSystemURL url = CreateURLFromUTF8("directory/to/use"); @@ -1207,7 +1210,7 @@ TEST_P(ObfuscatedFileUtilTest, TestReadDirectoryOnFile) { FileSystemURL url = CreateURLFromUTF8("file"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); bool created = false; ASSERT_EQ(base::File::FILE_OK, @@ -1224,7 +1227,7 @@ TEST_P(ObfuscatedFileUtilTest, TestTouch) { FileSystemURL url = CreateURLFromUTF8("file"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); base::Time last_access_time = base::Time::Now(); base::Time last_modified_time = base::Time::Now(); @@ -1254,7 +1257,7 @@ TEST_P(ObfuscatedFileUtilTest, TestPathQuotas) { FileSystemURL url = CreateURLFromUTF8("fake/file"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); url = CreateURLFromUTF8("file name"); context->set_allowed_bytes_growth(5); @@ -1290,7 +1293,7 @@ TEST_P(ObfuscatedFileUtilTest, TestCopyOrMoveFileNotFound) { FileSystemURL source_url = CreateURLFromUTF8("path0.txt"); FileSystemURL dest_url = CreateURLFromUTF8("path1.txt"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); bool is_copy_not_move = false; EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, @@ -1343,7 +1346,7 @@ SCOPED_TRACE(testing::Message() << "\t dest_path " << test_case.dest_path); SCOPED_TRACE(testing::Message() << "\t cause_overwrite " << test_case.cause_overwrite); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); bool exclusive = false; bool recursive = true; @@ -1418,7 +1421,7 @@ TEST_P(ObfuscatedFileUtilTest, TestCopyPathQuotas) { FileSystemURL src_url = CreateURLFromUTF8("src path"); FileSystemURL dest_url = CreateURLFromUTF8("destination path"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); bool created = false; ASSERT_EQ(base::File::FILE_OK, ofu()->EnsureFileExists(context.get(), src_url, &created)); @@ -1448,7 +1451,7 @@ TEST_P(ObfuscatedFileUtilTest, TestMovePathQuotasWithRename) { FileSystemURL src_url = CreateURLFromUTF8("src path"); FileSystemURL dest_url = CreateURLFromUTF8("destination path"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); bool created = false; ASSERT_EQ(base::File::FILE_OK, ofu()->EnsureFileExists(context.get(), src_url, &created)); @@ -1484,7 +1487,7 @@ TEST_P(ObfuscatedFileUtilTest, TestMovePathQuotasWithoutRename) { FileSystemURL src_url = CreateURLFromUTF8("src path"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); bool created = false; ASSERT_EQ(base::File::FILE_OK, ofu()->EnsureFileExists(context.get(), src_url, &created)); @@ -1528,7 +1531,7 @@ } TEST_P(ObfuscatedFileUtilTest, TestEnumerator) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); FileSystemURL src_url = CreateURLFromUTF8("source dir"); bool exclusive = true; bool recursive = false; @@ -1556,8 +1559,8 @@ } TEST_P(ObfuscatedFileUtilTest, TestOriginEnumerator) { - std::unique_ptr<ObfuscatedFileUtil::AbstractOriginEnumerator> enumerator( - ofu()->CreateOriginEnumerator()); + std::unique_ptr<ObfuscatedFileUtil::AbstractOriginEnumerator> enumerator = + ofu()->CreateOriginEnumerator(); // The test helper starts out with a single filesystem. EXPECT_TRUE(enumerator.get()); EXPECT_EQ(origin(), enumerator->Next()); @@ -1579,8 +1582,8 @@ Origin origin = Origin::Create(GURL(record.origin_url)); origins_expected.insert(origin); if (record.has_temporary) { - std::unique_ptr<SandboxFileSystemTestHelper> file_system( - NewFileSystem(origin, kFileSystemTypeTemporary)); + std::unique_ptr<SandboxFileSystemTestHelper> file_system = + NewFileSystem(origin, kFileSystemTypeTemporary); std::unique_ptr<FileSystemOperationContext> context( NewContext(file_system.get())); bool created = false; @@ -1591,8 +1594,8 @@ EXPECT_TRUE(created); } if (record.has_persistent) { - std::unique_ptr<SandboxFileSystemTestHelper> file_system( - NewFileSystem(origin, kFileSystemTypePersistent)); + std::unique_ptr<SandboxFileSystemTestHelper> file_system = + NewFileSystem(origin, kFileSystemTypePersistent); std::unique_ptr<FileSystemOperationContext> context( NewContext(file_system.get())); bool created = false; @@ -1641,7 +1644,7 @@ } TEST_P(ObfuscatedFileUtilTest, TestRevokeUsageCache) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); int64_t expected_quota = 0; @@ -1786,7 +1789,7 @@ } TEST_P(ObfuscatedFileUtilTest, TestDirectoryTimestampForCreation) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); const FileSystemURL dir_url = CreateURLFromUTF8("foo_dir"); // Create working directory. @@ -1902,7 +1905,7 @@ } TEST_P(ObfuscatedFileUtilTest, TestDirectoryTimestampForDeletion) { - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); const FileSystemURL dir_url = CreateURLFromUTF8("foo_dir"); // Create working directory. @@ -1972,7 +1975,7 @@ FileSystemURL url1 = FileSystemURLAppendUTF8(dir, "bar"); FileSystemURL url2 = FileSystemURLAppendUTF8(dir, "baz"); - std::unique_ptr<FileSystemOperationContext> context(NewContext(nullptr)); + std::unique_ptr<FileSystemOperationContext> context = NewContext(nullptr); EXPECT_EQ(base::File::FILE_OK, ofu()->CreateDirectory(context.get(), dir, false, false)); @@ -2390,14 +2393,14 @@ const Origin origin3 = Origin::Create(GURL("http://nope.example.com")); // Create origin directories. - std::unique_ptr<SandboxFileSystemTestHelper> fs1( - NewFileSystem(origin1, kFileSystemTypeTemporary)); - std::unique_ptr<SandboxFileSystemTestHelper> fs2( - NewFileSystem(origin1, kFileSystemTypePersistent)); - std::unique_ptr<SandboxFileSystemTestHelper> fs3( - NewFileSystem(origin2, kFileSystemTypeTemporary)); - std::unique_ptr<SandboxFileSystemTestHelper> fs4( - NewFileSystem(origin2, kFileSystemTypePersistent)); + std::unique_ptr<SandboxFileSystemTestHelper> fs1 = + NewFileSystem(origin1, kFileSystemTypeTemporary); + std::unique_ptr<SandboxFileSystemTestHelper> fs2 = + NewFileSystem(origin1, kFileSystemTypePersistent); + std::unique_ptr<SandboxFileSystemTestHelper> fs3 = + NewFileSystem(origin2, kFileSystemTypeTemporary); + std::unique_ptr<SandboxFileSystemTestHelper> fs4 = + NewFileSystem(origin2, kFileSystemTypePersistent); // Make sure directories for origin1 exist. base::File::Error error = base::File::FILE_ERROR_FAILED; @@ -2467,14 +2470,14 @@ const Origin origin2 = Origin::Create(GURL("http://www.example.com:1234")); // Create origin directories. - std::unique_ptr<SandboxFileSystemTestHelper> fs1( - NewFileSystem(origin1, kFileSystemTypeTemporary)); - std::unique_ptr<SandboxFileSystemTestHelper> fs2( - NewFileSystem(origin1, kFileSystemTypePersistent)); - std::unique_ptr<SandboxFileSystemTestHelper> fs3( - NewFileSystem(origin2, kFileSystemTypeTemporary)); - std::unique_ptr<SandboxFileSystemTestHelper> fs4( - NewFileSystem(origin2, kFileSystemTypePersistent)); + std::unique_ptr<SandboxFileSystemTestHelper> fs1 = + NewFileSystem(origin1, kFileSystemTypeTemporary); + std::unique_ptr<SandboxFileSystemTestHelper> fs2 = + NewFileSystem(origin1, kFileSystemTypePersistent); + std::unique_ptr<SandboxFileSystemTestHelper> fs3 = + NewFileSystem(origin2, kFileSystemTypeTemporary); + std::unique_ptr<SandboxFileSystemTestHelper> fs4 = + NewFileSystem(origin2, kFileSystemTypePersistent); // Make sure directories for origin1 exist. base::File::Error error = base::File::FILE_ERROR_FAILED;
diff --git a/testing/buildbot/PRESUBMIT.py b/testing/buildbot/PRESUBMIT.py index 56bea91..211b964 100644 --- a/testing/buildbot/PRESUBMIT.py +++ b/testing/buildbot/PRESUBMIT.py
@@ -13,16 +13,12 @@ def CheckSourceSideSpecs(input_api, output_api): - cmd = [ - input_api.python3_executable, 'generate_buildbot_json.py', '--check', - '--verbose' - ] - if input_api.change.UpstreamBranch() not in ('refs/heads/main', - 'refs/heads/master'): - cmd.append('--disable-builder-existence-check') return input_api.RunTests([ input_api.Command(name='check source side specs', - cmd=cmd, + cmd=[ + input_api.python3_executable, + 'generate_buildbot_json.py', '--check', '--verbose' + ], kwargs={}, message=output_api.PresubmitError), ])
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index aec1073..5f010725 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -1315,6 +1315,36 @@ }, { "args": [ + "--board=eve", + "--flash" + ], + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_gtest_merge.py" + }, + "name": "lacros_smoke_tast_tests_eve", + "resultdb": { + "enable": true + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "device_type": "eve", + "os": "ChromeOS" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test": "lacros_smoke_tast_tests", + "test_id_prefix": "ninja://chromeos/lacros:lacros_smoke_tast_tests/", + "trigger_script": { + "script": "//testing/trigger_scripts/chromeos_device_trigger.py" + } + }, + { + "args": [ "--board=amd64-generic", "--use-vm" ],
diff --git a/testing/buildbot/filters/chromeos.msan.browser_tests.oobe_negative.filter b/testing/buildbot/filters/chromeos.msan.browser_tests.oobe_negative.filter index 16ac936..717c140 100644 --- a/testing/buildbot/filters/chromeos.msan.browser_tests.oobe_negative.filter +++ b/testing/buildbot/filters/chromeos.msan.browser_tests.oobe_negative.filter
@@ -21,6 +21,7 @@ -All/SshWarningTest.* -All/SyncConsentPolicyDisabledTest.* -All/SyncConsentTestWithParams.* +-All/WebviewCloseViewLoginTest.* -All/WebviewLoginWithIframeTest.* -All/WizardControllerDeviceStateExplicitRequirementTest.* -All/WizardControllerUpdateAfterCompletedOobeTest.*
diff --git a/testing/buildbot/filters/chromeos.msan.browser_tests.oobe_positive.filter b/testing/buildbot/filters/chromeos.msan.browser_tests.oobe_positive.filter index d28f128..449ff41 100644 --- a/testing/buildbot/filters/chromeos.msan.browser_tests.oobe_positive.filter +++ b/testing/buildbot/filters/chromeos.msan.browser_tests.oobe_positive.filter
@@ -21,6 +21,7 @@ All/SshWarningTest.* All/SyncConsentPolicyDisabledTest.* All/SyncConsentTestWithParams.* +All/WebviewCloseViewLoginTest.* All/WebviewLoginWithIframeTest.* All/WizardControllerDeviceStateExplicitRequirementTest.* All/WizardControllerUpdateAfterCompletedOobeTest.*
diff --git a/testing/buildbot/generate_buildbot_json.py b/testing/buildbot/generate_buildbot_json.py index fa1b2204..7d3d20d8 100755 --- a/testing/buildbot/generate_buildbot_json.py +++ b/testing/buildbot/generate_buildbot_json.py
@@ -321,11 +321,6 @@ " List all bots running 'test1' " + "(make sure you have quotes):\n" + " --query test/'test1'/bots")) parser.add_argument( - '--disable-builder-existence-check', - action='store_true', - help='Disable the check that builders in waterfalls.pyl ' - 'actually exist in the infra/config files') - parser.add_argument( '-n', '--new-files', action='store_true', @@ -1477,18 +1472,10 @@ # their presubmit to run `generate_buildbot_json.py -c`, so that the tree # never ends up in an invalid state. - # We may not want to enforce that the builders in waterfalls.pyl are - # actually defined in LUCI: when we set up branch projects we don't want to - # have to make changes to the testing/buildbot *.pyl files to remove the - # builders that are not defined on the branch - if self.args.disable_builder_existence_check: - return None - - # If the --disable-builder-existence-check flag isn't set, the builder - # existence check might be disabled by the project.pyl file in the - # infra/config directory - # TODO(https://crbug.com1220089) Remove the project.pyl code once all - # presubmits are correctly passing the --disable-builder-existence-check + # Get the generated project.pyl so we can check if we should be enforcing + # that the specs are for builders that actually exist + # If not, return None to indicate that we won't enforce that builders in + # waterfalls.pyl are defined in LUCI project_pyl_path = os.path.join(self.args.infra_config_dir, 'generated', 'project.pyl') if os.path.exists(project_pyl_path):
diff --git a/testing/buildbot/generate_buildbot_json_unittest.py b/testing/buildbot/generate_buildbot_json_unittest.py index fe83ab423..15bcdc1 100755 --- a/testing/buildbot/generate_buildbot_json_unittest.py +++ b/testing/buildbot/generate_buildbot_json_unittest.py
@@ -2823,16 +2823,6 @@ self.assertFalse(fbb.printed_lines) def test_nonexistent_bot_does_not_raise_when_validation_disabled(self): - self.args.disable_builder_existence_check = True - fbb = FakeBBGen(self.args, - UNKNOWN_BOT_GTESTS_WATERFALL, - FOO_TEST_SUITE, - LUCI_MILO_CFG, - project_pyl=None) - fbb.check_input_file_consistency(verbose=True) - - def test_nonexistent_bot_does_not_raise_when_validation_disabled_by_config( - self): fbb = FakeBBGen( self.args, UNKNOWN_BOT_GTESTS_WATERFALL,
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index 66b1d7b3..cbc8ba5d 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -7245,6 +7245,7 @@ 'lacros_smoke_tast_tests': { 'variants': [ 'LACROS_AMD64_GENERIC', + 'LACROS_EVE', ] }, 'lacros_device_or_vm_gtests': {
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index ea1f3850..876b084 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -7342,9 +7342,13 @@ ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_preemptive", "enable_features": [ + "CopyLinkToText", "PreemptiveLinkToTextGeneration" + ], + "disable_features": [ + "SharedHighlightingV2" ] } ] @@ -8882,21 +8886,6 @@ ] } ], - "WASAPIRawAudioCapture": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WASAPIRawAudioCapture" - ] - } - ] - } - ], "WebOtpBackendAuto": [ { "platforms": [
diff --git a/third_party/abseil-cpp/CMake/AbseilHelpers.cmake b/third_party/abseil-cpp/CMake/AbseilHelpers.cmake index 1fa57a73..6a64a2c 100644 --- a/third_party/abseil-cpp/CMake/AbseilHelpers.cmake +++ b/third_party/abseil-cpp/CMake/AbseilHelpers.cmake
@@ -336,8 +336,8 @@ # "awesome_test.cc" # DEPS # absl::awesome -# gmock -# gtest_main +# GTest::gmock +# GTest::gtest_main # ) function(absl_cc_test) if(NOT BUILD_TESTING)
diff --git a/third_party/abseil-cpp/CMake/README.md b/third_party/abseil-cpp/CMake/README.md index 5eee817..fa8e8d30 100644 --- a/third_party/abseil-cpp/CMake/README.md +++ b/third_party/abseil-cpp/CMake/README.md
@@ -99,3 +99,48 @@ absl::time absl::utility ``` + +## Traditional CMake Set-Up + +For larger projects, it may make sense to use the traditional CMake set-up where you build and install projects separately. + +First, you'd need to build and install Google Test: +``` +cmake -S /source/googletest -B /build/googletest -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/installation/dir -DBUILD_GMOCK=ON +cmake --build /build/googletest --target install +``` + +Then you need to configure and build Abseil. Make sure you enable `ABSL_USE_EXTERNAL_GOOGLETEST` and `ABSL_FIND_GOOGLETEST`. You also need to enable `ABSL_ENABLE_INSTALL` so that you can install Abseil itself. +``` +cmake -S /source/abseil-cpp -B /build/abseil-cpp -DCMAKE_PREFIX_PATH=/installation/dir -DCMAKE_INSTALL_PREFIX=/installation/dir -DABSL_ENABLE_INSTALL=ON -DABSL_USE_EXTERNAL_GOOGLETEST=ON -DABSL_FIND_GOOGLETEST=ON +cmake --build /temporary/build/abseil-cpp +``` + +(`CMAKE_PREFIX_PATH` is where you already have Google Test installed; `CMAKE_INSTALL_PREFIX` is where you want to have Abseil installed; they can be different.) + +Run the tests: +``` +ctest --test-dir /temporary/build/abseil-cpp +``` + +And finally install: +``` +cmake --build /temporary/build/abseil-cpp --target install +``` + +# CMake Option Synposis + +## Enable Standard CMake Installation + +`-DABSL_ENABLE_INSTALL=ON` + +## Google Test Options + +`-DBUILD_TESTING=ON` must be set to enable testing + +- Have Abseil download and build Google Test for you: `-DABSL_USE_EXTERNAL_GOOGLETEST=OFF` (default) + - Download and build latest Google Test: `-DABSL_USE_GOOGLETEST_HEAD=ON` + - Download specific Google Test version (ZIP archive): `-DABSL_GOOGLETEST_DOWNLOAD_URL=https://.../version.zip` + - Use Google Test from specific local directory: `-DABSL_LOCAL_GOOGLETEST_DIR=/path/to/googletest` +- Use Google Test included elsewhere in your project: `-DABSL_USE_EXTERNAL_GOOGLETEST=ON` +- Use standard CMake `find_package(CTest)` to find installed Google Test: `-DABSL_USE_EXTERNAL_GOOGLETEST=ON -DABSL_FIND_GOOGLETEST=ON`
diff --git a/third_party/abseil-cpp/CMake/install_test_project/test.sh b/third_party/abseil-cpp/CMake/install_test_project/test.sh index a3d3977..5a78c92 100755 --- a/third_party/abseil-cpp/CMake/install_test_project/test.sh +++ b/third_party/abseil-cpp/CMake/install_test_project/test.sh
@@ -19,10 +19,9 @@ # Fail on any error. Treat unset variables an error. Print commands as executed. set -euox pipefail -source ci/cmake_common.sh - absl_dir=/abseil-cpp absl_build_dir=/buildfs +googletest_builddir=/googletest_builddir project_dir="${absl_dir}"/CMake/install_test_project project_build_dir=/buildfs/project-build @@ -31,13 +30,30 @@ build_shared_libs="ON" fi +# Build and install GoogleTest +mkdir "${googletest_builddir}" +pushd "${googletest_builddir}" +curl -L "${ABSL_GOOGLETEST_DOWNLOAD_URL}" --output "${ABSL_GOOGLETEST_COMMIT}".zip +unzip "${ABSL_GOOGLETEST_COMMIT}".zip +pushd "googletest-${ABSL_GOOGLETEST_COMMIT}" +mkdir build +pushd build +cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS="${build_shared_libs}" .. +make -j $(nproc) +make install +ldconfig +popd +popd +popd + # Run the LTS transformations ./create_lts.py 99998877 -# Install Abseil +# Build and install Abseil pushd "${absl_build_dir}" cmake "${absl_dir}" \ - -DABSL_GOOGLETEST_DOWNLOAD_URL="${ABSL_GOOGLETEST_DOWNLOAD_URL}" \ + -DABSL_USE_EXTERNAL_GOOGLETEST=ON \ + -DABSL_FIND_GOOGLETEST=ON \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTING=ON \ -DBUILD_SHARED_LIBS="${build_shared_libs}"
diff --git a/third_party/abseil-cpp/CMakeLists.txt b/third_party/abseil-cpp/CMakeLists.txt index d0c6e60..42bcbe10 100644 --- a/third_party/abseil-cpp/CMakeLists.txt +++ b/third_party/abseil-cpp/CMakeLists.txt
@@ -102,9 +102,18 @@ ## pthread find_package(Threads REQUIRED) +include(CMakeDependentOption) + option(ABSL_USE_EXTERNAL_GOOGLETEST "If ON, Abseil will assume that the targets for GoogleTest are already provided by the including project. This makes sense when Abseil is used with add_subproject." OFF) +cmake_dependent_option(ABSL_FIND_GOOGLETEST + "If ON, Abseil will use find_package(GTest) rather than assuming that GoogleTest is already provided by the including project." + ON + "ABSL_USE_EXTERNAL_GOOGLETEST" + OFF) + + option(ABSL_USE_GOOGLETEST_HEAD "If ON, abseil will download HEAD from GoogleTest at config time." OFF) @@ -116,7 +125,15 @@ if(BUILD_TESTING) ## check targets - if (NOT ABSL_USE_EXTERNAL_GOOGLETEST) + if (ABSL_USE_EXTERNAL_GOOGLETEST) + if (ABSL_FIND_GOOGLETEST) + find_package(GTest REQUIRED) + else() + if (NOT TARGET gtest AND NOT TARGET GTest::gtest) + message(FATAL_ERROR "ABSL_USE_EXTERNAL_GOOGLETEST is ON and ABSL_FIND_GOOGLETEST is OFF, which means that the top-level project must build the Google Test project. However, the target gtest was not found.") + endif() + endif() + else() set(absl_gtest_build_dir ${CMAKE_BINARY_DIR}/googletest-build) if(ABSL_USE_GOOGLETEST_HEAD AND ABSL_GOOGLETEST_DOWNLOAD_URL) message(FATAL_ERROR "Do not set both ABSL_USE_GOOGLETEST_HEAD and ABSL_GOOGLETEST_DOWNLOAD_URL") @@ -134,14 +151,22 @@ include(CMake/Googletest/DownloadGTest.cmake) endif() - check_target(gtest) - check_target(gtest_main) - check_target(gmock) + if (NOT ABSL_FIND_GOOGLETEST) + # When Google Test is included directly rather than through find_package, the aliases are missing. + add_library(GTest::gtest_main ALIAS gtest_main) + add_library(GTest::gtest ALIAS gtest) + add_library(GTest::gmock ALIAS gmock) + endif() + + check_target(GTest::gtest) + check_target(GTest::gtest_main) + check_target(GTest::gmock) + check_target(GTest::gmock_main) list(APPEND ABSL_TEST_COMMON_LIBRARIES - gtest_main - gtest - gmock + GTest::gtest_main + GTest::gtest + GTest::gmock ${CMAKE_THREAD_LIBS_INIT} ) endif()
diff --git a/third_party/abseil-cpp/README.chromium b/third_party/abseil-cpp/README.chromium index e87fed9..1f56280 100644 --- a/third_party/abseil-cpp/README.chromium +++ b/third_party/abseil-cpp/README.chromium
@@ -4,7 +4,7 @@ License: Apache 2.0 License File: LICENSE Version: 0 -Revision: f72972654b69085b1d58fde04c618b77d3ac6935 +Revision: 311bbd2e50ea35e921a08186840d3b6ca279e880 Security Critical: yes Description:
diff --git a/third_party/abseil-cpp/absl/algorithm/CMakeLists.txt b/third_party/abseil-cpp/absl/algorithm/CMakeLists.txt index 56cd0fb..609d858 100644 --- a/third_party/abseil-cpp/absl/algorithm/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/algorithm/CMakeLists.txt
@@ -35,7 +35,7 @@ ${ABSL_TEST_COPTS} DEPS absl::algorithm - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -65,5 +65,5 @@ absl::core_headers absl::memory absl::span - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/base/BUILD.bazel b/third_party/abseil-cpp/absl/base/BUILD.bazel index 65ff0dd..16b0e2f 100644 --- a/third_party/abseil-cpp/absl/base/BUILD.bazel +++ b/third_party/abseil-cpp/absl/base/BUILD.bazel
@@ -56,6 +56,7 @@ srcs = ["log_severity.cc"], hdrs = ["log_severity.h"], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ ":config", @@ -159,6 +160,7 @@ "internal/low_level_alloc.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = select({ "//absl:msvc_compiler": [], "//absl:clang-cl_compiler": [], @@ -220,6 +222,7 @@ "internal/unscaledcycleclock.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = select({ "//absl:msvc_compiler": [ "-DEFAULTLIB:advapi32.lib", @@ -290,6 +293,7 @@ srcs = ["internal/throw_delegate.cc"], hdrs = ["internal/throw_delegate.h"], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, visibility = [ "//absl:__subpackages__", @@ -709,6 +713,7 @@ srcs = ["internal/strerror.cc"], hdrs = ["internal/strerror.h"], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, visibility = [ "//absl:__subpackages__",
diff --git a/third_party/abseil-cpp/absl/base/CMakeLists.txt b/third_party/abseil-cpp/absl/base/CMakeLists.txt index 981b8cc0..7d56aa1 100644 --- a/third_party/abseil-cpp/absl/base/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/base/CMakeLists.txt
@@ -230,7 +230,7 @@ ${ABSL_DEFAULT_COPTS} DEPS absl::config - gtest + GTest::gtest TESTONLY ) @@ -259,7 +259,7 @@ absl::meta absl::strings absl::utility - gtest + GTest::gtest TESTONLY ) @@ -273,7 +273,7 @@ DEPS absl::exception_safety_testing absl::memory - gtest_main + GTest::gtest_main ) absl_cc_library( @@ -300,8 +300,8 @@ absl::atomic_hook_test_helper absl::atomic_hook absl::core_headers - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -314,7 +314,7 @@ DEPS absl::base absl::core_headers - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -327,8 +327,8 @@ DEPS absl::errno_saver absl::strerror - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -342,7 +342,7 @@ absl::base absl::config absl::throw_delegate - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -357,7 +357,7 @@ ${ABSL_TEST_COPTS} DEPS absl::base_internal - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -371,8 +371,8 @@ absl::base_internal absl::memory absl::strings - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_library( @@ -388,7 +388,7 @@ absl::base_internal absl::core_headers absl::synchronization - gtest + GTest::gtest TESTONLY ) @@ -406,7 +406,7 @@ absl::config absl::core_headers absl::synchronization - gtest_main + GTest::gtest_main ) absl_cc_library( @@ -435,7 +435,7 @@ absl::base absl::config absl::endian - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -448,7 +448,7 @@ DEPS absl::config absl::synchronization - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -462,7 +462,7 @@ absl::base absl::core_headers absl::synchronization - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -475,7 +475,7 @@ DEPS absl::raw_logging_internal absl::strings - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -488,7 +488,7 @@ DEPS absl::base absl::synchronization - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -516,7 +516,7 @@ absl::core_headers absl::synchronization Threads::Threads - gtest_main + GTest::gtest_main ) absl_cc_library( @@ -543,7 +543,7 @@ DEPS absl::exponential_biased absl::strings - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -570,7 +570,7 @@ DEPS absl::core_headers absl::periodic_sampler - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -596,7 +596,7 @@ ${ABSL_TEST_COPTS} DEPS absl::scoped_set_env - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -620,8 +620,8 @@ absl::flags_marshalling absl::log_severity absl::strings - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_library( @@ -651,8 +651,8 @@ DEPS absl::strerror absl::strings - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_library( @@ -677,7 +677,7 @@ ${ABSL_TEST_COPTS} DEPS absl::fast_type_id - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -690,5 +690,5 @@ DEPS absl::core_headers absl::optional - gtest_main + GTest::gtest_main )
diff --git a/third_party/abseil-cpp/absl/cleanup/CMakeLists.txt b/third_party/abseil-cpp/absl/cleanup/CMakeLists.txt index a2dd78a..26a6d0d 100644 --- a/third_party/abseil-cpp/absl/cleanup/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/cleanup/CMakeLists.txt
@@ -51,5 +51,5 @@ absl::cleanup absl::config absl::utility - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/container/BUILD.bazel b/third_party/abseil-cpp/absl/container/BUILD.bazel index f22fdc606..9651054 100644 --- a/third_party/abseil-cpp/absl/container/BUILD.bazel +++ b/third_party/abseil-cpp/absl/container/BUILD.bazel
@@ -505,6 +505,7 @@ ], hdrs = ["internal/hashtablez_sampler.h"], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ ":have_sse",
diff --git a/third_party/abseil-cpp/absl/container/CMakeLists.txt b/third_party/abseil-cpp/absl/container/CMakeLists.txt index 2d7d0e6..91c4015 100644 --- a/third_party/abseil-cpp/absl/container/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/container/CMakeLists.txt
@@ -80,7 +80,7 @@ absl::strings absl::test_instance_tracker absl::type_traits - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -109,7 +109,7 @@ absl::optional absl::test_instance_tracker absl::utility - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -144,7 +144,7 @@ absl::exception_testing absl::hash_testing absl::memory - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -158,7 +158,7 @@ absl::fixed_array absl::config absl::exception_safety_testing - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -222,7 +222,7 @@ absl::memory absl::raw_logging_internal absl::strings - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -236,7 +236,7 @@ absl::inlined_vector absl::config absl::exception_safety_testing - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -262,7 +262,7 @@ ${ABSL_TEST_COPTS} DEPS absl::test_instance_tracker - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -297,7 +297,7 @@ absl::unordered_map_modifiers_test absl::any absl::raw_logging_internal - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -335,7 +335,7 @@ absl::memory absl::raw_logging_internal absl::strings - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -370,7 +370,7 @@ absl::unordered_map_lookup_test absl::unordered_map_members_test absl::unordered_map_modifiers_test - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -404,7 +404,7 @@ absl::unordered_set_lookup_test absl::unordered_set_members_test absl::unordered_set_modifiers_test - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -433,7 +433,7 @@ absl::container_memory absl::strings absl::test_instance_tracker - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -465,7 +465,7 @@ absl::hash absl::random_random absl::strings - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -507,7 +507,7 @@ ${ABSL_TEST_COPTS} DEPS absl::hash_policy_testing - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -531,7 +531,7 @@ ${ABSL_TEST_COPTS} DEPS absl::hash_policy_traits - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -561,7 +561,7 @@ DEPS absl::hashtablez_sampler absl::have_sse - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -618,7 +618,7 @@ DEPS absl::hash_policy_traits absl::node_hash_policy - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -693,7 +693,7 @@ absl::core_headers absl::raw_logging_internal absl::strings - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -707,7 +707,7 @@ absl::raw_hash_set absl::tracked absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -740,7 +740,7 @@ absl::core_headers absl::raw_logging_internal absl::span - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -765,7 +765,7 @@ DEPS absl::hash_generator_testing absl::hash_policy_testing - gmock + GTest::gmock TESTONLY ) @@ -779,7 +779,7 @@ DEPS absl::hash_generator_testing absl::hash_policy_testing - gmock + GTest::gmock TESTONLY ) @@ -792,7 +792,7 @@ ${ABSL_TEST_COPTS} DEPS absl::type_traits - gmock + GTest::gmock TESTONLY ) @@ -806,7 +806,7 @@ DEPS absl::hash_generator_testing absl::hash_policy_testing - gmock + GTest::gmock TESTONLY ) @@ -820,7 +820,7 @@ DEPS absl::hash_generator_testing absl::hash_policy_testing - gmock + GTest::gmock TESTONLY ) @@ -834,7 +834,7 @@ DEPS absl::hash_generator_testing absl::hash_policy_testing - gmock + GTest::gmock TESTONLY ) @@ -847,7 +847,7 @@ ${ABSL_TEST_COPTS} DEPS absl::type_traits - gmock + GTest::gmock TESTONLY ) @@ -861,7 +861,7 @@ DEPS absl::hash_generator_testing absl::hash_policy_testing - gmock + GTest::gmock TESTONLY ) @@ -877,7 +877,7 @@ absl::unordered_set_lookup_test absl::unordered_set_members_test absl::unordered_set_modifiers_test - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -892,5 +892,5 @@ absl::unordered_map_lookup_test absl::unordered_map_members_test absl::unordered_map_modifiers_test - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/container/internal/btree_container.h b/third_party/abseil-cpp/absl/container/internal/btree_container.h index 4f5d56d..a99668c 100644 --- a/third_party/abseil-cpp/absl/container/internal/btree_container.h +++ b/third_party/abseil-cpp/absl/container/internal/btree_container.h
@@ -20,6 +20,7 @@ #include <iterator> #include <utility> +#include "absl/base/attributes.h" #include "absl/base/internal/throw_delegate.h" #include "absl/container/internal/btree.h" // IWYU pragma: export #include "absl/container/internal/common.h" @@ -176,7 +177,7 @@ } // Utility routines. - void clear() { tree_.clear(); } + ABSL_ATTRIBUTE_REINITIALIZES void clear() { tree_.clear(); } void swap(btree_container &other) { tree_.swap(other.tree_); } void verify() const { tree_.verify(); }
diff --git a/third_party/abseil-cpp/absl/debugging/CMakeLists.txt b/third_party/abseil-cpp/absl/debugging/CMakeLists.txt index 074b44c..bb4d4c9 100644 --- a/third_party/abseil-cpp/absl/debugging/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/debugging/CMakeLists.txt
@@ -87,7 +87,7 @@ absl::memory absl::raw_logging_internal absl::strings - gmock + GTest::gmock ) absl_cc_library( @@ -141,7 +141,7 @@ absl::strings absl::raw_logging_internal Threads::Threads - gmock + GTest::gmock ) absl_cc_library( @@ -194,7 +194,7 @@ absl::core_headers absl::memory absl::raw_logging_internal - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -261,7 +261,7 @@ DEPS absl::leak_check_api_enabled_for_testing absl::base - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -275,7 +275,7 @@ DEPS absl::leak_check_api_disabled_for_testing absl::base - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -292,7 +292,7 @@ absl::leak_check_disable absl::base absl::raw_logging_internal - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -322,7 +322,7 @@ absl::stack_consumption absl::core_headers absl::raw_logging_internal - gmock_main + GTest::gmock_main ) # component target
diff --git a/third_party/abseil-cpp/absl/flags/BUILD.bazel b/third_party/abseil-cpp/absl/flags/BUILD.bazel index c178b86..940e3561 100644 --- a/third_party/abseil-cpp/absl/flags/BUILD.bazel +++ b/third_party/abseil-cpp/absl/flags/BUILD.bazel
@@ -51,6 +51,7 @@ "internal/program_name.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, visibility = [ "//absl/flags:__pkg__", @@ -74,6 +75,7 @@ "usage_config.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ ":path_util", @@ -94,6 +96,7 @@ "marshalling.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ "//absl/base:config", @@ -113,6 +116,7 @@ "internal/commandlineflag.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ "//absl/base:config", @@ -129,6 +133,7 @@ "commandlineflag.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ ":commandlineflag_internal", @@ -170,6 +175,7 @@ "reflection.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ ":commandlineflag", @@ -194,6 +200,7 @@ "internal/sequence_lock.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, visibility = ["//absl/base:__subpackages__"], deps = [ @@ -244,6 +251,7 @@ "internal/usage.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, visibility = [ "//absl/flags:__pkg__", @@ -273,6 +281,7 @@ "usage.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ ":usage_internal", @@ -291,6 +300,7 @@ "parse.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ ":commandlineflag",
diff --git a/third_party/abseil-cpp/absl/flags/CMakeLists.txt b/third_party/abseil-cpp/absl/flags/CMakeLists.txt index 827784b1..956f70f 100644 --- a/third_party/abseil-cpp/absl/flags/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/flags/CMakeLists.txt
@@ -310,7 +310,7 @@ absl::flags_reflection absl::memory absl::strings - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -322,7 +322,7 @@ ${ABSL_TEST_COPTS} DEPS absl::flags_config - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -342,7 +342,7 @@ absl::flags_reflection absl::strings absl::time - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -354,7 +354,7 @@ ${ABSL_TEST_COPTS} DEPS absl::flags_marshalling - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -373,7 +373,7 @@ absl::scoped_set_env absl::span absl::strings - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -385,7 +385,7 @@ ${ABSL_TEST_COPTS} DEPS absl::flags_path_util - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -398,7 +398,7 @@ DEPS absl::flags_program_name absl::strings - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -415,7 +415,7 @@ absl::flags_usage absl::memory absl::strings - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -429,7 +429,7 @@ absl::base absl::flags_internal absl::time - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -444,7 +444,7 @@ absl::flags_path_util absl::flags_program_name absl::strings - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -463,5 +463,5 @@ absl::flags_reflection absl::flags_usage absl::strings - gtest + GTest::gtest )
diff --git a/third_party/abseil-cpp/absl/functional/CMakeLists.txt b/third_party/abseil-cpp/absl/functional/CMakeLists.txt index cda914f..3919e9a1 100644 --- a/third_party/abseil-cpp/absl/functional/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/functional/CMakeLists.txt
@@ -39,7 +39,7 @@ DEPS absl::bind_front absl::memory - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -68,5 +68,5 @@ absl::function_ref absl::memory absl::test_instance_tracker - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/hash/BUILD.bazel b/third_party/abseil-cpp/absl/hash/BUILD.bazel index 4b2c220f..f5005a0 100644 --- a/third_party/abseil-cpp/absl/hash/BUILD.bazel +++ b/third_party/abseil-cpp/absl/hash/BUILD.bazel
@@ -34,6 +34,7 @@ ], hdrs = ["hash.h"], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ ":city",
diff --git a/third_party/abseil-cpp/absl/hash/CMakeLists.txt b/third_party/abseil-cpp/absl/hash/CMakeLists.txt index b43bfa5..c82f66f 100644 --- a/third_party/abseil-cpp/absl/hash/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/hash/CMakeLists.txt
@@ -52,7 +52,7 @@ absl::meta absl::strings absl::variant - gmock + GTest::gmock TESTONLY ) @@ -72,7 +72,7 @@ absl::spy_hash_state absl::meta absl::int128 - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -113,7 +113,7 @@ ${ABSL_TEST_COPTS} DEPS absl::city - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -141,5 +141,5 @@ DEPS absl::wyhash absl::strings - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/memory/CMakeLists.txt b/third_party/abseil-cpp/absl/memory/CMakeLists.txt index 78fb7e1..9d50e1d 100644 --- a/third_party/abseil-cpp/absl/memory/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/memory/CMakeLists.txt
@@ -37,7 +37,7 @@ DEPS absl::memory absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -51,5 +51,5 @@ absl::memory absl::config absl::exception_safety_testing - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/meta/CMakeLists.txt b/third_party/abseil-cpp/absl/meta/CMakeLists.txt index 672ead2..9de4bd37 100644 --- a/third_party/abseil-cpp/absl/meta/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/meta/CMakeLists.txt
@@ -35,7 +35,7 @@ ${ABSL_TEST_COPTS} DEPS absl::type_traits - gmock_main + GTest::gmock_main ) # component target
diff --git a/third_party/abseil-cpp/absl/numeric/BUILD.bazel b/third_party/abseil-cpp/absl/numeric/BUILD.bazel index ea587bfa..a0ef9055 100644 --- a/third_party/abseil-cpp/absl/numeric/BUILD.bazel +++ b/third_party/abseil-cpp/absl/numeric/BUILD.bazel
@@ -62,6 +62,7 @@ ], hdrs = ["int128.h"], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ ":bits",
diff --git a/third_party/abseil-cpp/absl/numeric/CMakeLists.txt b/third_party/abseil-cpp/absl/numeric/CMakeLists.txt index 781987dc8..26df5cf 100644 --- a/third_party/abseil-cpp/absl/numeric/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/numeric/CMakeLists.txt
@@ -38,7 +38,7 @@ absl::bits absl::core_headers absl::random_random - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -73,7 +73,7 @@ absl::core_headers absl::hash_testing absl::type_traits - gmock_main + GTest::gmock_main ) # component target
diff --git a/third_party/abseil-cpp/absl/random/CMakeLists.txt b/third_party/abseil-cpp/absl/random/CMakeLists.txt index 3009a034..9d1c67f 100644 --- a/third_party/abseil-cpp/absl/random/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/random/CMakeLists.txt
@@ -62,8 +62,8 @@ absl::random_random absl::random_internal_sequence_urbg absl::fast_type_id - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -119,8 +119,8 @@ absl::type_traits absl::utility absl::variant - gmock - gtest + GTest::gmock + GTest::gtest TESTONLY ) @@ -136,8 +136,8 @@ DEPS absl::random_mocking_bit_gen absl::random_random - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -153,8 +153,8 @@ absl::random_bit_gen_ref absl::random_mocking_bit_gen absl::random_random - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_library( @@ -245,8 +245,8 @@ absl::random_random absl::random_internal_sequence_urbg absl::random_internal_pcg_engine - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -268,8 +268,8 @@ absl::raw_logging_internal absl::strings absl::str_format - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -285,8 +285,8 @@ absl::random_distributions absl::random_random absl::random_internal_distribution_test_util - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -301,8 +301,8 @@ absl::random_distributions absl::random_random absl::raw_logging_internal - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -322,8 +322,8 @@ absl::raw_logging_internal absl::strings absl::str_format - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -343,8 +343,8 @@ absl::random_random absl::raw_logging_internal absl::strings - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -367,8 +367,8 @@ absl::raw_logging_internal absl::strings absl::str_format - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -391,8 +391,8 @@ absl::raw_logging_internal absl::strings absl::str_format - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -414,8 +414,8 @@ absl::raw_logging_internal absl::strings absl::str_format - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -435,8 +435,8 @@ absl::random_random absl::raw_logging_internal absl::strings - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -456,8 +456,8 @@ absl::random_internal_sequence_urbg absl::random_random absl::strings - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -477,8 +477,8 @@ absl::random_random absl::raw_logging_internal absl::strings - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) absl_cc_test( @@ -492,7 +492,7 @@ ${ABSL_DEFAULT_LINKOPTS} DEPS absl::random_random - gtest_main + GTest::gtest_main ) absl_cc_test( @@ -508,8 +508,8 @@ absl::random_seed_sequences absl::random_internal_nonsecure_base absl::random_random - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -894,7 +894,7 @@ ${ABSL_DEFAULT_LINKOPTS} DEPS absl::random_internal_traits - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -911,7 +911,7 @@ absl::bits absl::flags absl::random_internal_generate_real - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -926,7 +926,7 @@ ${ABSL_DEFAULT_LINKOPTS} DEPS absl::random_internal_distribution_test_util - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -941,7 +941,7 @@ ${ABSL_DEFAULT_LINKOPTS} DEPS absl::random_internal_fastmath - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -957,8 +957,8 @@ DEPS absl::random_internal_explicit_seed_seq absl::random_seed_sequences - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -973,8 +973,8 @@ ${ABSL_DEFAULT_LINKOPTS} DEPS absl::random_internal_salted_seed_seq - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -990,7 +990,7 @@ DEPS absl::core_headers absl::random_internal_distribution_test_util - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1005,7 +1005,7 @@ ${ABSL_DEFAULT_LINKOPTS} DEPS absl::random_internal_fast_uniform_bits - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1024,7 +1024,7 @@ absl::random_distributions absl::random_seed_sequences absl::strings - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1039,8 +1039,8 @@ ${ABSL_DEFAULT_LINKOPTS} DEPS absl::random_internal_seed_material - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1057,7 +1057,7 @@ absl::random_internal_pool_urbg absl::span absl::type_traits - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1074,8 +1074,8 @@ absl::random_internal_explicit_seed_seq absl::random_internal_pcg_engine absl::time - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1094,8 +1094,8 @@ absl::raw_logging_internal absl::strings absl::time - gmock - gtest_main + GTest::gmock + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1111,7 +1111,7 @@ DEPS absl::random_internal_randen absl::type_traits - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1127,7 +1127,7 @@ DEPS absl::endian absl::random_internal_randen_slow - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1146,8 +1146,8 @@ absl::random_internal_randen_hwaes_impl absl::raw_logging_internal absl::str_format - gmock - gtest + GTest::gmock + GTest::gtest ) # Internal-only target, do not depend on directly. @@ -1178,7 +1178,7 @@ ${ABSL_DEFAULT_LINKOPTS} DEPS absl::random_internal_uniform_helper - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1193,7 +1193,7 @@ ${ABSL_DEFAULT_LINKOPTS} DEPS absl::random_internal_iostream_state_saver - gtest_main + GTest::gtest_main ) # Internal-only target, do not depend on directly. @@ -1210,5 +1210,5 @@ absl::random_internal_wide_multiply absl::bits absl::int128 - gtest_main + GTest::gtest_main )
diff --git a/third_party/abseil-cpp/absl/random/beta_distribution_test.cc b/third_party/abseil-cpp/absl/random/beta_distribution_test.cc index 44cdfdd0..d980c96 100644 --- a/third_party/abseil-cpp/absl/random/beta_distribution_test.cc +++ b/third_party/abseil-cpp/absl/random/beta_distribution_test.cc
@@ -15,6 +15,7 @@ #include "absl/random/beta_distribution.h" #include <algorithm> +#include <cfloat> #include <cstddef> #include <cstdint> #include <iterator> @@ -558,6 +559,14 @@ // dependencies of the distribution change, such as RandU64ToDouble, then this // is also likely to change. TEST(BetaDistributionTest, AlgorithmBounds) { +#if (defined(__i386__) || defined(_M_IX86)) && FLT_EVAL_METHOD != 0 + // We're using an x87-compatible FPU, and intermediate operations are + // performed with 80-bit floats. This produces slightly different results from + // what we expect below. + GTEST_SKIP() + << "Skipping the test because we detected x87 floating-point semantics"; +#endif + { absl::random_internal::sequence_urbg urbg( {0x7fbe76c8b4395800ull, 0x8000000000000000ull});
diff --git a/third_party/abseil-cpp/absl/random/distributions_test.cc b/third_party/abseil-cpp/absl/random/distributions_test.cc index 5866a07..d3a5dd7 100644 --- a/third_party/abseil-cpp/absl/random/distributions_test.cc +++ b/third_party/abseil-cpp/absl/random/distributions_test.cc
@@ -14,6 +14,7 @@ #include "absl/random/distributions.h" +#include <cfloat> #include <cmath> #include <cstdint> #include <random> @@ -224,6 +225,15 @@ TEST_F(RandomDistributionsTest, UniformNonsenseRanges) { // The ranges used in this test are undefined behavior. // The results are arbitrary and subject to future changes. + +#if (defined(__i386__) || defined(_M_IX86)) && FLT_EVAL_METHOD != 0 + // We're using an x87-compatible FPU, and intermediate operations can be + // performed with 80-bit floats. This produces slightly different results from + // what we expect below. + GTEST_SKIP() + << "Skipping the test because we detected x87 floating-point semantics"; +#endif + absl::InsecureBitGen gen; // <uint>
diff --git a/third_party/abseil-cpp/absl/random/exponential_distribution_test.cc b/third_party/abseil-cpp/absl/random/exponential_distribution_test.cc index af11d61c1..81a5d17 100644 --- a/third_party/abseil-cpp/absl/random/exponential_distribution_test.cc +++ b/third_party/abseil-cpp/absl/random/exponential_distribution_test.cc
@@ -15,6 +15,7 @@ #include "absl/random/exponential_distribution.h" #include <algorithm> +#include <cfloat> #include <cmath> #include <cstddef> #include <cstdint> @@ -384,6 +385,15 @@ TEST(ExponentialDistributionTest, AlgorithmBounds) { // Relies on absl::uniform_real_distribution, so some of these comments // reference that. + +#if (defined(__i386__) || defined(_M_IX86)) && FLT_EVAL_METHOD != 0 + // We're using an x87-compatible FPU, and intermediate operations can be + // performed with 80-bit floats. This produces slightly different results from + // what we expect below. + GTEST_SKIP() + << "Skipping the test because we detected x87 floating-point semantics"; +#endif + absl::exponential_distribution<double> dist; {
diff --git a/third_party/abseil-cpp/absl/random/uniform_real_distribution_test.cc b/third_party/abseil-cpp/absl/random/uniform_real_distribution_test.cc index 18bcd3b..035bd284 100644 --- a/third_party/abseil-cpp/absl/random/uniform_real_distribution_test.cc +++ b/third_party/abseil-cpp/absl/random/uniform_real_distribution_test.cc
@@ -14,6 +14,7 @@ #include "absl/random/uniform_real_distribution.h" +#include <cfloat> #include <cmath> #include <cstdint> #include <iterator> @@ -70,6 +71,14 @@ TYPED_TEST_SUITE(UniformRealDistributionTest, RealTypes); TYPED_TEST(UniformRealDistributionTest, ParamSerializeTest) { +#if (defined(__i386__) || defined(_M_IX86)) && FLT_EVAL_METHOD != 0 + // We're using an x87-compatible FPU, and intermediate operations are + // performed with 80-bit floats. This produces slightly different results from + // what we expect below. + GTEST_SKIP() + << "Skipping the test because we detected x87 floating-point semantics"; +#endif + using param_type = typename absl::uniform_real_distribution<TypeParam>::param_type;
diff --git a/third_party/abseil-cpp/absl/status/BUILD.bazel b/third_party/abseil-cpp/absl/status/BUILD.bazel index 189bd73..4db72c0d 100644 --- a/third_party/abseil-cpp/absl/status/BUILD.bazel +++ b/third_party/abseil-cpp/absl/status/BUILD.bazel
@@ -40,6 +40,7 @@ "status_payload_printer.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], deps = [ "//absl/base:atomic_hook", "//absl/base:config", @@ -76,6 +77,7 @@ "statusor.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], deps = [ ":status", "//absl/base:core_headers",
diff --git a/third_party/abseil-cpp/absl/status/CMakeLists.txt b/third_party/abseil-cpp/absl/status/CMakeLists.txt index f0d798a..1248dff0 100644 --- a/third_party/abseil-cpp/absl/status/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/status/CMakeLists.txt
@@ -50,7 +50,7 @@ DEPS absl::status absl::strings - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -84,5 +84,5 @@ DEPS absl::status absl::statusor - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/strings/BUILD.bazel b/third_party/abseil-cpp/absl/strings/BUILD.bazel index 1cb5b3e..a02ee39 100644 --- a/third_party/abseil-cpp/absl/strings/BUILD.bazel +++ b/third_party/abseil-cpp/absl/strings/BUILD.bazel
@@ -66,6 +66,7 @@ "substitute.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], deps = [ ":internal", "//absl/base", @@ -96,6 +97,7 @@ "internal/utf8.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], deps = [ "//absl/base:config", "//absl/base:core_headers", @@ -278,6 +280,7 @@ "internal/cord_rep_ring_reader.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], visibility = [ "//visibility:private", ], @@ -327,6 +330,7 @@ "cord.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], deps = [ ":cord_internal", ":cordz_functions", @@ -355,6 +359,7 @@ srcs = ["internal/cordz_handle.cc"], hdrs = ["internal/cordz_handle.h"], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], visibility = [ "//absl:__subpackages__", ], @@ -371,6 +376,7 @@ srcs = ["internal/cordz_info.cc"], hdrs = ["internal/cordz_info.h"], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], visibility = [ "//absl:__subpackages__", ], @@ -995,6 +1001,7 @@ "internal/str_format/parser.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], visibility = ["//visibility:private"], deps = [ ":strings",
diff --git a/third_party/abseil-cpp/absl/strings/CMakeLists.txt b/third_party/abseil-cpp/absl/strings/CMakeLists.txt index d3f1523..0246dc3 100644 --- a/third_party/abseil-cpp/absl/strings/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/strings/CMakeLists.txt
@@ -101,7 +101,7 @@ DEPS absl::strings absl::base - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -115,7 +115,7 @@ absl::strings absl::core_headers absl::fixed_array - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -128,7 +128,7 @@ DEPS absl::strings absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -142,7 +142,7 @@ DEPS absl::strings absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -156,7 +156,7 @@ absl::strings_internal absl::base absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -169,7 +169,7 @@ DEPS absl::strings absl::type_traits - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -184,7 +184,7 @@ absl::config absl::core_headers absl::dynamic_annotations - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -197,7 +197,7 @@ DEPS absl::strings absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -209,7 +209,7 @@ ${ABSL_TEST_COPTS} DEPS absl::strings - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -226,7 +226,7 @@ absl::btree absl::flat_hash_map absl::node_hash_map - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -238,7 +238,7 @@ ${ABSL_TEST_COPTS} DEPS absl::strings_internal - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -253,7 +253,7 @@ absl::base absl::core_headers absl::type_traits - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -268,7 +268,7 @@ absl::base absl::core_headers absl::memory - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -281,7 +281,7 @@ DEPS absl::strings absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -301,7 +301,7 @@ absl::random_random absl::random_distributions absl::strings_internal - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -314,7 +314,7 @@ DEPS absl::strings absl::base - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -326,7 +326,7 @@ ${ABSL_TEST_COPTS} DEPS absl::strings_internal - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -340,7 +340,7 @@ absl::strings absl::str_format absl::pow10_helper - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -355,7 +355,7 @@ absl::strings absl::config absl::raw_logging_internal - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -370,7 +370,7 @@ DEPS absl::strings absl::config - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -428,7 +428,7 @@ absl::cord absl::strings absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -442,7 +442,7 @@ absl::str_format absl::str_format_internal absl::strings - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -455,7 +455,7 @@ DEPS absl::str_format absl::str_format_internal - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -467,7 +467,7 @@ ${ABSL_TEST_COPTS} DEPS absl::str_format_internal - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -479,7 +479,7 @@ ${ABSL_TEST_COPTS} DEPS absl::str_format - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -494,7 +494,7 @@ absl::str_format_internal absl::raw_logging_internal absl::int128 - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -507,7 +507,7 @@ DEPS absl::str_format_internal absl::cord - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -520,7 +520,7 @@ DEPS absl::str_format_internal absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -547,7 +547,7 @@ DEPS absl::pow10_helper absl::str_format - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -600,7 +600,7 @@ absl::cordz_update_tracker absl::core_headers absl::synchronization - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -628,7 +628,7 @@ absl::config absl::cordz_functions absl::cordz_test_helpers - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -675,7 +675,7 @@ absl::random_distributions absl::synchronization absl::time - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -722,7 +722,7 @@ absl::span absl::stacktrace absl::symbolize - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -742,7 +742,7 @@ absl::cordz_update_scope absl::cordz_update_tracker absl::thread_pool - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -780,7 +780,7 @@ absl::synchronization absl::thread_pool absl::time - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -813,7 +813,7 @@ absl::cordz_update_scope absl::cordz_update_tracker absl::core_headers - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -899,7 +899,7 @@ absl::endian absl::raw_logging_internal absl::fixed_array - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -916,7 +916,7 @@ absl::core_headers absl::raw_logging_internal absl::strings - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -931,7 +931,7 @@ absl::cord_internal absl::core_headers absl::strings - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -955,5 +955,5 @@ absl::core_headers absl::raw_logging_internal absl::strings - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/synchronization/BUILD.bazel b/third_party/abseil-cpp/absl/synchronization/BUILD.bazel index 92e2448d..46c4b91 100644 --- a/third_party/abseil-cpp/absl/synchronization/BUILD.bazel +++ b/third_party/abseil-cpp/absl/synchronization/BUILD.bazel
@@ -36,6 +36,7 @@ "internal/graphcycles.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, visibility = [ "//absl:__subpackages__", @@ -87,6 +88,7 @@ "notification.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = select({ "//absl:msvc_compiler": [], "//absl:clang-cl_compiler": [],
diff --git a/third_party/abseil-cpp/absl/synchronization/CMakeLists.txt b/third_party/abseil-cpp/absl/synchronization/CMakeLists.txt index e633d0bf5..605efe2 100644 --- a/third_party/abseil-cpp/absl/synchronization/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/synchronization/CMakeLists.txt
@@ -95,7 +95,7 @@ DEPS absl::synchronization absl::time - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -108,7 +108,7 @@ DEPS absl::synchronization absl::time - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -122,7 +122,7 @@ absl::graphcycles_internal absl::core_headers absl::raw_logging_internal - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -154,7 +154,7 @@ absl::memory absl::raw_logging_internal absl::time - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -167,7 +167,7 @@ DEPS absl::synchronization absl::time - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -183,7 +183,7 @@ absl::config absl::strings absl::time - gmock + GTest::gmock TESTONLY ) @@ -199,7 +199,7 @@ absl::synchronization absl::strings absl::time - gmock_main + GTest::gmock_main ) absl_cc_test(
diff --git a/third_party/abseil-cpp/absl/time/BUILD.bazel b/third_party/abseil-cpp/absl/time/BUILD.bazel index 3e25ca269..4700616 100644 --- a/third_party/abseil-cpp/absl/time/BUILD.bazel +++ b/third_party/abseil-cpp/absl/time/BUILD.bazel
@@ -43,6 +43,7 @@ "time.h", ], copts = ABSL_DEFAULT_COPTS, + features = ["-no_undefined"], linkopts = ABSL_DEFAULT_LINKOPTS, deps = [ "//absl/base",
diff --git a/third_party/abseil-cpp/absl/time/CMakeLists.txt b/third_party/abseil-cpp/absl/time/CMakeLists.txt index 00bdd49..f6ff8bd1 100644 --- a/third_party/abseil-cpp/absl/time/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/time/CMakeLists.txt
@@ -102,7 +102,7 @@ absl::config absl::raw_logging_internal absl::time_zone - gmock + GTest::gmock TESTONLY ) @@ -124,5 +124,5 @@ absl::config absl::core_headers absl::time_zone - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/time/duration_test.cc b/third_party/abseil-cpp/absl/time/duration_test.cc index a3617e7..b7209e1c 100644 --- a/third_party/abseil-cpp/absl/time/duration_test.cc +++ b/third_party/abseil-cpp/absl/time/duration_test.cc
@@ -17,6 +17,7 @@ #endif #include <chrono> // NOLINT(build/c++11) +#include <cfloat> #include <cmath> #include <cstdint> #include <ctime> @@ -1390,6 +1391,14 @@ // Seconds(point) returns a duration near point * Seconds(1.0). (They may // not be exactly equal due to fused multiply/add contraction.) TEST(Duration, ToDoubleSecondsCheckEdgeCases) { +#if (defined(__i386__) || defined(_M_IX86)) && FLT_EVAL_METHOD != 0 + // We're using an x87-compatible FPU, and intermediate operations can be + // performed with 80-bit floats. This means the edge cases are different than + // what we expect here, so just skip this test. + GTEST_SKIP() + << "Skipping the test because we detected x87 floating-point semantics"; +#endif + constexpr uint32_t kTicksPerSecond = absl::time_internal::kTicksPerSecond; constexpr auto duration_tick = absl::time_internal::MakeDuration(0, 1u); int misses = 0;
diff --git a/third_party/abseil-cpp/absl/time/internal/cctz/BUILD.bazel b/third_party/abseil-cpp/absl/time/internal/cctz/BUILD.bazel index 45a9529..35747e5 100644 --- a/third_party/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +++ b/third_party/abseil-cpp/absl/time/internal/cctz/BUILD.bazel
@@ -45,6 +45,7 @@ hdrs = [ "include/cctz/civil_time.h", ], + features = ["-no_undefined"], textual_hdrs = ["include/cctz/civil_time_detail.h"], visibility = ["//visibility:public"], deps = ["//absl/base:config"], @@ -74,6 +75,7 @@ "include/cctz/time_zone.h", "include/cctz/zone_info_source.h", ], + features = ["-no_undefined"], linkopts = select({ ":osx": [ "-framework Foundation",
diff --git a/third_party/abseil-cpp/absl/types/CMakeLists.txt b/third_party/abseil-cpp/absl/types/CMakeLists.txt index c356b21..d7e8614e 100644 --- a/third_party/abseil-cpp/absl/types/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/types/CMakeLists.txt
@@ -69,7 +69,7 @@ absl::exception_testing absl::raw_logging_internal absl::test_instance_tracker - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -85,7 +85,7 @@ absl::exception_testing absl::raw_logging_internal absl::test_instance_tracker - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -99,7 +99,7 @@ absl::any absl::config absl::exception_safety_testing - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -136,7 +136,7 @@ absl::inlined_vector absl::hash_testing absl::strings - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -156,7 +156,7 @@ absl::inlined_vector absl::hash_testing absl::strings - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -222,7 +222,7 @@ absl::raw_logging_internal absl::strings absl::type_traits - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -236,7 +236,7 @@ absl::optional absl::config absl::exception_safety_testing - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -258,7 +258,7 @@ absl::type_traits absl::strings absl::utility - gmock_main + GTest::gmock_main TESTONLY ) @@ -275,7 +275,7 @@ DEPS absl::conformance_testing absl::type_traits - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -288,7 +288,7 @@ DEPS absl::conformance_testing absl::type_traits - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -324,7 +324,7 @@ absl::memory absl::type_traits absl::strings - gmock_main + GTest::gmock_main ) absl_cc_library( @@ -350,7 +350,7 @@ DEPS absl::base absl::compare - gmock_main + GTest::gmock_main ) absl_cc_test( @@ -365,5 +365,5 @@ absl::config absl::exception_safety_testing absl::memory - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/absl/utility/CMakeLists.txt b/third_party/abseil-cpp/absl/utility/CMakeLists.txt index e1edd19..865b758 100644 --- a/third_party/abseil-cpp/absl/utility/CMakeLists.txt +++ b/third_party/abseil-cpp/absl/utility/CMakeLists.txt
@@ -40,5 +40,5 @@ absl::core_headers absl::memory absl::strings - gmock_main + GTest::gmock_main )
diff --git a/third_party/abseil-cpp/ci/cmake_install_test.sh b/third_party/abseil-cpp/ci/cmake_install_test.sh index ffc6b51..97ed8478 100755 --- a/third_party/abseil-cpp/ci/cmake_install_test.sh +++ b/third_party/abseil-cpp/ci/cmake_install_test.sh
@@ -36,8 +36,11 @@ --tmpfs=/abseil-cpp:exec \ --workdir=/abseil-cpp \ --cap-add=SYS_PTRACE \ + -e "ABSL_GOOGLETEST_COMMIT=${ABSL_GOOGLETEST_COMMIT}" \ + -e "ABSL_GOOGLETEST_DOWNLOAD_URL=${ABSL_GOOGLETEST_DOWNLOAD_URL}" \ -e "LINK_TYPE=${link_type}" \ --rm \ + ${DOCKER_EXTRA_ARGS:-} \ ${DOCKER_CONTAINER} \ /bin/bash -c "cp -r /abseil-cpp-ro/* . && CMake/install_test_project/test.sh" done
diff --git a/third_party/blink/common/BUILD.gn b/third_party/blink/common/BUILD.gn index 4e7fe7d9..4aea01ec9 100644 --- a/third_party/blink/common/BUILD.gn +++ b/third_party/blink/common/BUILD.gn
@@ -152,6 +152,7 @@ "navigation/impression_mojom_traits.cc", "navigation/navigation_policy.cc", "navigation/navigation_policy_mojom_traits.cc", + "navigation/prefetched_signed_exchange_info_mojom_traits.cc", "net/ip_address_space_util.cc", "notifications/notification_mojom_traits.cc", "notifications/notification_resources.cc",
diff --git a/third_party/blink/common/navigation/prefetched_signed_exchange_info_mojom_traits.cc b/third_party/blink/common/navigation/prefetched_signed_exchange_info_mojom_traits.cc new file mode 100644 index 0000000..52d96bc --- /dev/null +++ b/third_party/blink/common/navigation/prefetched_signed_exchange_info_mojom_traits.cc
@@ -0,0 +1,27 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/public/common/navigation/prefetched_signed_exchange_info_mojom_traits.h" + +#include "base/notreached.h" + +namespace mojo { + +bool StructTraits<blink::mojom::SHA256HashValueDataView, net::SHA256HashValue>:: + Read(blink::mojom::SHA256HashValueDataView input, + net::SHA256HashValue* out) { + std::string data; + if (!input.ReadData(&data)) + return false; + + if (data.size() != sizeof(out->data)) { + NOTREACHED(); + return false; + } + + memcpy(out->data, data.c_str(), sizeof(out->data)); + return true; +} + +} // namespace mojo
diff --git a/third_party/blink/public/common/navigation/prefetched_signed_exchange_info_mojom_traits.h b/third_party/blink/public/common/navigation/prefetched_signed_exchange_info_mojom_traits.h new file mode 100644 index 0000000..493b3c2 --- /dev/null +++ b/third_party/blink/public/common/navigation/prefetched_signed_exchange_info_mojom_traits.h
@@ -0,0 +1,32 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_NAVIGATION_PREFETCHED_SIGNED_EXCHANGE_INFO_MOJOM_TRAITS_H_ +#define THIRD_PARTY_BLINK_PUBLIC_COMMON_NAVIGATION_PREFETCHED_SIGNED_EXCHANGE_INFO_MOJOM_TRAITS_H_ + +#include <string> + +#include "mojo/public/cpp/base/byte_string_mojom_traits.h" +#include "mojo/public/cpp/bindings/struct_traits.h" +#include "net/base/hash_value.h" +#include "third_party/blink/public/common/common_export.h" +#include "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom-shared.h" + +namespace mojo { + +template <> +struct BLINK_COMMON_EXPORT + StructTraits<blink::mojom::SHA256HashValueDataView, net::SHA256HashValue> { + static const std::string data(const net::SHA256HashValue& value) { + return std::string(reinterpret_cast<const char*>(value.data), + sizeof(value.data)); + } + + static bool Read(blink::mojom::SHA256HashValueDataView input, + net::SHA256HashValue* out); +}; + +} // namespace mojo + +#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_NAVIGATION_PREFETCHED_SIGNED_EXCHANGE_INFO_MOJOM_TRAITS_H_
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn index 52eca19..5d8c05f3 100644 --- a/third_party/blink/public/mojom/BUILD.gn +++ b/third_party/blink/public/mojom/BUILD.gn
@@ -123,6 +123,7 @@ "modal_close_watcher/modal_close_listener.mojom", "native_io/native_io.mojom", "navigation/navigation_policy.mojom", + "navigation/prefetched_signed_exchange_info.mojom", "navigation/was_activated_option.mojom", "notifications/notification.mojom", "notifications/notification_service.mojom", @@ -497,6 +498,15 @@ ] traits_headers = [ "//third_party/blink/public/common/frame/frame_ad_evidence_mojom_traits.h" ] }, + { + types = [ + { + mojom = "blink.mojom.SHA256HashValue" + cpp = "::net::SHA256HashValue" + }, + ] + traits_headers = [ "//third_party/blink/public/common/navigation/prefetched_signed_exchange_info_mojom_traits.h" ] + }, ] cpp_typemaps = [ {
diff --git a/content/common/prefetched_signed_exchange_info.mojom b/third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom similarity index 86% rename from content/common/prefetched_signed_exchange_info.mojom rename to third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom index df3f11d..19dd458 100644 --- a/content/common/prefetched_signed_exchange_info.mojom +++ b/third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom
@@ -2,15 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -module content.mojom; +module blink.mojom; +import "mojo/public/mojom/base/byte_string.mojom"; import "services/network/public/mojom/url_loader_factory.mojom"; import "services/network/public/mojom/url_loader.mojom"; import "services/network/public/mojom/url_response_head.mojom"; import "url/mojom/url.mojom"; -[Native] -struct SHA256HashValue; +struct SHA256HashValue { + mojo_base.mojom.ByteString data; +}; // Used for SignedExchangeSubresourcePrefetch. // This struct keeps the information about a prefetched signed exchange. It is
diff --git a/third_party/blink/public/public_features.gni b/third_party/blink/public/public_features.gni index b6f5b99..bd2d650 100644 --- a/third_party/blink/public/public_features.gni +++ b/third_party/blink/public/public_features.gni
@@ -26,7 +26,7 @@ declare_args() { # If true, adds support for JPEG XL image decoding. - enable_jxl_decoder = !is_android && !is_ios + enable_jxl_decoder = !is_ios } # Unhandled Tap enable means Contextual Search aka Touch to Search.
diff --git a/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h b/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h index 83f5f86..ef841118 100644 --- a/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h +++ b/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h
@@ -41,8 +41,9 @@ // Any template <> struct ToV8Traits<IDLAny> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const ScriptValue& script_value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const ScriptValue& script_value) + WARN_UNUSED_RESULT { // It is not correct to take empty |script_value|. // However, some call sites expect to get v8::Undefined // when ToV8 takes empty |script_value|. @@ -52,8 +53,9 @@ return script_value.V8Value(); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const v8::Local<v8::Value>& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const v8::Local<v8::Value>& value) + WARN_UNUSED_RESULT { // TODO(crbug.com/1183637): Remove this if-branch. if (value.IsEmpty()) return v8::Undefined(script_state->GetIsolate()); @@ -64,8 +66,8 @@ // Boolean template <> struct ToV8Traits<IDLBoolean> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, bool value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + bool value) WARN_UNUSED_RESULT { return v8::Boolean::New(script_state->GetIsolate(), value); } }; @@ -74,8 +76,8 @@ // int8_t template <bindings::IDLIntegerConvMode mode> struct ToV8Traits<IDLIntegerTypeBase<int8_t, mode>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, int8_t value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + int8_t value) WARN_UNUSED_RESULT { return v8::Integer::New(script_state->GetIsolate(), value); } }; @@ -83,8 +85,8 @@ // int16_t template <bindings::IDLIntegerConvMode mode> struct ToV8Traits<IDLIntegerTypeBase<int16_t, mode>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, int16_t value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + int16_t value) WARN_UNUSED_RESULT { return v8::Integer::New(script_state->GetIsolate(), value); } }; @@ -92,8 +94,8 @@ // int32_t template <bindings::IDLIntegerConvMode mode> struct ToV8Traits<IDLIntegerTypeBase<int32_t, mode>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, int32_t value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + int32_t value) WARN_UNUSED_RESULT { return v8::Integer::New(script_state->GetIsolate(), value); } }; @@ -101,8 +103,8 @@ // int64_t template <bindings::IDLIntegerConvMode mode> struct ToV8Traits<IDLIntegerTypeBase<int64_t, mode>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, int64_t value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + int64_t value) WARN_UNUSED_RESULT { int32_t value_in_32bit = static_cast<int32_t>(value); if (value_in_32bit == value) return v8::Integer::New(script_state->GetIsolate(), value_in_32bit); @@ -114,8 +116,8 @@ // uint8_t template <bindings::IDLIntegerConvMode mode> struct ToV8Traits<IDLIntegerTypeBase<uint8_t, mode>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, uint8_t value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + uint8_t value) WARN_UNUSED_RESULT { return v8::Integer::NewFromUnsigned(script_state->GetIsolate(), value); } }; @@ -123,8 +125,8 @@ // uint16_t template <bindings::IDLIntegerConvMode mode> struct ToV8Traits<IDLIntegerTypeBase<uint16_t, mode>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, uint16_t value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + uint16_t value) WARN_UNUSED_RESULT { return v8::Integer::NewFromUnsigned(script_state->GetIsolate(), value); } }; @@ -132,8 +134,8 @@ // uint32_t template <bindings::IDLIntegerConvMode mode> struct ToV8Traits<IDLIntegerTypeBase<uint32_t, mode>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, uint32_t value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + uint32_t value) WARN_UNUSED_RESULT { return v8::Integer::NewFromUnsigned(script_state->GetIsolate(), value); } }; @@ -141,8 +143,8 @@ // uint64_t template <bindings::IDLIntegerConvMode mode> struct ToV8Traits<IDLIntegerTypeBase<uint64_t, mode>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, uint64_t value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + uint64_t value) WARN_UNUSED_RESULT { uint32_t value_in_32bit = static_cast<uint32_t>(value); if (value_in_32bit == value) { return v8::Integer::NewFromUnsigned(script_state->GetIsolate(), @@ -156,8 +158,8 @@ // Floating Point Number template <typename T, bindings::IDLFloatingPointNumberConvMode mode> struct ToV8Traits<IDLFloatingPointNumberTypeBase<T, mode>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, T value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + T value) WARN_UNUSED_RESULT { return v8::Number::New(script_state->GetIsolate(), value); } }; @@ -167,8 +169,9 @@ struct ToV8Traits< T, std::enable_if_t<std::is_base_of<IDLStringTypeBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const String& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const String& value) + WARN_UNUSED_RESULT { // if |value| is a null string, V8String() returns an empty string. return V8String(script_state->GetIsolate(), value); } @@ -177,8 +180,9 @@ // Object template <> struct ToV8Traits<IDLObject> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const ScriptValue& script_value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const ScriptValue& script_value) + WARN_UNUSED_RESULT { DCHECK(!script_value.IsEmpty()); v8::Local<v8::Value> v8_value = script_value.V8Value(); // TODO(crbug.com/1185033): Change this if-branch to DCHECK. @@ -191,8 +195,9 @@ // Promise template <> struct ToV8Traits<IDLPromise> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const ScriptPromise& script_promise) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const ScriptPromise& script_promise) + WARN_UNUSED_RESULT { DCHECK(!script_promise.IsEmpty()); return script_promise.V8Value(); } @@ -240,8 +245,9 @@ struct ToV8Traits< T, std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, T* script_wrappable) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + T* script_wrappable) + WARN_UNUSED_RESULT { return bindings::ToV8HelperScriptWrappable(script_state, script_wrappable); } @@ -250,10 +256,10 @@ // which is needed to create a wrapper. If a wrapper object corresponding to // the receiver object exists, ToV8 can return it without a call to // CreationContext() which is slow. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(v8::Isolate* isolate, - T* script_wrappable, - v8::Local<v8::Object> creation_context_object) { + static v8::MaybeLocal<v8::Value> ToV8( + v8::Isolate* isolate, + T* script_wrappable, + v8::Local<v8::Object> creation_context_object) WARN_UNUSED_RESULT { return bindings::ToV8HelperScriptWrappable(isolate, script_wrappable, creation_context_object); } @@ -264,8 +270,9 @@ struct ToV8Traits< T, std::enable_if_t<std::is_base_of<bindings::DictionaryBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T* dictionary) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T* dictionary) + WARN_UNUSED_RESULT { DCHECK(dictionary); return dictionary->ToV8Value(script_state); } @@ -276,8 +283,9 @@ struct ToV8Traits< T, std::enable_if_t<std::is_base_of<IDLDictionaryBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T* dictionary) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T* dictionary) + WARN_UNUSED_RESULT { // TODO(crbug.com/1185018): Change this if-branch to DCHECK(dictionary). if (!dictionary) return v8::Null(script_state->GetIsolate()); @@ -291,8 +299,8 @@ struct ToV8Traits< T, std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, T* callback) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + T* callback) WARN_UNUSED_RESULT { // creation_context (|script_state->GetContext()|) is intentionally ignored. // Callback functions are not wrappers nor clonable. ToV8 on a callback // function must be used only when it's in the same world. @@ -307,8 +315,8 @@ struct ToV8Traits< T, std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, T* callback) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + T* callback) WARN_UNUSED_RESULT { // creation_context (|script_state->GetContext()|) is intentionally ignored. // Callback Interfaces are not wrappers nor clonable. ToV8 on a callback // interface must be used only when it's in the same world. @@ -323,21 +331,24 @@ struct ToV8Traits< T, std::enable_if_t<std::is_base_of<bindings::EnumerationBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T& enumeration) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T& enumeration) + WARN_UNUSED_RESULT { return V8String(script_state->GetIsolate(), enumeration.AsCStr()); } // TODO(crbug.com/1184543): Remove this overload. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const String& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const String& value) + WARN_UNUSED_RESULT { DCHECK(!value.IsEmpty()); return V8String(script_state->GetIsolate(), value); } // TODO(crbug.com/1184543): Remove this overload. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const AtomicString& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const AtomicString& value) + WARN_UNUSED_RESULT { DCHECK(!value.IsEmpty()); return V8String(script_state->GetIsolate(), value); } @@ -346,8 +357,8 @@ // NotShared template <typename T> struct ToV8Traits<NotShared<T>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, NotShared<T> value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + NotShared<T> value) WARN_UNUSED_RESULT { DCHECK(!value.IsNull()); return ToV8Traits<T>::ToV8(script_state, value.Get()); } @@ -355,8 +366,8 @@ // TODO(crbug.com/1183647): Remove this overload. It is used in generated // code, but it might cause bugs because T* cannot tell whether it's NotShared // or MaybeShared. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, T* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + T* value) WARN_UNUSED_RESULT { // TODO(canonmukai): Remove this if-branch and add DCHECK(value) instead. if (!value) return v8::Null(script_state->GetIsolate()); @@ -364,8 +375,9 @@ } // TODO(canonmukai): Remove this overload. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const ScriptValue& script_value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const ScriptValue& script_value) + WARN_UNUSED_RESULT { DCHECK(!script_value.IsEmpty()); return ToV8Traits<IDLAny>::ToV8(script_state, script_value); } @@ -374,8 +386,9 @@ // MaybeShared template <typename T> struct ToV8Traits<MaybeShared<T>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, MaybeShared<T> value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + MaybeShared<T> value) + WARN_UNUSED_RESULT { return ToV8Traits<T>::ToV8(script_state, value.Get()); } }; @@ -478,35 +491,40 @@ struct ToV8Traits< IDLSequence<T>, std::enable_if_t<std::is_base_of<bindings::DictionaryBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<T>>& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const HeapVector<Member<T>>& value) + WARN_UNUSED_RESULT { return bindings::ToV8HelperSequenceWithMemberUpcast< bindings::DictionaryBase>(script_state, &value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<const T>>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const HeapVector<Member<const T>>& value) WARN_UNUSED_RESULT { return bindings::ToV8HelperSequenceWithMemberUpcast< bindings::DictionaryBase>(script_state, &value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<T>>* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const HeapVector<Member<T>>* value) + WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequenceWithMemberUpcast< bindings::DictionaryBase>(script_state, value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<const T>>* value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const HeapVector<Member<const T>>* value) WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequenceWithMemberUpcast< bindings::DictionaryBase>(script_state, value); } // TODO(crbug.com/1185046): Remove this overload. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const Vector<v8::Local<v8::Value>>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const Vector<v8::Local<v8::Value>>& value) WARN_UNUSED_RESULT { return bindings::ToV8HelperSequence<IDLAny>(script_state, value); } }; @@ -515,35 +533,40 @@ struct ToV8Traits< IDLSequence<T>, std::enable_if_t<std::is_base_of<IDLDictionaryBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<T>>& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const HeapVector<Member<T>>& value) + WARN_UNUSED_RESULT { return bindings::ToV8HelperSequenceWithMemberUpcast<IDLDictionaryBase>( script_state, &value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<const T>>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const HeapVector<Member<const T>>& value) WARN_UNUSED_RESULT { return bindings::ToV8HelperSequenceWithMemberUpcast<IDLDictionaryBase>( script_state, &value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<T>>* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const HeapVector<Member<T>>* value) + WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequenceWithMemberUpcast<IDLDictionaryBase>( script_state, value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<const T>>* value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const HeapVector<Member<const T>>* value) WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequenceWithMemberUpcast<IDLDictionaryBase>( script_state, value); } // TODO(crbug.com/1185046): Remove this overload. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const Vector<v8::Local<v8::Value>>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const Vector<v8::Local<v8::Value>>& value) WARN_UNUSED_RESULT { return bindings::ToV8HelperSequence<IDLAny>(script_state, value); } }; @@ -552,27 +575,31 @@ struct ToV8Traits< IDLSequence<T>, std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<T>>& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const HeapVector<Member<T>>& value) + WARN_UNUSED_RESULT { return bindings::ToV8HelperSequenceWithMemberUpcast<ScriptWrappable>( script_state, &value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<const T>>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const HeapVector<Member<const T>>& value) WARN_UNUSED_RESULT { return bindings::ToV8HelperSequenceWithMemberUpcast<ScriptWrappable>( script_state, &value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<T>>* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const HeapVector<Member<T>>* value) + WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequenceWithMemberUpcast<ScriptWrappable>( script_state, value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<const T>>* value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const HeapVector<Member<const T>>* value) WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequenceWithMemberUpcast<ScriptWrappable>( script_state, value); @@ -583,27 +610,31 @@ struct ToV8Traits< IDLSequence<T>, std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<T>>& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const HeapVector<Member<T>>& value) + WARN_UNUSED_RESULT { return bindings::ToV8HelperSequenceWithMemberUpcast<bindings::UnionBase>( script_state, &value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<const T>>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const HeapVector<Member<const T>>& value) WARN_UNUSED_RESULT { return bindings::ToV8HelperSequenceWithMemberUpcast<bindings::UnionBase>( script_state, &value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<T>>* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const HeapVector<Member<T>>* value) + WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequenceWithMemberUpcast<bindings::UnionBase>( script_state, value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const HeapVector<Member<const T>>* value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const HeapVector<Member<const T>>* value) WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequenceWithMemberUpcast<bindings::UnionBase>( script_state, value); @@ -618,21 +649,23 @@ !std::is_base_of<ScriptWrappable, T>::value && !std::is_base_of<bindings::UnionBase, T>::value>> { template <typename VectorType> - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const VectorType& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const VectorType& value) + WARN_UNUSED_RESULT { return bindings::ToV8HelperSequence<T>(script_state, value); } template <typename VectorType> - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const VectorType* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const VectorType* value) + WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequence<T>(script_state, *value); } template <typename VectorType> - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, VectorType* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + VectorType* value) WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperSequence<T>(script_state, *value); } @@ -642,8 +675,9 @@ template <typename T> struct ToV8Traits<IDLArray<T>> { template <typename VectorType> - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const VectorType& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const VectorType& value) + WARN_UNUSED_RESULT { v8::Local<v8::Value> v8_value; if (!ToV8Traits<IDLSequence<T>>::ToV8(script_state, value) .ToLocal(&v8_value)) { @@ -655,8 +689,9 @@ } template <typename VectorType> - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const VectorType* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const VectorType* value) + WARN_UNUSED_RESULT { DCHECK(value); v8::Local<v8::Value> v8_value; if (!ToV8Traits<IDLSequence<T>>::ToV8(script_state, *value) @@ -669,8 +704,8 @@ } template <typename VectorType> - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, VectorType* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + VectorType* value) WARN_UNUSED_RESULT { DCHECK(value); v8::Local<v8::Value> v8_value; if (!ToV8Traits<IDLSequence<T>>::ToV8(script_state, *value) @@ -683,8 +718,9 @@ } // TODO(crbug.com/1185046): Remove this overload. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const Vector<v8::Local<v8::Value>>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const Vector<v8::Local<v8::Value>>& value) WARN_UNUSED_RESULT { v8::Local<v8::Value> v8_value; if (!ToV8Traits<IDLSequence<IDLAny>>::ToV8(script_state, value) .ToLocal(&v8_value)) { @@ -700,15 +736,15 @@ // K must be based of IDL String types. template <typename K, typename V> struct ToV8Traits<IDLRecord<K, V>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, - const typename IDLRecord<K, V>::ImplType& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const typename IDLRecord<K, V>::ImplType& value) WARN_UNUSED_RESULT { return bindings::ToV8HelperRecord<V>(script_state, value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, - const typename IDLRecord<K, V>::ImplType* value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const typename IDLRecord<K, V>::ImplType* value) WARN_UNUSED_RESULT { DCHECK(value); return bindings::ToV8HelperRecord<V>(script_state, *value); } @@ -723,8 +759,9 @@ // Nullable Boolean template <> struct ToV8Traits<IDLNullable<IDLBoolean>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const absl::optional<bool>& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const absl::optional<bool>& value) + WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLBoolean>::ToV8(script_state, *value); @@ -734,8 +771,9 @@ // Nullable Integers template <typename T, bindings::IDLIntegerConvMode mode> struct ToV8Traits<IDLNullable<IDLIntegerTypeBase<T, mode>>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const absl::optional<T>& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const absl::optional<T>& value) + WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLIntegerTypeBase<T, mode>>::ToV8(script_state, *value); @@ -745,8 +783,9 @@ // Nullable Floating Point Number template <typename T, bindings::IDLFloatingPointNumberConvMode mode> struct ToV8Traits<IDLNullable<IDLFloatingPointNumberTypeBase<T, mode>>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const absl::optional<T>& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const absl::optional<T>& value) + WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLFloatingPointNumberTypeBase<T, mode>>::ToV8( @@ -759,8 +798,9 @@ struct ToV8Traits< IDLNullable<T>, std::enable_if_t<std::is_base_of<IDLStringTypeBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const String& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const String& value) + WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, value); @@ -770,8 +810,9 @@ // Nullable Object template <> struct ToV8Traits<IDLNullable<IDLObject>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const ScriptValue& script_value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const ScriptValue& script_value) + WARN_UNUSED_RESULT { // TODO(crbug.com/1183637): Remove this if-branch. if (script_value.IsEmpty()) return v8::Null(script_state->GetIsolate()); @@ -787,17 +828,18 @@ struct ToV8Traits< IDLNullable<T>, std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, T* script_wrappable) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + T* script_wrappable) + WARN_UNUSED_RESULT { if (!script_wrappable) return v8::Null(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, script_wrappable); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(v8::Isolate* isolate, - ScriptWrappable* script_wrappable, - v8::Local<v8::Object> creation_context) { + static v8::MaybeLocal<v8::Value> ToV8(v8::Isolate* isolate, + ScriptWrappable* script_wrappable, + v8::Local<v8::Object> creation_context) + WARN_UNUSED_RESULT { if (!script_wrappable) return v8::Null(isolate); return ToV8Traits<T>::ToV8(isolate, script_wrappable, creation_context); @@ -809,8 +851,9 @@ struct ToV8Traits< IDLNullable<T>, std::enable_if_t<std::is_base_of<bindings::DictionaryBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T* dictionary) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T* dictionary) + WARN_UNUSED_RESULT { if (!dictionary) return v8::Null(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, dictionary); @@ -822,8 +865,9 @@ struct ToV8Traits< IDLNullable<T>, std::enable_if_t<std::is_base_of<IDLDictionaryBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T* dictionary) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T* dictionary) + WARN_UNUSED_RESULT { if (!dictionary) return v8::Null(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, dictionary); @@ -835,8 +879,8 @@ struct ToV8Traits< IDLNullable<T>, std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, T* callback) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + T* callback) WARN_UNUSED_RESULT { if (!callback) return v8::Null(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, callback); @@ -848,8 +892,8 @@ struct ToV8Traits< IDLNullable<T>, std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, T* callback) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + T* callback) WARN_UNUSED_RESULT { if (!callback) return v8::Null(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, callback); @@ -861,8 +905,9 @@ struct ToV8Traits< IDLNullable<T>, std::enable_if_t<std::is_base_of<bindings::EnumerationBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const absl::optional<T>& enumeration) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const absl::optional<T>& enumeration) + WARN_UNUSED_RESULT { if (!enumeration) return v8::Null(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, *enumeration); @@ -872,24 +917,25 @@ // Nullable NotShared template <typename T> struct ToV8Traits<IDLNullable<NotShared<T>>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, NotShared<T> value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + NotShared<T> value) WARN_UNUSED_RESULT { if (value.IsNull()) return v8::Null(script_state->GetIsolate()); return ToV8Traits<NotShared<T>>::ToV8(script_state, value); } // TODO(crbug.com/1183647): Remove this overload. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, T* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + T* value) WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<NotShared<T>>::ToV8(script_state, value); } // TODO(canonmukai): Remove this overload. - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const ScriptValue& script_value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const ScriptValue& script_value) + WARN_UNUSED_RESULT { if (script_value.IsEmpty()) return v8::Null(script_state->GetIsolate()); return ToV8Traits<NotShared<T>>::ToV8(script_state, script_value); @@ -899,8 +945,9 @@ // Nullable MaybeShared template <typename T> struct ToV8Traits<IDLNullable<MaybeShared<T>>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, MaybeShared<T> value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + MaybeShared<T> value) + WARN_UNUSED_RESULT { if (value.IsNull()) return v8::Null(script_state->GetIsolate()); return ToV8Traits<MaybeShared<T>>::ToV8(script_state, value); @@ -910,17 +957,18 @@ // Nullable Sequence template <typename T> struct ToV8Traits<IDLNullable<IDLSequence<T>>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, - const absl::optional<typename IDLSequence<T>::ImplType>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const absl::optional<typename IDLSequence<T>::ImplType>& value) + WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLSequence<T>>::ToV8(script_state, *value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, - const typename IDLSequence<T>::ImplType* value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const typename IDLSequence<T>::ImplType* value) WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLSequence<T>>::ToV8(script_state, value); @@ -930,16 +978,18 @@ // Nullable Frozen Array template <typename T> struct ToV8Traits<IDLNullable<IDLArray<T>>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, - const absl::optional<typename IDLArray<T>::ImplType>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const absl::optional<typename IDLArray<T>::ImplType>& value) + WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLArray<T>>::ToV8(script_state, *value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const typename IDLArray<T>::ImplType* value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const typename IDLArray<T>::ImplType* value) WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLArray<T>>::ToV8(script_state, value); @@ -949,17 +999,18 @@ // Nullable Record template <typename K, typename V> struct ToV8Traits<IDLNullable<IDLRecord<K, V>>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, - const absl::optional<typename IDLRecord<K, V>::ImplType>& value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const absl::optional<typename IDLRecord<K, V>::ImplType>& value) + WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLRecord<K, V>>::ToV8(script_state, *value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, - const typename IDLRecord<K, V>::ImplType* value) { + static v8::MaybeLocal<v8::Value> ToV8( + ScriptState* script_state, + const typename IDLRecord<K, V>::ImplType* value) WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLRecord<K, V>>::ToV8(script_state, value); @@ -970,8 +1021,9 @@ // IDLDate must be used as IDLNullable<IDLDate>. template <> struct ToV8Traits<IDLNullable<IDLDate>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const absl::optional<base::Time> date) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const absl::optional<base::Time> date) + WARN_UNUSED_RESULT { if (!date) return v8::Null(script_state->GetIsolate()); return v8::Date::New(script_state->GetContext(), @@ -998,8 +1050,8 @@ struct ToV8Traits< T, std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T* value) WARN_UNUSED_RESULT { // TODO(crbug.com/1185018): nullptr shouldn't be passed. This should be // DCHECK(value); if (!value) @@ -1012,8 +1064,8 @@ struct ToV8Traits< IDLNullable<T>, std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T* value) WARN_UNUSED_RESULT { if (!value) return v8::Null(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, value); @@ -1023,8 +1075,8 @@ // IDLUnionINT template <typename T> struct ToV8Traits<IDLUnionINT<T>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T& value) WARN_UNUSED_RESULT { return bindings::ToV8HelperUnion(script_state, value); } }; @@ -1032,8 +1084,8 @@ // IDLUnionNotINT template <typename T> struct ToV8Traits<IDLUnionNotINT<T>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T& value) WARN_UNUSED_RESULT { return bindings::ToV8HelperUnion(script_state, value); } }; @@ -1045,8 +1097,8 @@ // Nullable IDLUnionNotINT template <typename T> struct ToV8Traits<IDLNullable<IDLUnionNotINT<T>>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T& value) WARN_UNUSED_RESULT { if (value.IsNull()) return v8::Null(script_state->GetIsolate()); return ToV8Traits<IDLUnionNotINT<T>>::ToV8(script_state, value); @@ -1056,15 +1108,16 @@ // Optional template <typename T> struct ToV8Traits<IDLOptional<T>> { - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const T* value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const T* value) WARN_UNUSED_RESULT { if (!value) return v8::Undefined(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, value); } - static v8::MaybeLocal<v8::Value> WARN_UNUSED_RESULT - ToV8(ScriptState* script_state, const ScriptValue& value) { + static v8::MaybeLocal<v8::Value> ToV8(ScriptState* script_state, + const ScriptValue& value) + WARN_UNUSED_RESULT { if (value.IsEmpty()) return v8::Undefined(script_state->GetIsolate()); return ToV8Traits<T>::ToV8(script_state, value);
diff --git a/third_party/blink/renderer/core/css/selector_checker.cc b/third_party/blink/renderer/core/css/selector_checker.cc index ee4d432..0c4a2d7f 100644 --- a/third_party/blink/renderer/core/css/selector_checker.cc +++ b/third_party/blink/renderer/core/css/selector_checker.cc
@@ -1249,9 +1249,13 @@ return true; } case CSSSelector::kPseudoHighlight: { - const AtomicString& highlight_name = selector.Argument(); result.dynamic_pseudo = PseudoId::kPseudoIdHighlight; - return highlight_name == pseudo_argument_; + // A null pseudo_argument_ means we are matching rules on the originating + // element. We keep track of which pseudo elements may match for the + // element through result.dynamic_pseudo. For ::highlight() pseudo + // elements we have a single flag for tracking whether an element may + // match _any_ ::highlight() element (kPseudoIdHighlight). + return !pseudo_argument_ || pseudo_argument_ == selector.Argument(); } case CSSSelector::kPseudoTargetText: if (!is_ua_rule_) {
diff --git a/third_party/blink/renderer/core/css/style_request.h b/third_party/blink/renderer/core/css/style_request.h index 169aa93..62f9f0d 100644 --- a/third_party/blink/renderer/core/css/style_request.h +++ b/third_party/blink/renderer/core/css/style_request.h
@@ -26,6 +26,7 @@ #include "third_party/blink/renderer/core/layout/custom_scrollbar.h" #include "third_party/blink/renderer/core/scroll/scroll_types.h" #include "third_party/blink/renderer/core/style/computed_style_constants.h" +#include "third_party/blink/renderer/platform/wtf/text/atomic_string.h" namespace blink { @@ -57,10 +58,13 @@ : parent_override(parent_override), layout_parent_override(parent_override) {} - StyleRequest(PseudoId pseudo_id, const ComputedStyle* parent_override) + StyleRequest(PseudoId pseudo_id, + const ComputedStyle* parent_override, + const AtomicString& pseudo_argument = g_null_atom) : parent_override(parent_override), layout_parent_override(parent_override), - pseudo_id(pseudo_id) {} + pseudo_id(pseudo_id), + pseudo_argument(pseudo_argument) {} StyleRequest(PseudoId pseudo_id, CustomScrollbar* scrollbar, @@ -76,8 +80,7 @@ : pseudo_id(pseudo_id), type(request_type), scrollbar_part(kNoPart), - scrollbar(nullptr), - pseudo_argument(g_null_atom) {} + scrollbar(nullptr) {} }; } // namespace blink
diff --git a/third_party/blink/renderer/core/dom/abstract_range.cc b/third_party/blink/renderer/core/dom/abstract_range.cc index e7111b87..3cda6b1 100644 --- a/third_party/blink/renderer/core/dom/abstract_range.cc +++ b/third_party/blink/renderer/core/dom/abstract_range.cc
@@ -4,9 +4,39 @@ #include "third_party/blink/renderer/core/dom/abstract_range.h" +#include "third_party/blink/renderer/core/dom/character_data.h" +#include "third_party/blink/renderer/core/dom/container_node.h" +#include "third_party/blink/renderer/core/dom/node.h" + namespace blink { AbstractRange::AbstractRange() = default; AbstractRange::~AbstractRange() = default; +bool AbstractRange::HasDifferentRootContainer(Node* start_root_container, + Node* end_root_container) { + return start_root_container->TreeRoot() != end_root_container->TreeRoot(); +} + +unsigned AbstractRange::LengthOfContents(const Node* node) { + // This switch statement must be consistent with that of + // Range::processContentsBetweenOffsets. + switch (node->getNodeType()) { + case Node::kTextNode: + case Node::kCdataSectionNode: + case Node::kCommentNode: + case Node::kProcessingInstructionNode: + return To<CharacterData>(node)->length(); + case Node::kElementNode: + case Node::kDocumentNode: + case Node::kDocumentFragmentNode: + return To<ContainerNode>(node)->CountChildren(); + case Node::kAttributeNode: + case Node::kDocumentTypeNode: + return 0; + } + NOTREACHED(); + return 0; +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/dom/abstract_range.h b/third_party/blink/renderer/core/dom/abstract_range.h index bac6bb9..023b6c00 100644 --- a/third_party/blink/renderer/core/dom/abstract_range.h +++ b/third_party/blink/renderer/core/dom/abstract_range.h
@@ -22,6 +22,11 @@ virtual unsigned endOffset() const = 0; virtual bool collapsed() const = 0; + static bool HasDifferentRootContainer(Node* start_root_container, + Node* end_root_container); + static unsigned LengthOfContents(const Node*); + virtual bool IsStaticRange() const = 0; + protected: AbstractRange(); ~AbstractRange() override;
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc index 7bbea9e..dc82cfb 100644 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc
@@ -5311,7 +5311,9 @@ return false; } -const ComputedStyle* Element::CachedStyleForPseudoElement(PseudoId pseudo_id) { +const ComputedStyle* Element::CachedStyleForPseudoElement( + PseudoId pseudo_id, + const AtomicString& pseudo_argument) { const ComputedStyle* style = GetComputedStyle(); if (!style || (pseudo_id < kFirstInternalPseudoId && @@ -5320,11 +5322,11 @@ } if (const ComputedStyle* cached = - style->GetCachedPseudoElementStyle(pseudo_id)) + style->GetCachedPseudoElementStyle(pseudo_id, pseudo_argument)) return cached; - scoped_refptr<ComputedStyle> result = - UncachedStyleForPseudoElement(StyleRequest(pseudo_id, style)); + scoped_refptr<ComputedStyle> result = UncachedStyleForPseudoElement( + StyleRequest(pseudo_id, style, pseudo_argument)); if (result) return style->AddCachedPseudoElementStyle(std::move(result)); return nullptr;
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h index 45b061c1..a5ea3d9 100644 --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h
@@ -735,8 +735,12 @@ // Retrieve the ComputedStyle (if any) corresponding to the provided // PseudoId from cache, calculating the ComputedStyle on-demand if it's - // missing from the cache. - const ComputedStyle* CachedStyleForPseudoElement(PseudoId); + // missing from the cache. The |pseudo_argument| is also used to match the + // ComputedStyle in cases where the PseudoId corresponds to a pseudo element + // that takes arguments (e.g. ::highlight()). + const ComputedStyle* CachedStyleForPseudoElement( + PseudoId, + const AtomicString& pseudo_argument = g_null_atom); // Calculate the ComputedStyle corresponding to the provided StyleRequest, // bypassing the pseudo style cache.
diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc index 031a9b6e..dbe1459f 100644 --- a/third_party/blink/renderer/core/dom/range.cc +++ b/third_party/blink/renderer/core/dom/range.cc
@@ -44,10 +44,12 @@ #include "third_party/blink/renderer/core/editing/set_selection_options.h" #include "third_party/blink/renderer/core/editing/visible_position.h" #include "third_party/blink/renderer/core/editing/visible_units.h" +#include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/settings.h" #include "third_party/blink/renderer/core/geometry/dom_rect.h" #include "third_party/blink/renderer/core/geometry/dom_rect_list.h" +#include "third_party/blink/renderer/core/highlight/highlight_registry.h" #include "third_party/blink/renderer/core/html/html_body_element.h" #include "third_party/blink/renderer/core/html/html_element.h" #include "third_party/blink/renderer/core/layout/layout_object.h" @@ -93,6 +95,8 @@ range_->RemoveFromSelectionIfInDifferentRoot(*old_document_); range_->UpdateSelectionIfAddedToSelection(); } + + range_->ScheduleVisualUpdateIfInRegisteredHighlight(); #if DCHECK_IS_ON() current_range_ = nullptr; #endif @@ -184,20 +188,6 @@ return container_a->CommonAncestor(*container_b, NodeTraversal::Parent); } -static inline bool CheckForDifferentRootContainer( - const RangeBoundaryPoint& start, - const RangeBoundaryPoint& end) { - Node* end_root_container = &end.Container(); - while (end_root_container->parentNode()) - end_root_container = end_root_container->parentNode(); - Node* start_root_container = &start.Container(); - while (start_root_container->parentNode()) - start_root_container = start_root_container->parentNode(); - - return start_root_container != end_root_container || - (Range::compareBoundaryPoints(start, end, ASSERT_NO_EXCEPTION) > 0); -} - void Range::setStart(Node* ref_node, unsigned offset, ExceptionState& exception_state) { @@ -221,7 +211,9 @@ start_.Set(*ref_node, offset, child_node); - if (did_move_document || CheckForDifferentRootContainer(start_, end_)) + if (did_move_document || + HasDifferentRootContainer(&start_.Container(), &end_.Container()) || + compareBoundaryPoints(start_, end_, ASSERT_NO_EXCEPTION) > 0) collapse(true); } @@ -248,7 +240,9 @@ end_.Set(*ref_node, offset, child_node); - if (did_move_document || CheckForDifferentRootContainer(start_, end_)) + if (did_move_document || + HasDifferentRootContainer(&start_.Container(), &end_.Container()) || + compareBoundaryPoints(start_, end_, ASSERT_NO_EXCEPTION) > 0) collapse(false); } @@ -490,27 +484,6 @@ return container; } -static unsigned LengthOfContents(const Node* node) { - // This switch statement must be consistent with that of - // Range::processContentsBetweenOffsets. - switch (node->getNodeType()) { - case Node::kTextNode: - case Node::kCdataSectionNode: - case Node::kCommentNode: - case Node::kProcessingInstructionNode: - return To<CharacterData>(node)->length(); - case Node::kElementNode: - case Node::kDocumentNode: - case Node::kDocumentFragmentNode: - return To<ContainerNode>(node)->CountChildren(); - case Node::kAttributeNode: - case Node::kDocumentTypeNode: - return 0; - } - NOTREACHED(); - return 0; -} - DocumentFragment* Range::ProcessContents(ActionType action, ExceptionState& exception_state) { DocumentFragment* fragment = nullptr; @@ -568,7 +541,8 @@ common_root->contains(&original_start.Container())) { left_contents = ProcessContentsBetweenOffsets( action, nullptr, &original_start.Container(), original_start.Offset(), - LengthOfContents(&original_start.Container()), exception_state); + AbstractRange::LengthOfContents(&original_start.Container()), + exception_state); left_contents = ProcessAncestorsAndTheirSiblings( action, &original_start.Container(), kProcessContentsForward, left_contents, common_root, exception_state); @@ -914,12 +888,15 @@ // 10. Let newOffset be parent's length if referenceNode is null, and // referenceNode's index otherwise. - unsigned new_offset = - reference_node ? reference_node->NodeIndex() : LengthOfContents(&parent); + unsigned new_offset = reference_node + ? reference_node->NodeIndex() + : AbstractRange::LengthOfContents(&parent); // 11. Increase newOffset by node's length if node is a DocumentFragment node, // and one otherwise. - new_offset += new_node->IsDocumentFragment() ? LengthOfContents(new_node) : 1; + new_offset += new_node->IsDocumentFragment() + ? AbstractRange::LengthOfContents(new_node) + : 1; // 12. Pre-insert node into parent before referenceNode. parent.insertBefore(new_node, reference_node, exception_state); @@ -1768,6 +1745,21 @@ selection.CacheRangeOfDocument(this); } +void Range::ScheduleVisualUpdateIfInRegisteredHighlight() { + if (LocalDOMWindow* window = OwnerDocument().domWindow()) { + if (HighlightRegistry* highlight_registry = + window->Supplementable<LocalDOMWindow>::RequireSupplement< + HighlightRegistry>()) { + for (const auto& highlight : highlight_registry->GetHighlights()) { + if (highlight->Contains(this)) { + highlight_registry->ScheduleRepaint(); + return; + } + } + } + } +} + void Range::RemoveFromSelectionIfInDifferentRoot(Document& old_document) { if (!old_document.GetFrame()) return;
diff --git a/third_party/blink/renderer/core/dom/range.h b/third_party/blink/renderer/core/dom/range.h index 4f8c6e8..2ccf609 100644 --- a/third_party/blink/renderer/core/dom/range.h +++ b/third_party/blink/renderer/core/dom/range.h
@@ -172,6 +172,7 @@ static Node* CheckNodeWOffset(Node*, unsigned offset, ExceptionState&); + bool IsStaticRange() const override { return false; } void Trace(Visitor*) const override; private: @@ -205,6 +206,7 @@ Node* common_root, ExceptionState&); void UpdateSelectionIfAddedToSelection(); + void ScheduleVisualUpdateIfInRegisteredHighlight(); void RemoveFromSelectionIfInDifferentRoot(Document& old_document); Member<Document> owner_document_; // Cannot be null.
diff --git a/third_party/blink/renderer/core/dom/static_range.cc b/third_party/blink/renderer/core/dom/static_range.cc index bce0400..9f72312 100644 --- a/third_party/blink/renderer/core/dom/static_range.cc +++ b/third_party/blink/renderer/core/dom/static_range.cc
@@ -6,8 +6,10 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_static_range_init.h" #include "third_party/blink/renderer/core/dom/range.h" +#include "third_party/blink/renderer/core/editing/editing_utilities.h" #include "third_party/blink/renderer/core/editing/ephemeral_range.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" +#include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" @@ -16,9 +18,7 @@ StaticRange::StaticRange(Document& document) : owner_document_(document), start_container_(document), - start_offset_(0u), - end_container_(document), - end_offset_(0u) {} + end_container_(document) {} StaticRange::StaticRange(Document& document, Node* start_container, @@ -62,6 +62,52 @@ static_range_init->endOffset()); } +namespace { + +// Returns the lowest ancestor of |node| in the tree that has a containment set. +Node* GetLowestContainAncestor(const Node* node) { + for (Node& ancestor : NodeTraversal::InclusiveAncestorsOf(*node)) { + if (LayoutObject* node_layout_object = ancestor.GetLayoutObject()) { + if (node_layout_object->ShouldApplyAnyContainment()) { + return &ancestor; + } + } + } + return nullptr; +} + +} // namespace + +// Returns true if the range crosses any css-contain subtree boundary. +bool StaticRange::CrossesContainBoundary() const { + return GetLowestContainAncestor(start_container_) != + GetLowestContainAncestor(end_container_); +} + +bool StaticRange::IsValid() const { + if (dom_tree_version_ == owner_document_->DomTreeVersion()) + return is_valid_; + dom_tree_version_ = owner_document_->DomTreeVersion(); + + // The full list of checks is: + // 1) The start offset is between 0 and the start container’s node length + // (inclusive). + // 2) The end offset is between 0 and the end container’s node length + // (inclusive). + // 3) The start and end containers of the static range are in the same DOM + // tree. + // 4) The position of the start boundary point is before or equal to the + // position of the end boundary point. + is_valid_ = + start_offset_ <= AbstractRange::LengthOfContents(start_container_) && + end_offset_ <= AbstractRange::LengthOfContents(end_container_) && + !HasDifferentRootContainer(start_container_, end_container_) && + ComparePositionsInDOMTree(start_container_, start_offset_, end_container_, + end_offset_) <= 0; + + return is_valid_; +} + void StaticRange::setStart(Node* container, unsigned offset) { start_container_ = container; start_offset_ = offset;
diff --git a/third_party/blink/renderer/core/dom/static_range.h b/third_party/blink/renderer/core/dom/static_range.h index a1e45bf..387899e4 100644 --- a/third_party/blink/renderer/core/dom/static_range.h +++ b/third_party/blink/renderer/core/dom/static_range.h
@@ -62,18 +62,31 @@ Range* toRange(ExceptionState& = ASSERT_NO_EXCEPTION) const; + bool IsValid() const; + bool CrossesContainBoundary() const; + bool IsStaticRange() const override { return true; } + void Trace(Visitor*) const override; private: Member<Document> owner_document_; // Required by |toRange()|. Member<Node> start_container_; - unsigned start_offset_; + unsigned start_offset_ = 0; Member<Node> end_container_; - unsigned end_offset_; + unsigned end_offset_ = 0; + mutable bool is_valid_ = false; + mutable uint64_t dom_tree_version_ = 0; }; using StaticRangeVector = HeapVector<Member<StaticRange>>; +template <> +struct DowncastTraits<StaticRange> { + static bool AllowFrom(const AbstractRange& abstract_range) { + return abstract_range.IsStaticRange(); + } +}; + } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_DOM_STATIC_RANGE_H_
diff --git a/third_party/blink/renderer/core/editing/build.gni b/third_party/blink/renderer/core/editing/build.gni index 0ada2a05..b116483 100644 --- a/third_party/blink/renderer/core/editing/build.gni +++ b/third_party/blink/renderer/core/editing/build.gni
@@ -207,6 +207,10 @@ "markers/grammar_marker.h", "markers/grammar_marker_list_impl.cc", "markers/grammar_marker_list_impl.h", + "markers/highlight_marker.cc", + "markers/highlight_marker.h", + "markers/highlight_marker_list_impl.cc", + "markers/highlight_marker_list_impl.h", "markers/sorted_document_marker_list_editor.cc", "markers/sorted_document_marker_list_editor.h", "markers/spell_check_marker.cc",
diff --git a/third_party/blink/renderer/core/editing/ephemeral_range.cc b/third_party/blink/renderer/core/editing/ephemeral_range.cc index d95b3918..9b4086f6 100644 --- a/third_party/blink/renderer/core/editing/ephemeral_range.cc +++ b/third_party/blink/renderer/core/editing/ephemeral_range.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/core/editing/ephemeral_range.h" #include <ostream> // NOLINT +#include "third_party/blink/renderer/core/dom/abstract_range.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/element.h" #include "third_party/blink/renderer/core/dom/range.h" @@ -58,6 +59,14 @@ : EphemeralRangeTemplate(position, position) {} template <typename Strategy> +EphemeralRangeTemplate<Strategy>::EphemeralRangeTemplate( + const AbstractRange* range) + : EphemeralRangeTemplate(PositionTemplate<Strategy>(range->startContainer(), + range->startOffset()), + PositionTemplate<Strategy>(range->endContainer(), + range->endOffset())) {} + +template <typename Strategy> EphemeralRangeTemplate<Strategy>::EphemeralRangeTemplate(const Range* range) { if (!range) return;
diff --git a/third_party/blink/renderer/core/editing/ephemeral_range.h b/third_party/blink/renderer/core/editing/ephemeral_range.h index 1fcfbde..ab7ea7d81 100644 --- a/third_party/blink/renderer/core/editing/ephemeral_range.h +++ b/third_party/blink/renderer/core/editing/ephemeral_range.h
@@ -11,6 +11,7 @@ namespace blink { class Document; +class AbstractRange; class Range; // We should restrict access to the unwanted version of |TraversalRange::end()| @@ -91,6 +92,7 @@ // |position| should be |Position::isNull()| or in-document. explicit EphemeralRangeTemplate( const PositionTemplate<Strategy>& /* position */); + explicit EphemeralRangeTemplate(const AbstractRange*); // When |range| is nullptr, |EphemeralRangeTemplate| is |isNull()|. explicit EphemeralRangeTemplate(const Range* /* range */); EphemeralRangeTemplate();
diff --git a/third_party/blink/renderer/core/editing/markers/document_marker.h b/third_party/blink/renderer/core/editing/markers/document_marker.h index 32ba807..a0523366 100644 --- a/third_party/blink/renderer/core/editing/markers/document_marker.h +++ b/third_party/blink/renderer/core/editing/markers/document_marker.h
@@ -45,6 +45,7 @@ kActiveSuggestionMarkerIndex, kSuggestionMarkerIndex, kTextFragmentMarkerIndex, + kHighlightMarkerIndex, kMarkerTypeIndexesCount }; @@ -56,6 +57,7 @@ kActiveSuggestion = 1 << kActiveSuggestionMarkerIndex, kSuggestion = 1 << kSuggestionMarkerIndex, kTextFragment = 1 << kTextFragmentMarkerIndex, + kHighlight = 1 << kHighlightMarkerIndex }; class MarkerTypesIterator @@ -124,6 +126,7 @@ static MarkerTypes TextMatch() { return MarkerTypes(kTextMatch); } static MarkerTypes Suggestion() { return MarkerTypes(kSuggestion); } static MarkerTypes TextFragment() { return MarkerTypes(kTextFragment); } + static MarkerTypes Highlight() { return MarkerTypes(kHighlight); } bool Contains(MarkerType type) const { return mask_ & type; } bool Intersects(const MarkerTypes& types) const {
diff --git a/third_party/blink/renderer/core/editing/markers/document_marker_controller.cc b/third_party/blink/renderer/core/editing/markers/document_marker_controller.cc index e567784..4972a4d5 100644 --- a/third_party/blink/renderer/core/editing/markers/document_marker_controller.cc +++ b/third_party/blink/renderer/core/editing/markers/document_marker_controller.cc
@@ -41,6 +41,8 @@ #include "third_party/blink/renderer/core/editing/markers/composition_marker_list_impl.h" #include "third_party/blink/renderer/core/editing/markers/grammar_marker.h" #include "third_party/blink/renderer/core/editing/markers/grammar_marker_list_impl.h" +#include "third_party/blink/renderer/core/editing/markers/highlight_marker.h" +#include "third_party/blink/renderer/core/editing/markers/highlight_marker_list_impl.h" #include "third_party/blink/renderer/core/editing/markers/sorted_document_marker_list_editor.h" #include "third_party/blink/renderer/core/editing/markers/spelling_marker.h" #include "third_party/blink/renderer/core/editing/markers/spelling_marker_list_impl.h" @@ -54,6 +56,7 @@ #include "third_party/blink/renderer/core/editing/visible_position.h" #include "third_party/blink/renderer/core/editing/visible_units.h" #include "third_party/blink/renderer/core/frame/local_frame_view.h" +#include "third_party/blink/renderer/core/highlight/highlight.h" #include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/core/layout/layout_view.h" @@ -78,6 +81,8 @@ return DocumentMarker::kSuggestionMarkerIndex; case DocumentMarker::kTextFragment: return DocumentMarker::kTextFragmentMarkerIndex; + case DocumentMarker::kHighlight: + return DocumentMarker::kHighlightMarkerIndex; } NOTREACHED(); @@ -100,6 +105,8 @@ return MakeGarbageCollected<TextMatchMarkerListImpl>(); case DocumentMarker::kTextFragment: return MakeGarbageCollected<TextFragmentMarkerListImpl>(); + case DocumentMarker::kHighlight: + return MakeGarbageCollected<HighlightMarkerListImpl>(); } NOTREACHED(); @@ -252,6 +259,16 @@ }); } +void DocumentMarkerController::AddHighlightMarker( + const EphemeralRange& range, + const Member<Highlight> highlight) { + DCHECK(!document_->NeedsLayoutTreeUpdate()); + AddMarkerInternal(range, [highlight](int start_offset, int end_offset) { + return MakeGarbageCollected<HighlightMarker>(start_offset, end_offset, + highlight); + }); +} + void DocumentMarkerController::PrepareForDestruction() { Clear(); } @@ -705,6 +722,64 @@ DocumentMarkerVector DocumentMarkerController::ComputeMarkersToPaint( const Text& text) const { + DocumentMarkerVector markers_to_paint; + + // Fix overlapping HighlightMarkers that share the same highlight name so + // their intersections are not painted twice. + // Note: DocumentMarkerController::MarkersFor() returns markers sorted by + // start offset. + DocumentMarkerVector highlight_markers = + MarkersFor(text, DocumentMarker::MarkerTypes(DocumentMarker::kHighlight)); + HeapVector<Member<HighlightMarker>> highlight_markers_not_overlapping; + using NameToHighlightMarkerMap = + HashMap<String, Member<HighlightMarker>, StringHash>; + NameToHighlightMarkerMap name_to_last_highlight_marker_seen; + + for (const auto& current_marker : highlight_markers) { + HighlightMarker* current_highlight_marker = + To<HighlightMarker>(current_marker.Get()); + + NameToHighlightMarkerMap::AddResult insert_result = + name_to_last_highlight_marker_seen.insert( + current_highlight_marker->GetHighlight()->Name(), + current_highlight_marker); + + if (!insert_result.is_new_entry) { + HighlightMarker* stored_highlight_marker = + insert_result.stored_value->value; + if (current_highlight_marker->StartOffset() >= + stored_highlight_marker->EndOffset()) { + // Markers don't intersect, so the stored one is fine to be painted. + highlight_markers_not_overlapping.push_back(stored_highlight_marker); + insert_result.stored_value->value = current_highlight_marker; + } else { + // Markers overlap, so expand the stored marker to cover both and + // discard the current one. + stored_highlight_marker->SetEndOffset( + std::max(stored_highlight_marker->EndOffset(), + current_highlight_marker->EndOffset())); + } + } + } + + for (const auto& name_to_highlight_marker_iterator : + name_to_last_highlight_marker_seen) { + highlight_markers_not_overlapping.push_back( + name_to_highlight_marker_iterator.value.Get()); + } + + std::sort(highlight_markers_not_overlapping.begin(), + highlight_markers_not_overlapping.end(), + [](const Member<HighlightMarker>& marker1, + const Member<HighlightMarker>& marker2) { + return marker1->GetHighlight()->CompareOverlayStackingPosition( + marker2->GetHighlight()) == + Highlight::OverlayStackingPosition:: + kOverlayStackingPositionBelow; + }); + + markers_to_paint.AppendVector(highlight_markers_not_overlapping); + // We don't render composition or spelling markers that overlap suggestion // markers. // Note: DocumentMarkerController::MarkersFor() returns markers sorted by @@ -714,9 +789,10 @@ if (suggestion_markers.IsEmpty()) { // If there are no suggestion markers, we can return early as a minor // performance optimization. - return MarkersFor( - text, DocumentMarker::MarkerTypes::AllBut( - DocumentMarker::MarkerTypes(DocumentMarker::kSuggestion))); + markers_to_paint.AppendVector(MarkersFor( + text, DocumentMarker::MarkerTypes::AllBut(DocumentMarker::MarkerTypes( + DocumentMarker::kSuggestion | DocumentMarker::kHighlight)))); + return markers_to_paint; } const DocumentMarkerVector& markers_overridden_by_suggestion_markers = @@ -738,7 +814,6 @@ unsigned suggestion_ends_index = 0; unsigned number_suggestions_currently_inside = 0; - DocumentMarkerVector markers_to_paint; for (DocumentMarker* marker : markers_overridden_by_suggestion_markers) { while (suggestion_starts_index < suggestion_starts.size() && suggestion_starts[suggestion_starts_index] <= @@ -773,7 +848,7 @@ markers_to_paint.AppendVector(MarkersFor( text, DocumentMarker::MarkerTypes::AllBut(DocumentMarker::MarkerTypes( DocumentMarker::kComposition | DocumentMarker::kSpelling | - DocumentMarker::kSuggestion)))); + DocumentMarker::kSuggestion | DocumentMarker::kHighlight)))); return markers_to_paint; }
diff --git a/third_party/blink/renderer/core/editing/markers/document_marker_controller.h b/third_party/blink/renderer/core/editing/markers/document_marker_controller.h index 31bcca7..9701504 100644 --- a/third_party/blink/renderer/core/editing/markers/document_marker_controller.h +++ b/third_party/blink/renderer/core/editing/markers/document_marker_controller.h
@@ -48,6 +48,7 @@ namespace blink { class DocumentMarkerList; +class Highlight; class SuggestionMarkerProperties; class CORE_EXPORT DocumentMarkerController final @@ -79,6 +80,7 @@ void AddSuggestionMarker(const EphemeralRange&, const SuggestionMarkerProperties&); void AddTextFragmentMarker(const EphemeralRange&); + void AddHighlightMarker(const EphemeralRange&, const Member<Highlight>); void MoveMarkers(const Text& src_node, int length, const Text& dst_node);
diff --git a/third_party/blink/renderer/core/editing/markers/highlight_marker.cc b/third_party/blink/renderer/core/editing/markers/highlight_marker.cc new file mode 100644 index 0000000..43987a1 --- /dev/null +++ b/third_party/blink/renderer/core/editing/markers/highlight_marker.cc
@@ -0,0 +1,25 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/core/editing/markers/highlight_marker.h" + +#include "third_party/blink/renderer/core/highlight/highlight.h" + +namespace blink { + +HighlightMarker::HighlightMarker(unsigned start_offset, + unsigned end_offset, + const Member<Highlight> highlight) + : DocumentMarker(start_offset, end_offset), highlight_(highlight) {} + +DocumentMarker::MarkerType HighlightMarker::GetType() const { + return DocumentMarker::kHighlight; +} + +void HighlightMarker::Trace(blink::Visitor* visitor) const { + visitor->Trace(highlight_); + DocumentMarker::Trace(visitor); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/editing/markers/highlight_marker.h b/third_party/blink/renderer/core/editing/markers/highlight_marker.h new file mode 100644 index 0000000..9e7d06b --- /dev/null +++ b/third_party/blink/renderer/core/editing/markers/highlight_marker.h
@@ -0,0 +1,41 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_HIGHLIGHT_MARKER_H_ +#define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_HIGHLIGHT_MARKER_H_ + +#include "third_party/blink/renderer/core/editing/markers/document_marker.h" +#include "third_party/blink/renderer/platform/wtf/casting.h" + +namespace blink { + +class Highlight; + +class CORE_EXPORT HighlightMarker final : public DocumentMarker { + public: + HighlightMarker(unsigned start_offset, + unsigned end_offset, + const Member<Highlight> highlight); + HighlightMarker(const HighlightMarker&) = delete; + HighlightMarker& operator=(const HighlightMarker&) = delete; + + MarkerType GetType() const final; + const Highlight* GetHighlight() const { return highlight_; } + + void Trace(blink::Visitor*) const override; + + private: + const Member<Highlight> highlight_; +}; + +template <> +struct DowncastTraits<HighlightMarker> { + static bool AllowFrom(const DocumentMarker& document_marker) { + return document_marker.GetType() == DocumentMarker::kHighlight; + } +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_HIGHLIGHT_MARKER_H_
diff --git a/third_party/blink/renderer/core/editing/markers/highlight_marker_list_impl.cc b/third_party/blink/renderer/core/editing/markers/highlight_marker_list_impl.cc new file mode 100644 index 0000000..522b3b5 --- /dev/null +++ b/third_party/blink/renderer/core/editing/markers/highlight_marker_list_impl.cc
@@ -0,0 +1,71 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/core/editing/markers/highlight_marker_list_impl.h" + +#include "third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.h" + +namespace blink { + +DocumentMarker::MarkerType HighlightMarkerListImpl::MarkerType() const { + return DocumentMarker::kHighlight; +} + +bool HighlightMarkerListImpl::IsEmpty() const { + return markers_.IsEmpty(); +} + +void HighlightMarkerListImpl::Add(DocumentMarker* marker) { + DCHECK_EQ(DocumentMarker::kHighlight, marker->GetType()); + markers_.push_back(marker); +} + +void HighlightMarkerListImpl::Clear() { + markers_.clear(); +} + +const HeapVector<Member<DocumentMarker>>& HighlightMarkerListImpl::GetMarkers() + const { + return markers_; +} + +DocumentMarker* HighlightMarkerListImpl::FirstMarkerIntersectingRange( + unsigned start_offset, + unsigned end_offset) const { + return UnsortedDocumentMarkerListEditor::FirstMarkerIntersectingRange( + markers_, start_offset, end_offset); +} + +HeapVector<Member<DocumentMarker>> +HighlightMarkerListImpl::MarkersIntersectingRange(unsigned start_offset, + unsigned end_offset) const { + return UnsortedDocumentMarkerListEditor::MarkersIntersectingRange( + markers_, start_offset, end_offset); +} + +bool HighlightMarkerListImpl::MoveMarkers(int length, + DocumentMarkerList* dst_markers_) { + return UnsortedDocumentMarkerListEditor::MoveMarkers(&markers_, length, + dst_markers_); +} + +bool HighlightMarkerListImpl::RemoveMarkers(unsigned start_offset, int length) { + return UnsortedDocumentMarkerListEditor::RemoveMarkers(&markers_, + start_offset, length); +} + +bool HighlightMarkerListImpl::ShiftMarkers(const String&, + unsigned offset, + unsigned old_length, + unsigned new_length) { + return UnsortedDocumentMarkerListEditor::ShiftMarkersContentIndependent( + &markers_, offset, old_length, new_length); +} + +void HighlightMarkerListImpl::Trace(blink::Visitor* visitor) const { + visitor->Trace(markers_); + DocumentMarkerList::Trace(visitor); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/editing/markers/highlight_marker_list_impl.h b/third_party/blink/renderer/core/editing/markers/highlight_marker_list_impl.h new file mode 100644 index 0000000..9c9c40d --- /dev/null +++ b/third_party/blink/renderer/core/editing/markers/highlight_marker_list_impl.h
@@ -0,0 +1,48 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_HIGHLIGHT_MARKER_LIST_IMPL_H_ +#define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_HIGHLIGHT_MARKER_LIST_IMPL_H_ + +#include "third_party/blink/renderer/core/editing/markers/document_marker_list.h" + +namespace blink { + +// Implementation of HighlightMarkerList for Highlight markers. +class CORE_EXPORT HighlightMarkerListImpl final : public DocumentMarkerList { + public: + HighlightMarkerListImpl() = default; + HighlightMarkerListImpl(const HighlightMarkerListImpl&) = delete; + HighlightMarkerListImpl& operator=(const HighlightMarkerListImpl&) = delete; + + DocumentMarker::MarkerType MarkerType() const final; + + bool IsEmpty() const final; + + void Add(DocumentMarker*) final; + void Clear() final; + + const HeapVector<Member<DocumentMarker>>& GetMarkers() const final; + DocumentMarker* FirstMarkerIntersectingRange(unsigned start_offset, + unsigned end_offset) const final; + HeapVector<Member<DocumentMarker>> MarkersIntersectingRange( + unsigned start_offset, + unsigned end_offset) const final; + + bool MoveMarkers(int length, DocumentMarkerList* dst_list) final; + bool RemoveMarkers(unsigned start_offset, int length) final; + bool ShiftMarkers(const String& node_text, + unsigned offset, + unsigned old_length, + unsigned new_length) final; + + void Trace(blink::Visitor*) const override; + + private: + HeapVector<Member<DocumentMarker>> markers_; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_HIGHLIGHT_MARKER_LIST_IMPL_H_
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc index 3f20077..2c6323f 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -77,6 +77,7 @@ #include "third_party/blink/renderer/core/frame/visual_viewport.h" #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h" #include "third_party/blink/renderer/core/fullscreen/fullscreen.h" +#include "third_party/blink/renderer/core/highlight/highlight_registry.h" #include "third_party/blink/renderer/core/html/forms/text_control_element.h" #include "third_party/blink/renderer/core/html/html_frame_element.h" #include "third_party/blink/renderer/core/html/html_plugin_element.h" @@ -2719,6 +2720,14 @@ if (AnyFrameIsPrintingOrPaintingPreview()) return; + if (LocalDOMWindow* window = GetFrame().DomWindow()) { + if (HighlightRegistry* highlight_registry = + window->Supplementable<LocalDOMWindow>::RequireSupplement< + HighlightRegistry>()) { + highlight_registry->ValidateHighlightMarkers(); + } + } + bool repainted = PaintTree(benchmark_mode); if (paint_artifact_compositor_ &&
diff --git a/third_party/blink/renderer/core/highlight/highlight.cc b/third_party/blink/renderer/core/highlight/highlight.cc index 07d2fdc..299c8e0b 100644 --- a/third_party/blink/renderer/core/highlight/highlight.cc +++ b/third_party/blink/renderer/core/highlight/highlight.cc
@@ -27,18 +27,22 @@ void Highlight::Trace(blink::Visitor* visitor) const { visitor->Trace(highlight_ranges_); + visitor->Trace(highlight_registry_); ScriptWrappable::Trace(visitor); } Highlight* Highlight::addForBinding(ScriptState*, AbstractRange* range, ExceptionState&) { - highlight_ranges_.insert(range); + if (highlight_ranges_.insert(range).is_new_entry && highlight_registry_) + highlight_registry_->ScheduleRepaint(); return this; } void Highlight::clearForBinding(ScriptState*, ExceptionState&) { highlight_ranges_.clear(); + if (highlight_registry_) + highlight_registry_->ScheduleRepaint(); } bool Highlight::deleteForBinding(ScriptState*, @@ -47,6 +51,8 @@ auto iterator = highlight_ranges_.find(range); if (iterator != highlight_ranges_.end()) { highlight_ranges_.erase(iterator); + if (highlight_registry_) + highlight_registry_->ScheduleRepaint(); return true; } return false; @@ -55,13 +61,40 @@ bool Highlight::hasForBinding(ScriptState*, AbstractRange* range, ExceptionState&) const { - return highlight_ranges_.Contains(range); + return Contains(range); } wtf_size_t Highlight::size() const { return highlight_ranges_.size(); } +bool Highlight::Contains(AbstractRange* range) const { + return highlight_ranges_.Contains(range); +} + +int8_t Highlight::CompareOverlayStackingPosition( + const Highlight* another_highlight) const { + DCHECK(this->highlight_registry_); + DCHECK(this->highlight_registry_ == another_highlight->highlight_registry_); + if (this == another_highlight) + return kOverlayStackingPositionEquivalent; + + if (this->priority() == another_highlight->priority()) { + for (const auto& highlight : highlight_registry_->GetHighlights()) { + if (this == highlight) + return kOverlayStackingPositionBelow; + if (another_highlight == highlight) + return kOverlayStackingPositionAbove; + } + NOTREACHED(); + return kOverlayStackingPositionEquivalent; + } + + return priority() > another_highlight->priority() + ? kOverlayStackingPositionAbove + : kOverlayStackingPositionBelow; +} + Highlight::IterationSource::IterationSource(const Highlight& highlight) : index_(0) { highlight_ranges_snapshot_.ReserveInitialCapacity(
diff --git a/third_party/blink/renderer/core/highlight/highlight.h b/third_party/blink/renderer/core/highlight/highlight.h index 98f66d5..97e20e1e 100644 --- a/third_party/blink/renderer/core/highlight/highlight.h +++ b/third_party/blink/renderer/core/highlight/highlight.h
@@ -15,6 +15,7 @@ namespace blink { using HighlightSetIterable = SetlikeIterable<Member<AbstractRange>>; +class HighlightRegistry; class CORE_EXPORT Highlight : public ScriptWrappable, public HighlightSetIterable { @@ -38,6 +39,17 @@ const int32_t& priority() const { return priority_; } void setPriority(const int32_t& priority) { priority_ = priority; } + const AtomicString& Name() const { return name_; } + bool Contains(AbstractRange*) const; + + enum OverlayStackingPosition { + kOverlayStackingPositionBelow = -1, + kOverlayStackingPositionEquivalent = 0, + kOverlayStackingPositionAbove = 1, + }; + + int8_t CompareOverlayStackingPosition(const Highlight*) const; + class IterationSource final : public HighlightSetIterable::IterationSource { public: explicit IterationSource(const Highlight& highlight); @@ -58,10 +70,19 @@ ScriptState*, ExceptionState&) override; + const HeapLinkedHashSet<Member<AbstractRange>>& GetRanges() const { + return highlight_ranges_; + } + + void SetHighlightRegistry(HighlightRegistry* highlight_registry) { + highlight_registry_ = highlight_registry; + } + private: HeapLinkedHashSet<Member<AbstractRange>> highlight_ranges_; int32_t priority_ = 0; AtomicString name_; + Member<HighlightRegistry> highlight_registry_ = nullptr; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/highlight/highlight_registry.cc b/third_party/blink/renderer/core/highlight/highlight_registry.cc index 1bb667a..14c0788 100644 --- a/third_party/blink/renderer/core/highlight/highlight_registry.cc +++ b/third_party/blink/renderer/core/highlight/highlight_registry.cc
@@ -4,7 +4,11 @@ #include "third_party/blink/renderer/core/highlight/highlight_registry.h" +#include "third_party/blink/renderer/core/dom/abstract_range.h" +#include "third_party/blink/renderer/core/editing/ephemeral_range.h" +#include "third_party/blink/renderer/core/editing/markers/document_marker_controller.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" +#include "third_party/blink/renderer/core/frame/local_frame.h" namespace blink { @@ -19,7 +23,7 @@ } HighlightRegistry::HighlightRegistry(LocalDOMWindow& window) - : Supplement<LocalDOMWindow>(window) {} + : Supplement<LocalDOMWindow>(window), frame_(window.GetFrame()) {} HighlightRegistry::~HighlightRegistry() = default; @@ -27,10 +31,42 @@ void HighlightRegistry::Trace(blink::Visitor* visitor) const { visitor->Trace(highlights_); + visitor->Trace(frame_); ScriptWrappable::Trace(visitor); Supplement<LocalDOMWindow>::Trace(visitor); } +// Deletes all HighlightMarkers and rebuilds them with the contents of +// highlights_. +void HighlightRegistry::ValidateHighlightMarkers() { + Document* document = frame_->GetDocument(); + if (!document) + return; + + document->Markers().RemoveMarkersOfTypes( + DocumentMarker::MarkerTypes::Highlight()); + + for (const auto& highlight : highlights_) { + for (const auto& abstract_range : highlight->GetRanges()) { + if (!abstract_range->collapsed()) { + auto* static_range = DynamicTo<StaticRange>(*abstract_range); + if (static_range && (!static_range->IsValid() || + static_range->CrossesContainBoundary())) + continue; + + EphemeralRange eph_range(abstract_range); + document->Markers().AddHighlightMarker(eph_range, highlight); + } + } + } +} + +void HighlightRegistry::ScheduleRepaint() const { + if (LocalFrameView* local_frame_view = frame_->View()) { + local_frame_view->ScheduleVisualUpdateForPaintInvalidationIfNeeded(); + } +} + HighlightRegistry* HighlightRegistry::addForBinding( ScriptState*, Highlight* highlight, @@ -41,6 +77,8 @@ "Cannot add a Highlight with the same name as an existing one."); } else { highlights_.insert(highlight); + highlight->SetHighlightRegistry(this); + ScheduleRepaint(); } return this; @@ -48,7 +86,10 @@ void HighlightRegistry::clearForBinding(ScriptState*, ExceptionState&) { registered_highlight_names_.clear(); + for (const auto& highlight : highlights_) + highlight->SetHighlightRegistry(nullptr); highlights_.clear(); + ScheduleRepaint(); } bool HighlightRegistry::deleteForBinding(ScriptState*, @@ -58,6 +99,8 @@ if (name_iterator != registered_highlight_names_.end()) { registered_highlight_names_.erase(name_iterator); highlights_.erase(highlight); + highlight->SetHighlightRegistry(nullptr); + ScheduleRepaint(); return true; }
diff --git a/third_party/blink/renderer/core/highlight/highlight_registry.h b/third_party/blink/renderer/core/highlight/highlight_registry.h index 61a89820..42b5538d 100644 --- a/third_party/blink/renderer/core/highlight/highlight_registry.h +++ b/third_party/blink/renderer/core/highlight/highlight_registry.h
@@ -15,6 +15,7 @@ namespace blink { using HighlightRegistrySetIterable = SetlikeIterable<Member<Highlight>>; +class LocalFrame; class CORE_EXPORT HighlightRegistry : public ScriptWrappable, public Supplement<LocalDOMWindow>, @@ -36,7 +37,12 @@ bool hasForBinding(ScriptState*, Highlight*, ExceptionState&) const; wtf_size_t size() const { return highlights_.size(); } - public: + const HeapLinkedHashSet<Member<Highlight>>& GetHighlights() const { + return highlights_; + } + void ValidateHighlightMarkers(); + void ScheduleRepaint() const; + class IterationSource final : public HighlightRegistrySetIterable::IterationSource { public: @@ -59,6 +65,7 @@ // it can be determined in O(1) if a name is already present. HashSet<String, StringHash> registered_highlight_names_; HeapLinkedHashSet<Member<Highlight>> highlights_; + Member<LocalFrame> frame_; HighlightRegistrySetIterable::IterationSource* StartIteration( ScriptState*,
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 24d3337b..4d53dd7 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
@@ -3634,8 +3634,14 @@ set_geometry.sets[end_index].last_indefinite_index; if (last_indefinite_index == kNotFound || start_index > last_indefinite_index) { - *size = set_geometry.sets[end_index].offset - *start_offset - - set_geometry.gutter_size; + // If we have run into the max LayoutUnit, the size calculation won't work, + // collapse all sizes from here on. + if (start_offset->MightBeSaturated()) { + *size = LayoutUnit(); + } else { + *size = set_geometry.sets[end_index].offset - *start_offset - + set_geometry.gutter_size; + } } DCHECK(*size >= 0 || *size == kIndefiniteSize); }
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.cc index 3ae98cf..9c62f69 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.cc
@@ -7,6 +7,7 @@ #include "base/containers/adapters.h" #include "third_party/blink/renderer/core/layout/geometry/logical_offset.h" #include "third_party/blink/renderer/core/layout/geometry/logical_size.h" +#include "third_party/blink/renderer/core/layout/ng/inline/layout_ng_text_combine.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h" #include "third_party/blink/renderer/core/layout/ng/ng_layout_result.h" @@ -844,6 +845,14 @@ if (!is_svg_text_ && vertical_align == EVerticalAlign::kBaseline) return kPositionNotPending; + if (UNLIKELY(box->item && + IsA<LayoutNGTextCombine>(box->item->GetLayoutObject()))) { + // Text content in text-combine-upright:all is layout in horizontally, so + // we don't need to move text combine box. + // See "text-combine-shrink-to-fit.html". + return kPositionNotPending; + } + // 'vertical-align' aligns boxes relative to themselves, to their parent // boxes, or to the line box, depends on the value. // Because |box| is an item in |stack_|, |box[-1]| is its parent box.
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h index 942957d0..51d5a8d 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h
@@ -132,6 +132,9 @@ bool IsRubyRun() const { return GetLayoutObject() && GetLayoutObject()->IsRubyRun(); } + bool IsTextCombine() const { + return GetLayoutObject() && GetLayoutObject()->IsLayoutNGTextCombine(); + } void SetOffset(unsigned start, unsigned end) { DCHECK_GE(end, start);
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h index b671673..f832343 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h
@@ -63,6 +63,10 @@ // Inline size of this item. LayoutUnit inline_size; + // Non-zero if text-combine after non-ideographic character + // See "text-combine-justify.html". + LayoutUnit spacing_before; + // Pending inline-end overhang amount for RubyRun. // This is committed if a following item meets conditions. LayoutUnit pending_end_overhang;
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc index d16ff91..9f2ce1e 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
@@ -10,6 +10,7 @@ #include "base/containers/adapters.h" #include "third_party/blink/renderer/core/css/resolver/style_resolver.h" #include "third_party/blink/renderer/core/html/forms/html_input_element.h" +#include "third_party/blink/renderer/core/layout/ng/inline/layout_ng_text_combine.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_bidi_paragraph.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_break_token.h" @@ -249,6 +250,15 @@ item_result.inline_size - hyphen_inline_size, box->text_height, item.BidiLevel()); PlaceHyphen(item_result, hyphen_inline_size, line_box, box); + } else if (UNLIKELY(Node().IsTextCombine())) { + // We make combined text at block offset 0 with 1em height. + // Painter paints text at block offset + |font.internal_leading / 2|. + const auto one_em = item.Style()->ComputedFontSizeAsFixed(); + const auto text_height = one_em; + const auto text_top = LayoutUnit(); + line_box->AddChild(item, item_result, item_result.TextOffset(), + text_top, item_result.inline_size, text_height, + item.BidiLevel()); } else { line_box->AddChild(item, item_result, item_result.TextOffset(), box->text_top, item_result.inline_size, @@ -420,7 +430,10 @@ // For SVG <text>, the block offset of the initial 'current text position' // should be 0. As for the inline offset, see // NGSvgTextLayoutAttributesBuilder::Build(). - if (!Node().IsSvgText()) + // + // For text-combine-upright:all, the block offset should be zero to make + // combined text in 1em x 1em box. + if (LIKELY(!Node().IsSvgText() && !Node().IsTextCombine())) line_box->MoveInBlockDirection(line_box_metrics.ascent); LayoutUnit block_offset = line_info->BfcOffset().block_offset; @@ -473,6 +486,12 @@ if (line_info->UseFirstLineStyle()) container_builder_.SetStyleVariant(NGStyleVariant::kFirstLine); container_builder_.SetBaseDirection(line_info->BaseDirection()); + if (UNLIKELY(Node().IsTextCombine())) { + // The effective size of combined text is 1em square[1] + // [1] https://drafts.csswg.org/css-writing-modes-3/#text-combine-layout + const auto one_em = Node().Style().ComputedFontSizeAsFixed(); + inline_size = std::min(inline_size, one_em); + } container_builder_.SetInlineSize(inline_size); container_builder_.SetMetrics(line_box_metrics); container_builder_.SetBfcBlockOffset(block_offset); @@ -558,7 +577,23 @@ item_result->has_edge = true; NGInlineBoxState* box = box_states_->OnOpenTag(item, *item_result, baseline_type_, *line_box); - PlaceLayoutResult(item_result, line_box, box, box->margin_inline_start); + + if (LIKELY(!IsA<LayoutNGTextCombine>(layout_object))) { + PlaceLayoutResult(item_result, line_box, box, box->margin_inline_start); + } else { + // The metrics should be as text instead of atomic inline box. + const auto& style = layout_object->Parent()->StyleRef(); + box->ComputeTextMetrics(style, style.GetFont()); + // Note: |item_result->spacing_before| is non-zero if this |item_result| + // is |LayoutNGTextCombine| and after CJK character. + // See "text-combine-justify.html". + const LayoutUnit inline_offset = + box->margin_inline_start + item_result->spacing_before; + line_box->AddChild(std::move(item_result->layout_result), + LogicalOffset{inline_offset, box->text_top}, + item_result->inline_size, /* children_count */ 0, + item.BidiLevel()); + } return box_states_->OnCloseTag(ConstraintSpace(), line_box, box, baseline_type_); } @@ -803,11 +838,33 @@ if (end_offset == line_info->StartOffset()) return absl::nullopt; + const UChar kTextCombineItemMarker = 0x3042; // U+3042 Hiragana Letter A + // Construct the line text to compute spacing for. StringBuilder line_text_builder; - line_text_builder.Append(StringView(line_info->ItemsData().text_content, - line_info->StartOffset(), - end_offset - line_info->StartOffset())); + if (UNLIKELY(line_info->MayHaveTextCombineItem())) { + for (const NGInlineItemResult& item_result : line_info->Results()) { + if (item_result.StartOffset() >= end_offset) + break; + if (item_result.item->IsTextCombine()) { + // To apply justification before and after the combined text, we put + // ideographic character to increment |ShapeResultSpacing:: + // expansion_opportunity_count_| for legacy layout compatibility. + // See "fast/writing-mode/text-combine-justify.html". + // Note: The spec[1] says we should treat combined text as U+FFFC. + // [1] https://drafts.csswg.org/css-writing-modes-3/#text-combine-layout + line_text_builder.Append(kTextCombineItemMarker); + continue; + } + line_text_builder.Append(StringView(line_info->ItemsData().text_content, + item_result.StartOffset(), + item_result.Length())); + } + } else { + line_text_builder.Append(StringView(line_info->ItemsData().text_content, + line_info->StartOffset(), + end_offset - line_info->StartOffset())); + } // Append a hyphen if the last word is hyphenated. The hyphen is in // |ShapeResult|, but not in text. |ShapeResultSpacing| needs the text that @@ -867,15 +924,24 @@ item_result.inline_size += item_result.HyphenInlineSize(); item_result.shape_result = ShapeResultView::Create(shape_result.get()); } else if (item_result.item->Type() == NGInlineItem::kAtomicInline) { - float offset = 0.f; + float spacing_before = 0.0f; DCHECK_LE(line_info->StartOffset(), item_result.StartOffset()); - unsigned line_text_offset = + const unsigned line_text_offset = item_result.StartOffset() - line_info->StartOffset(); - DCHECK_EQ(kObjectReplacementCharacter, line_text[line_text_offset]); - item_result.inline_size += - spacing.ComputeSpacing(line_text_offset, offset); - // |offset| is non-zero only before CJK characters. - DCHECK_EQ(offset, 0.f); + const float spacing_after = + spacing.ComputeSpacing(line_text_offset, spacing_before); + if (UNLIKELY(item_result.item->IsTextCombine())) { + // |spacing_before| is non-zero if this |item_result| is after + // non-CJK character. See "text-combine-justify.html". + DCHECK_EQ(kTextCombineItemMarker, line_text[line_text_offset]); + item_result.inline_size += spacing_after; + item_result.spacing_before = LayoutUnit(spacing_before); + } else { + DCHECK_EQ(kObjectReplacementCharacter, line_text[line_text_offset]); + item_result.inline_size += spacing_after; + // |spacing_before| is non-zero only before CJK characters. + DCHECK_EQ(spacing_before, 0.0f); + } } } return inset / 2;
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc index 4e87c6c..59fa5ecf 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/core/layout/ng/ng_base_layout_algorithm_test.h" +#include <sstream> #include "third_party/blink/renderer/core/dom/tag_collection.h" #include "third_party/blink/renderer/core/layout/layout_block_flow.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.h" @@ -20,7 +21,18 @@ namespace blink { namespace { -class NGInlineLayoutAlgorithmTest : public NGBaseLayoutAlgorithmTest {}; +class NGInlineLayoutAlgorithmTest : public NGBaseLayoutAlgorithmTest { + protected: + static std::string AsFragmentItemsString(const LayoutBlockFlow& root) { + std::ostringstream ostream; + ostream << std::endl; + for (NGInlineCursor cursor(root); cursor; cursor.MoveToNext()) { + const auto& item = *cursor.CurrentItem(); + ostream << item << " " << item.RectInContainerFragment() << std::endl; + } + return ostream.str(); + } +}; TEST_F(NGInlineLayoutAlgorithmTest, BreakToken) { LoadAhem(); @@ -457,6 +469,65 @@ EXPECT_EQ(LayoutUnit(20), ink_overflow.size.height); } +// See also NGInlineLayoutAlgorithmTest.TextCombineFake +TEST_F(NGInlineLayoutAlgorithmTest, TextCombineBasic) { + ScopedLayoutNGTextCombineForTest enable_layout_ng_text_combine(true); + LoadAhem(); + InsertStyleElement( + "body { margin: 0px; font: 100px/110px Ahem; }" + "c { text-combine-upright: all; }" + "div { writing-mode: vertical-rl; }"); + SetBodyInnerHTML("<div id=root>a<c id=target>01234</c>b</div>"); + + EXPECT_EQ(R"DUMP( +{Line #descendants=5 LTR Standard} "0,0 110x300" +{Text 0-1 LTR Standard} "5,0 100x100" +{Box #descendants=2 Standard} "5,100 100x100" +{Box #descendants=1 AtomicInlineLTR Standard} "5,100 100x100" +{Text 2-3 LTR Standard} "5,200 100x100" +)DUMP", + AsFragmentItemsString( + *To<LayoutBlockFlow>(GetLayoutObjectByElementId("root")))); + + EXPECT_EQ(R"DUMP( +{Line #descendants=2 LTR Standard} "0,0 100x100" +{Text 0-5 LTR Standard} "0,0 500x100" +)DUMP", + AsFragmentItemsString(*To<LayoutBlockFlow>( + GetLayoutObjectByElementId("target")->SlowFirstChild()))); +} + +// See also NGInlineLayoutAlgorithmTest.TextCombineBasic +TEST_F(NGInlineLayoutAlgorithmTest, TextCombineFake) { + ScopedLayoutNGTextCombineForTest enable_layout_ng_text_combine(true); + LoadAhem(); + InsertStyleElement( + "body { margin: 0px; font: 100px/110px Ahem; }" + "c {" + " display: inline-block;" + " width: 1em; height: 1em;" + " writing-mode: horizontal-tb;" + "}" + "div { writing-mode: vertical-rl; }"); + SetBodyInnerHTML("<div id=root>a<c id=target>0</c>b</div>"); + + EXPECT_EQ(R"DUMP( +{Line #descendants=4 LTR Standard} "0,0 110x300" +{Text 0-1 LTR Standard} "5,0 100x100" +{Box #descendants=1 AtomicInlineLTR Standard} "5,100 100x100" +{Text 2-3 LTR Standard} "5,200 100x100" +)DUMP", + AsFragmentItemsString( + *To<LayoutBlockFlow>(GetLayoutObjectByElementId("root")))); + + EXPECT_EQ(R"DUMP( +{Line #descendants=2 LTR Standard} "0,0 100x110" +{Text 0-1 LTR Standard} "0,5 100x100" +)DUMP", + AsFragmentItemsString( + *To<LayoutBlockFlow>(GetLayoutObjectByElementId("target")))); +} + #undef MAYBE_VerticalAlignBottomReplaced } // namespace } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc index 8397454..f63b21c 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
@@ -282,6 +282,8 @@ DCHECK_GE(offset_, item.StartOffset()); DCHECK_GE(end_offset, offset_); DCHECK_LE(end_offset, item.EndOffset()); + if (UNLIKELY(item.IsTextCombine())) + line_info->SetHaveTextCombineItem(); NGInlineItemResults* item_results = line_info->MutableResults(); return &item_results->emplace_back( &item, item_index_, NGTextOffset(offset_, end_offset),
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_line_info.h b/third_party/blink/renderer/core/layout/ng/inline/ng_line_info.h index 563767d3..4d53ae4 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_line_info.h +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_line_info.h
@@ -131,6 +131,11 @@ // justify alignment. bool NeedsAccurateEndPosition() const { return needs_accurate_end_position_; } + // |MayHaveTextCombineItem()| is used for treating text-combine box as + // ideographic character during "text-align:justify". + bool MayHaveTextCombineItem() const { return may_have_text_combine_item_; } + void SetHaveTextCombineItem() { may_have_text_combine_item_ = true; } + private: ETextAlign GetTextAlign(bool is_last_line = false) const; bool ComputeNeedsAccurateEndPosition() const; @@ -165,6 +170,12 @@ bool needs_accurate_end_position_ = false; bool is_ruby_base_ = false; bool is_ruby_text_ = false; + // Even if text combine item causes line break, this variable is not reset. + // This variable is used to add spacing before/after text combine items if + // "text-align: justify". + // Note: To avoid scanning |NGInlineItemResults|, this variable is true + // when |NGInlineItemResult| to |results_|. + bool may_have_text_combine_item_ = false; }; std::ostream& operator<<(std::ostream& ostream, const NGLineInfo& line_info);
diff --git a/third_party/blink/renderer/core/paint/highlight_painting_utils.cc b/third_party/blink/renderer/core/paint/highlight_painting_utils.cc index 823fbea2..f2c1b45d 100644 --- a/third_party/blink/renderer/core/paint/highlight_painting_utils.cc +++ b/third_party/blink/renderer/core/paint/highlight_painting_utils.cc
@@ -48,6 +48,9 @@ case kPseudoIdSelection: keyword = CSSValueID::kHighlighttext; break; + case kPseudoIdHighlight: + keyword = CSSValueID::kHighlighttext; + break; default: NOTREACHED(); break; @@ -66,6 +69,9 @@ case kPseudoIdSelection: keyword = CSSValueID::kHighlight; break; + case kPseudoIdHighlight: + keyword = CSSValueID::kHighlight; + break; default: NOTREACHED(); break; @@ -90,6 +96,11 @@ case kPseudoIdTargetText: return LayoutTheme::GetTheme().PlatformTextSearchColor( false /* active match */, style.UsedColorScheme()); + case kPseudoIdHighlight: + // TODO(ffiori): not assigning any visual effects to custom highlights by + // default as the spec doesn't define it. See + // https://github.com/w3c/csswg-drafts/issues/6375. + return style.VisitedDependentColor(color_property); default: NOTREACHED(); return Color(); @@ -112,14 +123,21 @@ return LayoutTheme::GetTheme().PlatformTextSearchHighlightColor( false /* active match */, style.UsedColorScheme()); + case kPseudoIdHighlight: + // TODO(ffiori): not assigning any visual effects to custom highlights by + // default as the spec doesn't define it. See + // https://github.com/w3c/csswg-drafts/issues/6375. + return style.VisitedDependentColor(GetCSSPropertyBackgroundColor()); default: NOTREACHED(); return Color(); } } -scoped_refptr<const ComputedStyle> HighlightPseudoStyle(Node* node, - PseudoId pseudo) { +scoped_refptr<const ComputedStyle> HighlightPseudoStyle( + Node* node, + PseudoId pseudo, + const AtomicString& pseudo_argument) { if (!node) return nullptr; @@ -153,10 +171,10 @@ // cache the styles for ::selection if there are no :window-inactive // selector, or if the page is active. return element->UncachedStyleForPseudoElement( - StyleRequest(pseudo, element->GetComputedStyle())); + StyleRequest(pseudo, element->GetComputedStyle(), pseudo_argument)); } - return element->CachedStyleForPseudoElement(pseudo); + return element->CachedStyleForPseudoElement(pseudo, pseudo_argument); } Color HighlightColor(const Document& document, @@ -164,7 +182,8 @@ Node* node, PseudoId pseudo, const CSSProperty& color_property, - const GlobalPaintFlags global_paint_flags) { + const GlobalPaintFlags global_paint_flags, + const AtomicString& pseudo_argument = g_null_atom) { if (pseudo == kPseudoIdSelection) { // If the element is unselectable, or we are only painting the selection, // don't override the foreground color with the selection foreground color. @@ -175,7 +194,7 @@ } scoped_refptr<const ComputedStyle> pseudo_style = - HighlightPseudoStyle(node, pseudo); + HighlightPseudoStyle(node, pseudo, pseudo_argument); mojom::blink::ColorScheme color_scheme = style.UsedColorScheme(); if (pseudo_style) { @@ -197,7 +216,8 @@ const Document& document, const ComputedStyle& style, Node* node, - PseudoId pseudo) { + PseudoId pseudo, + const AtomicString& pseudo_argument) { if (pseudo == kPseudoIdSelection) { if (node && !NodeIsSelectable(style, node)) return Color::kTransparent; @@ -205,7 +225,7 @@ mojom::blink::ColorScheme color_scheme = style.UsedColorScheme(); if (scoped_refptr<const ComputedStyle> pseudo_style = - HighlightPseudoStyle(node, pseudo)) { + HighlightPseudoStyle(node, pseudo, pseudo_argument)) { if (!document.InForcedColorsMode() || pseudo_style->ForcedColorAdjust() == EForcedColorAdjust::kNone) { Color highlight_color = @@ -257,10 +277,11 @@ const ComputedStyle& style, Node* node, PseudoId pseudo, - const GlobalPaintFlags global_paint_flags) { + const GlobalPaintFlags global_paint_flags, + const AtomicString& pseudo_argument) { return HighlightColor(document, style, node, pseudo, - GetCSSPropertyWebkitTextFillColor(), - global_paint_flags); + GetCSSPropertyWebkitTextFillColor(), global_paint_flags, + pseudo_argument); } Color HighlightPaintingUtils::HighlightEmphasisMarkColor( @@ -280,7 +301,8 @@ Node* node, PseudoId pseudo, const TextPaintStyle& text_style, - const PaintInfo& paint_info) { + const PaintInfo& paint_info, + const AtomicString& pseudo_argument) { TextPaintStyle highlight_style = text_style; bool uses_text_as_clip = paint_info.phase == PaintPhase::kTextClip; const GlobalPaintFlags global_paint_flags = paint_info.GetGlobalPaintFlags(); @@ -291,13 +313,13 @@ if (!uses_text_as_clip) { highlight_style.fill_color = HighlightForegroundColor( - document, style, node, pseudo, global_paint_flags); + document, style, node, pseudo, global_paint_flags, pseudo_argument); highlight_style.emphasis_mark_color = HighlightEmphasisMarkColor( document, style, node, pseudo, global_paint_flags); } if (scoped_refptr<const ComputedStyle> pseudo_style = - HighlightPseudoStyle(node, pseudo)) { + HighlightPseudoStyle(node, pseudo, pseudo_argument)) { highlight_style.stroke_color = uses_text_as_clip ? Color::kBlack : pseudo_style->VisitedDependentColor(
diff --git a/third_party/blink/renderer/core/paint/highlight_painting_utils.h b/third_party/blink/renderer/core/paint/highlight_painting_utils.h index c29608d..f1dbe60 100644 --- a/third_party/blink/renderer/core/paint/highlight_painting_utils.h +++ b/third_party/blink/renderer/core/paint/highlight_painting_utils.h
@@ -11,6 +11,7 @@ #include "third_party/blink/renderer/core/paint/paint_phase.h" #include "third_party/blink/renderer/core/style/applied_text_decoration.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" +#include "third_party/blink/renderer/platform/wtf/text/atomic_string.h" namespace blink { @@ -28,26 +29,32 @@ static absl::optional<AppliedTextDecoration> HighlightTextDecoration( const ComputedStyle& style, const ComputedStyle& pseudo_style); - static Color HighlightBackgroundColor(const Document&, - const ComputedStyle&, - Node*, - PseudoId); - static Color HighlightForegroundColor(const Document&, - const ComputedStyle&, - Node*, - PseudoId, - const GlobalPaintFlags); + static Color HighlightBackgroundColor( + const Document&, + const ComputedStyle&, + Node*, + PseudoId, + const AtomicString& pseudo_argument = g_null_atom); + static Color HighlightForegroundColor( + const Document&, + const ComputedStyle&, + Node*, + PseudoId, + const GlobalPaintFlags, + const AtomicString& pseudo_argument = g_null_atom); static Color HighlightEmphasisMarkColor(const Document&, const ComputedStyle&, Node*, PseudoId, const GlobalPaintFlags); - static TextPaintStyle HighlightPaintingStyle(const Document&, - const ComputedStyle&, - Node*, - PseudoId, - const TextPaintStyle& text_style, - const PaintInfo&); + static TextPaintStyle HighlightPaintingStyle( + const Document&, + const ComputedStyle&, + Node*, + PseudoId, + const TextPaintStyle& text_style, + const PaintInfo&, + const AtomicString& pseudo_argument = g_null_atom); }; } // namespace blink
diff --git a/third_party/blink/renderer/core/paint/inline_text_box_painter.cc b/third_party/blink/renderer/core/paint/inline_text_box_painter.cc index d4ba735..8ecc9664 100644 --- a/third_party/blink/renderer/core/paint/inline_text_box_painter.cc +++ b/third_party/blink/renderer/core/paint/inline_text_box_painter.cc
@@ -661,6 +661,10 @@ styleable_marker, style, font); } } break; + case DocumentMarker::kHighlight: + inline_text_box_.PaintDocumentMarker(paint_info, box_origin, marker, + style, font, false); + break; default: // Marker is not painted, or painting code has not been added yet break;
diff --git a/third_party/blink/renderer/core/paint/ng/ng_highlight_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_highlight_painter.cc index 81fd2f8..0cf92a5 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_highlight_painter.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_highlight_painter.cc
@@ -8,9 +8,11 @@ #include "third_party/blink/renderer/core/editing/editor.h" #include "third_party/blink/renderer/core/editing/frame_selection.h" #include "third_party/blink/renderer/core/editing/markers/document_marker_controller.h" +#include "third_party/blink/renderer/core/editing/markers/highlight_marker.h" #include "third_party/blink/renderer/core/editing/markers/styleable_marker.h" #include "third_party/blink/renderer/core/editing/markers/text_marker_base.h" #include "third_party/blink/renderer/core/frame/local_frame.h" +#include "third_party/blink/renderer/core/highlight/highlight.h" #include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h" #include "third_party/blink/renderer/core/paint/document_marker_painter.h" @@ -350,6 +352,49 @@ } } break; + case DocumentMarker::kHighlight: { + const auto& highlight_marker = To<HighlightMarker>(*marker); + const Document& document = node_->GetDocument(); + + // Paint background + if (phase == kBackground) { + Color background_color = + HighlightPaintingUtils::HighlightBackgroundColor( + document, style_, node_, kPseudoIdHighlight, + highlight_marker.GetHighlight()->Name()); + + PaintRect(paint_info_.context, PhysicalOffset(box_origin_), + fragment_item_.LocalRect(text, paint_start_offset, + paint_end_offset), + background_color); + break; + } + + DCHECK_EQ(phase, kForeground); + Color text_color = style_.VisitedDependentColor(GetCSSPropertyColor()); + + TextPaintStyle text_style; + text_style.current_color = text_style.fill_color = + text_style.stroke_color = text_style.emphasis_mark_color = + text_color; + text_style.stroke_width = style_.TextStrokeWidth(); + text_style.color_scheme = style_.UsedColorScheme(); + text_style.shadow = nullptr; + + const TextPaintStyle final_text_style = + HighlightPaintingUtils::HighlightPaintingStyle( + document, style_, node_, kPseudoIdHighlight, text_style, + paint_info_, highlight_marker.GetHighlight()->Name()); + + if (final_text_style.current_color == Color::kTransparent) + break; + + text_painter_.Paint(paint_start_offset, paint_end_offset, + paint_end_offset - paint_start_offset, + final_text_style, kInvalidDOMNodeId); + + } break; + default: NOTREACHED(); break;
diff --git a/third_party/blink/renderer/modules/serial/serial_port.cc b/third_party/blink/renderer/modules/serial/serial_port.cc index 135e1da..a2b0599 100644 --- a/third_party/blink/renderer/modules/serial/serial_port.cc +++ b/third_party/blink/renderer/modules/serial/serial_port.cc
@@ -509,7 +509,8 @@ visitor->Trace(open_resolver_); visitor->Trace(signal_resolvers_); visitor->Trace(close_resolver_); - ScriptWrappable::Trace(visitor); + EventTargetWithInlineData::Trace(visitor); + ActiveScriptWrappable<SerialPort>::Trace(visitor); } bool SerialPort::HasPendingActivity() const {
diff --git a/third_party/blink/renderer/modules/webgl/webgl_video_texture.idl b/third_party/blink/renderer/modules/webgl/webgl_video_texture.idl index fddd629..329c609 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_video_texture.idl +++ b/third_party/blink/renderer/modules/webgl/webgl_video_texture.idl
@@ -12,6 +12,6 @@ const GLenum TEXTURE_VIDEO_IMAGE = 0x9248; const GLenum SAMPLER_VIDEO_IMAGE = 0x9249; - [CallWith=ExecutionContext, RaisesException] VideoFrameMetadata shareVideoImageWEBGL(GLenum target, HTMLVideoElement video); + [CallWith=ExecutionContext, RaisesException] VideoFrameMetadata? shareVideoImageWEBGL(GLenum target, HTMLVideoElement video); [CallWith=ExecutionContext, RaisesException] boolean releaseVideoImageWEBGL(GLenum target); };
diff --git a/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder_test.cc index 76404d8..d6e55d2 100644 --- a/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder_test.cc +++ b/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder_test.cc
@@ -115,10 +115,10 @@ a = FromFloat16(first_pixel >> 48); } else { uint32_t first_pixel = *frame->GetAddr(0, 0); - a = ((first_pixel >> 24) & 255) / 255.0; - r = ((first_pixel >> 16) & 255) / 255.0; - g = ((first_pixel >> 8) & 255) / 255.0; - b = ((first_pixel >> 0) & 255) / 255.0; + a = ((first_pixel >> SK_A32_SHIFT) & 255) / 255.0; + r = ((first_pixel >> SK_R32_SHIFT) & 255) / 255.0; + g = ((first_pixel >> SK_G32_SHIFT) & 255) / 255.0; + b = ((first_pixel >> SK_B32_SHIFT) & 255) / 255.0; } constexpr float eps = 0.01; EXPECT_NEAR(expected_r, r, eps);
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 55da500..dee3bcc7 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -2494,6 +2494,7 @@ crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-206.xht [ Failure ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 [ Mac10.15 ] external/wpt/webrtc-encoded-transform/RTCPeerConnection-insertable-streams-simulcast.https.html [ Timeout ] crbug.com/626703 external/wpt/css/css-backgrounds/border-image-repeat-space-10.html [ Failure ] crbug.com/626703 virtual/composite-bgcolor-animation/external/wpt/css/css-backgrounds/border-image-repeat-space-10.html [ Failure ] crbug.com/626703 [ Mac10.15 ] external/wpt/mediacapture-insertable-streams/MediaStreamTrackGenerator-audio.https.html [ Crash ] @@ -2631,7 +2632,6 @@ crbug.com/626703 external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html [ Timeout ] crbug.com/626703 [ Mac10.15 ] virtual/layout_ng_fragment_traversal/external/wpt/css/CSS2/backgrounds/background-254.xht [ Failure Crash ] crbug.com/626703 [ Mac11.0 ] virtual/layout_ng_fragment_traversal/external/wpt/css/CSS2/backgrounds/background-178.xht [ Failure Timeout ] -crbug.com/626703 external/wpt/html/rendering/non-replaced-elements/form-controls/input-placeholder-line-height.html [ Failure ] crbug.com/626703 external/wpt/css/CSS2/backgrounds/background-intrinsic-006.xht [ Failure ] crbug.com/626703 virtual/layout_ng_fragment_traversal/external/wpt/css/CSS2/backgrounds/background-intrinsic-004.xht [ Failure ] crbug.com/626703 [ Mac10.14 ] external/wpt/css/CSS2/backgrounds/background-attachment-005.xht [ Failure Timeout ] @@ -3453,7 +3453,6 @@ crbug.com/626703 [ Mac ] external/wpt/webrtc/RTCDTMFSender-ontonechange-long.https.html [ Pass Failure ] crbug.com/626703 [ Mac ] virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCDTMFSender-ontonechange-long.https.html [ Pass Failure ] - ### See crbug.com/891427 comment near the top of this file: crbug.com/626703 external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins-2.html [ Failure ] crbug.com/767352 external/wpt/css/css-backgrounds/border-image-width-008.html [ Failure ] @@ -3461,6 +3460,8 @@ crbug.com/367760 external/wpt/svg/pservers/reftests/meshgradient-basic-001.svg [ Failure ] crbug.com/626703 [ Mac ] external/wpt/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-unsafe-none-report-to.https.html [ Pass Failure ] +crbug.com/1220220 external/wpt/html/rendering/non-replaced-elements/form-controls/input-placeholder-line-height.html [ Failure ] + # Tests pass under virtual/webrtc-wpt-plan-b virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-operations.https.html [ Pass ] @@ -5336,10 +5337,6 @@ crbug.com/1030258 http/tests/devtools/network/network-cookies-pane.js [ Pass Failure ] crbug.com/1041830 http/tests/devtools/tracing/timeline-js/timeline-js-line-level-profile.js [ Pass Failure ] -# TODO(michaelludwig): Rebaseline these after Skia roll lands making changes to -# image filters. See crbug.com/1143929 -crbug.com/1143929 external/wpt/css/css-transforms/preserve3d-and-filter-with-perspective.html [ Pass Failure ] - # Sheriff 2019-12-13 crbug.com/1032451 [ Win7 ] virtual/webrtc-wpt-plan-b/external/wpt/webrtc/idlharness.https.window.html [ Failure Pass ] crbug.com/1033852 [ Win7 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker.html [ Failure ] @@ -6890,6 +6887,13 @@ crbug.com/1218484 [ Linux ] external/wpt/html/cross-origin-embedder-policy/credentialless/reporting-navigation.tentative.https.html [ Pass Failure ] crbug.com/1218484 [ Linux ] virtual/plz-service-worker/external/wpt/html/cross-origin-embedder-policy/credentialless/reporting-navigation.tentative.https.html [ Pass Failure ] +# CSS Highlight API painting issues related to general CSS highlight +# pseudo-elements painting +crbug.com/1147859 external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004.html [ Failure ] +crbug.com/1163437 external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-grammar.html [ Failure ] +crbug.com/1147859 external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-target-text.html [ Failure ] +crbug.com/1147859 [ Linux ] external/wpt/css/css-highlight-api/painting/* [ Failure ] + # Sheriff 2021-06-11 crbug.com/1218667 [ Win ] virtual/portals/wpt_internal/portals/portals-dangling-markup.sub.html [ Pass Timeout ] crbug.com/1218714 [ Win ] virtual/scroll-unification/fast/forms/select-popup/popup-menu-scrollbar-button-scrolls.html [ Pass Timeout ] @@ -6921,10 +6925,6 @@ crbug.com/1219499 external/wpt/websockets/Create-blocked-port.any.html?wpt_flags=h2 [ Pass Failure Timeout ] crbug.com/1219499 [ Win ] external/wpt/websockets/Create-blocked-port.any.html?wss [ Pass Timeout ] -# Temporarily suppress the flakes until -# https://chromium-review.googlesource.com/c/chromium/src/+/2964452 lands. -crbug.com/1218947 [ Linux ] external/wpt/websockets/remove-own-iframe-during-onerror.window.html?wss [ Pass Timeout ] - # Sheriff 2021-06-15 crbug.com/1220317 [ Linux ] external/wpt/media-capabilities/decodingInfoEncryptedMedia.https.html [ Pass Failure ] crbug.com/1220317 [ Linux ] external/wpt/media-capabilities/decodingInfo.any.html [ Pass 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 22acd6504..bade6fd 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
@@ -38,6 +38,13 @@ {} ] ], + "slot-assignment-lockup.html": [ + "85b6c9294a5eaa86c445607b552ece296c509614", + [ + null, + {} + ] + ], "table-ignored-child.html": [ "99f385f6eaf3ebdbc5b8c4517c9a7ec7fce50117", [ @@ -1836,6 +1843,15 @@ ] } } + }, + "xslt": { + "strip-space-crash.xml": [ + "61a906a5e74b9c88061c565615187f9970baff72", + [ + null, + {} + ] + ] } }, "manual": { @@ -89903,162 +89919,6 @@ {} ] ], - "flex-abspos-staticpos-align-self-001.html": [ - "6f0e06fbf0310a2cc466e96ad5be61c54aa3e7e0", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-001-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-002.html": [ - "d48bd041322c3bd7b2b1c1e892f92658e4432e96", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-003.html": [ - "3e272bf0f9e6a15a9b0b65760cc1eacce258304f", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-003-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-004.html": [ - "82b3963aedb9fbdbc0d9ca36b7138c023a115ac1", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-005.html": [ - "09ea4bc145a40e10104ae7bce1176b969ab7a762", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-005-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-006.html": [ - "2e14f9f1766310e6b8f0b31dfca47756bd71d442", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-007.html": [ - "abca9769a59ad06dd8ce50b2f643d580349b3bc4", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-007-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-008.html": [ - "fae2b46418ab9a06bb76f2fd443b2d0f0117f579", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-rtl-001.html": [ - "94c979033ae748d99e82ea744c81b4ebc9b970df", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-001-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-rtl-002.html": [ - "21252e65955676ad5bee630c48e270e3d63febaa", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-002-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-rtl-003.html": [ - "215ed719967c321974799633be520a3ebbcbc1f8", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-003-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-align-self-rtl-004.html": [ - "bf12311c74a492fd0cefdd7f02cf1bdb4369ff01", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-004-ref.html", - "==" - ] - ], - {} - ] - ], "flex-abspos-staticpos-align-self-safe-001.html": [ "b7302cb962dbff9bfc99592ac7a2d2f2aae52b21", [ @@ -90150,162 +90010,6 @@ {} ] ], - "flex-abspos-staticpos-justify-content-001.html": [ - "0a7ee1b74dd7ac9aa9de1a98eb03239381cffe6e", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-001-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-002.html": [ - "d3eb0865493b741f52822a6d73fc47306a9dd9b9", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-003.html": [ - "b64026950d1310c64535ba55973f9ba918fbbfac", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-004.html": [ - "b68d09b311e4dc7bd42b733f231144311a608787", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-005.html": [ - "7180f4e15617fa943ad6513c0d67bbfbac026866", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-005-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-006.html": [ - "6638a08ba848c1eadf82c70a9627094f692941a9", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-007.html": [ - "4ebcb79635ad0bf27790f33e28ecf49f8f233dc8", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-008.html": [ - "242a1dc5f885d993a4c36ae3c2a409ca02e969ad", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-rtl-001.html": [ - "dd8333ab72161f7cedfcdda130bc2ee1e0e2ed76", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-001-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-rtl-002.html": [ - "9ae681a587305eb79faff6fcfdd771394dcada25", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-002-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-vertWM-001.html": [ - "84899d2144569b3881867c63565bfbe0fb696a8d", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-001-ref.html", - "==" - ] - ], - {} - ] - ], - "flex-abspos-staticpos-justify-content-vertWM-002.html": [ - "1e11ea70eacfbe8948f188c430826346b6cbad54", - [ - null, - [ - [ - "/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-002-ref.html", - "==" - ] - ], - {} - ] - ], "flex-abspos-staticpos-justify-self-001.html": [ "1f826ca38f4e8d7cfadf2fdf154a401b88e473a8", [ @@ -137038,7 +136742,7 @@ ] ], "grid-aspect-ratio-020.html": [ - "5c7b0cf10953c851b0d4027c30ba723bd1428c41", + "7141793f9de415ad85e8b496699d1351b3745923", [ null, [ @@ -137051,7 +136755,7 @@ ] ], "grid-aspect-ratio-021.html": [ - "139459bbc008e85d41b299da6102a4633ebdce65", + "3b962b542a106c5fc50c37f0738a638cee13fca5", [ null, [ @@ -222711,7 +222415,7 @@ ], "js": { "CSS-supports-CSSStyleDeclaration-expected.txt": [ - "9a004d7bd5c12a8c0e80b5b80cc7ca66ec1d9867", + "2e621a2f0ec3509e414ecdf7693d621c4de5c361", [] ] }, @@ -224628,52 +224332,52 @@ "3d4867f617c4bdf092f4848808b53e42c0611b79", [] ], - "flex-abspos-staticpos-align-self-001-ref.html": [ - "6c0f732532d190535baa258787887c0ddd703fa2", + "flex-abspos-staticpos-align-self-001-expected.txt": [ + "12873c86b9cd2f66caabe3723c178ce2c98dc46b", [] ], - "flex-abspos-staticpos-align-self-002-ref.html": [ - "c1715dcd64c36fd6d37e283cb4d0a5526f30e0c4", + "flex-abspos-staticpos-align-self-002-expected.txt": [ + "b1faeee32104f40a0bd668a768b4718a8d1fd9c1", [] ], - "flex-abspos-staticpos-align-self-003-ref.html": [ - "d1b2c59990618c9bc2788cb67c3394ae977b134e", + "flex-abspos-staticpos-align-self-003-expected.txt": [ + "b57668ec8d2251191a88de3b7221cef9b40645f2", [] ], - "flex-abspos-staticpos-align-self-004-ref.html": [ - "24fb8a1e7fd4bf36073d0658680c090c8ca46400", + "flex-abspos-staticpos-align-self-004-expected.txt": [ + "0d241974a5fa37a096ba99a1f029e8032704d6d9", [] ], - "flex-abspos-staticpos-align-self-005-ref.html": [ - "9d8f4469ac36d78c566fb0a07200124e38aa10b0", + "flex-abspos-staticpos-align-self-005-expected.txt": [ + "71caacd059caf1b9fb80de14398dcc304110cc0d", [] ], - "flex-abspos-staticpos-align-self-006-ref.html": [ - "b3df68fab3c1812ae4bf7f24caa36f066330f71c", + "flex-abspos-staticpos-align-self-006-expected.txt": [ + "183455fdd7ecc63ef2a9e21115576fea4d44edf8", [] ], - "flex-abspos-staticpos-align-self-007-ref.html": [ - "a5316ce81107a5b5fa9875a120f7725955fefa35", + "flex-abspos-staticpos-align-self-007-expected.txt": [ + "5535937ed4b4377f795b640938cc978ee7bd4f1c", [] ], - "flex-abspos-staticpos-align-self-008-ref.html": [ - "c40a2d75cf31a24051ec0a6a0cd7acf53d8a4ee4", + "flex-abspos-staticpos-align-self-008-expected.txt": [ + "a91c5dfa11d95449107490c33180523c53c7c661", [] ], - "flex-abspos-staticpos-align-self-rtl-001-ref.html": [ - "75a998e34121bd8067a6694f523b32c0e928689a", + "flex-abspos-staticpos-align-self-rtl-001-expected.txt": [ + "7be21b0bf70ffbd7e75bdc9a0521928f5ccecd9e", [] ], - "flex-abspos-staticpos-align-self-rtl-002-ref.html": [ - "75a998e34121bd8067a6694f523b32c0e928689a", + "flex-abspos-staticpos-align-self-rtl-002-expected.txt": [ + "7be21b0bf70ffbd7e75bdc9a0521928f5ccecd9e", [] ], - "flex-abspos-staticpos-align-self-rtl-003-ref.html": [ - "b48de7e5cb115ba2fd078163a852e4de62cba292", + "flex-abspos-staticpos-align-self-rtl-003-expected.txt": [ + "e0fd41d7b217d9d633ef3f45b983a50f53306142", [] ], - "flex-abspos-staticpos-align-self-rtl-004-ref.html": [ - "2ed4a2d798a77022534b133fad90b14c88db8a0c", + "flex-abspos-staticpos-align-self-rtl-004-expected.txt": [ + "b2cba5e3462a073543088cd6743b51081750da1e", [] ], "flex-abspos-staticpos-align-self-safe-001-ref.html": [ @@ -224704,52 +224408,52 @@ "0abf592d6d476d0e5a9a01b163e3aebf9fffb74d", [] ], - "flex-abspos-staticpos-justify-content-001-ref.html": [ - "be61c53b491d8445aaedcc00dc42b1575994f533", + "flex-abspos-staticpos-justify-content-001-expected.txt": [ + "b8c28f59d296666c46f37b6f617a6e42e1650dc8", [] ], - "flex-abspos-staticpos-justify-content-002-ref.html": [ - "be61c53b491d8445aaedcc00dc42b1575994f533", + "flex-abspos-staticpos-justify-content-002-expected.txt": [ + "d0c5a2d538a0d5610a91dc4c6154897551e5a5b4", [] ], - "flex-abspos-staticpos-justify-content-003-ref.html": [ - "f609ed2896af4c476dd7832a3c5071da48c240f8", + "flex-abspos-staticpos-justify-content-003-expected.txt": [ + "064dd794ef45cf2379a184fcd77b69b7c7ae97f9", [] ], - "flex-abspos-staticpos-justify-content-004-ref.html": [ - "f609ed2896af4c476dd7832a3c5071da48c240f8", + "flex-abspos-staticpos-justify-content-004-expected.txt": [ + "91cb4e3f296427605e1f6d8220f0917623aa9f89", [] ], - "flex-abspos-staticpos-justify-content-005-ref.html": [ - "b04e8f2337660a2147f63736beb0603255768c8c", + "flex-abspos-staticpos-justify-content-005-expected.txt": [ + "9704ac2e5df66dbdf0927837db79ef099dc26127", [] ], - "flex-abspos-staticpos-justify-content-006-ref.html": [ - "b04e8f2337660a2147f63736beb0603255768c8c", + "flex-abspos-staticpos-justify-content-006-expected.txt": [ + "662f4049e95adabe52d43cc28e2e8eb14de12005", [] ], - "flex-abspos-staticpos-justify-content-007-ref.html": [ - "2da4bf974f674b2692520ecd40c503392c31087b", + "flex-abspos-staticpos-justify-content-007-expected.txt": [ + "b79de1d9d73753ef92e30332405529e25fa96eac", [] ], - "flex-abspos-staticpos-justify-content-008-ref.html": [ - "2da4bf974f674b2692520ecd40c503392c31087b", + "flex-abspos-staticpos-justify-content-008-expected.txt": [ + "905caa8a7c37b04be42260af53cac2e87f5f50be", [] ], - "flex-abspos-staticpos-justify-content-rtl-001-ref.html": [ - "2c70fa14a6464d28dcd656f4f429beae9e892ec0", + "flex-abspos-staticpos-justify-content-rtl-001-expected.txt": [ + "62b9b9aa6b0568700fc2b1d7b4b510f9e4c21736", [] ], - "flex-abspos-staticpos-justify-content-rtl-002-ref.html": [ - "8901d350f84c19eacbc478d40ebcc00c210ad090", + "flex-abspos-staticpos-justify-content-rtl-002-expected.txt": [ + "dac10617cfbebd6f5aa4db365642550c4b36b4b0", [] ], - "flex-abspos-staticpos-justify-content-vertWM-001-ref.html": [ - "64a85443a4b85aa8a7b791b96b62bc29a8f994f3", + "flex-abspos-staticpos-justify-content-vertWM-001-expected.txt": [ + "c3c8327e73314ec3f3397a24a459f7d2d737476c", [] ], - "flex-abspos-staticpos-justify-content-vertWM-002-ref.html": [ - "3e109d01e63c4b612543d24018e98a6f9ddebc76", + "flex-abspos-staticpos-justify-content-vertWM-002-expected.txt": [ + "fb8f99d661447fd30abba9df9ec34eae0359f6ef", [] ], "flex-abspos-staticpos-justify-self-001-ref.html": [ @@ -290858,7 +290562,7 @@ "urlpattern": { "resources": { "urlpatterntestdata.json": [ - "66e79b23edba779e1eefb1c0929767042532c562", + "019bf4f9170abd0818b1b5e86396264691bc9211", [] ] } @@ -329387,7 +329091,7 @@ ] ], "CSS-supports-CSSStyleDeclaration.html": [ - "3a9786c510dedc80cf7a5af143960fbeb7a09371", + "a27e385faf849132b26a9c71e5edd71e41410db0", [ null, {} @@ -330035,6 +329739,174 @@ {} ] ], + "flex-abspos-staticpos-align-self-001.html": [ + "7fb82d4f9259b6e628629fbe59ae84eae64474d4", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-002.html": [ + "3c8896bc2778670894cf6e5da690e883ae3b3b6c", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-003.html": [ + "4208ff25e66620a54e89e413bdf2a792f61d7032", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-004.html": [ + "b1bb61394912d96d37bfbd7085d481c8cafd0682", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-005.html": [ + "ae9d263ea07b2d769371210ae3ed043348c17c18", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-006.html": [ + "60e4c4d1d6c9c854aa0dcb594c58dde2b07f23d6", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-007.html": [ + "7e09b41d79175b8e26d2ba3fb313e98d5d3f4ac4", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-008.html": [ + "1e692a87611c466a0205feba6ebda8e0db052c5f", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-rtl-001.html": [ + "703b9bb2f9cb97d42f7f23011242825d03191628", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-rtl-002.html": [ + "c09c6fa1678b77450c248de92b4749a8c31bac52", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-rtl-003.html": [ + "39038b95f898096e1271011393f503028fa77e6a", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-align-self-rtl-004.html": [ + "fc61e6cf9b0a66fcc79258ae612d95cc9d78186e", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-001.html": [ + "afcecaafd24465bab13b1f45c879886e52c48409", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-002.html": [ + "e56c8c7fc5f9fd0e777bd0dd7e967a207154759c", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-003.html": [ + "660dcc247b0f6247405cdd59e7511c65ca6082b3", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-004.html": [ + "b84cb99be1f8578b098803c0f93b44ef725d2fca", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-005.html": [ + "058d9e8fd8b68721d7f347019ba81c8650402d07", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-006.html": [ + "bc07dac374af4685235fad5fc43c93f872f6adfe", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-007.html": [ + "153381b2418809f71e0dab71152d8351abb0823c", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-008.html": [ + "0ff5aa829acaa915fe2de97f7dddcd2b2b3ed8b7", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-rtl-001.html": [ + "0d7593b26b02d68f656ec507a89cb124d03125d2", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-rtl-002.html": [ + "7aa31aaabcaf7b0bce939cbecae642385849bbce", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-vertWM-001.html": [ + "f9038aad0509611c46c750be6f2ea4aade68d5ff", + [ + null, + {} + ] + ], + "flex-abspos-staticpos-justify-content-vertWM-002.html": [ + "363d6daf06c039eec11e360d0d9ccec3684e8778", + [ + null, + {} + ] + ], "position-absolute-001.html": [ "f60174084652a3373c6b1873e02da373575c53cd", [ @@ -338502,7 +338374,7 @@ ] ], "position-sticky-offset-overflow.html": [ - "f4afed406ae8cc1af0aa4dd6b379ba3335a70f26", + "4882e110eb58b76675fb5453092c117c4752d780", [ null, {} @@ -340473,7 +340345,14 @@ {} ] ] - } + }, + "shape-image-028.html": [ + "034a5f5c07c8b85d81c6d846a695d98b5e98c987", + [ + null, + {} + ] + ] }, "values": { "shape-image-threshold-000.html": [ @@ -385424,6 +385303,13 @@ ] }, "source": { + "navigate-child-function-parent-then-fragment.html": [ + "d01ef4c77ad853e49d003b391051c089a695908c", + [ + null, + {} + ] + ], "navigate-child-function-parent.html": [ "2efc3a6b4a64a8d0e7ded64e7f1eb3f95b3dc634", [ @@ -454572,6 +454458,13 @@ {} ] ], + "buffer-full-then-decreased.html": [ + "21912d978b294d48ad5eff70bef3a1eab59ad750", + [ + null, + {} + ] + ], "buffer-full-then-increased.html": [ "de517bf405c66e94e72f942de33ac6ab72807e2d", [ @@ -454947,13 +454840,6 @@ {} ] ], - "resource_timing_buffer_full_when_shrink_buffer_size.html": [ - "e42c19d05e081ec3673606b4f0d686f0e69e65d8", - [ - null, - {} - ] - ], "resource_timing_content_length.html": [ "32bd8a97e07341323061512698a565232f1972bd", [ @@ -482068,7 +481954,7 @@ ] ], "video-frame-serialization.any.js": [ - "83b5ad060a09b10648eea6b07fd72303e9064c58", + "bec6dfe726f699f2b0cc73a38bf7ec7045d54a21", [ "webcodecs/video-frame-serialization.any.html", { @@ -482109,7 +481995,7 @@ ] ], "video-frame.any.js": [ - "a3768a56677f21b7f1b77f99aa7a7a76e5cb8f9f", + "540023d5594d2f8d36f5ba643b8ede535d5cf79d", [ "webcodecs/video-frame.any.html", { @@ -482142,7 +482028,7 @@ ] ], "videoDecoder-codec-specific.any.js": [ - "55d8310050994d0fd6aa9ea42d0d937e14688c49", + "c4466bd8e50b19e73025f4f88bee3524784f204d", [ "webcodecs/videoDecoder-codec-specific.any.html?av1", { @@ -482461,6 +482347,31 @@ {} ] ], + "videoFrame-copyTo.any.js": [ + "e7a29acff6370ed9d81832ab7469496204be40ec", + [ + "webcodecs/videoFrame-copyTo.any.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ] + ] + } + ], + [ + "webcodecs/videoFrame-copyTo.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ] + ] + } + ] + ], "videoFrame-createImageBitmap.any.js": [ "7b08d292084ba79b64f9479df8b91a53f26d8293", [ @@ -482527,31 +482438,6 @@ } ] ], - "videoFrame-readInto.any.js": [ - "c94252c87eeacf149f158dcf219f628efe09e671", - [ - "webcodecs/videoFrame-readInto.any.html", - { - "script_metadata": [ - [ - "global", - "window,dedicatedworker" - ] - ] - } - ], - [ - "webcodecs/videoFrame-readInto.any.worker.html", - { - "script_metadata": [ - [ - "global", - "window,dedicatedworker" - ] - ] - } - ] - ], "videoFrame-texImage.any.js": [ "71a164e0ed997590013269f31f79e03b81fcdc2f", [
diff --git a/third_party/blink/web_tests/external/wpt/css/css-conditional/js/CSS-supports-CSSStyleDeclaration-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-conditional/js/CSS-supports-CSSStyleDeclaration-expected.txt index 9a004d7..2e621a2 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-conditional/js/CSS-supports-CSSStyleDeclaration-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/css-conditional/js/CSS-supports-CSSStyleDeclaration-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 1522 tests; 1495 PASS, 27 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1507 tests; 1480 PASS, 27 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS -apple-color-filter: _camel_cased_attribute v. CSS.supports PASS -apple-color-filter: _webkit_cased_attribute must only exist for -webkit- PASS -apple-color-filter: _dashed_attribute v. CSS.supports @@ -195,21 +195,6 @@ PASS -moz-osx-font-smoothing: _camel_cased_attribute v. CSS.supports PASS -moz-osx-font-smoothing: _webkit_cased_attribute must only exist for -webkit- PASS -moz-osx-font-smoothing: _dashed_attribute v. CSS.supports -PASS -moz-outline-radius: _camel_cased_attribute v. CSS.supports -PASS -moz-outline-radius: _webkit_cased_attribute must only exist for -webkit- -PASS -moz-outline-radius: _dashed_attribute v. CSS.supports -PASS -moz-outline-radius-bottomleft: _camel_cased_attribute v. CSS.supports -PASS -moz-outline-radius-bottomleft: _webkit_cased_attribute must only exist for -webkit- -PASS -moz-outline-radius-bottomleft: _dashed_attribute v. CSS.supports -PASS -moz-outline-radius-bottomright: _camel_cased_attribute v. CSS.supports -PASS -moz-outline-radius-bottomright: _webkit_cased_attribute must only exist for -webkit- -PASS -moz-outline-radius-bottomright: _dashed_attribute v. CSS.supports -PASS -moz-outline-radius-topleft: _camel_cased_attribute v. CSS.supports -PASS -moz-outline-radius-topleft: _webkit_cased_attribute must only exist for -webkit- -PASS -moz-outline-radius-topleft: _dashed_attribute v. CSS.supports -PASS -moz-outline-radius-topright: _camel_cased_attribute v. CSS.supports -PASS -moz-outline-radius-topright: _webkit_cased_attribute must only exist for -webkit- -PASS -moz-outline-radius-topright: _dashed_attribute v. CSS.supports PASS -moz-padding-end: _camel_cased_attribute v. CSS.supports PASS -moz-padding-end: _webkit_cased_attribute must only exist for -webkit- PASS -moz-padding-end: _dashed_attribute v. CSS.supports
diff --git a/third_party/blink/web_tests/external/wpt/css/css-conditional/js/CSS-supports-CSSStyleDeclaration.html b/third_party/blink/web_tests/external/wpt/css/css-conditional/js/CSS-supports-CSSStyleDeclaration.html index 3a9786c5..a27e385f 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-conditional/js/CSS-supports-CSSStyleDeclaration.html +++ b/third_party/blink/web_tests/external/wpt/css/css-conditional/js/CSS-supports-CSSStyleDeclaration.html
@@ -77,11 +77,6 @@ "-moz-margin-start", "-moz-orient", "-moz-osx-font-smoothing", - "-moz-outline-radius", - "-moz-outline-radius-bottomleft", - "-moz-outline-radius-bottomright", - "-moz-outline-radius-topleft", - "-moz-outline-radius-topright", "-moz-padding-end", "-moz-padding-start", "-moz-perspective",
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-001-ref.html new file mode 100644 index 0000000..b058789 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-001-ref.html
@@ -0,0 +1,9 @@ +<!doctype html> +<meta charset="utf-8"> +<style> + .highlighted { + background-color: yellow; + color: blue; + } +</style> +<body><span class="highlighted">One two </span><span>three…</span>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-001.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-001.html new file mode 100644 index 0000000..ede3383 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-001.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="::highlight overlay is painted"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span>One </span><span>two </span><span>three…</span> +<script> + let r = new Range(); + r.setStart(document.body, 0); + r.setEnd(document.body, 2); + + CSS.highlights.add(new Highlight("example-highlight", r)); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-002-ref.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-002-ref.html new file mode 100644 index 0000000..d063bbd4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-002-ref.html
@@ -0,0 +1,8 @@ +<!doctype html> +<meta charset="utf-8"> +<style> + div { + color: red; + } +</style> +<body><div>abc</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-002.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-002.html new file mode 100644 index 0000000..0926c35 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-002.html
@@ -0,0 +1,23 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-002-ref.html"> +<meta name="assert" value="Latest Highlight added to CSS.highlights has higher priority than the previous ones if there were no priorities explicitly set"> +<style> + div::highlight(bar) { + color: red; + } + div::highlight(foo) { + color: green; + } +</style> +<body><div>abc</div> +<script> + let div = document.body.firstChild; + let r = new Range(); + r.setStart(div, 0); + r.setEnd(div, 1); + CSS.highlights.add(new Highlight('foo', r)); + CSS.highlights.add(new Highlight('bar', r)); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-003-ref.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-003-ref.html new file mode 100644 index 0000000..b2dccfa5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-003-ref.html
@@ -0,0 +1,6 @@ +<!doctype html> +<meta charset="utf-8"> +<style> + span { background-color: rgba(0, 0, 255, 0.3); } +</style> +<body>L<span>orem I</span>psum. \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-003.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-003.html new file mode 100644 index 0000000..972a0e6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-003.html
@@ -0,0 +1,23 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-003-ref.html"> +<meta name="assert" value="Intersections of overlapping ranges contained in the same Highlight are painted only once"> +<style> + ::highlight(sample) { background-color: rgba(0, 0, 255, 0.3); } +</style> +<body>Lorem Ipsum. +<script> + let textNode = document.body.firstChild; + + let r1 = new Range(); + r1.setStart(textNode, 1); + r1.setEnd(textNode, 5); + + let r2 = new Range(); + r2.setStart(textNode, 3); + r2.setEnd(textNode, 7); + + CSS.highlights.add(new Highlight("sample", r1, r2)); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004-2-ref.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004-2-ref.html new file mode 100644 index 0000000..4ad1de63 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004-2-ref.html
@@ -0,0 +1,16 @@ +<!doctype html> +<meta charset="utf-8"> +<style> + .foo { + color:blue; + background-color:yellow; + } + .bar { + color:orange; + } + .bar-over-foo { + color:orange; + background-color:yellow; + } +</style> +<body><span class="foo">Som</span><span class="bar-over-foo">e t</span><span class="bar">ext</span> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004-2.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004-2.html new file mode 100644 index 0000000..accbd8b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004-2.html
@@ -0,0 +1,33 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-004-2-ref.html"> +<meta name="assert" value="When painting overlapping highlights with the same .priority, the one added last should be painted on top; and style properties not defined by the one on top (background-color in this case) should follow the rules of the next Highlight from top to bottom until there's one that overwrites default (or use default value otherwise)."> +<style> + ::highlight(foo) { + color:blue; + background-color:yellow; + } + ::highlight(bar) { + color:orange; + } +</style> +<body>Some text +<script> + let textNode = document.body.firstChild; + + let r1 = new Range(); + r1.setStart(textNode, 0); + r1.setEnd(textNode, 6); + + let r2 = new Range(); + r2.setStart(textNode, 3); + r2.setEnd(textNode, 9); + + let h1 = new Highlight("foo", r1); + let h2 = new Highlight("bar", r2); + + CSS.highlights.add(h1); + CSS.highlights.add(h2); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004-ref.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004-ref.html new file mode 100644 index 0000000..8cb5b69 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004-ref.html
@@ -0,0 +1,16 @@ +<!doctype html> +<meta charset="utf-8"> +<style> + .foo { + color:blue; + background-color:yellow; + } + .bar { + background-color:orange; + } + .bar-over-foo { + color:blue; + background-color:orange; + } +</style> +<body><span class="foo">Som</span><span class="bar-over-foo">e t</span><span class="bar">ext</span> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004.html new file mode 100644 index 0000000..4ca7979 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-004.html
@@ -0,0 +1,33 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-004-ref.html"> +<meta name="assert" value="When painting overlapping highlights with the same .priority, the one added last should be painted on top; and style properties not defined by the one on top (color in this case) should follow the rules of the next Highlight from top to bottom until there's one that overwrites default (or use default value otherwise)."> +<style> + ::highlight(foo) { + color:blue; + background-color:yellow; + } + ::highlight(bar) { + background-color:orange; + } +</style> +<body>Some text +<script> + let textNode = document.body.firstChild; + + let r1 = new Range(); + r1.setStart(textNode, 0); + r1.setEnd(textNode, 6); + + let r2 = new Range(); + r2.setStart(textNode, 3); + r2.setEnd(textNode, 9); + + let h1 = new Highlight("foo", r1); + let h2 = new Highlight("bar", r2); + + CSS.highlights.add(h1); + CSS.highlights.add(h2); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-005.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-005.html new file mode 100644 index 0000000..9209d94e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-005.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted after modifying (setEnd()) a Range contained in it"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span>One </span><span>two </span><span>three…</span> +<script> + let r = new Range(); + r.setStart(document.body, 0); + r.setEnd(document.body, 1); + CSS.highlights.add(new Highlight("example-highlight", r)); + r.setEnd(document.body, 2); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-006.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-006.html new file mode 100644 index 0000000..4a9e88b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-006.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted after modifying (setStart()) a Range contained in it"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span>One </span><span>two </span><span>three…</span> +<script> + let r = new Range(); + r.setStart(document.body, 1); + r.setEnd(document.body, 2); + CSS.highlights.add(new Highlight("example-highlight", r)); + r.setStart(document.body, 0); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-007.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-007.html new file mode 100644 index 0000000..0e58131c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-007.html
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted after adding a Range to it after registering it in the HighlightRegistry"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span>One </span><span>two </span><span>three…</span> +<script> + let r1 = new Range(); + r1.setStart(document.body, 0); + r1.setEnd(document.body, 1); + let h = new Highlight("example-highlight", r1); + let r2 = new Range(); + r2.setStart(document.body, 1); + r2.setEnd(document.body, 2); + CSS.highlights.add(h); + h.add(r2); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-008.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-008.html new file mode 100644 index 0000000..68b4b8c8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-008.html
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted after deleting a Range from it after registering it in the HighlightRegistry"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span>One </span><span>two </span><span>three…</span> +<script> + let r1 = new Range(); + r1.setStart(document.body, 0); + r1.setEnd(document.body, 2); + let r2 = new Range(); + r2.setStart(document.body, 1); + r2.setEnd(document.body, 3); + let h = new Highlight("example-highlight", r1, r2); + CSS.highlights.add(h); + h.delete(r2); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-009.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-009.html new file mode 100644 index 0000000..9214c16 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-009.html
@@ -0,0 +1,30 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted correctly when collapsing a Range after registering a Highlight that contains it in the HighlightRegistry"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } + ::highlight(another-highlight) { + background-color: red; + color: orange; + } +</style> +<body><span>One </span><span>two </span><span>three…</span> +<script> + let r1 = new Range(); + r1.setStart(document.body, 0); + r1.setEnd(document.body, 2); + let r2 = new Range(); + r2.setStart(document.body, 1); + r2.setEnd(document.body, 3); + let h1 = new Highlight("example-highlight", r1); + let h2 = new Highlight("another-highlight", r2); + CSS.highlights.add(h1); + CSS.highlights.add(h2); + r2.collapse(); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-010.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-010.html new file mode 100644 index 0000000..ca5755d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-010.html
@@ -0,0 +1,22 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted correctly after inserting a node in the middle of a Range contained in it"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span>two </span><span>three…</span> +<script> + let r = new Range(); + r.setStart(document.body, 0); + r.setEnd(document.body, 1); + CSS.highlights.add(new Highlight("example-highlight", r)); + let newNode = document.createElement("span"); + newNode.innerText = "One "; + document.body.insertBefore(newNode, document.body.firstChild); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-011.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-011.html new file mode 100644 index 0000000..f37680eb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-011.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted correctly after removing a node included in a Range contained in it"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span>One </span><span>two </span><span>two-point-five </span><span>three…</span> +<script> + let r = new Range(); + r.setStart(document.body, 0); + r.setEnd(document.body, 3); + CSS.highlights.add(new Highlight("example-highlight", r)); + document.body.removeChild(document.body.children[2]); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-012.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-012.html new file mode 100644 index 0000000..eb3cbea0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-012.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted correctly after modifying the inner text of a node included in a Range contained in it"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span>Zero </span><span>two </span><span>three…</span> +<script> + let r = new Range(); + r.setStart(document.body, 0); + r.setEnd(document.body, 2); + CSS.highlights.add(new Highlight("example-highlight", r)); + document.body.firstChild.innerText = "One "; +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-013.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-013.html new file mode 100644 index 0000000..6bb21bf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-013.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted correctly after modifying text content of a node included in a Range contained in it"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span id="first">One </span><span id="second">two-point-five </span><span id="third">three…</span> +<script> + let r = new Range(); + r.setStart(document.querySelector("#first").firstChild, 0); + r.setEnd(document.querySelector("#third").firstChild, 0); + CSS.highlights.add(new Highlight("example-highlight", r)); + document.querySelector("#second").firstChild.textContent = "two "; +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-grammar-ref.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-grammar-ref.html new file mode 100644 index 0000000..d660daf7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-grammar-ref.html
@@ -0,0 +1,9 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<style> + ::grammar-error { + background-color: lime; + color: green; + } +</style> +<span>Many thing can happen.</span> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-grammar.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-grammar.html new file mode 100644 index 0000000..f6b4839a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-grammar.html
@@ -0,0 +1,31 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-below-grammar-ref.html"> +<meta name="assert" value="Highlight overlay is painted below all other pseudo overlays (comparing only to grammar suffices since it's the one immediately above ::highlight, assuming ::grammar-error is painted in the correct order)"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } + ::grammar-error { + background-color: lime; + color: green; + } +</style> +<!-- + The grammar mistakes in the text below are intentional and part of this test. + + https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking + • contenteditable makes the text “checkable for the purposes of [spelling and grammar checking]” + • spellcheck tries to enable spelling and grammar checking (subject to user preferences) + • lang tries to guide the UA towards checking the text in English (but the UA may ignore this) +--> +<span contenteditable="true" spellcheck="true" lang="en">Many thing can happen.</div> +<script> + let r = new Range(); + r.setStart(document.body, 0); + r.setEnd(document.body, 1); + CSS.highlights.add(new Highlight("example-highlight", r)); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-target-text-ref.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-target-text-ref.html new file mode 100644 index 0000000..70d69263 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-target-text-ref.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<style> + #highlight { + background-color: yellow; + color: limegreen; + } + #highlight-and-target-text { + background-color: orange; + color: limegreen; + } + #target-text { + background-color: orange; + } +</style> +<span id="highlight">Some </span><span id="highlight-and-target-text">te</span><span id="target-text">xt</span> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-target-text.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-target-text.html new file mode 100644 index 0000000..99e7af7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-below-target-text.html
@@ -0,0 +1,23 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-below-target-text-ref.html"> +<meta name="assert" value="Style properties defined in a ::highlight shouldn't be overriden by default values if there's another pseudo overlay painted on top of it (::target-text in this case) which doesn't specify a value for that property (color in this case)"> +<style> + ::highlight(foo) { + color:limegreen; + background-color:yellow; + } + ::target-text { + background-color:orange; + } +</style> +<body>Some text +<script> + let r = new Range(); + r.setStart(document.body.firstChild, 0); + r.setEnd(document.body.firstChild, 7); + CSS.highlights.add(new Highlight("foo", r)); + window.location.href = `custom-highlight-painting-below-target-text.html#:~:text=text`; +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-prioritization-001.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-prioritization-001.html new file mode 100644 index 0000000..88c7716a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-prioritization-001.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlights are prioritized correctly by changing their .priority (higher priority is painted on top no matter the order of insertion into the HighlightRegistry)"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } + ::highlight(another-highlight) { + background-color: red; + color: orange; + } +</style> +<body><span>One </span><span>two </span><span>three…</span> +<script> + let r = new Range(); + r.setStart(document.body, 0); + r.setEnd(document.body, 2); + let h1 = new Highlight("example-highlight", r); + let h2 = new Highlight("another-highlight", r); + h1.priority = 2; + h2.priority = 1; + CSS.highlights.add(h1); + CSS.highlights.add(h2); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-prioritization-002.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-prioritization-002.html new file mode 100644 index 0000000..9c9b05c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-prioritization-002.html
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlights are repainted correctly when changing their priority after adding them to the HighlightRegistry"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } + ::highlight(another-highlight) { + background-color: red; + color: orange; + } +</style> +<body><span>One </span><span>two </span><span>three…</span> +<script> + let r = new Range(); + r.setStart(document.body, 0); + r.setEnd(document.body, 2); + let h1 = new Highlight("example-highlight", r); + let h2 = new Highlight("another-highlight", r); + CSS.highlights.add(h1); + CSS.highlights.add(h2); + h1.priority = 1; +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-001-ref.html new file mode 100644 index 0000000..a89d86d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-001-ref.html
@@ -0,0 +1,3 @@ +<!doctype html> +<meta charset="utf-8"> +<body><span>One two three…</span>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-001.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-001.html new file mode 100644 index 0000000..1d0a6f92 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-001.html
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-staticrange-001-ref.html"> +<meta name="assert" value="StaticRanges that are invalid, collapsed or that cross only one boundary of a css-contain node should not be painted when they're in a Highlight"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } + #second { + contain: style; + } +</style> +<body><span id="first">One </span><span id="second">two </span><span id="third">three…</span> +<script> + let h = new Highlight("example-highlight"); + h.add(new StaticRange({startContainer: document.body, startOffset: 0, endContainer: document.body, endOffset: 0})); + h.add(new StaticRange({startContainer: document.body, startOffset: 1, endContainer: document.body, endOffset: 0})); + h.add(new StaticRange({startContainer: document.body, startOffset: 1, endContainer: document.body, endOffset: 100})); + h.add(new StaticRange({startContainer: document, startOffset: 0, endContainer: document, endOffset: 1})); + h.add(new StaticRange({startContainer: document.querySelector("#third").firstChild, startOffset: 1, endContainer: document.querySelector("#first").firstChild, endOffset: 2})); + h.add(new StaticRange({startContainer: document.querySelector("#first").firstChild, startOffset: 1, endContainer: document.querySelector("#second").firstChild, endOffset: 2})); + h.add(new StaticRange({startContainer: document.querySelector("#second").firstChild, startOffset: 1, endContainer: document.querySelector("#third").firstChild, endOffset: 2})); + CSS.highlights.add(h); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-002.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-002.html new file mode 100644 index 0000000..ed280f7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-002.html
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="StaticRanges crossing both boundaries of a css-contain (i.e. containing it entirely) should be painted"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } + #contained { + contain: style; + } +</style> +<body><span>One <span id="contained">two </span>three…</span> +<script> + let h = new Highlight("example-highlight"); + h.add(new StaticRange({startContainer: document.body.firstChild.childNodes[0], startOffset: 0, endContainer: document.body.firstChild.childNodes[2], endOffset: 0})); + CSS.highlights.add(h); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-003.html b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-003.html new file mode 100644 index 0000000..e621ca3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-highlight-api/painting/custom-highlight-painting-staticrange-003.html
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>CSS Highlight API Test: </title> +<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> +<link rel="match" href="custom-highlight-painting-001-ref.html"> +<meta name="assert" value="Highlight is repainted correctly after removing a node included in a StaticRange contained in it (StaticRange not modified)"> +<style> + ::highlight(example-highlight) { + background-color: yellow; + color: blue; + } +</style> +<body><span>One </span><span>one-point-five </span><span>two </span><span>three…</span> +<script> + let r = new StaticRange({startContainer: document.body, startOffset: 0, endContainer: document.body, endOffset: 2}); + CSS.highlights.add(new Highlight("example-highlight", r)); + document.body.removeChild(document.body.children[1]); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/preserve3d-and-filter-with-perspective-ref.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/preserve3d-and-filter-with-perspective-ref.html index 93fb41a7..590085f9 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-transforms/preserve3d-and-filter-with-perspective-ref.html +++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/preserve3d-and-filter-with-perspective-ref.html
@@ -28,7 +28,6 @@ left: 0; width: 200px; height: 200px; - filter: blur(1px); background: white; transform: rotateX(90deg) translate3d(0,-60px,0); } @@ -51,7 +50,7 @@ </div> <svg class="cover"> - <polygon fill="black" stroke="blue" stroke-width="9" + <polygon fill="black" stroke="blue" stroke-width="11" points="103.793,476.3579 140.7813,449.3585 340.0185,450.1613
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/preserve3d-and-filter-with-perspective.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/preserve3d-and-filter-with-perspective.html index 8c0b0057..240ce6e 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-transforms/preserve3d-and-filter-with-perspective.html +++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/preserve3d-and-filter-with-perspective.html
@@ -78,7 +78,7 @@ <!-- cover the blurred edge so we can match to a reference --> <svg class="cover"> - <polygon fill="transparent" stroke="blue" stroke-width="9" + <polygon fill="transparent" stroke="blue" stroke-width="11" points="103.793,476.3579 140.7813,449.3585 340.0185,450.1613
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-function-parent-then-fragment.html b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-function-parent-then-fragment.html new file mode 100644 index 0000000..d01ef4c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-function-parent-then-fragment.html
@@ -0,0 +1,36 @@ +<!doctype html> +<meta charset=utf-8> +<title> + Set location from a parent, then do a fragment navigation from within the + frame. +</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe></iframe> +<script> + promise_test(async test => { + // Wait for the DOM to be ready before inserting an <iframe> into it. + await new Promise(resolve => { onload = resolve }); + // Insert an <iframe> and wait for a dummy document to be loaded into it. + let iframe = document.createElement("iframe"); + iframe.src = "support/dummy.html"; + let iframe_loaded = new Promise(resolve => { iframe.onload = resolve }); + document.body.appendChild(iframe); + await iframe_loaded; + // The referrer is the main frame's URL since it initiated the iframe + // creation. + assert_equals(iframe.contentDocument.referrer, document.URL); + // Do a fragment navigation from the frame, which will fire the + // 'hashchange' function. + let hash_changed = new Promise(resolve => { + iframe.contentWindow.onhashchange = resolve + }); + let navigateScript = iframe.contentDocument.createElement("script"); + navigateScript.innerHTML = "location.href = '#foo'"; + iframe.contentDocument.body.appendChild(navigateScript); + await hash_changed; + // The referrer stays the same, even when the last navigation was + // initiated by the iframe (instead of the main frame document). + assert_equals(iframe.contentDocument.referrer, document.URL); + }); +</script>
diff --git a/third_party/blink/web_tests/fast/css-grid-layout/crash-large-offset.html b/third_party/blink/web_tests/fast/css-grid-layout/crash-large-offset.html new file mode 100644 index 0000000..3c00a9a --- /dev/null +++ b/third_party/blink/web_tests/fast/css-grid-layout/crash-large-offset.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<title>Test using large start offset.</title> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<script src="resources/grid-definitions-parsing-utils.js"></script> + +<input id="item" style=" display: grid; grid-gap: 0px 3px; border-left-width: 100000000px;" type="week"></input> + +<script> + test(function () { + testGridPositionDefinitionsValues(document.getElementById("item"), "auto", "auto", "auto", "auto"); + }, "Test that setting and getting grid-column|row-start|end to huge values is properly clamped and does not make the renderer crash."); +</script> \ No newline at end of file
diff --git a/third_party/freetype/README.chromium b/third_party/freetype/README.chromium index 7f19892..aec7363 100644 --- a/third_party/freetype/README.chromium +++ b/third_party/freetype/README.chromium
@@ -1,7 +1,7 @@ Name: FreeType URL: http://www.freetype.org/ -Version: VER-2-10-4-278-g8336d53cf -Revision: 8336d53cff9f78bb48f1ba4aa670c1d8d81d1808 +Version: VER-2-10-4-279-gc6fcd6122 +Revision: c6fcd61228ea349e76aa4f09442c431308da3262 CPEPrefix: cpe:/a:freetype:freetype:2.10.4 License: Custom license "inspired by the BSD, Artistic, and IJG (Independent JPEG Group) licenses"
diff --git a/third_party/libjxl/BUILD.gn b/third_party/libjxl/BUILD.gn index e4a1566..21c116f 100644 --- a/third_party/libjxl/BUILD.gn +++ b/third_party/libjxl/BUILD.gn
@@ -21,7 +21,19 @@ cflags_cc = [ "-Wno-unused-function" ] - defines = libjxl_version_defines + [ "JPEGXL_ENABLE_SKCMS=1" ] + defines = libjxl_version_defines + [ + "JPEGXL_ENABLE_SKCMS=1", + # Disabling decode-to-JPEG bytes in the library removes about 20% of the + # binary size (as measured in android arm builds). Transcoding back to JPEG + # is not used in Chrome, only decoding to pixels is used even for files that + # were originally transcoded *from* JPEG. + "JPEGXL_ENABLE_TRANSCODE_JPEG=0" + ] + + if (is_official_build) { + # Disable assertion messages, saving about 6 kB in android. + defines += [ "JXL_DEBUG_ON_ABORT=0" ] + } include_dirs = [ "src",
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index e3f0d7c..2aa0f69 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -2188,8 +2188,10 @@ # standard Windows trybot and the dedicated coverage trybot is no longer # needed. 'gpu_tests_release_trybot_resource_allowlisting_code_coverage': [ - 'gpu_tests', 'release_trybot', 'resource_allowlisting', + 'gpu_tests', 'release_trybot', 'no_resource_allowlisting', 'use_clang_coverage', 'partial_code_coverage_instrumentation', + # TODO(svenzheng): Move this to 'release_trybot' if there are no objections. + 'no_symbols', ], 'gpu_tests_release_trybot_resource_allowlisting_invert_fieldtrials': [ @@ -2875,6 +2877,10 @@ 'args_file': '//build/args/chromeos/betty-pi-arc.gni', }, + 'blink_disable_generated_code_formatting': { + 'gn_args': 'blink_enable_generated_code_formatting=false' + }, + 'cast': { 'gn_args': 'is_chromecast=true' }, @@ -3435,7 +3441,8 @@ }, 'release_trybot': { - 'mixins': ['release_bot', 'minimal_symbols', 'dcheck_always_on'], + 'mixins': ['release_bot', 'minimal_symbols', 'dcheck_always_on', + 'blink_disable_generated_code_formatting'], }, 'release_trybot_blink': { @@ -3443,11 +3450,13 @@ }, 'release_trybot_dcheck_off': { - 'mixins': ['release_trybot', 'dcheck_off',], + 'mixins': ['release_trybot', 'dcheck_off', + 'blink_disable_generated_code_formatting'], }, 'release_trybot_reclient': { - 'mixins': ['release_bot_reclient', 'minimal_symbols', 'dcheck_always_on'], + 'mixins': ['release_bot_reclient', 'minimal_symbols', 'dcheck_always_on', + 'blink_disable_generated_code_formatting'], }, 'resource_allowlisting': {
diff --git a/tools/mb/mb_config_expectations/chromium.angle.json b/tools/mb/mb_config_expectations/chromium.angle.json index 0aa0f899..4f690e7 100644 --- a/tools/mb/mb_config_expectations/chromium.angle.json +++ b/tools/mb/mb_config_expectations/chromium.angle.json
@@ -14,6 +14,7 @@ }, "android-angle-chromium-arm64-builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -44,6 +45,7 @@ }, "ios-angle-builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_deqp_tests": true, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, @@ -75,6 +77,7 @@ }, "linux-angle-chromium-builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -99,6 +102,7 @@ }, "mac-angle-chromium-builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -110,6 +114,7 @@ }, "win-angle-chromium-x64-builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -121,6 +126,7 @@ }, "win-angle-chromium-x86-builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false,
diff --git a/tools/mb/mb_config_expectations/chromium.dawn.json b/tools/mb/mb_config_expectations/chromium.dawn.json index ee6ec06..9edb80e4 100644 --- a/tools/mb/mb_config_expectations/chromium.dawn.json +++ b/tools/mb/mb_config_expectations/chromium.dawn.json
@@ -1,6 +1,7 @@ { "Dawn Linux x64 Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -11,6 +12,7 @@ }, "Dawn Linux x64 DEPS Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -21,6 +23,7 @@ }, "Dawn Mac x64 Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -31,6 +34,7 @@ }, "Dawn Mac x64 DEPS Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -41,6 +45,7 @@ }, "Dawn Win10 x64 ASAN Release": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_asan": true, "is_component_build": false, @@ -52,6 +57,7 @@ }, "Dawn Win10 x64 Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -62,6 +68,7 @@ }, "Dawn Win10 x64 DEPS Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -72,6 +79,7 @@ }, "Dawn Win10 x86 Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -83,6 +91,7 @@ }, "Dawn Win10 x86 DEPS Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false,
diff --git a/tools/mb/mb_config_expectations/chromium.fyi.json b/tools/mb/mb_config_expectations/chromium.fyi.json index 6826059..7c662d937 100644 --- a/tools/mb/mb_config_expectations/chromium.fyi.json +++ b/tools/mb/mb_config_expectations/chromium.fyi.json
@@ -220,6 +220,7 @@ }, "Linux Viz": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -368,6 +369,7 @@ }, "Win 10 Fast Ring": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -398,6 +400,7 @@ }, "android-backuprefptr-arm-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_backup_ref_ptr_slow_checks": true, "enable_brp_directmap_support": true, @@ -418,6 +421,7 @@ }, "android-backuprefptr-arm64-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_backup_ref_ptr_slow_checks": true, "enable_brp_directmap_support": true, @@ -746,6 +750,7 @@ }, "linux-backuprefptr-x64-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_backup_ref_ptr_slow_checks": true, "enable_brp_directmap_support": true, @@ -772,6 +777,7 @@ }, "linux-blink-heap-concurrent-marking-tsan-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -984,6 +990,7 @@ }, "mac-paeverywhere-x64-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -1009,6 +1016,7 @@ }, "win-backuprefptr-x64-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_backup_ref_ptr_slow_checks": true, "enable_brp_directmap_support": true, @@ -1026,6 +1034,7 @@ }, "win-backuprefptr-x86-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_backup_ref_ptr_slow_checks": true, "enable_brp_directmap_support": true,
diff --git a/tools/mb/mb_config_expectations/chromium.gpu.fyi.json b/tools/mb/mb_config_expectations/chromium.gpu.fyi.json index 640f2a4..140ce4f 100644 --- a/tools/mb/mb_config_expectations/chromium.gpu.fyi.json +++ b/tools/mb/mb_config_expectations/chromium.gpu.fyi.json
@@ -1,6 +1,7 @@ { "ANGLE GPU Android Release (Nexus 5X)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -15,6 +16,7 @@ }, "Android FYI Release (NVIDIA Shield TV)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -29,6 +31,7 @@ }, "Android FYI Release (Nexus 5)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -42,6 +45,7 @@ }, "Android FYI Release (Nexus 5X)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -56,6 +60,7 @@ }, "Android FYI Release (Nexus 6)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -69,6 +74,7 @@ }, "Android FYI Release (Nexus 9)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -83,6 +89,7 @@ }, "Android FYI Release (Pixel 2)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -96,6 +103,7 @@ }, "Android FYI Release (Pixel 4)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -109,6 +117,7 @@ }, "Android FYI SkiaRenderer GL (Nexus 5X)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -123,6 +132,7 @@ }, "Android FYI SkiaRenderer Vulkan (Pixel 2)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -151,6 +161,7 @@ "ChromeOS FYI Release (amd64-generic)": { "args_file": "//build/args/chromeos/amd64-generic.gni", "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": false, "ffmpeg_branding": "Chrome", "is_chromeos_device": true, @@ -165,6 +176,7 @@ "ChromeOS FYI Release (kevin)": { "args_file": "//build/args/chromeos/kevin.gni", "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": false, "ffmpeg_branding": "Chrome", "is_chromeos_device": true, @@ -178,6 +190,7 @@ }, "GPU FYI Lacros x64 Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -193,6 +206,7 @@ }, "GPU FYI Linux Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -232,6 +246,7 @@ }, "GPU FYI Mac Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -261,6 +276,7 @@ }, "GPU FYI Win Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -277,6 +293,7 @@ }, "GPU FYI Win x64 Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -306,6 +323,7 @@ }, "GPU FYI Win x64 DX12 Vulkan Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -337,6 +355,7 @@ }, "GPU FYI XR Win x64 Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -352,6 +371,7 @@ }, "Linux FYI GPU TSAN Release": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -368,6 +388,7 @@ }, "Linux FYI SkiaRenderer Dawn Release (Intel HD 630)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_skia_dawn_gtests": true, "ffmpeg_branding": "Chrome", @@ -381,6 +402,7 @@ }, "Mac FYI GPU ASAN Release": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -397,6 +419,7 @@ }, "Mac FYI arm64 Release (Apple DTK)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -413,6 +436,7 @@ }, "Optional Android Release (Nexus 5X)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -427,6 +451,7 @@ }, "Optional Android Release (Pixel 4)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -440,6 +465,7 @@ }, "Win10 FYI x64 SkiaRenderer Dawn Release (NVIDIA)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_skia_dawn_gtests": true, "ffmpeg_branding": "Chrome",
diff --git a/tools/mb/mb_config_expectations/chromium.gpu.json b/tools/mb/mb_config_expectations/chromium.gpu.json index e675d8f..97077a76 100644 --- a/tools/mb/mb_config_expectations/chromium.gpu.json +++ b/tools/mb/mb_config_expectations/chromium.gpu.json
@@ -1,6 +1,7 @@ { "Android Release (Nexus 5X)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -17,6 +18,7 @@ }, "GPU Linux Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -38,6 +40,7 @@ }, "GPU Mac Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -59,6 +62,7 @@ }, "GPU Win x64 Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_resource_allowlist_generation": true, "ffmpeg_branding": "Chrome", @@ -81,14 +85,15 @@ }, "GPU Win x64 Builder Code Coverage": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, - "enable_resource_allowlist_generation": true, + "enable_resource_allowlist_generation": false, "ffmpeg_branding": "Chrome", "is_component_build": false, "is_debug": false, "proprietary_codecs": true, - "symbol_level": 1, + "symbol_level": 0, "use_clang_coverage": true, "use_goma": true }
diff --git a/tools/mb/mb_config_expectations/chromium.memory.json b/tools/mb/mb_config_expectations/chromium.memory.json index fdb1067..5f988715 100644 --- a/tools/mb/mb_config_expectations/chromium.memory.json +++ b/tools/mb/mb_config_expectations/chromium.memory.json
@@ -1,6 +1,7 @@ { "Linux ASan LSan Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_asan": true, "is_component_build": false, @@ -25,6 +26,7 @@ }, "Linux Chromium OS ASan LSan Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_asan": true, "is_component_build": false,
diff --git a/tools/mb/mb_config_expectations/chromium.mojo.json b/tools/mb/mb_config_expectations/chromium.mojo.json index b14f9c7..af3d2d2f7 100644 --- a/tools/mb/mb_config_expectations/chromium.mojo.json +++ b/tools/mb/mb_config_expectations/chromium.mojo.json
@@ -14,6 +14,7 @@ }, "Mojo ChromiumOS": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "ChromeOS", "is_component_build": false, @@ -26,6 +27,7 @@ }, "Mojo Linux": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -44,6 +46,7 @@ }, "mac-mojo-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false,
diff --git a/tools/mb/mb_config_expectations/chromium.swangle.json b/tools/mb/mb_config_expectations/chromium.swangle.json index 917dd5a..0c5d5b6 100644 --- a/tools/mb/mb_config_expectations/chromium.swangle.json +++ b/tools/mb/mb_config_expectations/chromium.swangle.json
@@ -1,6 +1,7 @@ { "linux-swangle-chromium-x64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -42,6 +43,7 @@ }, "mac-swangle-chromium-x64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -53,6 +55,7 @@ }, "win-swangle-chromium-x86": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_resource_allowlist_generation": true, "ffmpeg_branding": "Chrome",
diff --git a/tools/mb/mb_config_expectations/client.v8.fyi.json b/tools/mb/mb_config_expectations/client.v8.fyi.json index 439d999..848c38eb 100644 --- a/tools/mb/mb_config_expectations/client.v8.fyi.json +++ b/tools/mb/mb_config_expectations/client.v8.fyi.json
@@ -1,6 +1,7 @@ { "Android V8 FYI Release (Nexus 5X)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -15,6 +16,7 @@ }, "Linux ASAN Builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_asan": true, "is_component_build": false, @@ -36,6 +38,7 @@ }, "Linux V8 FYI Release (NVIDIA)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -47,6 +50,7 @@ }, "Linux V8 FYI Release - pointer compression (NVIDIA)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -59,6 +63,7 @@ }, "Mac V8 FYI Release (Intel)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -134,6 +139,7 @@ }, "Win V8 FYI Release (NVIDIA)": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_resource_allowlist_generation": true, "ffmpeg_branding": "Chrome",
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.android.json b/tools/mb/mb_config_expectations/tryserver.chromium.android.json index 1c73d73..4826831 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.android.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.android.json
@@ -1,6 +1,7 @@ { "android-10-arm64-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -18,6 +19,7 @@ }, "android-11-x86-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -35,6 +37,7 @@ }, "android-asan": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_asan": true, @@ -50,6 +53,7 @@ }, "android-bfcache-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -103,6 +107,7 @@ }, "android-cronet-marshmallow-arm64-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "clang_use_default_sample_profile": false, "dcheck_always_on": true, "default_min_sdk_version": 16, @@ -144,6 +149,7 @@ }, "android-deterministic-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -155,6 +161,7 @@ }, "android-inverse-fieldtrials-pie-x86-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -173,6 +180,7 @@ }, "android-lollipop-arm-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -188,6 +196,7 @@ }, "android-marshmallow-arm64-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "disable_android_lint": true, @@ -208,6 +217,7 @@ }, "android-marshmallow-arm64-rel-dual-coverage": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "disable_android_lint": true, @@ -228,6 +238,7 @@ }, "android-marshmallow-x86-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "enable_resource_allowlist_generation": true, @@ -245,6 +256,7 @@ }, "android-marshmallow-x86-rel-non-cq": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "enable_resource_allowlist_generation": true, @@ -262,6 +274,7 @@ }, "android-marshmallow-x86-rel-rts": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "enable_resource_allowlist_generation": true, @@ -279,6 +292,7 @@ }, "android-nougat-arm64-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -296,6 +310,7 @@ }, "android-opus-arm-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -333,6 +348,7 @@ }, "android-pie-arm64-coverage-experimental-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "fail_on_android_expectations": true, @@ -351,6 +367,7 @@ }, "android-pie-arm64-coverage-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "ffmpeg_branding": "Chrome", @@ -380,6 +397,7 @@ }, "android-pie-arm64-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "fail_on_android_expectations": true, "ffmpeg_branding": "Chrome", @@ -397,6 +415,7 @@ }, "android-pie-arm64-wpt-rel-non-cq": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -412,6 +431,7 @@ }, "android-pie-x86-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -429,6 +449,7 @@ }, "android-web-platform-pie-x86-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -446,6 +467,7 @@ }, "android-weblayer-10-x86-rel-tests": { "gn_args": { + "blink_enable_generated_code_formatting": false, "chrome_public_manifest_package": "com.android.chrome", "dcheck_always_on": true, "disable_android_lint": true, @@ -464,6 +486,7 @@ }, "android-weblayer-marshmallow-x86-rel-tests": { "gn_args": { + "blink_enable_generated_code_formatting": false, "chrome_public_manifest_package": "com.android.chrome", "dcheck_always_on": true, "disable_android_lint": true, @@ -482,6 +505,7 @@ }, "android-weblayer-pie-x86-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -499,6 +523,7 @@ }, "android-weblayer-pie-x86-rel-tests": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -516,6 +541,7 @@ }, "android-weblayer-pie-x86-wpt-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -533,6 +559,7 @@ }, "android-weblayer-pie-x86-wpt-smoketest": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -550,6 +577,7 @@ }, "android-webview-marshmallow-arm64-dbg": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -565,6 +593,7 @@ }, "android-webview-nougat-arm64-dbg": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -580,6 +609,7 @@ }, "android-webview-oreo-arm64-dbg": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -595,6 +625,7 @@ }, "android-webview-pie-arm64-dbg": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -610,6 +641,7 @@ }, "android-webview-pie-arm64-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -642,6 +674,7 @@ }, "android_archive_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -669,6 +702,7 @@ }, "android_blink_rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -761,6 +795,7 @@ "android_cronet": { "gn_args": { "arm_use_neon": false, + "blink_enable_generated_code_formatting": false, "clang_use_default_sample_profile": false, "dcheck_always_on": true, "default_min_sdk_version": 16, @@ -789,6 +824,7 @@ }, "android_mojo": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -815,6 +851,7 @@ }, "android_optional_gpu_tests_rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -853,6 +890,7 @@ }, "gpu-fyi-try-android-l-nexus-5-32": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -866,6 +904,7 @@ }, "gpu-fyi-try-android-l-nexus-6-32": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -879,6 +918,7 @@ }, "gpu-fyi-try-android-m-nexus-5x-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -907,6 +947,7 @@ }, "gpu-fyi-try-android-m-nexus-5x-skgl-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -921,6 +962,7 @@ }, "gpu-fyi-try-android-m-nexus-9-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -935,6 +977,7 @@ }, "gpu-fyi-try-android-n-nvidia-shield-tv-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -949,6 +992,7 @@ }, "gpu-fyi-try-android-p-pixel-2-32": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -962,6 +1006,7 @@ }, "gpu-fyi-try-android-p-pixel-2-skv-32": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -975,6 +1020,7 @@ }, "gpu-fyi-try-android-r-pixel-4-32": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -988,6 +1034,7 @@ }, "gpu-try-android-m-nexus-5x-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.angle.json b/tools/mb/mb_config_expectations/tryserver.chromium.angle.json index 930427e..13227a3b 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.angle.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.angle.json
@@ -1,6 +1,7 @@ { "android-angle-chromium-try": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "disable_android_lint": true, "ffmpeg_branding": "Chrome", @@ -44,6 +45,7 @@ }, "android_angle_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -58,6 +60,7 @@ }, "fuchsia-angle-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -88,6 +91,7 @@ }, "ios-angle-try-intel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_deqp_tests": true, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, @@ -106,6 +110,7 @@ }, "linux-angle-chromium-try": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -117,6 +122,7 @@ }, "linux-angle-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -155,6 +161,7 @@ }, "mac-angle-chromium-try": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -179,6 +186,7 @@ }, "win-angle-chromium-x64-try": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -190,6 +198,7 @@ }, "win-angle-chromium-x86-try": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json b/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json index 275c0de..c1bba96 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json
@@ -84,6 +84,7 @@ "gpu-fyi-try-chromeos-amd64-generic": { "args_file": "//build/args/chromeos/amd64-generic.gni", "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": false, "ffmpeg_branding": "Chrome", "is_chromeos_device": true, @@ -98,6 +99,7 @@ "gpu-fyi-try-chromeos-kevin": { "args_file": "//build/args/chromeos/kevin.gni", "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": false, "ffmpeg_branding": "Chrome", "is_chromeos_device": true, @@ -171,6 +173,7 @@ }, "linux-cfm-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_cfm": true, "is_component_build": false, @@ -204,6 +207,7 @@ }, "linux-chromeos-inverse-fieldtrials-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "ChromeOS", "invert_fieldtrials": true, @@ -217,6 +221,7 @@ }, "linux-chromeos-js-code-coverage": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "ffmpeg_branding": "ChromeOS", @@ -233,6 +238,7 @@ }, "linux-chromeos-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "ffmpeg_branding": "ChromeOS", @@ -248,6 +254,7 @@ "linux-lacros-rel": { "gn_args": { "also_build_ash_chrome": true, + "blink_enable_generated_code_formatting": false, "chromeos_is_browser_only": true, "dcheck_always_on": true, "is_component_build": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.dawn.json b/tools/mb/mb_config_expectations/tryserver.chromium.dawn.json index acede54..b5fb6ca 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.dawn.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.dawn.json
@@ -1,6 +1,7 @@ { "dawn-linux-x64-deps-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -11,6 +12,7 @@ }, "dawn-mac-x64-deps-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -21,6 +23,7 @@ }, "dawn-try-win10-x64-asan-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_asan": true, "is_component_build": false, @@ -32,6 +35,7 @@ }, "dawn-try-win10-x86-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -43,6 +47,7 @@ }, "dawn-win10-x64-deps-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -53,6 +58,7 @@ }, "dawn-win10-x86-deps-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -64,6 +70,7 @@ }, "linux-dawn-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -74,6 +81,7 @@ }, "mac-dawn-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -84,6 +92,7 @@ }, "win-dawn-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.linux.json b/tools/mb/mb_config_expectations/tryserver.chromium.linux.json index 984a0bb..49b69d2 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.linux.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.linux.json
@@ -10,6 +10,7 @@ }, "cast_shell_audio_linux": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_cast_audio_only": true, "is_chromecast": true, @@ -21,6 +22,7 @@ }, "cast_shell_linux": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_chromecast": true, "is_component_build": false, @@ -40,6 +42,7 @@ }, "fuchsia-arm64-cast": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_chromecast": true, "is_component_build": false, @@ -80,6 +83,7 @@ }, "fuchsia-fyi-arm64-femu": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -91,6 +95,7 @@ }, "fuchsia-fyi-arm64-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -111,6 +116,7 @@ }, "fuchsia-fyi-x64-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -121,6 +127,7 @@ }, "fuchsia-x64-cast": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_chromecast": true, "is_component_build": false, @@ -132,6 +139,7 @@ }, "fuchsia_arm64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -143,6 +151,7 @@ }, "fuchsia_x64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -153,6 +162,7 @@ }, "fuchsia_x64_rts": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -163,6 +173,7 @@ }, "gpu-fyi-try-lacros-amd-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -178,6 +189,7 @@ }, "gpu-fyi-try-lacros-intel-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -193,6 +205,7 @@ }, "gpu-fyi-try-linux-amd-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -218,6 +231,7 @@ }, "gpu-fyi-try-linux-intel-exp": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -233,6 +247,7 @@ }, "gpu-fyi-try-linux-intel-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -248,6 +263,7 @@ }, "gpu-fyi-try-linux-intel-sk-dawn-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_skia_dawn_gtests": true, "ffmpeg_branding": "Chrome", @@ -261,6 +277,7 @@ }, "gpu-fyi-try-linux-intel-skv": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -300,6 +317,7 @@ }, "gpu-fyi-try-linux-nvidia-exp": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -315,6 +333,7 @@ }, "gpu-fyi-try-linux-nvidia-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -330,6 +349,7 @@ }, "gpu-fyi-try-linux-nvidia-skv": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -345,6 +365,7 @@ }, "gpu-fyi-try-linux-nvidia-tsn": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -371,6 +392,7 @@ }, "gpu-try-linux-nvidia-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -382,6 +404,7 @@ }, "layout_test_leak_detection": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -391,6 +414,7 @@ }, "leak_detection_linux": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -400,6 +424,7 @@ }, "linux-1mbu-compile-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -409,6 +434,7 @@ }, "linux-annotator-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -418,6 +444,7 @@ }, "linux-autofill-assistant": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_autofill_assistant_api": true, "is_component_build": false, @@ -437,6 +464,7 @@ }, "linux-bionic-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -449,6 +477,7 @@ }, "linux-blink-heap-concurrent-marking-tsan-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -483,6 +512,7 @@ }, "linux-blink-web-tests-force-accessibility-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -500,6 +530,7 @@ }, "linux-clang-tidy-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -509,6 +540,7 @@ }, "linux-dcheck-off-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": false, "is_component_build": false, "is_debug": false, @@ -518,6 +550,7 @@ }, "linux-example-builder": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -527,6 +560,7 @@ }, "linux-extended-tracing-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "extended_tracing_enabled": true, "is_component_build": false, @@ -548,6 +582,7 @@ }, "linux-inverse-fieldtrials-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "invert_fieldtrials": true, @@ -562,6 +597,7 @@ "linux-lacros-fyi-rel": { "gn_args": { "also_build_ash_chrome": true, + "blink_enable_generated_code_formatting": false, "chromeos_is_browser_only": true, "dcheck_always_on": true, "is_component_build": false, @@ -590,6 +626,7 @@ }, "linux-layout-tests-edit-ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -617,6 +654,7 @@ }, "linux-mbi-mode-per-render-process-host-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -629,6 +667,7 @@ }, "linux-mbi-mode-per-site-instance-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -641,6 +680,7 @@ }, "linux-ozone-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -653,6 +693,7 @@ }, "linux-perfetto-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -663,6 +704,7 @@ }, "linux-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "ffmpeg_branding": "Chrome", @@ -677,6 +719,7 @@ }, "linux-rel-orchestrator": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -689,6 +732,7 @@ }, "linux-rel-reclient": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "ffmpeg_branding": "Chrome", @@ -703,6 +747,7 @@ }, "linux-rel-rts": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "ffmpeg_branding": "Chrome", @@ -717,6 +762,7 @@ }, "linux-trusty-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -729,6 +775,7 @@ }, "linux-viz-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -747,6 +794,7 @@ }, "linux-wpt-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -756,6 +804,7 @@ }, "linux-wpt-identity-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -765,6 +814,7 @@ }, "linux-wpt-input-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -774,6 +824,7 @@ }, "linux-xenial-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, "ffmpeg_branding": "Chrome", @@ -795,6 +846,7 @@ }, "linux_chromium_asan_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_asan": true, "is_component_build": false, @@ -819,6 +871,7 @@ }, "linux_chromium_chromeos_asan_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_asan": true, "is_component_build": false, @@ -841,6 +894,7 @@ }, "linux_chromium_clobber_deterministic": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -850,6 +904,7 @@ }, "linux_chromium_clobber_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -876,6 +931,7 @@ }, "linux_chromium_compile_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -904,6 +960,7 @@ }, "linux_chromium_tsan_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_nacl": false, "is_component_build": false, @@ -915,6 +972,7 @@ }, "linux_chromium_tsan_rel_ng_bionic": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_nacl": false, "is_component_build": false, @@ -935,6 +993,7 @@ }, "linux_layout_tests_composite_after_paint": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -946,6 +1005,7 @@ }, "linux_layout_tests_layout_ng_disabled": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -955,6 +1015,7 @@ }, "linux_mojo": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -964,6 +1025,7 @@ }, "linux_mojo_chromeos": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "ChromeOS", "is_component_build": false, @@ -976,6 +1038,7 @@ }, "linux_optional_gpu_tests_rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -998,6 +1061,7 @@ }, "linux_vr": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_vr": true, "is_component_build": false, @@ -1009,6 +1073,7 @@ }, "network_service_linux": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.mac.json b/tools/mb/mb_config_expectations/tryserver.chromium.mac.json index 003774bd..a632091 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.mac.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.mac.json
@@ -1,6 +1,7 @@ { "gpu-fyi-try-mac-amd-pro-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -30,6 +31,7 @@ }, "gpu-fyi-try-mac-amd-retina-exp": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -45,6 +47,7 @@ }, "gpu-fyi-try-mac-amd-retina-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -60,6 +63,7 @@ }, "gpu-fyi-try-mac-arm64-apple-dtk-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -76,6 +80,7 @@ }, "gpu-fyi-try-mac-asan": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -106,6 +111,7 @@ }, "gpu-fyi-try-mac-intel-exp": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -121,6 +127,7 @@ }, "gpu-fyi-try-mac-intel-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -136,6 +143,7 @@ }, "gpu-fyi-try-mac-intel-uhd-630-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -165,6 +173,7 @@ }, "gpu-fyi-try-mac-nvidia-retina-exp": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -180,6 +189,7 @@ }, "gpu-fyi-try-mac-nvidia-retina-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -406,6 +416,7 @@ }, "mac-arm64-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -416,6 +427,7 @@ }, "mac-inverse-fieldtrials-fyi-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "invert_fieldtrials": true, @@ -428,6 +440,7 @@ }, "mac-osxbeta-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -439,6 +452,7 @@ }, "mac-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -450,6 +464,7 @@ }, "mac-rel-rts": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -461,6 +476,7 @@ }, "mac_chromium_10.11_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -472,6 +488,7 @@ }, "mac_chromium_10.12_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -483,6 +500,7 @@ }, "mac_chromium_10.13_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -492,6 +510,7 @@ }, "mac_chromium_10.14_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -501,6 +520,7 @@ }, "mac_chromium_10.15_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_nacl": false, "is_component_build": false, @@ -511,6 +531,7 @@ }, "mac_chromium_11.0_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -549,6 +570,7 @@ }, "mac_chromium_compile_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -570,6 +592,7 @@ }, "mac_optional_gpu_tests_rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.swangle.json b/tools/mb/mb_config_expectations/tryserver.chromium.swangle.json index ee0e3232..9d316cbd 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.swangle.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.swangle.json
@@ -1,6 +1,7 @@ { "linux-swangle-chromium-try-x64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -42,6 +43,7 @@ }, "mac-swangle-chromium-try-x64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -53,6 +55,7 @@ }, "win-swangle-chromium-try-x86": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_resource_allowlist_generation": true, "ffmpeg_branding": "Chrome",
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.updater.json b/tools/mb/mb_config_expectations/tryserver.chromium.updater.json index f20dddf..1d29508 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.updater.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.updater.json
@@ -10,6 +10,7 @@ }, "mac-updater-try-builder-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -29,6 +30,7 @@ }, "win-updater-try-builder-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.win.json b/tools/mb/mb_config_expectations/tryserver.chromium.win.json index 57a287d0..7f6bd41 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.win.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.win.json
@@ -1,6 +1,7 @@ { "gpu-fyi-try-win10-amd-rel-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -16,6 +17,7 @@ }, "gpu-fyi-try-win10-intel-exp-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -31,6 +33,7 @@ }, "gpu-fyi-try-win10-intel-rel-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -75,6 +78,7 @@ }, "gpu-fyi-try-win10-nvidia-dx12vk-rel-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -91,6 +95,7 @@ }, "gpu-fyi-try-win10-nvidia-exp-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -106,6 +111,7 @@ }, "gpu-fyi-try-win10-nvidia-rel-32": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -122,6 +128,7 @@ }, "gpu-fyi-try-win10-nvidia-rel-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -137,6 +144,7 @@ }, "gpu-fyi-try-win10-nvidia-sk-dawn-rel-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_skia_dawn_gtests": true, "ffmpeg_branding": "Chrome", @@ -150,6 +158,7 @@ }, "gpu-fyi-try-win7-amd-rel-32": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -166,6 +175,7 @@ }, "gpu-fyi-try-win7-nvidia-rel-32": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -182,6 +192,7 @@ }, "gpu-fyi-try-win7-nvidia-rel-64": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -197,6 +208,7 @@ }, "win-annotator-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -225,6 +237,7 @@ }, "win-libfuzzer-asan-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_mojom_fuzzer": true, "enable_nacl": false, @@ -242,6 +255,7 @@ }, "win10_chromium_inverse_fieldtrials_x64_fyi_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_resource_allowlist_generation": true, "ffmpeg_branding": "Chrome", @@ -265,20 +279,22 @@ }, "win10_chromium_x64_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, - "enable_resource_allowlist_generation": true, + "enable_resource_allowlist_generation": false, "ffmpeg_branding": "Chrome", "is_component_build": false, "is_debug": false, "proprietary_codecs": true, - "symbol_level": 1, + "symbol_level": 0, "use_clang_coverage": true, "use_goma": true } }, "win10_chromium_x64_rel_ng_exp": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -288,20 +304,22 @@ }, "win10_chromium_x64_rel_ng_rts": { "gn_args": { + "blink_enable_generated_code_formatting": false, "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt", "dcheck_always_on": true, - "enable_resource_allowlist_generation": true, + "enable_resource_allowlist_generation": false, "ffmpeg_branding": "Chrome", "is_component_build": false, "is_debug": false, "proprietary_codecs": true, - "symbol_level": 1, + "symbol_level": 0, "use_clang_coverage": true, "use_goma": true } }, "win7-rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_resource_allowlist_generation": true, "ffmpeg_branding": "Chrome", @@ -315,6 +333,7 @@ }, "win_archive": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -336,6 +355,7 @@ }, "win_chromium_compile_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_resource_allowlist_generation": true, "ffmpeg_branding": "Chrome", @@ -360,6 +380,7 @@ }, "win_chromium_x64_rel_ng": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -371,6 +392,7 @@ }, "win_mojo": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -381,6 +403,7 @@ }, "win_optional_gpu_tests_rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "build_angle_gles1_conform_tests": true, "build_angle_trace_perf_tests": true, "dcheck_always_on": true, @@ -403,6 +426,7 @@ }, "win_x64_archive": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.v8.json b/tools/mb/mb_config_expectations/tryserver.v8.json index ff26ed6..9022ba48 100644 --- a/tools/mb/mb_config_expectations/tryserver.v8.json +++ b/tools/mb/mb_config_expectations/tryserver.v8.json
@@ -12,6 +12,7 @@ }, "v8_linux_chromium_gn_rel": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.webrtc.json b/tools/mb/mb_config_expectations/tryserver.webrtc.json index a89d0b2..124be0e 100644 --- a/tools/mb/mb_config_expectations/tryserver.webrtc.json +++ b/tools/mb/mb_config_expectations/tryserver.webrtc.json
@@ -1,6 +1,7 @@ { "android_chromium_compile": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -14,6 +15,7 @@ }, "linux_chromium_compile": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "is_component_build": false, "is_debug": false, @@ -31,6 +33,7 @@ }, "mac_chromium_compile": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "ffmpeg_branding": "Chrome", "is_component_build": false, @@ -42,6 +45,7 @@ }, "win_chromium_compile": { "gn_args": { + "blink_enable_generated_code_formatting": false, "dcheck_always_on": true, "enable_resource_allowlist_generation": true, "ffmpeg_branding": "Chrome",
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index cb7f811..bd61bc6d 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -44636,6 +44636,15 @@ <int value="2147483648" label="Invalid"/> </enum> +<enum name="LinuxWaylandShellName"> + <int value="0" label="zaura_shell"/> + <int value="1" label="gtk_shell1"/> + <int value="2" label="org_kde_plasma_shell"/> + <int value="3" label="xdg_wm_base"/> + <int value="4" label="xdg_shell_v6"/> + <int value="5" label="zwlr_layer_shell_v1"/> +</enum> + <enum name="LinuxWindowManagerName"> <int value="0" label="Other"/> <int value="1" label="Blackbox"/>
diff --git a/tools/metrics/histograms/histograms_xml/android/histograms.xml b/tools/metrics/histograms/histograms_xml/android/histograms.xml index 5bdb201f..e6b1f2e 100644 --- a/tools/metrics/histograms/histograms_xml/android/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/android/histograms.xml
@@ -2923,6 +2923,9 @@ <histogram name="Android.WebView.ConnectedToVariationService" enum="Boolean" expires_after="M93"> + <obsolete> + Removed Jun 2021 for cleanup (no longer needed): https://crbug.com/1217220 + </obsolete> <owner>hazems@chromium.org</owner> <owner>webview-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/others/histograms.xml b/tools/metrics/histograms/histograms_xml/others/histograms.xml index 149a1d9..b7200f27 100644 --- a/tools/metrics/histograms/histograms_xml/others/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/others/histograms.xml
@@ -7139,6 +7139,19 @@ </summary> </histogram> +<histogram name="Hardware.Display.SupportsHDR" enum="BooleanSupported" + expires_after="2022-06-14"> + <owner>cassew@google.com</owner> + <owner>media-dev@chromium.org</owner> + <summary> + Whether a given display device supports HDR (such that the CSS media query + `dynamic-range: high` would resolve as true). Recorded upon browser startup + (for every connected display), upon display device connection (for the newly + connected display), and upon any change to the color space metric (for the + affected display). + </summary> +</histogram> + <histogram name="Hardware.TotalDiskSpace" units="GB" expires_after="2021-12-12"> <owner>sadrul@chromium.org</owner> <owner>zmo@chromium.org</owner> @@ -9064,6 +9077,18 @@ </summary> </histogram> +<histogram name="Linux.Wayland.Shell" enum="LinuxWaylandShellName" + expires_after="2021-12-31"> + <owner>rjkroege@chromium.org</owner> + <owner>adunaev@igalia.com</owner> + <summary> + The Linux Wayland shell protocol(s) available. Logged in each session when + the compositor announces a Wayland protocol extension that provides the + desktop shell functionality (i.e., turns abstract surfaces into windows that + can be positioned, moved, resized, etc., depending on the particular shell). + </summary> +</histogram> + <histogram name="Linux.WindowManager" enum="LinuxWindowManagerName" expires_after="2021-08-01"> <owner>pkotwicz@chromium.org</owner> @@ -11163,7 +11188,7 @@ </histogram> <histogram name="PaintHolding.InputTiming2" enum="PaintHoldingInputTiming" - expires_after="2021-07-15"> + expires_after="2021-11-21"> <owner>schenney@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <summary>
diff --git a/tools/perf/benchmarks/speedometer2.py b/tools/perf/benchmarks/speedometer2.py index a8490b88..7cbbf26 100644 --- a/tools/perf/benchmarks/speedometer2.py +++ b/tools/perf/benchmarks/speedometer2.py
@@ -34,6 +34,7 @@ enable_smoke_test_mode = False enable_rcs = False + iteration_count = None @classmethod def Name(cls): @@ -46,8 +47,17 @@ speedometer2_pages.Speedometer2Story.GetSuites(options.suite)) ps = story.StorySet(base_dir=_SPEEDOMETER_DIR) - ps.AddStory(speedometer2_pages.Speedometer2Story(ps, should_filter_suites, - filtered_suite_names, self.enable_smoke_test_mode)) + + # For a smoke test one iteration is sufficient + if self.enable_smoke_test_mode and not self.iteration_count: + iteration_count = 1 + else: + iteration_count = self.iteration_count + + ps.AddStory( + speedometer2_pages.Speedometer2Story(ps, should_filter_suites, + filtered_suite_names, + iteration_count)) return ps def CreateCoreTimelineBasedMeasurementOptions(self): @@ -83,6 +93,9 @@ parser.add_option('--enable-rcs', action="store_true", help="Enables runtime call stats") + parser.add_option('--iteration-count', + type="int", + help="Override the default number of iterations") @classmethod def ProcessCommandLineArgs(cls, parser, args): @@ -94,6 +107,8 @@ raise parser.error('--suite: Invalid regex.') if args.enable_rcs: cls.enable_rcs = True + if args.iteration_count: + cls.iteration_count = args.iteration_count @benchmark.Info(emails=['hablich@chromium.org'],
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 8b976025..18892d4 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -2,15 +2,15 @@ "trace_processor_shell": { "win": { "hash": "35d01e33d863bfcced1ee629e1fee54172f4d5c6", - "remote_path": "perfetto_binaries/trace_processor_shell/win/8bcf60828725f8b193208770a5eb183b80bc8b04/trace_processor_shell.exe" + "remote_path": "perfetto_binaries/trace_processor_shell/win/73cf27bf1244cc6d8605f4c4ba0840831908a6f5/trace_processor_shell.exe" }, "mac": { "hash": "848fd8e2530e7f5d051fb2f68d88576e54584226", - "remote_path": "perfetto_binaries/trace_processor_shell/mac/8bcf60828725f8b193208770a5eb183b80bc8b04/trace_processor_shell" + "remote_path": "perfetto_binaries/trace_processor_shell/mac/73cf27bf1244cc6d8605f4c4ba0840831908a6f5/trace_processor_shell" }, "linux": { "hash": "f53ee2344b927a71d608cdac8acc7e7493593066", - "remote_path": "perfetto_binaries/trace_processor_shell/linux/8bcf60828725f8b193208770a5eb183b80bc8b04/trace_processor_shell" + "remote_path": "perfetto_binaries/trace_processor_shell/linux/73cf27bf1244cc6d8605f4c4ba0840831908a6f5/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/tools/perf/page_sets/speedometer2_pages.py b/tools/perf/page_sets/speedometer2_pages.py index 3291ff7..318c94a 100644 --- a/tools/perf/page_sets/speedometer2_pages.py +++ b/tools/perf/page_sets/speedometer2_pages.py
@@ -33,12 +33,15 @@ URL = 'file://InteractiveRunner.html' NAME = 'Speedometer2' - def __init__(self, ps, should_filter_suites, filtered_suite_names=None, - enable_smoke_test_mode=False): + def __init__(self, + ps, + should_filter_suites, + filtered_suite_names=None, + iterations=None): super(Speedometer2Story, self).__init__(ps) self._should_filter_suites = should_filter_suites self._filtered_suite_names = filtered_suite_names - self._enable_smoke_test_mode = enable_smoke_test_mode + self._iterations = iterations self._enabled_suites = [] @staticmethod @@ -55,14 +58,14 @@ def ExecuteTest(self, action_runner): action_runner.tab.WaitForDocumentReadyStateToBeComplete() - iterationCount = 10 - # A single iteration on android takes ~75 seconds, the benchmark times out - # when running for 10 iterations. - if action_runner.tab.browser.platform.GetOSName() == 'android': - iterationCount = 3 - # For a smoke test one iteration is sufficient - if self._enable_smoke_test_mode: - iterationCount = 1 + if not self._iterations: + iterationCount = 10 + # A single iteration on android takes ~75 seconds, the benchmark times out + # when running for 10 iterations. + if action_runner.tab.browser.platform.GetOSName() == 'android': + iterationCount = 3 + else: + iterationCount = self._iterations if self._should_filter_suites: action_runner.ExecuteJavaScript("""
diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_frame_host_android.cc index 5412ecf5..a483dbb 100644 --- a/ui/android/delegated_frame_host_android.cc +++ b/ui/android/delegated_frame_host_android.cc
@@ -264,6 +264,10 @@ const gfx::Size& new_size_in_pixels, cc::DeadlinePolicy deadline_policy, bool is_fullscreen) { + TRACE_EVENT2("viz", "DelegatedFrameHostAndroid::EmbedSurface", "surface_id", + new_local_surface_id.ToString(), "deadline_policy", + deadline_policy.ToString()); + // We should never attempt to embed an invalid surface. Catch this here to // track down the root cause. Otherwise we will have vague crashes later on // at serialization time. @@ -293,7 +297,13 @@ // content. So we advance the fallback forcing viz to fallback to blank // screen if renderer won't submit frame in time. See // https://crbug.com/1088369 and https://crbug.com/813157 - if (surface_size_in_pixels_ != content_layer_->bounds() && + // + // An empty content layer bounds indicates this renderer has never been made + // visible. This is the case for pre-rendered contents. Don't use the + // primary id as fallback since it's guaranteed to have no content. See + // crbug.com/1218238. + if (!content_layer_->bounds().IsEmpty() && + surface_size_in_pixels_ != content_layer_->bounds() && has_fallback_surface) { content_layer_->SetOldestAcceptableFallback(new_primary_surface_id);
diff --git a/ui/base/clipboard/clipboard_mac.h b/ui/base/clipboard/clipboard_mac.h index f45d165..f82b7aef 100644 --- a/ui/base/clipboard/clipboard_mac.h +++ b/ui/base/clipboard/clipboard_mac.h
@@ -19,10 +19,14 @@ class COMPONENT_EXPORT(UI_BASE_CLIPBOARD) ClipboardMac : public Clipboard { private: - FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, ReadImageRetina); - FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, ReadImageNonRetina); - FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, EmptyImage); - FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, PDFImage); + FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, ReadImageRetina_Bitmap); + FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, ReadImageNonRetina_Bitmap); + FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, EmptyImage_Bitmap); + FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, PDFImage_Bitmap); + FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, ReadImageRetina_Png); + FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, ReadImageNonRetina_Png); + FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, EmptyImage_Png); + FRIEND_TEST_ALL_PREFIXES(ClipboardMacTest, PDFImage_Png); friend class Clipboard; ClipboardMac(); @@ -107,6 +111,8 @@ const char* data_data, size_t data_len) override; + std::vector<uint8_t> ReadPngInternal(ClipboardBuffer buffer, + NSPasteboard* pasteboard) const; SkBitmap ReadImageInternal(ClipboardBuffer buffer, NSPasteboard* pasteboard) const;
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm index b527513..d9d1958 100644 --- a/ui/base/clipboard/clipboard_mac.mm +++ b/ui/base/clipboard/clipboard_mac.mm
@@ -15,6 +15,7 @@ #include "base/mac/mac_util.h" #include "base/mac/scoped_cftyperef.h" #include "base/mac/scoped_nsobject.h" +#include "base/memory/ref_counted_memory.h" #include "base/no_destructor.h" #include "base/notreached.h" #include "base/strings/string_split.h" @@ -32,7 +33,9 @@ #include "ui/base/clipboard/custom_data_helper.h" #include "ui/base/data_transfer_policy/data_transfer_endpoint.h" #include "ui/gfx/canvas.h" +#include "ui/gfx/codec/png_codec.h" #include "ui/gfx/geometry/size.h" +#include "ui/gfx/image/image.h" #include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h" #include "url/gurl.h" @@ -47,6 +50,23 @@ return pasteboard; } +base::scoped_nsobject<NSImage> GetNSImage(NSPasteboard* pasteboard) { + // If the pasteboard's image data is not to its liking, the guts of NSImage + // may throw, and that exception will leak. Prevent a crash in that case; + // a blank image is better. + base::scoped_nsobject<NSImage> image; + @try { + if (pasteboard) + image.reset([[NSImage alloc] initWithPasteboard:pasteboard]); + } @catch (id exception) { + } + if (!image) + return base::scoped_nsobject<NSImage>(); + if ([[image representations] count] == 0u) + return base::scoped_nsobject<NSImage>(); + return image; +} + } // namespace // Clipboard factory method. @@ -274,8 +294,8 @@ void ClipboardMac::ReadPng(ClipboardBuffer buffer, const DataTransferEndpoint* data_dst, ReadPngCallback callback) const { - // TODO(crbug.com/1201018): Implement this. - NOTIMPLEMENTED(); + RecordRead(ClipboardFormatMetric::kPng); + std::move(callback).Run(ReadPngInternal(buffer, GetPasteboard())); } // |data_dst| is not used. It's only passed to be consistent with other @@ -467,24 +487,29 @@ [GetPasteboard() setData:nil forType:format]; } +std::vector<uint8_t> ClipboardMac::ReadPngInternal( + ClipboardBuffer buffer, + NSPasteboard* pasteboard) const { + DCHECK(CalledOnValidThread()); + DCHECK_EQ(buffer, ClipboardBuffer::kCopyPaste); + + base::scoped_nsobject<NSImage> image = GetNSImage(pasteboard); + if (!image) + return std::vector<uint8_t>(); + + scoped_refptr<base::RefCountedMemory> mem = gfx::Image(image).As1xPNGBytes(); + std::vector<uint8_t> image_data(mem->data(), mem->data() + mem->size()); + return image_data; +} + SkBitmap ClipboardMac::ReadImageInternal(ClipboardBuffer buffer, NSPasteboard* pasteboard) const { DCHECK(CalledOnValidThread()); DCHECK_EQ(buffer, ClipboardBuffer::kCopyPaste); - // If the pasteboard's image data is not to its liking, the guts of NSImage - // may throw, and that exception will leak. Prevent a crash in that case; - // a blank image is better. - base::scoped_nsobject<NSImage> image; - @try { - if (pasteboard) - image.reset([[NSImage alloc] initWithPasteboard:pasteboard]); - } @catch (id exception) { - } + base::scoped_nsobject<NSImage> image = GetNSImage(pasteboard); if (!image) return SkBitmap(); - if ([[image representations] count] == 0u) - return SkBitmap(); // This logic prevents loss of pixels from retina images, where size != pixel // size. In an ideal world, the concept of "retina-ness" would be plumbed all
diff --git a/ui/base/clipboard/clipboard_mac_unittest.mm b/ui/base/clipboard/clipboard_mac_unittest.mm index 7e84fa95..4b48864 100644 --- a/ui/base/clipboard/clipboard_mac_unittest.mm +++ b/ui/base/clipboard/clipboard_mac_unittest.mm
@@ -4,6 +4,8 @@ #import "ui/base/clipboard/clipboard_mac.h" +#include <vector> + #import <AppKit/AppKit.h> #include "base/mac/scoped_cftyperef.h" @@ -14,6 +16,7 @@ #include "third_party/skia/include/core/SkBitmap.h" #include "ui/base/clipboard/clipboard_buffer.h" #include "ui/base/clipboard/clipboard_util_mac.h" +#include "ui/gfx/codec/png_codec.h" @interface RedView : NSView @end @@ -69,7 +72,7 @@ } }; -TEST_F(ClipboardMacTest, ReadImageRetina) { +TEST_F(ClipboardMacTest, ReadImageRetina_Bitmap) { int32_t width = 99; int32_t height = 101; scoped_refptr<UniquePasteboard> pasteboard = new UniquePasteboard; @@ -85,7 +88,25 @@ EXPECT_EQ(2 * height, bitmap.height()); } -TEST_F(ClipboardMacTest, ReadImageNonRetina) { +TEST_F(ClipboardMacTest, ReadImageRetina_Png) { + int32_t width = 99; + int32_t height = 101; + scoped_refptr<UniquePasteboard> pasteboard = new UniquePasteboard; + base::scoped_nsobject<NSImage> image = CreateImage(width, height, true); + [pasteboard->get() writeObjects:@[ image.get() ]]; + + Clipboard* clipboard = Clipboard::GetForCurrentThread(); + ClipboardMac* clipboard_mac = static_cast<ClipboardMac*>(clipboard); + + std::vector<uint8_t> png_data = clipboard_mac->ReadPngInternal( + ClipboardBuffer::kCopyPaste, pasteboard->get()); + SkBitmap bitmap; + gfx::PNGCodec::Decode(png_data.data(), png_data.size(), &bitmap); + EXPECT_EQ(2 * width, bitmap.width()); + EXPECT_EQ(2 * height, bitmap.height()); +} + +TEST_F(ClipboardMacTest, ReadImageNonRetina_Bitmap) { int32_t width = 99; int32_t height = 101; scoped_refptr<UniquePasteboard> pasteboard = new UniquePasteboard; @@ -101,7 +122,25 @@ EXPECT_EQ(height, bitmap.height()); } -TEST_F(ClipboardMacTest, EmptyImage) { +TEST_F(ClipboardMacTest, ReadImageNonRetina_Png) { + int32_t width = 99; + int32_t height = 101; + scoped_refptr<UniquePasteboard> pasteboard = new UniquePasteboard; + base::scoped_nsobject<NSImage> image = CreateImage(width, height, false); + [pasteboard->get() writeObjects:@[ image.get() ]]; + + Clipboard* clipboard = Clipboard::GetForCurrentThread(); + ClipboardMac* clipboard_mac = static_cast<ClipboardMac*>(clipboard); + + std::vector<uint8_t> png_data = clipboard_mac->ReadPngInternal( + ClipboardBuffer::kCopyPaste, pasteboard->get()); + SkBitmap bitmap; + gfx::PNGCodec::Decode(png_data.data(), png_data.size(), &bitmap); + EXPECT_EQ(width, bitmap.width()); + EXPECT_EQ(height, bitmap.height()); +} + +TEST_F(ClipboardMacTest, EmptyImage_Bitmap) { base::scoped_nsobject<NSImage> image([[NSImage alloc] init]); scoped_refptr<UniquePasteboard> pasteboard = new UniquePasteboard; [pasteboard->get() writeObjects:@[ image.get() ]]; @@ -115,7 +154,23 @@ EXPECT_EQ(0, bitmap.height()); } -TEST_F(ClipboardMacTest, PDFImage) { +TEST_F(ClipboardMacTest, EmptyImage_Png) { + base::scoped_nsobject<NSImage> image([[NSImage alloc] init]); + scoped_refptr<UniquePasteboard> pasteboard = new UniquePasteboard; + [pasteboard->get() writeObjects:@[ image.get() ]]; + + Clipboard* clipboard = Clipboard::GetForCurrentThread(); + ClipboardMac* clipboard_mac = static_cast<ClipboardMac*>(clipboard); + + std::vector<uint8_t> png_data = clipboard_mac->ReadPngInternal( + ClipboardBuffer::kCopyPaste, pasteboard->get()); + SkBitmap bitmap; + gfx::PNGCodec::Decode(png_data.data(), png_data.size(), &bitmap); + EXPECT_EQ(0, bitmap.width()); + EXPECT_EQ(0, bitmap.height()); +} + +TEST_F(ClipboardMacTest, PDFImage_Bitmap) { int32_t width = 99; int32_t height = 101; NSRect frame = NSMakeRect(0, 0, width, height); @@ -138,4 +193,29 @@ EXPECT_EQ(height, bitmap.height()); } +TEST_F(ClipboardMacTest, PDFImage_Png) { + int32_t width = 99; + int32_t height = 101; + NSRect frame = NSMakeRect(0, 0, width, height); + + // This seems like a round-about way of getting a NSPDFImageRep to shove into + // an NSPasteboard. However, I haven't found any other way of generating a + // "PDF" image that makes NSPasteboard happy. + base::scoped_nsobject<NSView> v([[RedView alloc] initWithFrame:frame]); + NSData* data = [v dataWithPDFInsideRect:frame]; + + scoped_refptr<UniquePasteboard> pasteboard = new UniquePasteboard; + [pasteboard->get() setData:data forType:NSPasteboardTypePDF]; + + Clipboard* clipboard = Clipboard::GetForCurrentThread(); + ClipboardMac* clipboard_mac = static_cast<ClipboardMac*>(clipboard); + + std::vector<uint8_t> png_data = clipboard_mac->ReadPngInternal( + ClipboardBuffer::kCopyPaste, pasteboard->get()); + SkBitmap bitmap; + gfx::PNGCodec::Decode(png_data.data(), png_data.size(), &bitmap); + EXPECT_EQ(width, bitmap.width()); + EXPECT_EQ(height, bitmap.height()); +} + } // namespace ui
diff --git a/ui/base/clipboard/clipboard_test_template.h b/ui/base/clipboard/clipboard_test_template.h index e320e54b..570f0c1 100644 --- a/ui/base/clipboard/clipboard_test_template.h +++ b/ui/base/clipboard/clipboard_test_template.h
@@ -592,17 +592,17 @@ const U8x4* expect_data) { WriteBitmap(clipboard, info, reinterpret_cast<const void*>(bitmap_data)); -#if defined(OS_WIN) - // On Windows, PNG and bitmap are separate formats. Since we're writing - // bitmaps, only this format is available. EXPECT_TRUE(clipboard->IsFormatAvailable(ClipboardFormatType::GetBitmapType(), ClipboardBuffer::kCopyPaste, /* data_dst = */ nullptr)); -#else + +#if !defined(OS_WIN) && !defined(OS_MAC) + // On Windows and Mac, PNG and bitmap are separate formats. Due to how the + // ScopedClipboardWriter writes bitmaps, only the bitmap format is available. EXPECT_TRUE(clipboard->IsFormatAvailable(ClipboardFormatType::GetPngType(), ClipboardBuffer::kCopyPaste, /* data_dst = */ nullptr)); -#endif // defined(OS_WIN) +#endif // !defined(OS_WIN) && !defined(OS_MAC) std::vector<uint8_t> result = clipboard_test_util::ReadPng(clipboard); SkBitmap image; gfx::PNGCodec::Decode(result.data(), result.size(), &image); @@ -650,9 +650,6 @@ TestBitmapWrite(&this->clipboard(), SkImageInfo::MakeN32Premul(2, 7), b, b); } -// TODO(crbug.com/1201018): Enable as support for each OS is added. -#if defined(USE_X11) || defined(USE_OZONE) || defined(OS_WIN) - // Only kN32_SkColorType bitmaps are allowed into the clipboard to prevent // surprising buffer overflows due to bits-per-pixel assumptions. TYPED_TEST(ClipboardTest, BitmapWriteAndPngRead_F16_Premul) { @@ -692,7 +689,6 @@ TestBitmapWriteAndPngRead(&this->clipboard(), SkImageInfo::MakeN32Premul(2, 7), b, b); } -#endif // defined(USE_X11) || defined(USE_OZONE) || defined (OS_WIN) #endif // !defined(OS_ANDROID) } // namespace
diff --git a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb index 21fdf16..91b80ec 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
@@ -73,7 +73,7 @@ <translation id="1641780993263690097">Txinatarra (pinyin)</translation> <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> fitxategi konexiorik gabe erabiltzeko deskargatzen</translation> <translation id="164969095109328410">Chrome-ko gailua</translation> -<translation id="1661867754829461514">PIN kodea falta da</translation> +<translation id="1661867754829461514">PINa falta da</translation> <translation id="166439687370499867">Ez da onartzen sare partekatuen konfigurazioak aldatzea</translation> <translation id="1665611772925418501">Ezin izan da fitxategia aldatu.</translation> <translation id="1673103856845176271">Ezin izan da atzitu fitxategia segurtasun-arrazoiengatik.</translation> @@ -198,7 +198,7 @@ <translation id="2771816809568414714">Gazta</translation> <translation id="2781645665747935084">Belgikarra</translation> <translation id="2782104745158847185">Errore bat gertatu da Linux aplikazioa instalatzean</translation> -<translation id="2803375539583399270">Idatzi PIN kodea</translation> +<translation id="2803375539583399270">Idatzi PINa</translation> <translation id="2820957248982571256">Bilatzen…</translation> <translation id="2830077785865012357">Txinatarra (zhuyina)</translation> <translation id="2843806747483486897">Aldatu ekintza lehenetsia…</translation> @@ -315,7 +315,7 @@ <translation id="3810973564298564668">Kudeatu</translation> <translation id="3811494700605067549">Fitxategi bat hautatu da</translation> <translation id="3817579325494460411">Ez da zehaztu</translation> -<translation id="3819448694985509187">PIN kodea okerra da. Saiakera bat gelditzen zaizu.</translation> +<translation id="3819448694985509187">PINa okerra da. Saiakera bat gelditzen zaizu.</translation> <translation id="3822559385185038546">Administratzaileak ezartzen du proxya</translation> <translation id="3830674330436234648">Ez dago erreprodukziorik</translation> <translation id="383652340667548381">Serbiarra</translation> @@ -582,7 +582,7 @@ <translation id="6170470584681422115">Ogitartekoa</translation> <translation id="6187719147498869044">Hungariarra</translation> <translation id="6189412234224385711">Ireki <ph name="EXTENSION_NAME" /> luzapenarekin</translation> -<translation id="6198252989419008588">Aldatu PIN kodea</translation> +<translation id="6198252989419008588">Aldatu PINa</translation> <translation id="6199801702437275229">Tokiari buruzko informazioaren zain…</translation> <translation id="6205710420833115353">Eragiketa batzuk uste baino gehiago luzatzen ari dira. Bertan behera utzi nahi dituzu?</translation> <translation id="6220423280121890987">Punjabtarra</translation> @@ -834,7 +834,7 @@ <translation id="8395901698320285466">Dimentsioak</translation> <translation id="8408068190360279472"><ph name="NETWORK_TYPE" /> sarea. Konektatzen.</translation> <translation id="8425213833346101688">Aldatu</translation> -<translation id="8431909052837336408">Aldatu SIM txartelaren PIN kodea</translation> +<translation id="8431909052837336408">Aldatu SIMaren PINa</translation> <translation id="8437209419043462667">US</translation> <translation id="8452135315243592079">SIM txartela falta da</translation> <translation id="8456681095658380701">Izenak ez du balio</translation> @@ -865,7 +865,7 @@ <translation id="8600173386174225982">Irudi txikiko ikuspegira aldatu da fitxategi-zerrenda.</translation> <translation id="8601932370724196034">Crostini motako irudi-fitxategia</translation> <translation id="8609695766746872526">Islandiarra</translation> -<translation id="863903787380594467">PIN kodea okerra da. <ph name="RETRIES" /> saiakera gelditzen zaizkizu.</translation> +<translation id="863903787380594467">PINa okerra da. <ph name="RETRIES" /> saiakera gelditzen zaizkizu.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Ataka</translation> <translation id="8656768832129462377">Ez egiaztatu</translation> <translation id="8688591111840995413">Pasahitz okerra</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb index 16cba59..ea0f771 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
@@ -256,7 +256,7 @@ <translation id="3280987981688031357">Վինիլային ձայնապնակ</translation> <translation id="3290356915286466215">Պաշտպանված չէ</translation> <translation id="3291218047831493686">Միացեք այս ցանցին՝ SIM քարտի կողպման կարգավորումը փոխելու համար</translation> -<translation id="3295357220137379386">Սարքը զբաղված է։</translation> +<translation id="3295357220137379386">Սարքը զբաղված է</translation> <translation id="3296763833017966289">Վրացական</translation> <translation id="3307875152560779385">ուկրաիներեն</translation> <translation id="3326821416087822643"><ph name="FILE_NAME" />-ի արխիվացում…</translation>
diff --git a/ui/ozone/platform/wayland/host/wayland_connection.cc b/ui/ozone/platform/wayland/host/wayland_connection.cc index 43ebd6a..65f6d74f 100644 --- a/ui/ozone/platform/wayland/host/wayland_connection.cc +++ b/ui/ozone/platform/wayland/host/wayland_connection.cc
@@ -16,6 +16,7 @@ #include "base/bind.h" #include "base/logging.h" #include "base/memory/ptr_util.h" +#include "base/metrics/histogram_functions.h" #include "base/strings/string_util.h" #include "base/task/current_thread.h" #include "base/threading/thread_task_runner_handle.h" @@ -63,6 +64,23 @@ namespace { +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +// +// Append new shells before kMaxValue and update LinuxWaylandShell +// in tools/metrics/histograms/enums.xml accordingly. +// +// See also tools/metrics/histograms/README.md#enum-histograms +enum class UMALinuxWaylandShell { + kZauraShell = 0, + kGtkShell1 = 1, + kOrgKdePlasmaShell = 2, + kXdgWmBase = 3, + kXdgShellV6 = 4, + kZwlrLayerShellV1 = 5, + kMaxValue = kZwlrLayerShellV1, +}; + // The maximum supported versions for a given interface. // The version bound will be the minimum of the value and the version // advertised by the server. @@ -122,6 +140,14 @@ return result.ValueOrDie(); } +void ReportShellUMA(UMALinuxWaylandShell shell) { + static std::set<UMALinuxWaylandShell> reported_shells; + if (reported_shells.count(shell) > 0) + return; + base::UmaHistogramEnumeration("Linux.Wayland.Shell", shell); + reported_shells.insert(shell); +} + } // namespace WaylandConnection::WaylandConnection() = default; @@ -453,6 +479,7 @@ } zxdg_shell_v6_add_listener(connection->shell_v6_.get(), &shell_v6_listener, connection); + ReportShellUMA(UMALinuxWaylandShell::kXdgShellV6); } else if (!connection->shell_ && strcmp(interface, "xdg_wm_base") == 0) { connection->shell_ = wl::Bind<xdg_wm_base>( registry, name, std::min(version, kMaxXdgShellVersion)); @@ -462,6 +489,7 @@ } xdg_wm_base_add_listener(connection->shell_.get(), &shell_listener, connection); + ReportShellUMA(UMALinuxWaylandShell::kXdgWmBase); } else if (base::EqualsCaseInsensitiveASCII(interface, "wl_output")) { if (version < kMinWlOutputVersion) { LOG(ERROR) @@ -516,6 +544,7 @@ return; } connection->gtk_shell1_ = std::make_unique<GtkShell1>(gtk_shell1.release()); + ReportShellUMA(UMALinuxWaylandShell::kGtkShell1); } else if (!connection->zwp_primary_selection_device_manager_ && strcmp(interface, "zwp_primary_selection_device_manager_v1") == 0) { @@ -624,6 +653,7 @@ } connection->zaura_shell_ = std::make_unique<WaylandZAuraShell>(zaura_shell.release(), connection); + ReportShellUMA(UMALinuxWaylandShell::kZauraShell); } else if (!connection->wayland_zwp_pointer_gestures_ && strcmp(interface, "zwp_pointer_gestures_v1") == 0 && version >= kMinZwpPointerGesturesVersion) { @@ -664,6 +694,14 @@ } connection->org_kde_kwin_idle_ = std::make_unique<OrgKdeKwinIdle>(idle.release(), connection); + } else if (strcmp(interface, "org_kde_plasma_shell") == 0) { + NOTIMPLEMENTED_LOG_ONCE() + << interface << " is recognized but not yet supported"; + ReportShellUMA(UMALinuxWaylandShell::kOrgKdePlasmaShell); + } else if (strcmp(interface, "zwlr_layer_shell_v1") == 0) { + NOTIMPLEMENTED_LOG_ONCE() + << interface << " is recognized but not yet supported"; + ReportShellUMA(UMALinuxWaylandShell::kZwlrLayerShellV1); } connection->available_globals_.emplace_back(interface, version);
diff --git a/ui/ozone/platform/wayland/host/wayland_popup.cc b/ui/ozone/platform/wayland/host/wayland_popup.cc index 24016a89..c59eb5b7 100644 --- a/ui/ozone/platform/wayland/host/wayland_popup.cc +++ b/ui/ozone/platform/wayland/host/wayland_popup.cc
@@ -6,6 +6,8 @@ #include <aura-shell-client-protocol.h> +#include "third_party/abseil-cpp/absl/types/optional.h" +#include "ui/display/display.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/transform.h" #include "ui/ozone/platform/wayland/common/wayland_util.h" @@ -180,39 +182,47 @@ shadow_type_ = properties.shadow_type; // Fix initial bounds. The client initially doesn't know the display where the - // WaylandPopup will be located and uses a primary display to convert dip + // WaylandPopup will be located and uses a primary display to convert DIP // bounds to pixels. However, Ozone/Wayland does know where it is going to // locate WaylandPopup as it is going to use parent's entered outputs. Thus, - // if the primary display's scale is different from parents' scale (and this' - // scale), fix bounds accordingly. Otherwise, popup is located using wrong - // bounds in DIP. - if (auto* primary_output = - connection()->wayland_output_manager()->GetPrimaryOutput()) { - const auto primary_display_scale_factor = primary_output->scale_factor(); + // if the primary display's scale (or forced scale factor) is different from + // parents' output scale (and this' scale), fix bounds accordingly. Otherwise, + // popup is located using wrong bounds in DIP. + absl::optional<float> used_scale; + if (display::Display::HasForceDeviceScaleFactor()) { + used_scale = display::Display::GetForcedDeviceScaleFactor(); + } else if (auto* primary_output = + connection()->wayland_output_manager()->GetPrimaryOutput()) { + used_scale = primary_output->scale_factor(); + } - gfx::RectF float_rect = gfx::RectF(GetBounds()); - gfx::Transform transform; - float scale = primary_display_scale_factor; - // The bounds are initially given in the scale of the primary display, so we - // have to upscale or downscale the rect to the scale of the target display, - // if that scale is different. - if (primary_display_scale_factor < window_scale()) { - scale = static_cast<float>(window_scale()) / - static_cast<float>(primary_display_scale_factor); - transform.Scale(scale, scale); - transform.TransformRect(&float_rect); - } else if (primary_display_scale_factor > window_scale()) { - scale = static_cast<float>(primary_display_scale_factor) / - static_cast<float>(window_scale()); - transform.Scale(scale, scale); - transform.TransformRectReverse(&float_rect); - } + if (!used_scale.has_value()) + return true; + + const auto client_initial_scale = used_scale.value(); + + gfx::RectF float_rect = gfx::RectF(GetBounds()); + gfx::Transform transform; + float scale = client_initial_scale; + // The bounds are initially given in the scale of the primary display (or + // forced scale), so we have to upscale or downscale the rect to the scale + // of the target display, if that scale is different. + if (client_initial_scale < window_scale()) { + scale = static_cast<float>(window_scale()) / + static_cast<float>(client_initial_scale); + transform.Scale(scale, scale); + transform.TransformRect(&float_rect); + } else if (client_initial_scale > window_scale()) { + scale = static_cast<float>(client_initial_scale) / + static_cast<float>(window_scale()); + transform.Scale(scale, scale); + transform.TransformRectReverse(&float_rect); + } // delegate()->OnBoundsChanged cannot be called at this point. Thus, set // pending internal bounds and call SetBounds later when CreateShellPopup is // called. pending_initial_bounds_px_ = gfx::ToEnclosingRect(float_rect); - } return true; }
diff --git a/ui/ozone/platform/wayland/host/wayland_screen.cc b/ui/ozone/platform/wayland/host/wayland_screen.cc index 53a65e8..a962b88e 100644 --- a/ui/ozone/platform/wayland/host/wayland_screen.cc +++ b/ui/ozone/platform/wayland/host/wayland_screen.cc
@@ -283,8 +283,6 @@ base::Value WaylandScreen::GetGpuExtraInfoAsListValue( const gfx::GpuExtraInfo& gpu_extra_info) { - // TODO(https://crbug.com/1138740): it'd be good to have the compositor name - // in the about://gpu as well. auto list_value = GetDesktopEnvironmentInfoAsListValue(); DCHECK(list_value.is_list()); std::vector<std::string> protocols;
diff --git a/ui/ozone/platform/wayland/host/wayland_window_unittest.cc b/ui/ozone/platform/wayland/host/wayland_window_unittest.cc index 48cd308f..c2f054f1 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_unittest.cc +++ b/ui/ozone/platform/wayland/host/wayland_window_unittest.cc
@@ -22,6 +22,7 @@ #include "ui/base/cursor/mojom/cursor_type.mojom-shared.h" #include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h" #include "ui/base/hit_test.h" +#include "ui/display/display.h" #include "ui/events/base_event_utils.h" #include "ui/events/event.h" #include "ui/gfx/geometry/rect.h" @@ -1798,6 +1799,64 @@ } } +// Same as above except that it verifies that the bounds are also translated if +// forced scale factor is set. +TEST_P(WaylandWindowTest, WaylandPopupInitialBufferScaleForcedScale) { + VerifyAndClearExpectations(); + + display::Display::SetForceDeviceScaleFactor(1.2); + + // Creating an output with scale 1. + wl::TestOutput* main_output = server_.CreateAndInitializeOutput(); + main_output->SetRect(gfx::Rect(0, 0, 1920, 1080)); + main_output->SetScale(1); + Sync(); + + // Creating an output with scale 2. + wl::TestOutput* secondary_output = server_.CreateAndInitializeOutput(); + secondary_output->SetRect(gfx::Rect(1921, 0, 1920, 1080)); + secondary_output->SetScale(2); + Sync(); + + // Send the window to |output1|. + wl::MockSurface* surface = server_.GetObject<wl::MockSurface>( + window_->root_surface()->GetSurfaceId()); + ASSERT_TRUE(surface); + + wl_surface_send_enter(surface->resource(), secondary_output->resource()); + Sync(); + + gfx::Rect bounds_dip(15, 15, 10, 10); + // DesktopWindowTreeHostPlatform has always to use a primary display's + // scale to translate initial bounds to pixels. However, the primary display + // will use forced device scale factor and ignore wl_output's scale. Thus, use + // primary output's scale to make initial bounds. This code snippet is a copy + // of DesktopWindowTreeHostPlatform::ToPixelRect. + gfx::Transform transform; + transform.Scale(display::Display::GetForcedDeviceScaleFactor(), + display::Display::GetForcedDeviceScaleFactor()); + gfx::RectF rect_in_pixels = gfx::RectF(bounds_dip); + transform.TransformRect(&rect_in_pixels); + gfx::Rect wayland_popup_bounds = gfx::ToEnclosingRect(rect_in_pixels); + + std::unique_ptr<WaylandWindow> wayland_popup = CreateWaylandWindowWithParams( + PlatformWindowType::kMenu, window_->GetWidget(), wayland_popup_bounds, + &delegate_); + EXPECT_TRUE(wayland_popup); + + wayland_popup->Show(false); + + gfx::Rect expected_bounds = gfx::ScaleToRoundedRect( + wayland_popup_bounds, + 1.f / display::Display::GetForcedDeviceScaleFactor()); + expected_bounds = gfx::ScaleToRoundedRect(expected_bounds, + 2 /*secondary display's scale */); + + EXPECT_EQ(expected_bounds, wayland_popup->GetBounds()); + wl_surface_send_leave(surface->resource(), secondary_output->resource()); + Sync(); +} + // Tests that a WaylandWindow uses the entered output with largest scale // factor as the preferred output. If scale factors are equal, the very first // entered display is used.
diff --git a/ui/ozone/platform/wayland/ozone_platform_wayland.cc b/ui/ozone/platform/wayland/ozone_platform_wayland.cc index 71239bdd..e776e4b 100644 --- a/ui/ozone/platform/wayland/ozone_platform_wayland.cc +++ b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
@@ -198,8 +198,6 @@ #endif menu_utils_ = std::make_unique<WaylandMenuUtils>(connection_.get()); - - // TODO(crbug.com/1138740): report which Wayland compositor is used. } void InitializeGPU(const InitParams& args) override {
diff --git a/url/android/gurl_android.cc b/url/android/gurl_android.cc index 861bc6f..a16d2b8 100644 --- a/url/android/gurl_android.cc +++ b/url/android/gurl_android.cc
@@ -57,6 +57,17 @@ gurl.parsed_for_possibly_invalid_spec())); } +// As |GetArrayLength| makes no guarantees about the returned value (e.g., it +// may be -1 if |array| is not a valid Java array), provide a safe wrapper +// that always returns a valid, non-negative size. +template <typename JavaArrayType> +size_t SafeGetArrayLength(JNIEnv* env, const JavaRef<JavaArrayType>& jarray) { + DCHECK(jarray); + jsize length = env->GetArrayLength(jarray.obj()); + DCHECK_GE(length, 0) << "Invalid array length: " << length; + return static_cast<size_t>(std::max(0, length)); +} + } // namespace // static @@ -67,6 +78,23 @@ reinterpret_cast<GURL*>(Java_GURL_toNativeGURL(env, j_gurl))); } +void GURLAndroid::JavaGURLArrayToGURLVector( + JNIEnv* env, + const base::android::JavaRef<jobjectArray>& array, + std::vector<GURL>* out) { + DCHECK(out); + DCHECK(out->empty()); + if (!array) + return; + size_t len = SafeGetArrayLength(env, array); + for (size_t i = 0; i < len; ++i) { + ScopedJavaLocalRef<jobject> j_gurl( + env, static_cast<jobject>(env->GetObjectArrayElement(array.obj(), i))); + out->emplace_back( + *reinterpret_cast<GURL*>(Java_GURL_toNativeGURL(env, j_gurl))); + } +} + // static ScopedJavaLocalRef<jobject> GURLAndroid::FromNativeGURL(JNIEnv* env, const GURL& gurl) {
diff --git a/url/android/gurl_android.h b/url/android/gurl_android.h index b36538d..b0e3b729 100644 --- a/url/android/gurl_android.h +++ b/url/android/gurl_android.h
@@ -25,6 +25,10 @@ static base::android::ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfGURLs( JNIEnv* env, base::span<base::android::ScopedJavaLocalRef<jobject>> v); + static void JavaGURLArrayToGURLVector( + JNIEnv* env, + const base::android::JavaRef<jobjectArray>& gurl_array, + std::vector<GURL>* out); }; } // namespace url
diff --git a/url/android/test/java/src/org/chromium/url/JUnitTestGURLs.java b/url/android/test/java/src/org/chromium/url/JUnitTestGURLs.java index 93d2992c..f6b6832 100644 --- a/url/android/test/java/src/org/chromium/url/JUnitTestGURLs.java +++ b/url/android/test/java/src/org/chromium/url/JUnitTestGURLs.java
@@ -25,6 +25,7 @@ // in the map. public static final String EXAMPLE_URL = "https://www.example.com/"; public static final String URL_1 = "https://www.one.com/"; + public static final String URL_1_NUMERAL = "https://www.1.com/"; public static final String URL_1_WITH_PATH = "https://www.one.com/some_path.html"; public static final String URL_2 = "https://www.two.com/"; public static final String URL_3 = "https://www.three.com/"; @@ -56,6 +57,9 @@ map.put(URL_1, "78,1,true,0,5,0,-1,0,-1,8,11,0,-1,19,1,0,-1,0,-1," + "false,false,https://www.one.com/"); + map.put(URL_1_NUMERAL, + "75,1,true,0,5,0,-1,0,-1,8,9,0,-1,17,1,0,-1,0,-1," + + "false,false,https://www.1.com/"); map.put(URL_1_WITH_PATH, "93,1,true,0,5,0,-1,0,-1,8,11,0,-1,19,15,0,-1,0,-1," + "false,false,https://www.one.com/some_path.html");